Modüler Dünya: Mikroservis Mimarisi ve Yazılımın Geleceği

Özen Karaçakır Ereyli
CITS Tech
Published in
3 min readJan 19, 2024

3. Mikroservis Modelleme Neye Dayanır?

Bir monolit yapıyı mikro servislere ayrıştırılmasına karar verildikten sonraki süreç mikro servis modellemedir. Mikro servis makale serimizin bu dizisinde mikro sevis modelleme nedir ve neye dayanır ayrıntılı şekliyle açıklamaya çalışacağız. Tekrar hatırlatmakta fayda görüyoruz ki monolit yapıyı mikro servise ayrıştırılmadan önce her iki mimarinin de eksileri/artıları iyi hesaplanarak karar verilmesi gerekir.

Bir monolit yapıyı mikro servislere ayrıştırılmasına karar verildikten sonraki süreç mikro servis modellemedir. Mikro servis makale serimizin bu dizisinde mikro sevis nedir ve neye dayanır ayrıntılı şekliyle açıklamaya çalışacağız. Tekrar hatırlatmakta fayda görüyoruz ki monolit yapıyı mikro servise ayrıştırılmadan önce her iki mimarinin de eksileri/artıları iyi hesaplanarak karar verilmesi gerekir.
1. Mikroservis Modelleme Neye Dayanır?

“Kararınız kesin. Ayrıştılılacak monolit mikro servislere. O halde süreç başlasın.

Peki mikro servis modelleme nedir ve neye dayanır?

Mikro servis modelleme, bir yazılım sistemi içindeki mikro servislerin mimarisini, yapısını ve etkileşimlerini tasarlama ve temsil etme sürecini ifade eder. Mikro servisler, bir uygulamanın iyi tanımlanmış API’ler (Uygulama Programlama Arayüzleri) aracılığıyla birbirleriyle iletişim kuran küçük, bağımsız servislerin bir koleksiyonu olarak oluşturulduğu bir yazılım geliştirme yaklaşımıdır. Bu servisler bağımsız olarak geliştirilir, dağıtılır ve ölçeklendirilir; böylece büyük ve karmaşık uygulamalarda daha fazla esneklik, sürdürülebilirlik ve ölçeklenebilirlik sağlanır.

Mikro servis modellemenin temel yönleri şunlardır:

Monolitlerin Ayrıştırılması: Mikro servis modelleme genellikle monolitik uygulamaların daha küçük, daha yönetilebilir servislere bölünmesiyle başlar. Bu ayrıştırma, farklı işlevlerin veya iş yeteneklerinin tanımlanmasını ve bunları bireysel mikro servislere dönüştürmeyi içerir.

Servis Tanımlaması: İş yeteneklerine veya işlevlerine göre belirli servisleri tanımlamak gerekir. Her mikro servisin, belirli bir iş alanına veya sorumluluğa servis eden açık ve iyi tanımlanmış bir amacı olmalıdır.

API Tasarımı: Mikro servisler arasındaki iletişim için açık ve standartlaştırılmış API’ler tasarlayarak işin çekirdeğini oluşturmak gerekir. Bu, her servisin desteklediği veri formatlarını, iletişim protokollerini ve istek ve yanıt türlerini belirtmeyi içerir.

2. Mikroservis Modelleme Neye Dayanır?
2. Mikroservis Modelleme Neye Dayanır?

Veri Yönetimi: Verilerin mikro servisler arasında nasıl yönetileceğini ve paylaşılacağını belirlemek işin en can alıcı noktasıdır. Bu, her mikro servisin kendi veritabanına sahip olduğu servis başına veritabanını veya veritabanlarının net sınırlarla paylaşılmasını içerebilir.

Servisler Arası İletişim: Mikro servislerin birbirleriyle nasıl iletişim kuracağını karar verme aşaması önemlidir. Bu, senkron iletişim (HTTP/REST, GraphQL) veya asenkron iletişim (RabitMQ, Kafka gibi mesajlaşma sistemleri) aracılığıyla gerçekleştirilebilir. Bu kısmı ayrıntılı olarak diğer makalelerde açmak üzere şimdilik sonlandırıyoruz.

Hata Toleransı ve Dayanıklılık: Hatalarla başa çıkmak ve sistemin sağlam kalmasını sağlamak için stratejiler düşünmek işimizdeki karmaşıklığı azaltır. Bu, devre kesiciler, yeniden denemeler ve geri dönüş mekanizmaları gibi mekanizmaların uygulanmasını içerebilir.

Ölçeklenebilirlik: Mikro servisleri bağımsız olarak dağıtılabilir ve ölçeklenebilir olacak şekilde tasarlayarak ölçeklenebilirlik planlamak işin amacı olduğu için dikkatli olmakta fayda var. Bu, bireysel servislerin artan yükleri kaldırabilecek şekilde yatay olarak ölçeklendirilmesine olanak tanır.

Dağıtım ve Düzenleme: Mikro servislerin nasıl dağıtılacağını ve yönetileceğinin yol haritasını çıkartmak gerekir. Docker gibi konteynerleştirme teknolojileri ve Kubernetes gibi orkestrasyon araçları, dağıtım ve yönetimi basitleştirmek için mikro servis mimarilerinde yaygın olarak kullanılır.

Güvenlik: En temelde dikkat edilmesi gereken yön güvenliktir. Bunun için mikro servislerin ve bunların iletişiminin bütünlüğünü ve gizliliğini sağlamak için kimlik doğrulama, yetkilendirme ve şifreleme gibi güvenlik önlemlerini uygulanması sırasında titiz bir çalışma yapılmadır.

İzleme ve Günlüğe Kaydetme: Mikro servislerin durumunu ve performansını izlemek için izleme ve günlük kaydını ayarlanması gerekir. Buna yanıt süreleri, hata oranları ve kaynak kullanımı gibi ölçümler dahildir. Alınan çıktılar sürecin ne kadar başarılı olup nasıl yürüdüğünü yada başarız olup nerede tıkandığını gösterir.

Özetle mikro servis modellemesi özerklik, bağımsızlık ve merkezi olmayan veri yönetimi gibi ilkelere dayanmaktadır. Çevik, ölçeklenebilir ve değişikliklere dayanıklı bir sistem oluşturmayı amaçlamaktadır. Süreç, bir mikro servis mimarisinin başarılı bir şekilde uygulanmasını ve işletilmesini sağlamak için hem işlevsel hem de işlevsel olmayan gereksinimlerin dikkatli bir şekilde değerlendirilmesini içerir.

Mikroservis Makale Serisi 3. Bölüm Sonu

Takipte kalınız…

Not: Mikro Servis Makale Serisi 4. Bölüm Konusu: Mikroservis Modelleme Neye Dayanır — Part 2

[1] Design a Microservice Domain Model https://learn.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/microservice-domain-model

--

--