Refactoring Arsitektur Microservice Pada Aplikasi Absensi PT. Graha Usaha Teknik

Authors

DOI:

https://doi.org/10.25077/TEKNOSI.v5i1.2019.57-68

Keywords:

Monolithic, Microservice, Refactoring, Strangler Pattern, Absensi

Abstract

Meningkatnya jumlah pengguna aplikasi berbasis arsitektur monolithic dapat mempengaruhi proses pemeliharaan, kinerja dan kompleksnya pembaruan aplikasi. Resilient challenges merupakan salah satu permasalahan yang sering terjadi pada arsitektur monolithic, dimana jika terjadi kegagalan pada saat pembaruan atau penambahan fitur baru pada aplikasi, maka seluruh fitur aplikasi akan mengalami kegagalan sistem. Permasalahan selanjutnya jika terjadi perubahan salah satu modul aplikasi pada arsitektur monolithic, maka dibutuhkan proses restart seluruh aplikasi. Semakin besar sebuah aplikasi, maka proses restart aplikasi menjadi semakin lama sehingga selama proses restart berlangsung, aplikasi tidak dapat digunakan. Dengan berbagai permasalahan pada arsitektur monolithic, penggunaan arsitektur microservice dalam mengembangkan sebuah aplikasi dapat memperbaiki permasalahan pada arsitektur monolithic melalui pemisahan servis - servis menjadi kecil. Untuk dapat mengatasi permasalahan aplikasi dengan menggunakan arsitektur monolithic, diperlukan proses refactoring aplikasi dari arsitektur monolithic menjadi arsitektur microservice. Pada penelitian ini, dilakukan refactoring arsitektur monolithic menjadi arsitektur microservice dengan menggunakan 13 tahapan dan strategi strangler pattern pada aplikasi absensi PT. Graha Usaha Teknik. Proses refactoring dengan strategi strangler pattern hanya digunakan pada 10 tahapan dari 13 tahapan refactoring. Tahapan strategi strangler pattern dilakukan hingga seluruh servis pada arsitektur monolithic berhasil dilakukan refactoring. Hasil refactoring yang dilakukan pada aplikasi absensi PT. Graha Usaha Teknik menghasilkan tujuh servis yang dapat dikembangkan pada arsitektur microservice. Berdasarkan hasil pengujian dengan menggunakan load test, arsitektur microservice yang telah dibangun lebih optimal dibandingkan arsitektur monolithic pada saat jumlah pengguna dinaikan menjadi 15 tps dengan menggunakan spesifikasi komputer yang sama.

References

[1] APJII, "Infografis penetrasi dan perilaku pengguna internet indonesia survey 2017" tech. rep., Asosiasi Penyelenggara Jasa Internet Indonesia, 2017. Available: https://web.kominfo.go.id/sites/default/files/Laporan%20Survei%20APJII_2017_v1.3.pdf [January 15, 2019]. [2] APJII, "Infografis penetrasi dan perilaku pengguna internet indonesia survey 2016" tech. rep., Asosiasi Penyelenggara Jasa Internet Indonesia, 2016. Available: https://apjii.or.id/downfile/downloadsurvei/infografis_apjii.pdf [January 15, 2019]. [3] S. Daya et al. (2015, August). Microservices from Theory to Practice: Creating Applications in IBM Bluemix Using the Microservices Approach. (1st edition). [On-Line]. Available: http://www.redbooks.ibm.com/abstracts/sg248275.html [January 15, 2019]. [4] N. Dragoni et al. (2017, September 6). Microservices: Yesterday, Today, and Tomorrow. [On-Line]. Available: https://link.springer.com/chapter/10.1007/978-3-319-67425-4_12 [January 15, 2019]. [5] K. Katuwal. “Microservices: A Flexible Architecture for the Digital Age Version 1.0â€. American Journal of Computer Science and Engineering, Volume 3, September 2016, Pages 20-24. [6] A. Messina, R. Rizzo, P. Storniolo, and A. Urso. “A Simplified Database Pattern for the Microservice Architecture†In Conference: DBKDA, 2016. [7] A. Balalaie, A. Heydarnoori, P. Jamshidi, D. A. Tamburri, and T. Lynn. “Microservices Migration Patternâ€. Software: Practice and Experience. Volume 48, Juli 2018, https://doi.org/10.1002/spe.2608. [8] T. Ueda, T. Nakaike and M. Ohara. “Workload characterization for microservices†in 2016 IEEE International Symposium on Workload Characterization (IISWC), 2016, pp. 1-10. [9] S. De Santis. L. Florez, D. V Nguyen and E. Rosa, (2016, December). Evolve the Monolith to Microservices with Java and Node. (1st edition). [On-Line]. Available: http://www.redbooks.ibm.com/abstracts/sg248358.html [January 15, 2019]. [10] K. Finnigan. (2018, October). Enterprise Java microservices. (1st edition). [On-Line]. Available: https://www.oreilly.com/library/view/enterprise-java-microservices/9781617294242 [January 15, 2019]. [11] A. D’Sousa and S. Bhatia. “Refactoring of a Databaseâ€. arXiv preprint arXiv:0912.1016. Volume 6, December 2009. [12] K. A. Carlos Buenosvinos Christian Soronellas. (2016). Domain-Driven Design in PHP. [On-Line]. Available: https://leanpub.com/ddd-in-php [January 15, 2019]. [13] N. Tune and S. Millett. (2015, May). Patterns, Principles, and Practices of Domain-Driven Design [On-Line]. Available: https://learning.oreilly.com/library/view/patterns-principles-and/9781118714706 [January 15, 2019].

Submitted

2019-02-02

Accepted

2019-04-26

Published

2019-04-30

How to Cite

[1]
R. Mufrizal and D. Indarti, “Refactoring Arsitektur Microservice Pada Aplikasi Absensi PT. Graha Usaha Teknik”, TEKNOSI, vol. 5, no. 1, pp. 57–68, Apr. 2019.

Issue

Section

Articles