5 poin oleh GN⁺ 2023-10-31 | Belum ada komentar. | Bagikan ke WhatsApp
  • Artikel tentang biaya dan manfaat beralih dari backend tunggal ke arsitektur microservices
  • Seiring bertambahnya jumlah tim yang berkontribusi pada satu codebase, komponen menjadi semakin saling terikat, produktivitas menurun, dan kompleksitas meningkat
  • Salah satu solusi untuk mengurangi masalah ini adalah memecah backend tunggal menjadi sekumpulan layanan yang dapat di-deploy secara independen dan berkomunikasi melalui API, yaitu microservices
  • Istilah 'micro' menyesatkan karena layanan tidak harus 'mikro'. Istilah yang lebih tepat adalah service-oriented architecture
  • Dengan memecah backend menjadi sekumpulan layanan dengan batas yang terdefinisi dengan baik, satu tim kecil sudah cukup untuk mengembangkan dan mengoperasikan tiap layanan, sehingga kecepatan pengembangan aplikasi meningkat
  • Tiap microservice dapat diskalakan secara independen dan mengadopsi tech stack yang berbeda sesuai kebutuhannya sendiri, sehingga memudahkan eksperimen dan evaluasi teknologi baru
  • Namun, arsitektur microservices menambah lebih banyak bagian bergerak pada keseluruhan sistem, meningkatkan kompleksitas, dan membutuhkan tingkat standarisasi tertentu
  • Jika tiap microservice menggunakan bahasa, library, dan data store yang berbeda, hal itu dapat berubah menjadi kekacauan yang menyulitkan pemeliharaan aplikasi dan membuat perpindahan developer antar tim menjadi sulit
  • Untuk mendukung layanan independen dalam skala besar, harus mudah untuk membuat server, data store, dan sumber daya lainnya, yang memerlukan otomatisasi yang signifikan
  • Pemanggilan jarak jauh mahal dan memperkenalkan cara-cara baru sistem dapat gagal, sehingga diperlukan mekanisme pertahanan seperti timeout, retry, dan circuit breaker
  • Continuous integration memastikan perubahan kode melalui proses build dan pengujian otomatis sebelum digabungkan ke branch utama
  • Pengujian integrasi untuk semua microservice jauh lebih sulit dibanding pengujian monolith; saat layanan-layanan individual saling berinteraksi, perilaku yang sangat halus dan tak terduga dapat muncul
  • Tim yang mengembangkan layanan biasanya juga bertanggung jawab atas panggilan untuk layanan tersebut, menimbulkan gesekan antara pekerjaan pengembangan dan biaya operasional
  • Debugging kegagalan sistem menjadi lebih sulit dengan microservices; logging dan monitoring yang baik penting di semua level
  • Saat aplikasi dipecah menjadi layanan-layanan terpisah, model data tidak lagi berada dalam satu data store tunggal, sehingga biasanya harus menerima eventual consistency
  • Secara umum, yang terbaik adalah memulai dengan monolith dan hanya memecahnya ketika sulit menetapkan batas yang tepat antar layanan
  • Memulai dengan pendekatan microservices-first sebaiknya hanya dilakukan jika sudah memiliki pengalaman dengannya dan telah membangun platform untuk itu, atau telah memperhitungkan waktu yang dibutuhkan untuk membangunnya

Belum ada komentar.

Belum ada komentar.