PPL-PERTEMUAN(4)
Nama: Moh rosy haqqy aminy
NRP: 5025211012
Kelas: PPL A
Referensi: link
Refactoring Arsitektur Microservice Pada Aplikasi Absensi PT. Graha Usaha Teknik
Pada jurnal yang dijelaskan dalam dokumen, terdapat dua jenis arsitektur utama yang dibandingkan: arsitektur monolitik dan arsitektur microservice. Berikut adalah penjelasan mengenai masing-masing arsitektur dan proses refactoring yang digunakan:
1. Arsitektur Monolitik
Arsitektur monolitik menggambarkan sebuah aplikasi yang menjalankan semua logika dalam satu server aplikasi. Ciri-ciri dari arsitektur ini adalah:
- Semua modul aplikasi dijalankan secara bersamaan dalam satu server.
- Memerlukan pemeliharaan pada satu server aplikasi.
- Memiliki beberapa kekurangan, seperti sulit dalam pemeliharaan dan pengembangan aplikasi, konflik dependency library, membutuhkan proses restart aplikasi saat penambahan modul baru, dan keterbatasan scalability.
2. Arsitektur Microservice
Arsitektur microservice adalah gaya arsitektur perangkat lunak yang memecah aplikasi menjadi servis-servis kecil yang saling berkomunikasi satu sama lain. Beberapa kelebihan dari arsitektur ini adalah:
- Memudahkan pemeliharaan perangkat lunak.
- Dapat melakukan distribusi perangkat lunak secara independen.
- Mudah dalam melakukan scalability.
- Developer bebas dalam mengembangkan aplikasi dengan berbagai bahasa pemrograman dan framework.
3. Arsitektur:
Berikut adalah penjelasan mengenai komponen-komponen yang ada pada gambar tersebut:
Docker:
- Digunakan untuk containerization, memungkinkan setiap servis berjalan dalam kontainer terisolasi. Docker mempermudah proses deployment dan pengelolaan servis.
Service Discovery Server:
- Bertugas untuk mendaftarkan dan menemukan servis-servis yang berjalan dalam arsitektur microservice. Dalam gambar, ini diwakili oleh ikon Spring (logo hijau dengan daun).
Edge Server:
- Bertugas sebagai gerbang utama yang menerima semua permintaan dari klien (web, mobile, desktop) dan mengarahkan permintaan tersebut ke servis yang sesuai. Dalam gambar, ini diwakili oleh ikon Spring.
Konfigurasi Server:
- Menyimpan konfigurasi untuk semua servis sehingga setiap servis dapat mengambil konfigurasi yang diperlukan. Ini memudahkan pengelolaan konfigurasi secara terpusat. Juga diwakili oleh ikon Spring.
Servis-Servis:
- Servis Position: Mengelola data posisi karyawan.
- Servis Time Constant: Mengelola data ketentuan atau batasan jam kerja.
- Servis Man Hour: Mengelola data jam kerja setiap karyawan.
- Servis Report Daily: Mengelola data laporan harian.
- Servis APD: Mengelola data alat pelindung diri (APD).
- Servis Man Power: Mengelola data setiap karyawan.
- Servis OAuth2: Mengelola otentikasi pengguna.
Database (PostgreSQL):
- Semua servis terhubung ke satu database PostgreSQL untuk menyimpan dan mengelola data.
GitLab (ikon segitiga merah-kuning):
- Digunakan untuk continuous integration dan continuous deployment (CI/CD). Setiap perubahan kode akan diuji dan di-deploy secara otomatis.
Klien (ikon perangkat Apple, Android, dan web):
- Mewakili berbagai platform yang dapat mengakses aplikasi absensi, seperti aplikasi mobile (iOS dan Android) serta aplikasi web.
4. Pengujian
Pengujian perangkat lunak dilakukan menggunakan load test pada kedua arsitektur (monolitik dan microservice). Hasil pengujian menunjukkan bahwa arsitektur microservice lebih optimal dalam mengembalikan response time dan dapat menangani beban lebih baik dibandingkan arsitektur monolitik.
Dengan proses refactoring yang telah dilakukan, aplikasi absensi PT. Graha Usaha Teknik berhasil diubah dari arsitektur monolitik menjadi arsitektur microservice, menghasilkan tujuh servis yang diidentifikasi: position, time constant, man hour, report daily, APD, man power, dan OAuth2. Berdasarkan pengujian, arsitektur microservice terbukti lebih optimal dibandingkan arsitektur monolitik terutama saat jumlah pengguna dinaikkan menjadi 15 tps dengan spesifikasi komputer yang sama .
Komentar
Posting Komentar