5 puan yazan GN⁺ 2023-10-31 | Henüz yorum yok. | WhatsApp'ta paylaş
  • Tek bir backend'den mikroservis mimarisine geçmenin maliyetleri ve faydaları üzerine bir makale
  • Tek bir kod tabanına katkıda bulunan ekiplerin sayısı arttıkça bileşenler giderek daha fazla birbirine bağlanır, üretkenlik düşer ve karmaşıklık artar
  • Bu sorunları hafifletmenin bir yolu, tek backend'i API'ler üzerinden iletişim kuran bağımsız olarak dağıtılabilir hizmetler kümesine, yani mikroservislere bölmektir
  • "Mikro" terimi yanıltıcıdır; çünkü hizmetlerin "mikro" olması gerekmez. Daha uygun terim servis odaklı mimaridir
  • Backend'i iyi tanımlanmış sınırlara sahip hizmetler kümesine ayırmak, her hizmeti geliştirmek ve işletmek için küçük bir ekibin yeterli olması sayesinde uygulama geliştirme hızını artırır
  • Her mikroservis bağımsız olarak ölçeklenebilir ve kendi ihtiyaçlarına göre farklı bir teknoloji yığını benimseyebilir; bu da yeni teknolojileri denemeyi ve değerlendirmeyi kolaylaştırır
  • Ancak mikroservis mimarisi, tüm sisteme daha fazla hareketli parça ekleyerek karmaşıklığı artırır ve belirli bir standardizasyon gerektirir
  • Her mikroservis için farklı diller, kütüphaneler ve veri depoları kullanmak, uygulamayı bakımını zorlaştıran bir karmaşaya dönüştürür ve geliştiricilerin ekipler arasında geçiş yapmasını güçleştirir
  • Çok sayıda bağımsız hizmeti desteklemek için yeni sunucuların, veri depolarının ve diğer kaynakların kolayca oluşturulabilmesi gerekir; bu da önemli ölçüde otomasyon gerektirir
  • Uzak çağrılar maliyetlidir ve sistemin başarısız olabileceği yeni yollar ortaya çıkarır; bu nedenle timeout, retry ve circuit breaker gibi savunma mekanizmaları gerekir
  • Sürekli entegrasyon, kod değişikliklerinin otomatik derleme ve test süreçlerinden geçtikten sonra ana dala birleştirildiğini garanti eder
  • Tüm mikroservislerin entegrasyon testleri, tek parça bir uygulamanın testlerinden çok daha zordur; tekil hizmetler birbiriyle etkileşime girdiğinde çok ince ve beklenmedik davranışlar ortaya çıkabilir
  • Hizmetleri geliştiren ekipler genellikle on-call sorumluluğunu da üstlenir; bu, geliştirme çalışması ile operasyon maliyeti arasında gerilim yaratır
  • Mikroservislerde sistem arızalarını debug etmek daha zordur; her seviyede iyi loglama ve izleme kritik önem taşır
  • Uygulamayı ayrı hizmetlere bölmek, veri modelinin artık tek bir veri deposunda bulunmaması anlamına gelir; bu nedenle çoğu durumda eventual consistency kabul edilmelidir
  • Genel olarak en iyisi monolit ile başlamak ve yalnızca hizmetler arasındaki sınırları doğru biçimde belirlemenin zorlaştığı durumda bölmektir
  • Mikroservis öncelikli bir yaklaşımla başlamak, ancak bu konuda zaten deneyiminiz varsa ve bunun için bir platform kurduysanız ya da böyle bir platformu kurmanın alacağı süreyi hesaba kattıysanız yapılmalıdır

Henüz yorum yok.

Henüz yorum yok.