Mikroservis mimarisi nedir?
7.02.2022
Sosyal Medya

Mikroservis mimarisi nedir?

Son yıllarda büyük ilgi görmeye başlayan mikroservis yazılım geliştirme yaklaşımı, bulutta yerel, çevik geliştirme ve yazılımı dağıtmak için bir araç olarak kapsayıcıların kullanımı gibi diğer eğilimlerle el ele gelişiyor. Mikroservisler özellikle son birkaç yıldır hızla benimseniyor. 2020'de 1500'den fazla kuruluşla gerçekleştirilen bir ankete göre, şirketlerin yalnızca dörtte biri mikroservisleri hiç kullanmamış. Mikroservisleri kullanan yüzde 75’lik kesim içerisinden bunları beş yıldan uzun süredir kullananların oranı ise yalnızca yüzde 10.

Mikroservis mimarisi nedir?

Mikroservisler bir teknoloji değildir, bunun yerine bir yazılım mimarisi, uygulama ve hizmetler tasarlamaya yönelik bir yaklaşımdır. Yaklaşımın amacı, bir uygulamayı tek bir monolitik varlık olarak oluşturmak yerine, gerekli işlevselliği birbiriyle iletişim kuran daha küçük ve bağımsız olarak dağıtılabilir hizmetler koleksiyonuna bölmektir.

Mikroservis mimarisinin avantajları

Mikroservis yaklaşımının çeşitli avantajları bulunuyor: Ayrı bileşenler birbirinden bağımsız olarak ölçeklenebildiğinden, mikroservis yaklaşımı daha kolay ölçeklenebilirlik sunar. Bileşen parçalarının küçük boyutu, sürekli iyileştirmeyi kolaylaştırdığından ve kodda daha hızlı güncellemelere izin verdiğinden, mikroservisler çevik geliştirme ürünleridir.

Bazı diller belirli görev türlerine daha uygun olabileceğinden, farklı bileşenler için farklı programlama dillerinin kullanılmasını mümkün kılar. Küçük bileşenler, geliştiricilerin kodu anlamasını kolaylaştırır ve bu da güvenilirlik üzerinde zincirleme bir etki yaratır. Diğer bir avantaj ise daha iyi arıza izolasyonu sayesinde arıza süresini azaltma potansiyelidir. Tek bir mikro hizmet örneği başarısız olduğunda, tüm uygulamayı veya hizmeti çökertme olasılığı daha düşüktür.

Mikroservis yaklaşımının avantajları olsa da kuruluşların dikkate alması gereken bazı dezavantajlar da var. Mikroservis mimarilerinin çok parçalı yapıları, onları bütüncül işlemlere tabi tutmayı zorlaştırır. Örneğin, her bir mikroservis bileşeninin geliştirilmesi daha basit olsa bile, uygulama veya hizmetin tamamının yönetimi daha karmaşık hale gelebilir. Test etme ve hata ayıklama ise bir başka zorluk olarak öne çıkıyor çünkü bir hatanın kaynağını izlemek, her biri kendi günlük kümesine sahip mikroservis örnekleri ağı arasında daha zor olabilir. Tüm uygulamayı test etmek de zorlaşabilir çünkü her mikroservis ancak bağımlı olduğu tüm hizmetler test edildikten sonra doğru şekilde test edilebilir.

Mikroservis hangi işler için ideal?

Mikroservis mimarisi her kuruluşa veya her tür uygulamaya uygun olmayabilir. Bununla birlikte, çoğu kuruluşun ihtiyaç duyduğu hizmetlerin dağıtımına yönelik daha çevik bir yaklaşımın uygulanmasını kolaylaştırdığı için hızla benimsenmektedir. Mikroservisler, mevcut bir uygulamayı yeniden düzenlemeye veya güncellemeye çalışan kuruluşlar yerine sıfırdan oluşturulan dağıtımlara daha uygun olabilir.

Docker tarzı yazılım kapsayıcıları, dağıtılmış bir yaklaşımı uygulamanın yalnızca bir yolu olmalarına rağmen, çoğu kişinin zihninde mikroservislerle ilişkilendirilen bir teknolojidir. Diğer yöntemler arasında hafif sanal makineler veya günlük uygulamalarda olduğu gibi bir sunucu ortamında çalışan sanallaştırılmamış kod olarak mikro hizmet örnekleri dağıtmak yer alabilir. Sunucusuz bilgi işlem işlevleri, mikroservisleri uygulamanın başka bir yolu olarak tercih edilebilir.

Konteynerler sanal makinelerden daha uygun araçlar çünkü daha az kaynak ağırlıklı çalışıyor ve yeni bir konteyner örneği yeni bir sanal makine oluşturmaktan çok daha hızlı. Konteynerler, orkestrasyonu, iletişimi ve izlemeyi destekleyen geniş bir araç ekosistemi ile artık nispeten olgun bir teknolojidir.

Yazının başında bahsettiğimiz anket, mikroservislerle başarılı sonuçlar alan katılımcıların yarısından fazlasının bunları kapsayıcılar kullanarak somutlaştırmayı seçtiğini, mikroservis çabalarını başarısız olarak nitelendiren katılımcıların çoğunun ise bunları kullanmadığını ortaya koydu. Bu veri, Mikroservis uygularken kapsayıcıların daha az riskli bir seçenek olduğuna işaret ediyor. Ancak bu tercih yine de kuruluşların özel ihtiyaç ve gereksinimlerine göre yapılmalı.