Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
Load Balancing: L4 ve L7, Algoritmalar, Health Check ve Sticky Session
Load balancer'ın algoritması, bir instance yavaşladığında kullanıcının gördüğü latency'yi belirler: YARP ile yapılan gerçek denemede round robin'de p99 4,6 saniyeye çıkarken LeastRequests ve power of two choices yavaş instance'a trafiği kendiliğinden azaltıp p99'u 300 ms'de tutuyor. Çöken instance'ı ise ancak health check çıkarır (133 hatadan 35'e); L4/L7 farkı, sticky session'ın bedeli, connection draining ve GeoDNS/anycast ile global load balancing de yazıda.
Monolith'ten Microservice'e: Strangler Fig, Branch by Abstraction ve Distributed Monolith Tuzağı
Monolith'ten microservice'e sıfırdan yeniden yazarak değil, monolith'in önüne bir proxy koyup yetenekleri tek tek dışarı alarak (strangler fig) geçilir; proxy'den geçmeyen iç çağrılar branch by abstraction ile ayrılır, yeni yol parallel run'da gölgede doğrulanır ve hedef bağımsız deploy edilebilen service'ler olur, distributed monolith değil. YARP ile gerçek route çıktısı, dry run'lı parallel run'ın yakaladığı bir fark, önce veri mi önce kod mu kararı ve service konsolidasyonu.