Judul: Application Performance Test Analysis from Implementation Results Refactoring Monolithic Architecture to Microservices Using Decomposition and Strangler Pattern
Abstrak: Aplikasi SmartCampus masih dibangun dengan arsitektur monolitik, dimana semua komponen menjadi satu kesatuan. Skalabilitas penggunaan yang semakin kompleks terhadap tuntutan pelayanan dalam sistem informasi dengan arsitektur monolitik ditandai dengan penurunan performa aplikasi. Dalam penelitian ini dilakukan analisis uji performa dari implementasi refactoring arsitektur monolitik ke mikroservis dengan decomposition dan strangler pattern. Decomposition pattern membagi aplikasi monolitik menjadi beberapa domain bisnis berdasarkan kategori servis utamanya, strangler pattern memecah domain bisnis menjadi layanan-layanan mikro dengan mengganti fungsi tertentu dengan layanan baru melalui tahap transform, co-exist dan eliminate. Setelah fungsionalitas baru siap, komponen lama dinonaktifkan dan layanan baru mulai digunakan. Pertimbangan kualitas kelayakan aplikasi dilakukan menggunakan model ISO/IEC 25010 dengan delapan karakteristik, yaitu : functionality suitability, performance efficiency, compability, usability, reliability, security, maintainability, dan portability. Performa aplikasi mikroservis yang dihasilkan diuji menggunakan jenis uji performa, yaitu: load testing, spike testing, stress testing dan soak testing dengan variabel indikatornya adalah latensi dan throughput. Hasil servis-servis mikro yang layak akan diisolasi dengan teknologi kontainer sebagai upaya efisiensi sumber daya aplikasi dan antisipasi kebutuhan jangka panjang. Adapun tujuan penelitian ini adalah dapat membangun aplikasi perguruan tinggi yang mempunyai performa handal. Dekomposisi monolitik untuk proses bisnis akademik menghasilkan 13 servis yang saling berhubungan, kemudian dikelompokkan berdasarkan prinsip fungsional yang memiliki persamaan antar proses bisnis . Hasil load testing dan spike testing dengan skenario uji yang sama menggunakan JMeter dihasilkan grafik latensi aplikasi mikroservis yang dihasilkan lebih konstan dibandingkan aplikasi monolitik. Pada kategori jumlah akhir yang ditambahkan sebanyak 2000 user dengan melakukan looping sebanyak 5 kali, aplikasi mampu merespon sebanyak 76,52% thread atau sebanyak 7.652 thread dari total 10.000 thread yang seharusnya mampu direspon, sedangkan aplikasi monolitik sebelumnya hanya mampu merespon 43,76%. Hasil stress testing dan soak testing dengan skenario uji yang sama menggunakan JMeter, diperoleh grafik rata-rata throughput aplikasi mikroservis lebih linier dibandingkan aplikasi monolitik. Pada kategori jumlah user yang ditambahkan sebanyak 2000 aplikasi mikroservis mampu merespon sebanyak 66,25% dengan nilai throughput 84,5 KB/sec, sedangkan aplikasi monolitik hanya mampu merespon 40% dengan nilai throughput 39,6/sec. Kata kunci: kontainer, monolitik, mikroservis, refactoring, uji performa, Application SmartCampus still built with a monolithic architecture, where all components become one unit. The scalability of increasingly complex use of service demands in an information system with a monolithic architecture is marked by a decrease in application performance. In this study, an analysis of the performance test of the implementation was carried out refactoring monolithic architecture to microservices with decomposition and strangler pattern. Decomposition patterns dividing monolithic applications into several business domains based on their main service categories, strangler pattern break down the business domain into microservices by replacing certain functions with new services through stages transform, co-exist and eliminate. Once the new functionality is ready, the old components are decommissioned and the new services are put into use. Consideration of the quality of application feasibility is carried out using the ISO/IEC 25010 model with eight characteristics, namely: functionality suitability, performance efficiency, compatibility, usability, reliability, security, maintainability, and portability. The performance of the resulting microservices application is tested using the following types of performance tests: load testing, spike testing, stress testing and soak testing with
Keyword: mikroservis, monolitik, refactoring, decomposition, strangler patterns, kontainer, skalabilitas