Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
Service Contract'ları ve Versioning: Expand-Contract, Tolerant Reader ve Consumer-Driven Contract Test
Bir değişikliğin breaking olup olmadığı yalnız provider'ın koduna bakarak anlaşılmaz; consumer'ların ne okuduğunu bilmek gerekir, bu yüzden consumer tolerant reader olur, provider kırıcı değişikliği expand-contract ile adımlara böler ve consumer-driven contract test'le deploy'dan önce kimi kıracağını görür. TypeScript consumer ve .NET provider arasında Pact ile gerçek doğrulama çıktıları, Deprecation/Sunset header'ları ve versioning'in service seviyesindeki bedeli.
Production'da Microservice: Distributed Tracing, Resilience ve Independent Deployment
Production'da microservice işletmek üç şey ister: bir isteği service'ler boyunca izleyen distributed tracing (W3C traceparent ile), service seviyesinde düşünülmüş timeout, retry ve circuit breaker, ve her service'in kendi pipeline'ıyla, backward compatibility ve contract test'lerle bağımsız deploy edilmesi. .NET'in Activity'siyle gerçek bir trace çıktısı, katman başına retry'ın 64 isteğe dönüşmesi, readiness'ı downstream'e bağlama tuzağı ve can-i-deploy'un CI'daki yeri.