# Trendyol Asistan uygulamasinda sorun yasanmasi ## Olay ozeti Vault sunucularinda 1 saniyeden fazla surede cevap vermesinden dolayi config-sidecar-injector mutating web hook'unun time out almasi ve kubernetes clusterlarinda podlarin kalkmamasi. Dolayisiyla Trendyol Asistan'in scale olamamasi ve , config-sidecar-injector kullanan uygulamalarin yeni deployment yapamamasi. ## Zaman cizelgesi Saat 3:13 civari config-sidecar-injector kullanan uygulamalarin kalkmadigina dair sorun bildirildi ![](https://i.imgur.com/EULf1Uv.png) ![](https://i.imgur.com/GNyan3x.png) Saat 3:32 de ortak kanallarda sorunun bildirilimi yapildi Saat 4:09 da Trendyol genelinde, config-sidecar-injector kullanan uygulamalarin deployment yapmamasi istendi Saat 6:02 de sorunun cozuldugune emin olundu ## Etki Trendyol Asistan'in scale olamamasi config-sidecar-injector kullanan uygulamalarin yeni deployment yapamamasi ## Nasil haberimiz oldu Trendyol asistanda scale sorunu yasadiginda ## Nasil daha once haberimiz olabilirdi - Kube apiserver config-sidecar-injector mutating webhookdan yuksek miktarda request kirilmasi aldiginda alarm uretebilirdik - config-sidecar-injector Mutating web hook vaulttan yuksek miktarda time out aldiginda alarm uretebilirdi - Vault sunucusu yuksek miktar timeout kaynakli request kesilmesi yasadiginda alarm uretebilirdi ayni zamanda 99th percentile response timeler 1 saniyeden uzun oldugunda alarm uretebilirdi ## Neden oldu config-sidecar-injector Mutating web hook `reasonable defaults` olacak sekilde vault ile iletisiminde vault servisini etkilememek icin 1 saniyeden uzun requestlerin kesilmesini sagliyor, Vault sunucusu 1 saniyeden uzun cevap verdiginde mutating webhook sorun yasadigi icin podlarin kalkmasini engelliyor Earth datacenter'imizda Vault sunuculari shared resource kullanacak sekilde deployment yapildigi icin o an vmlerin bulundugu hosttaki kaynak durumuna gore darbogaz yasayabiliyor. ## Ne iyi gitti Yapilan design'a gore consul ve vault servislerini kullanan servisler (monitoring, service discovery, config ve secret management) consul ve vault sunucularindan cevap alamasa bile son aldiklari configle calismaya devam edebiliyor. Bu da bu servislerde olasabilecek her hangi bir kesinti aninda halihazirda calisan seylerin oldugu gibi calismasina sadece yeni kalkmaya calisan uygulamalarin sorun yasamasi anlamina geliyor ## Ne kotu gitti Monitoring tarafindaki eksiklerimiz yuzunden bu sorunu boyle bir problem yaratmadan once farkedemedik. Kullandigimiz 4 datacenterin 3 tanesinde tum kaynaklari dedicated olarak verdigimiz icin vault'un shared kaynak kullandigi aklimiza gelmedi. Buda aslinda sorunu yanlis yerde aramamiza neden oldu. ## Nasil cozduk Earth dc sinde vault servisinin kullandigi kaynaklari dedicated yaparak cozduk ## Ne ogrendik Monitoring de eksiklerimizin oldugunu SLI/SLO bazli alarmlarin monitoring sistemine dahil edilmesi Hizmet verdigimiz servislerin tamamini elma elma olmasina emin olmamiz gerekiyor