Microservices


Microservice adalah pendekatan pengembangan perangkat lunak yang memecah proyek perangkat lunak besar menjadi modul yang digabungkan secara longgar yang saling berkomunikasi menggunakan API sederhana. Mereka berdampak positif pada kemampuan dan bantuan bisnis dalam menyelesaikan pengembangan, pengujian, dan penyebaran dalam rentang waktu singkat.

Arsitektur microservice memungkinkan pengiriman aplikasi yang besar dan kompleks dengan cepat, sering, dan andal. Ini juga memungkinkan suatu organisasi untuk mengembangkan tumpukan teknologinya.



Karakteristik Microservices

  • Dalam arsitektur microservices, service kecil, independen, longgar digabungkan dan memiliki konteks yang terbatas.
  • Setiap layanan adalah basis kode yang terpisah, yang dapat dikelola oleh tim pengembangan  kecil.
  • Layanan dapat digunakan secara mandiri. Sebuah tim dapat memperbarui layanan yang ada tanpa membangun kembali dan menggunakan kembali seluruh aplikasi.
  • Layanan bertanggung jawab untuk mempertahankan data mereka sendiri atau keadaan eksternal. Ini berbeda dari model tradisional, di mana lapisan data yang terpisah menangani ketekunan data.
  • Layanan berkomunikasi satu sama lain dengan menggunakan API yang terdefinisi dengan baik. Detail implementasi internal setiap layanan disembunyikan dari layanan lain.
  • Layanan tidak perlu berbagi tumpukan teknologi, library, atau framework yang sama.


Manfaat Microservices

1. Loose coupling
Ini meminimalkan risiko bahwa perubahan yang dilakukan dalam satu elemen akan menyebabkan perubahan yang tidak diantisipasi dalam elemen lain. Membatasi interkoneksi dapat membantu mengisolasi masalah ketika hal-hal tidak berjalan dengan baik dan menyederhanakan prosedur pengujian, pemeliharaan, dan pemecahan masalah.

2. Encourage continuous refactoring and rewriting
Dengan menerapkan decoupling yang lebih ketat, menjadi lebih mudah untuk secara internal refactor atau menulis ulang layanan selama itu tidak berdampak pada API-nya dengan cara yang tidak kompatibel ke belakang.

3. Lower dependency on a single technology
Jika layanan berkomunikasi melalui beberapa media independen teknologi (seperti HTTP atau ZeroMQ), tidak masalah teknologi apa yang digunakan untuk mengimplementasikan layanan secara internal. Ini membuka kemampuan bagi tim untuk memilih teknologi mereka sendiri dan bermain dengan yang baru.

4. Scale Independently
Jika satu layanan menerima terlalu banyak beban untuk ditangani, maka dapat ditingkatkan secara independen dari infrastruktur lainnya.

5. Localise failures
Jika satu layanan macet, untuk alasan apa pun, itu tidak menurunkan seluruh sistem (ketika dibangun dengan ketahanan dalam pikiran, lihat poin berikutnya). Pemantauan independen terhadap layanan juga dapat mempermudah pelokalan masalah dan bug.

6. Can be released on independent release cycles
Daripada memiliki siklus rilis gabungan dari keseluruhan sistem, tim dapat merilis layanan mereka sendiri sesering yang mereka inginkan.

7. Require zero-downtime deployment
Tidak sepenuhnya terkait dengan layanan microser, tetapi terutama penting dengan siklus rilis independen, Anda tidak ingin memperkenalkan downtime setiap kali seseorang memperbarui layanan.


Kendala Microservice

1. Kompleksitas
Aplikasi microservices memiliki lebih banyak bagian yang bergerak daripada aplikasi monolitik yang setara. Setiap layanan lebih sederhana, tetapi keseluruhan sistem secara keseluruhan lebih kompleks untuk diterjemahkan.

2. Kurangnya tata kelola
Pendekatan desentralisasi untuk membangun layanan mikro memiliki keuntungan, tetapi juga dapat menyebabkan masalah. Anda mungkin berakhir dengan begitu banyak bahasa dan kerangka kerja yang berbeda sehingga aplikasi menjadi sulit dipelihara.

3. Kemacetan dan latensi jaringan
Penggunaan banyak layanan granular kecil dapat menghasilkan lebih banyak komunikasi antar-layanan. Juga, jika rantai ketergantungan layanan terlalu lama (layanan A memanggil B, yang memanggil C ...), latensi tambahan dapat menjadi masalah. Anda harus merancang API dengan cermat.

4. Integritas data
Dengan setiap microservice bertanggung jawab atas kegigihan datanya sendiri. Akibatnya, konsistensi data bisa menjadi tantangan.

5. Keterampilan
Layanan Microsoft adalah sistem yang sangat terdistribusi dan mungkin akhirnya mengelola tumpukan teknologi yang berbeda.


Labels: Microservices
0 Komentar untuk "Microservices"

Back To Top