6.1. Servis Ayrıştırma Stratejileri
Servis sınırlarını nereye çizdiğiniz, mikroservislerin fayda mı zarar mı getireceğini belirleyen tek karardır ve bu teknik değil, bir modelleme problemidir. İş yeteneklerine ve sınırlı bağlamlara (bounded context) göre keserseniz servisler bağımsız kalır; teknik katmanlara göre keserseniz her özellik her servise dokunur. Bu bölüm, sınırları bulmanın aracı olarak Domain-Driven Design’ı, onları yine de şekillendiren güç olarak Conway Yasası’nı ve dağıtık monolit anti-desenini — ayrıca “bölmeli miyiz ki?” sorusunun dürüst yanıtı olarak modüler monoliti kapsar.
İncelenen Konular
Section titled “İncelenen Konular”- 6.1.1. Domain-Driven Design (DDD): Sınırlı Bağlam ve Her Yerde Kullanılan Dil: DDD’nin sınırlı bağlamını ve her yerde kullanılan dilini, doğal servis sınırlarını bulmanın araçları olarak tanıtır.
- 6.1.2. Servis Sınırlarını Çizmek: Conway Yasası: Conway Yasası’nı ve Ters Conway Manevrasını açıklar: mimariniz organizasyon şemanızı yansıtacaktır.
- 6.1.3. Strangler Fig Deseni: Monolitten Güvenli Geçiş: Bir monoliti riskli bir tek seferlik yeniden yazma olmadan kademeli olarak değiştirmek için strangler fig desenini kapsar.
- 6.1.4. İş Yeteneğine ve Alt Alana Göre Ayrıştırma: Servis çizgilerini çizmek için iş yeteneğine göre ayrıştırmayı, alt alana göre ayrıştırmayla karşılaştırır.
- 6.1.5. Anti-Desen: Dağıtık Monolit - Nasıl Kaçınılır: Dağıtık monolit anti-desenini ve semptomlarını adlandırır: eşzamanlı dağıtımlar, paylaşılan veritabanları, gevezelik eden çağrılar.
- 6.1.6. Servis Granülaritesi: Ne Kadar Küçük Çok Küçüktür?: Servis boyutunu, kod satırı cinsinden değil, ağ sıçraması başına gecikme ve hata bütçesi cinsinden ele alır.
- 6.1.7. Modüler Monolit: Ne Zaman Dağıtmamalı: Modüler monoliti, hiç dağıtmanız gerekip gerekmediğinin dürüst yanıtı olarak sunar.