Neden çoğunlukla modüler bir monolitle başlıyoruz
Çoğu sistem için modüler monolit daha ekonomik bir tercihtir — ta ki somut bir sınır dağıtık servisleri gerçekten zorunlu kılana kadar.
Bu nedir? · Bakış açısı
Gerekçelendirilmiş bir duruş — tez, değerlendirme ve farklı karar vereceğimiz durum dahil. Tarafsız bir genel bakış değil, net bir yaklaşım. Genel bakışa git
Konu nedir?
Mikroservisler çoğu zaman ciddi yazılımın standardı olarak görülür. Pratikte ise pek çok ekip, dağıtık sistemlerin maliyetlerini — ağ sınırları, eventual consistency, operasyonel yük — onların faydasına ihtiyaç duymadan önce öder. Bunu yıllardır gözlemliyoruz ve lehine bir gerekçe olmadıkça bilinçli olarak aksi yönde karar veriyoruz.
Neden böyle düşünüyoruz?
Karmaşıklık ihtiyacı izlemeli
Modüler monolit, tek bir kod tabanı ve tek bir deployment içinde net modül sınırlarına olanak tanır. Sınırlar açıktır, ancak onları aşmak bir ağ atlamasına mal olmaz.
Değişiklikler yerel kalır
Birden fazla modülü kapsayan bir değişiklik tek bir commit ve tek bir deployment'tır — sürümlenmiş sözleşmelerle birden fazla servis üzerinde koordineli bir rollout değil.
İşletim daha basittir
Tek deployment, tek log akışı, tek transaction. Dağıtık sistemlerin gerektirdiği araç ve disiplinin büyük kısmına burada basitçe gerek yoktur.
Karar açık kalır
Temiz ayrılmış modüller ileride hedefli biçimde ayrıştırılabilir. Modüler monolit mikroservisleri dışlamaz — kararı, sağlam bir zeminde verilebileceği ana kadar erteler.
Bedeli nedir?
Modül disiplini olmadan bir monolit büyük bir çamur yumağına (big ball of mud) dönüşebilir. Bu desen kötü sınırlara karşı koruma sağlamaz — yalnızca onları düzeltmeyi ucuzlatır.
Tek tek parçaların bağımsız ölçeklendirilmesi mümkün değildir; servis bir bütün olarak ölçeklenir.
Tamamen bağımsız teslimat yapması gereken çok büyük ekipler, ortak bir kod tabanının sınırlarına takılır.
Ne zaman farklı karar veririz?
Bir sistemin parçalarının ölçeklenme veya erişilebilirlik gereksinimleri kökten farklı olduğunda.
Birden fazla ekibin bağımsız teslimat yapması gerektiği kanıtlanmışsa ve monolit içindeki koordinasyon dağıtık sınırlardan daha pahalı hâle geliyorsa.
Bir alan (domain) sınırı o kadar istikrarlı ve net ise ki onu dağıtmak, maliyetinden ölçülebilir biçimde daha fazla fayda sağlıyorsa.
Tutumumuz.
Modüler monoliti ilke gereği değil, pahalı kararları açık tuttuğu için tercih ediyoruz. Dağıtık sistemler somut problemler için bir araçtır — başlangıç noktası değil.
İlgili konular.
Bu sayfayla bağlantılı rehberler, kararlar, hizmetler ve projeler.
Uygulama kılavuzları
Farklı mı düşünüyorsunuz? Konuşalım.
Bakış açıları sınanmak için vardır. Farklı düşünüyorsanız ya da somut bir sorununuz varsa yönetimimizle görüşün.
