Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
Microservice'leri Test Etmek: Service Testleri, Aspire ile Uçtan Uca Test ve Contract Testleri
Microservice'lerde testin ağırlığı service sınırında: Ordering, Testcontainers ile gerçek SQL Server ve RabbitMQ'ya karşı test ediliyor ve 07'deki saga çakışması 10 denemede 9 kez yaşanıp retry ile tutarlı kalıyor. Event şemaları JSON Schema snapshot'ıyla, BFF–Catalog HTTP contract'ı Pact ile doğrulanıyor; Aspire.Hosting.Testing ile tek bir checkout bütün sistemde push beklenerek test ediliyor.
Container'lar ve Deploy: SDK Container Build, Kubernetes ve Service Başına Bağımsız Pipeline
Image'lar Dockerfile'sız, dotnet publish /t:PublishContainer ile chiseled base üzerinde root olmayan kullanıcıyla üretiliyor; Angular BFF'nin image'ına giriyor. aspire publish preview'da geçerli bir Helm chart veriyor ama migrator'ları Deployment yapıyor ve probe eklemiyor; elle yazılan Kustomize manifest'leri, kind'de görülen veri kaybı, managed altyapı kararı ve path filtreli service başına GitHub Actions pipeline'ı anlatılıyor.
Geriye Bakış: Distributed Monolith Belirtileri, Maliyet ve Neyi Tekrar Birleştirirdik?
Bookstore'un microservice sürümü distributed monolith'e dönmedi: paylaşılan kod 68 satır contract'ta kaldı ve checkout'ta tek senkron adım var; ama merkezi paket dosyası her değişiklikte bütün pipeline'ları tetikliyor. Monolith'e göre uygulama belleği 7,4 kat, sipariş isteğinin p50'si 5,8 ms'den 22,7 ms'ye çıktı; Notifications'ı BFF'ye birleştirir, Payments'ı ayrı tutardık.