Microservice

Yunus Emre Ulusan
3 min readAug 15, 2022

--

( Her insan hücresi bir Microservice’dir )

Microservice’in projede ki rolü tek başına ve tek sorumluluğu olan ve kendine ait işleri barındıran modüler projelerdir. Microservice mimarisi olarak da bilinen mikro hizmetler, bir uygulamayı bir hizmet koleksiyonu olarak yapılandıran bir mimari stildir. Microservice mimarisi, büyük ve karmaşık uygulamaların hızlı, sık ve güvenilir bir şekilde teslim edilmesini sağlar.

Microservice yapısı SOA ile beraber gelir. SOA : Services Oriented Architecture

SOA yazılım mimarisinde, her hizmet, örneğin bir müşterinin kredisini kontrol etmek, bir web sitesinde oturum açmak veya bir ipotek başvurusunu işlemek gibi belirli bir iş işlevini yürütmek için gereken kod ve veri entegrasyonlarından oluşur.

Her bir microservice yapısı diğer yapılar ile (loosely coupled) oldukça az bağımlılığa sahip bir şekilde çalışmaktadır. Bu hizmetler kendi kendine yeten ve tek bir işlevsellik (veya bir grup ortak işlevsellik) sunmaktadır.

Microservice’ lerin temel özellikleri şunlardır ;

Decentralization : Yazılım mimarisi dünyasında bir merkeze bağlı olmama, sorumluluğun dağıtılması anlamına gelir.

Loose Coupling : Serbest, gevşek bağlantı ,hizmetlerin, hizmetler arasında en az bağımlılık olacak, ideal olarak hiçbir bağımlılık olmayacak şekilde uygulanması gerektiğini belirtir.

Autonomy : Yazılım geliştiricileri birbirlerinden bağımsız olarak işlerini yürütebilirler ve bu doğrultuda daha hızlıca geliştirme olur.

Isolation Of Failures : Bileşenlerin ve yeteneklerin birbirinden yalıtılmasıdır. Bir microservice çökerse geri kalanı bu microservice çalışana kadar etkilenmeden çalışmasına devam etmelidir. Bu prensip hataların ayrı olarak ele alınması gerektiğini belirtir. Bir microservice de başarısızlık uygulamanın diğer bölümlerini etkilememelidir.

Independent Deployability : Bu prensip bir uygulamayı oluşturan her bir microservice ayrı olarak devreye alınabilmesi gerektiğini belirtir.

Scability : Bir sistemin performansına göre, aldığı yüke göre veya başka bir etmene göre kapasitesini ve kabiliyetini artırmaya / azaltmaya denir. her bir microserviceve bu microservice lerin sahip olduğu görev ölçeklenebilir olmalıdır. Her görevin diğerinden bağımsız olması yalnızca gerekli bileşenleri ölçeklendirmeyi kolaylaştırır. Zamandan ve kaynaklardan tasarruf sağlar.

Modularity :Modülerlik prensibi ile herhangi bir modül (arabanın bir parçasının değiştirilmesi gibi) sistemin diğer bir parçası, bir microservice değiştirilebilir, güncellenebilir.

C# .Net (Microsoft tarafından geliştirilen ) Framework

Microsoft’un geliştirmiş olduğu .Net Framework de microservice’ler için API geliştirilmesini oldukça kolaylaştırır. Masaüstü, mobil, web, gibi daha fazlası dahil olmak üzere geliştirdiğiniz herhangi bir uygulamadan microservice’leri kolayca kullanabilen API’lere sahiptir. .Net Docker image’ları için hazır kurulum sunar. Yani sadece microservice’leri oluşturmaya odaklanmamıza yardımcı olur.

Burada oluşturulan microservice’ler de Java, Node JS veya başka herhangi bir dilde yazılmış uygulamalarla kombine edilebilir. Benzer şekilde .Net microservice’leri tüm önde gelen cloud platformlarında çalışabilir.

Son Sözler..

Tüm etmenler göz önüne alınarak geliştirmelere odaklanmalıdır. Her proje bu mimariye göre geliştirilmemelidir. Hangi projelerin bu mimariye uygun olduğu veya olmadığı tespit edilerek kullanılmalıdır. Mikroservice mimarisine sahip bir uygulama oluşturduysanız, Mikroservice Değerlendirme Platformuna bir göz atın. Platform, ne inşa ettiğinizi değerlendirir ve nelerin iyileştirilmesi gerektiğini belirler.

--

--