net/publication/328487390
CITATION READS
1 1,130
2 authors:
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Ghifari Munawar on 24 October 2018.
Abstract— Penelitian didasari oleh keberhasilan proses migrasi dari sistem monolitik ke
dalam arsitektur microservice pada beberapa penelitian sebelumnya melalui metode
identifikasi kandidat microservice. Pada penelitian ini, peneliti melakukan identifikasi
microservice pada sistem informasi Dana Pensiun Lembaga Keuangan (DPLK) melalui 6
(enam) tahapan migrasi yang dimulai dari analisa setiap subsistem monolitik terhadap fungsi
bisnis dan tabel database. Sistem DPLK dikembangkan dengan arsitektur monolitik dan
memiliki beberapa modul sistem, diantaranya sistem pendaftaran nasabah, sistem pengelolaan
investasi, sistem pengelolaan bisnis, sistem pelaporan, dlsb. Banyaknya tanggung jawab yang
perlu dikelola dalam sistem DPLK menyebabkan sistem akan sulit untuk beradaptasi terhadap
perubahan kebutuhan. Kompleksitas inilah yang akan dipecah dalam beberapa service melalui
pendekatan microservices. Sehingga diharapkan dengan mengembangkan model arsitektur
microservices ini, sistem informasi DPLK dapat lebih adaptif (adaptability) terhadap
perubahan kebutuhan (requirement changes) sistem untuk kedepannya.
232
Publikasi Jurnal & Penelitian Teknik Informatika e-ISSN : 2541-2019
Volume 3 Nomor 1, Oktober 2018 p-ISSN : 2541-044X
Tahap Persiapan
Studi Memahami kondisi
permasalahan permasalahan yang
Studi mengenai sistem timbul dari sistem
1
Permasalahan informasi DPLK informasi DPLK
yang saat ini yang saat ini
berjalan berjalan.
Kajian pustaka
dari berbagai
sumber terkait Memahami lingkup GAMBAR II. PEMETAAN TABEL DATABASE PADA
proses analisis, teoritis dan praktis SUBSISTEM [6]
Kajian
2 perancangan untuk solusi
Pustaka
arsitektur sistem, permasalahan dalam
microservice, penelitian. b) Buat grafik ketergantungan (V, E) dimana
teknologi cloud, node (vertices) menggambarkan facades (fci ϵ
dll
Melakukan F), fungsi bisnis (bfi ϵ B), atau tabel database
pengumpulan data
Dokumen Teknis, (tbi ϵ D), dan garis (edges) menggambarkan:
pada objek (i) panggilan dari facades ke fungsi bisnis; (ii)
Petunjuk
Pengumpulan penelitian, berupa
3 Penggunaan Sistem, panggilan diantara fungsi bisnis; dan (iii)
Data dokumentasi
Source Code
teknis, petunjuk
Aplikasi Existing. akses dari fungsi bisnis ke tabel database.
penggunaan
sistem, dll.
Satu subsistem bisa memiliki lebih dari satu
facades dan satu facades bisa memanggil
Tahap Pelaksanaan
lebih dari satu fungsi bisnis dan satu fungsi
Menganalisa bisnis bisa memanggil lebih dari satu fungsi
model arsitektur
Analisa monolitik yang Arsitektur Monolitik bisnis lainnya atau memanggil lebih dari satu
4 Arsitektur sesuai dengan pada Sistem tabel database. Dimana facades merupakan
Sistem Existing sistem informasi Existing. entry point dari sistem yang memanggil
DPLK yang saat
ini berjalan. fungsi bisnis dan fungsi bisnis merupakan
Perancangan
Merancang methods yang mewakili implementasi sebuah
arsitektur Model Arsitektur business rules dan bergantung pada tabel
Model
5 microservice Microservice yang
Arsitektur
berdasarkan hasil dikembangkan database.
Microservice
analisis
Menguji model
Pengujian Hasil Pengujian
6 arsitektur yang
Model Model
dikembangkan
Tahap Pelaporan
Menyusun jurnal
ilmiah sesuai
Penyusunan
7 dengan hasil Draft Jurnal Ilmiah
Jurnal Ilmiah
temuan pada
penelitian.
Laporan Kemajuan
Membuat laporan
Penelitian, Laporan
penelitian, baik
Penyusunan Akhir Penelitian, dan
laporan progress,
8 Laporan Laporan
dan laporan akhir
Penelitian Pertanggung
serta pertanggung
Jawaban Dana
jawaban dana. GAMBAR III. GRAFIK KETERGANTUNGAN ANTAR
Penelitian. VERTICES (V) [6]
234
Publikasi Jurnal & Penelitian Teknik Informatika e-ISSN : 2541-2019
Volume 3 Nomor 1, Oktober 2018 p-ISSN : 2541-044X
c) Identifikasi pasangan (fci, tbj) dimana fci ϵ F Gateway API merupakan sebuah intermediate
dan tbj ϵ D, dan terdapat jalur (path) dari fci layer diantara client dan server, yakni sebuah
ke tbj pada grafik ketergantungan. komponen baru yang menangani panggilan
(request) dari client dan mensikronisasi
d) Pilih pasangan (fci, tbj) yang diidentifikasi panggilan ke microservice M dan fc1' (fc1
pada langkah sebelumnya untuk setiap versi baru tanpa source code, karena source
subsistem ssi pada langkah ke-1, dimana tbj ϵ code tersebut telah diekstrak dan
ssi. diimplementasikan ke microservice M).
e) Identifikasi kandidat yang akan diubah Terdapat tiga kasus yang harus
menjadi microservice. Untuk setiap pasangan dipertimbangkan ketika sinkronisasi:
(fci, tbj), sebuah kandidat microservice (M) i) Ketika input dari fc1’ adalah output dari
didefinisikan sebagai berikut: M atau input dari M adalah output dari
Name: nama service sesuai pola fc1’.
[subsystemname].[processname].
ii) Ketika input dari M dan fc1’ sama
Purpose: satu kalimat yang dengan input API gateway dan urutan
menggambarkan tujuan bisnis utama intansiasi tidak diperhatikan.
dari operasi, yang secara langsung
terkait dengan domain entitas database iii) Ketika harus membagi fc1’ menjadi dua
yang diakses. fungsi fc1’ dan fc1” dan microservice M
Input/Output: operasi pada harus dipanggil setelah fc1’ dan sebelum
microservice memerlukan data sebagai fc1”.
input untuk menghasilkan output.
Jika sinkronisasi panggilan dapat dilakukan
Features: business rules untuk seperti kasus (i) dan (ii), maka identifikasi
penggunaan microservice, yang microservice M sebagai “strong candidate”,
digambarkan sebagai kata kerja tetapi jika sinkronisasi panggilan hanya bisa
(action), objek (terkait dengan tabel seperti kasus (iii) maka identifikasi
database), dan pelengkap. microservice M sebagai “candidate with
Data: tabel database yang digunakan additional effort”. Selain itu, jika business
microservice. rule yang diimplementasikan pada
Identifikasi microservice ini diterapkan untuk microservice perlu mempebaharui data di tbi ϵ
hanya satu subsistem dari sistem monolitik ssx dan tbj bukan ϵ ssx dalam lingkup
yang menangani operasi pada setiap tabel transaksi yang sama, maka identifikasi
database. Sedangkan subsistem dengan microservice M sebagai “non candidate”.
memiliki tabel yang muncul pada lebih dari
satu daftar subsistem maka tidak akan
dilakukan identifikasi microservice untuk IV. HASIL IDENTIFIKASI MICROSERVICE
subsistem tersebut. Selanjutnya, setelah setiap Berikut tahapan identifikasi microservice dari
pasangan (fci, tbj) teridentifikasi sebagai sistem informasi DPLK:
kandidat microservice kemudian buat
database sendiri untuk tabel dari subsistem A. Identifikasi Subsistem dan Tabel Database
kandidat microservice dan hilangkan
Langkah #1, terdapat 5 subsistem yang
subsistem kandidat microservice dari sistem S
didefinisikan, yakni Kepesertaan (KP), Transaksi (TR),
(setelah gateway API dibuat pada langkah 6).
Investasi (INV), Pengelolaan (PG), dan Pelaporan
Berikut kriteria subsistem non-kandidat
(RPT), serta 88 tabel database. Pada tahapan ini, tabel
microservice:
pada database dipetakan kepada masing-masing
Subsistem yang berbagi tabel database subsistemnya, dimana tabel tersebut digunakan oleh
yang sama. subsistem tersebut. Disamping itu, terdapat pula tabel
Microservice yang mewakili operasi data yang digunakan oleh lebih dari 1 (satu)
yang berada ditengah operasi lain. subsistem. Hasil pemetaan tabel database pada
subsitem secara menyeluruh dapat dilihat pada Tabel
Operasi yang melibatkan lebih dari satu
III.
subsistem pada sebuah transkasi
(misalnya, transaksi transfer uang dari TABEL III. PEMETAAN SUBSISTEM DAN TABEL DATABASE
subsistem rekening check ke subsistem
rekening tabungan). KP TR INV PG RPT
approvals transaction investme products members
f) Buat gateway API untuk setiap facades approval_hi transaction_ nt instruments member_
story codes investme packet diversions
sebagai migrasi microservice untuk client. nt_extens
cifs transaction_ packet_details transaction_
235
Publikasi Jurnal & Penelitian Teknik Informatika e-ISSN : 2541-2019
Volume 3 Nomor 1, Oktober 2018 p-ISSN : 2541-044X
member_co fees ion counterpart_ codes TABEL IV. ANALISIS KETERGANTUNGAN VERTICES (V)
des accounts escrows products transaction_
corporates member_co investme transaction_code fees Subsistem Facades Function Func Data
nt_accrua
contacts des s fees (v) tion Base
ls
addresses approvals investme fees investments Calls (e)
additionals approval_hi nt_histori holidays investment_ (e)
documents story es users extensions CorporateController 22 14 8
bank_accou upload investme sessions investment_ KP
nt_details
RuleController 20 12 9
nts upload_det roles managers
streams TR UploadController 12 10 5
pics ails regulators escrows
rules equation_t
transacti
dplks
INV StreamController 13 8 4
ons ProductController 14 9 4
rule_formul rx_ banks
operatio
as histories
nals insurances InstrumentController 16 11 5
accounts operatio bank_counterpa PacketController 15 9 3
option_valu nal_detai rts CountProdController 14 13 6
es ls investment_ HolidayController 19 7 3
banks managers UserController 17 11 4
insurances agent_institutio SessionController 14 7 3
members ns RoleController 14 11 5
member_ac agent_branch RegulatorController 14 8 3
counts agents DplkController 14 8 3
member_di apis
BankCountController 13 9 4
versions clients
AgentInstController 12 7 3
heirs modules
menus
PG AgentBranchController 13 9 4
contacts AgentController 13 9 4
addresses ApiController 13 9 4
bank_accounts ClientController 15 10 4
documents ModuleController 14 9 4
pics MenuController 16 11 5
heirs GoalController 12 8 4
goals AppSettingController 12 8 4
additionals ReportController 20 10 4
notifications CodeController 11 8 4
approval_settin OptionController 13 10 5
gs
SysParamController 14 8 3
reports
TransController 13 7 3
report_template
s
upload_settings
jobs Setelah analisis ketergantungan didapatkan,
codes kemudian dilakukan proses identifikasi kandidat
rule_formulas
options microservice, seperti terlihat pada Tabel IV.
option_values
system_parame
ters TABEL V. KANDIDAT MICROSERVICE PADA SUBSISTEM
translations
dashboard_setti KP TR INV PG
ngs Tables (v) 3 3 3 33
dashboard_role Functions (v) 42 12 13 355
s
Function Calls (e) 26 10 8 226
Database Accesses
Subsistem yang memiliki tabel database dengan 17 5 4 98
(e)
warna abu-abu tidak akan dilakukan analisis pada Kandidat
langkah selanjutnya. Hal ini dikarenakan tabel 2 1 1 22
Microservices
database tersebut muncul pada lebih dari satu daftar
subsistem (tabel database digunakan oleh lebih dari
satu subsistem). Dimana identifikasi microservice C. Identifikasi Pasangan Facades dan Tabel
yang dilakukan oleh [6] memastikan bahwa hanya Database
satu subsistem yang menangani operasi atau transaksi Langkah #3 dan #4, dari kandidat microservice
di setiap tabel database. yang telah terpilih pada langkah #2, selanjutnya
dilakukan dekomposisi fungsi-fungsi bisnis sesuai
B. Identifikasi Facades dan Fungsi Bisnis operasi/transaksi pada setiap tabel database. Sebagai
Langkah #2, dilakukan analisis ketergantungan contoh terlihat pada Gambar IV adalah grafik
fungsi bisnis (B) dan tabel database (D) berdasarkan ketergantungan pada subsistem Kepesertaan (KP)
facades (F) (entry point dari sistem) sesuai hasil antara façades (f), fungsi bisnis (b), dan tabel
analisis ketergantungan subsistem dan tabel database database (d) :
pada langkah #1 dengan mengabaikan tabel database
yang digunakan oleh lebih dari satu subsistem dengan
v-vertices; e-edges, seperti terlihat pada Tabel III.
236
Publikasi Jurnal & Penelitian Teknik Informatika e-ISSN : 2541-2019
Volume 3 Nomor 1, Oktober 2018 p-ISSN : 2541-044X
ApprovalService approvals
ProcessService processes
FormulaService formulas
SystemParameter system
Service parameters
Transaksi (TR)
Upload
3 UploadService uploads
Controller
Investasi (INV)
Stream
4 StreamService streams
Controller
Pengelolaan (PG)
GAMBAR IV. GRAFIK KETERGANTUNGAN PADA 5 Product ProductService products
SUBSISTEM KEPESERTAAN (KP)
6 Instrument InstrumentService instruments
Keterangan :
Packet PacketService packets
CC CorporateController PR PacketRepository 7
Controller InstrumentService instruments
RC RuleController RR RuleRepository
CS CorporateService FR FormulaRepository Count CounterpartProduct counterpart
PS PacketService C Corporates 8 Prod Service products
RS RuleService P Packets Controller InstrumentService instruments
FS FormulaService R Rules
CR CorporateRepository F Formulas Holiday
9 HolidayService holidays
Controller
Grafik pada gambar IV menunjukan User UserService users
10
ketergantungan antara facades, fungsi bisnis, dan Controller RoleService roles
database pada subsistem kepesertaan (KP). CC Session
memanggil fungsi bisnis yang terdapat pada CS, 11 SessionService sessions
Controller
kemudian CS memanggil fungsi database yang RoleService roles
Role
tersimpan pada CR, dan CR mengakses database ke 12
Controller MenuService menus
tabel C, begitu pula dengan facades yang lain,
sehingga hubungan tersebut akan membentuk grafik Regulator
13 RegulatorService regulators
Controller
ketergantungan. Proses ini dilakukan pula pada
Dplk
subsistem lainnya. 14 DplkService dplks
Controller
Hasil dari proses ini dapat dilihat secara Bank CounterpartService counterparts
15 Count
menyeluruh pada Tabel VI. BankService banks
Controller
AgentService agents
TABEL VI. DEKOMPOSISI FUNGSI BISNIS PADA KANDIDAT
Agent agent
MICROSERVICE
16 AgentBranchService
Controller branches
Business AgentInstitution agent
No Façade (f) Tabel (d) Service institutions
Function (b)
Api
Kepesertaan (KP) 17 ApiService apis
Controller
CorporateService corporates ClientService clients
Client
member 18 ApiPermission api
MemberCodeService Controller
codes Service permissions
ApprovalService approvals MenuService menus
Menu
Corporate 19
ProductService products Controller ModuleService modules
1 Controller
PacketService packets Goal
20 GoalService goals
Controller
InsuranceService insurances App
ApprovalSetting approval
BankService banks 21 Setting
Service settings
Controller
AgentService agents
Report ReportService reports
RuleService rules 22
Rule Controller AgentService agents
2
Controller CorporateService corporates Code
23 CodeService codes
Controller
237
Publikasi Jurnal & Penelitian Teknik Informatika e-ISSN : 2541-2019
Volume 3 Nomor 1, Oktober 2018 p-ISSN : 2541-044X
238
Publikasi Jurnal & Penelitian Teknik Informatika e-ISSN : 2541-2019
Volume 3 Nomor 1, Oktober 2018 p-ISSN : 2541-044X
239