Microservice Mimarisi Hangi Projeler İçin Uygundur ?

Gerçekten uygulamanız için microservice mimarisi kullanmaya ihtiyacınız var mı ?

Microservicelerin artılarını ve eksilerini iyi düşünmek gerekir. Microserviceler bağımsızlık, güçlü modüller yapı,ölçeklenebilirlik, servislerin bağımsız dağıtımı ve her küçük servis için uygun olan teknolojiyi kullanma fırsatı gibi avantajlar sunarlar. Dağıtılmış servis yapısı da doğal olarak, monolitik sistemlere göre daha fazla gecikme ve daha fazla başarısız olma ihtimaline sahip olduğu gibi, daha yüksek operasyonel karmaşıklığa sahiptir. Bu nedenle uygulamanın microservice mimarisi ile yapılması için bu mimariye uygunluğunu kanıtlamanız gerekir. Bu yükün altına girebilmeniz için gerekli kriterleri karşılayabiliyor olmalısınız.

Biri microservice mi dedi ? (Resim: Manu Cornet (http://www.bonkersworld.net)

Monolitik uygulamalar, microservice mimarisine geçmeli mi ?

Çoğu şirket yeni bir projeye monolitik mimariyle başlarlar. Projelerin ilk aşamasında, monolit bir yapı kurmak ve işlerin daha hızlı ilerlemesini sağlamak çok daha kolay bir yoldur. Bir süre sonra, eski kod yapıları, yeni teknolojilere adapte olamamak, kod karmaşıklığının yada büyüklüğünün getirdiği yavaşlık, anlaşılırlığın azalması, yeni özellik eklenmesinin zorluğu gibi problemlerle karşılaşırlar . Sistemin büyümesiyle, kod karmaşık hale gelirken, mimari daha da karmaşık hale gelir ve bunu sürdürmek zorluğun yanında, daha fazla developer ve zaman ihtiyacı doğurur. Bunun yanında, yeni ihtiyaçlara ve özelliklere cevap verilememeye başlanır. Böyle bir projenin modüler olduğunu umut ederek, microservice mimarisine bu problemlerden kurtulmak amacıyla geçilebilir. Ama halihazırdaki monolitik mimari size yetiyorsa, böyle bir değişime gerçekten ihtiyacınız olup olmadığını sorgulayabilirsiniz.

Ne türdeki projeler için microservice mimarisi uygundur ?

Anlatılan tüm kriterleri değerlendirdikten sonra, aşağıdaki nitelikleri karşılayan bir uygulama microservice mimarisi ile geliştirilebilir.

  • Orta ve büyük ölçekli projeler
  • Microservice mimari bilgisi bulunan ekip üyeleri (mümkünse yazılım mimarı)
  • Birden fazla takıma sahip proje ekipleri (Her biri microservice mimarisini kavramış olmalı)
  • Çok modüllü yapılar
  • Ölçeklenebilir olması gereken servisler
  • Versiyonlama da zero-time hedefleyen projeler
  • Büyük trafik altındaki uygulamalar

Amazon’un microservice mimarisine evrimi

Amazon güçlü bir monolit mimariye sahip olmasına rağmen, değişiklere zor adapte olması ve pazar ihtiyaçlarına hızlı yanıt verememesi, modüller arasındaki sıkı bağımlılıklar işleri zorlaştırdı.

Amazon’un microservicelerine göz atmak istemez misiniz ?

Netflix’in microservice mimarisine evrimi

Netflix, microservicelere hızlıca adapte olup, bu mimariye öncü olan şirkletlerin başında gelmektedir. Özellikle java teknolojilerine yaptığı katkı yadsınamaz ve şu an hali hazırda birçok open-source kütüphanesi microservicelerin yapısı kolaylaştırmak adına sahada, birçok uygulama tarafından da kullanılmaktadır.( Bu küçük teşekkürün ardından hikayemize devam edelim :) )

Netflix’in microservicelerinden bir görünüm — (Resim: Bruce Wong, Netflix)

--

--

Software Engineer @Yemeksepeti • #Java • #Spring Boot • #Kotlin • #Spark • #Microservices • https://gokhana.dev

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Gökhan Ayrancıoğlu

Gökhan Ayrancıoğlu

Software Engineer @Yemeksepeti • #Java • #Spring Boot • #Kotlin • #Spark • #Microservices • https://gokhana.dev