husonet | Tarih: 28.05.2019
Microservices Nedir? Avantajları ve Dezavantajları
Microservices Yaklaşımı, Avantajları ve Dezavantajları Hakkında bilmemiz gerekenler.
Microservices, servis odaklı olarak yazılımları ve sistem birimlerini tamamen ayrıştırılabilir bir şekilde yazılım geliştirme tekniğidir. Daha net anlaşılması için yukarıdaki cümlemi biraz daha toparlamak istiyorum; Microservices amacı, sistem hizmetlerini ayırmak ve modüle etmektir ve unix felsefesini izler. Avantajları ve Dezavantajları vardır.
Günümüzde Microservices yapısını kullanan firmalardan bir Örnek vermek gerekirse Netflix'i örnek verebiliriz.
Microservices Kullanmanın Avantajları
- Sistem endişelerini dağıtabiliriz.
- Dil ve tasarım noktasında, farklı şekillerde tasarlanmış çoklu Mikro servislere sahip olunur.
- İzole ve ayrıştırılmış dağıtımlar, Microservices'lerin her birtanesi ayrı küçük servisler olduğundan, dağıtımlarımızı izole edip ayrıştırılır.
- Mikrservislerin anlaşılması daha kolay olabilir, çünkü onlar daha basit bir şekilde tasarlanmayı hedeflerler. Temel olarak monolitik mimariden uzaklaşıyorsunuz ve başvurunuzu tek bir alaka ile basitleştiriyorsunuz.
- Kurulan sistem yapılan isteklere devamlı cevap vermeyi hedefler, çünkü microservisler birbirinden bağımsız çalışır herhangi bir nedenden bir servis durduğumda diğerleri çalışmayı sürdürür.
- Yatay ölçeklenebilirlik sağlar, böylece micoservislerinizi sisteminizin gereksinimlerine ve taleplerine uyacak şekilde ölçeklendirebilirsiniz.
Biraz daha detay vermek gerekirse, servislerin, diğer servislerin gerektirdiği teknolojilere uyması gerekmez. İstediğiniz bir programlama dili ile bir Microservices yazabilirsiniz. Yada farklı bir dil ile yazılmış bir Microservices olabilir.Bu bahsettiğimiz servislerin hepsi ortak bir API yapısıda kullanabilir.
Aslında bu sistemin, gereksinimlerine en uygun şekilde uyarlayabileceğiniz anlamına gelir. Microservices bağımsız olarak her gelen talebe cevap verirler. Bir Microservices kodunu düzenlerken diğer bir Microservices'e etki etmeden bu düzenleme işini gerçekleştirebilirsiniz.
Microservices anlaşılması daha kolaydır, bu da uygulamanın bölümlerini mikroskobik olarak anlayabileceğiniz anlamına gelir.
Tüm uygulamayı bilmek zorunda değilsiniz, Microservices, birden fazla geliştirici ve hizmetten oluşan ekipler için bağımsız bir şekilde ölçeklendirilebileceği anlamına gelir.
Microservices Kullanmanın Dezavantajları
- Daha fazla yük, arka planda çalışan servislerin iletişim ihtiyacı artar.
- Test etmek zor olabilir
- Dikkat edilecek diğer güvenlik noktaları orataya çıkabilir, ne kadar fazla servisiniz olursa saldırı sayısı buna göre artabilir. Daha fazla hizmet, daha fazla kontrol ve test gerektirir.
- Karmaşık ve basitleştirilmiş bağımlılıklara yol açabilir, Microservices birden fazla programlama dilinin avantajlarının dezavantajı oluşturduğu bu durum ise, servislerin bakımında da ek yükler meydana çıkarır.
Diğer bir nokta ise servisler arasında kod bağımlılıklarının tekrarlanması ile karşı karşıya kalabilirsiniz. Konuyu daha fazla açarsam aynı kod farklı servislerde de mevcut olabilir.