Kali ini saya ingin menjelaskan tentang arsitektur perangkat lunak pada allocateam nih. Sebelumnya bisa dilihat di grafik yang saya buat.
Dari sisi developer, dapat dilihat diatas prosesnya adalah awalnya kami "ngoding", dan setiap ada fitur yang selesai, kita melakukan commit dan push ke version control yang kami gunakan yaitu, git. Platform git yang digunakan pada PPL ini adalah GitLab. Pada GitLab, dijalankan runner dengan proses testing (backend maupun frontend), release, dan deployment. Pada deployment, runner men-trigger kubernetes untuk melakuikan pull pada kontainer atau image docker yang baru di-push. Lalu kubernetes melakukan deployment redis yang digunakan untuk broker dan result dari backend, postgresql sebagai database, dan sistem backend yang kita sebut mario, frontend yang kita sebut peach, dan worker yang kita sebut dengan luigi. Nah, saat user mengoperasikan aplikasi yang kami buat, peach (frontend) akan mengirimkan API request ke mario (backend). Mario (backend) akan langsung mengambil data dari database Postgresql. Namun, jika proses pengambilan dari database memakan waktu lama, mario (backend) akan minta tolong kepada luigi (worker) untuk mengantrikan proses-proses yang harus dijalankan dan dijalan dibelakang tanpa mengganggu experience user menggunakan aplikasi kami. Selama menunggu luigi (worker) menjalankan proses, peach (frontend) akan memberitahu user dengan menampilan tampilan berupa informasi stage pemrosesan yang diberikan oleh luigi (worker).
Saya mau jelasin nih kenapa kita pake beberapa stack yang tidak umum digunakan pada PPL.
- Kubernetes: Kita butuh kubernetes karena kita ingin mendeploy ke beberapa host yang berbeda, karena kami memisahkan host untuk backend, frontend, database, worker, serta Redis.
- Redis: Redis itu bisa dikatakan sebagai database sementara yang berfungsi untuk menyimpan antrian-antrian pekerjaan atau biasa disebut juga dengan worker atau Job, untuk menangani pekerjaan-pekerjaan yang memakan waktu komputasi yang lama.
Nah sekarang perhatikan berikut arsitektur yang dilihat dari sisi user,
User menjalankan aplikasi dengan melihat tampilan yang diberikan oleh peach (frontend). Setiap kali user berinteraksi, peach (frontend) akan meminta response ke mario (backend) dan mario (backend) akan mengakses database. Jika proses lama, proses akan dijalankan oleh Luigi (worker).
Penjelasan lebih lengkap terkait ini, sudah dijelaskan oleh teman saya pada https://blog.allocateam.com/2018/04/allocarchitecture-basic.html
Terima kasih.
0 komentar:
Post a Comment