Modeling Microservices

Modeling Microservices

Microservice dünyasındaki en büyük zorluklardan biri servislerin sınırlarını belirlemek ve onları bağımsız kılmaktır. Bir servisi bir iş ile ilişkilendirerek, separation of concern ilkesine analiz süreçlerimizde önem veriyor olmalıyız. Aksi taktirde servisler arasında dependency oluşturarak tight coupling bir koda sahip oluruz.

Bu noktada domain-driven design (DDD) pratikleri hayatımızı oldukça kolaylaştırıyor.


Nedir DDD ?

Karmaşık yazılımların geliştirilme aşamasında ve hayata geçen bu projelerin sürdürülebilirliği noktasında yaşanabilecek problemleri çözmeye odaklanan bir yaklaşımdır.


Microservice design ederken DDD yaklaşımı ile ele almamız gereken bazı pratikler vardır.

  • Microservice’ler, data access ve messaging gibi yatay katmanlar üzerine değil, business yetenekler doğrultusunda design edilmelidir.
  • Servislerimiz loose coupling ve yüksek seviyede functional cohesion sağlamalıdır.
  • Bir servise başka bir servisin güncellenmesini gerektirmeksizin release çıkabiliyorsak işler yolunda gidiyor demektir.
  • Servisimiz domain bilgisini encapsulate ederek client’ları bir çok bilgiden soyutlamalıdır.

Bir e-ticatet uygulaması özelinde örneklendirecek olursak:

Bir client olarak, schedule service’lerin algoritmalarını veya payment service’in nasıl yönetildiğini bilmeksizin satın alma eylemini gerçekleştirebiliyor olmalıyım.

Günün sonunda iyi tasarlanmış microservice’ler için DDD bize rehberlik edecek bir çerçeve sağlayacaktır.

Hoşçakalın..

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s