Page 12 - Yazılım Teknolojileri Araştırma Bülteni 2023
P. 12

12 | Sunucusuz Mikroservisler: AWS Uygulaması




           Mikroservisler





           Uygulamalar başlangıcından itibaren gittikçe büyür ve gün geçtikçe kontrol edilmesi zor bir hal
           alır. Aslında birbirinden farklı işleri yapmakta olan hizmetlerin tek bir yapıda bulunuyor olması
           aralarında gereksiz bir bağımlılık oluşmasına sebep olur. Bu bağımlılıklar gittikçe daha kompleks
           bir hale gelir ve baş edilemez bir hale bürünebilir. Bu sorunu ortadan kaldırmak için iş tanımları

           ve kapsamları belirli servisler oluşturarak, her bir servisin birbirlerinden bağımsız hatta habersiz
           çalışabilmesi sağlanabilir.


                 Avantajları



           Ölçeklendirme: Servisler birbirlerinden bağımsız uygulamalar olduklarından, her biri tek başına
           ölçeklendirilebilir. Servislerin ihtiyaçları diğer servislere bir etkisi olmadan giderilebilir.

           Veri Izolasyonu: Mikroservis mimarisine göre her bir servis kendi veri tabanına sahiptir. Bu servis
           ile alakalı verilerin gereksiz yere erişilmesini engeller. Aynı zamanda veri tabanlarının ayarlanması
           da servis özelinde olduğu için bir yan etki yaratması söz konusu olmaz.


           Hata Izolasyonu: Servisler birbirlerinden bağımsız olduklarından, birinde oluşan hatanın diğer
           servislere veya bütün sisteme etkisi minimize edilir ve alakalı yerde kontrolü sağlanmış olur.

           Teknoloji Özgürlüğü: Birbirinden bağımsız sistemler, birbirleri ile haberleşme konusunda entegre
           olabildikleri sürece farklı teknolojileri kullanmakta özgürdürler. Bu da servis ile alakalı en uygun
           teknolojilerin seçilmesi ve daha iyi performansın alınabilmesini sağlar.

           Anlaşılabilirlik: Bütün sistem daha küçük parçalara bölündüğü için her bir servis kendi içerisinde
           daha kolay kavranabilir hale gelir. Ayrıca her bir servis için atanan küçük takımlar bütün sistem

           yerine sadece bu servise özgü mantıkları daha doğru ve kolayca kavrayabilir.

           Bakım  ve  Geliştirme:  Her servis birbirinden bağımsız geliştirildiği ve dağıtıldığı (deploy) için,
           yeni özellikler eklenmek istendiğinde veya hata çözümlerinde bütün sistem kodunun dağıtımı
           gerekmez. Aynı şekilde hatalı bir sürümde geri alma (rollback) işlemini de sadece belirli serviste
           yapma imkanı sunar.



                 Dezavantajları


           Komplekslik: Her bir servis tek başına monolitik mimariden daha basit bir yapıya sahip olsa da

           servislerin birbiriyle iletişimi de düşünüldüğünde bütün sistem daha kompleks bir yapıya sahiptir.

           Geliştirme ve Test: Servislerin geliştirilmesi ve test edilmesi, diğer servislere bağımlılığı bulunduğu
           durumlarda, monolitik yaklaşıma kıyasla daha zor bir hal almaktadır. Senaryoya dahil olan her bir
           servisin geliştirme esnasında uygun durumda bulunması gerekir.
   7   8   9   10   11   12   13   14   15   16   17