1. Monolith vs Microservices
Pada arsitektur Monolith, seluruh modul (Auth, Payment, Inventory, Notification) digabung menjadi 1 basis kode tunggal dan rilis bersamaan. Ini menyebabkan pipeline build menjadi sangat lambat dan deployment berisiko tinggi.
Pada arsitektur Microservices, setiap layanan dipisah menjadi repositori/folder independen dengan database terpisah, bahasa pemrograman bebas (polyglot), serta memiliki Pipeline CI/CD terpisah.
2. Tantangan CI/CD pada Microservices & Solusinya
- Independent Build & Deploy: Perubahan pada
payment-servicetidak boleh memicu re-build padauser-service. - Contract Testing (Pact): Memastikan perubahan API pada satu service tidak merusak interaksi dengan service konsumen.
- Monorepo vs Polyrepo: Di Monorepo, gunakan Path Filtering di CI (misal: jalankan job hanya jika folder
services/payment/**berubah).