Fly.io'nun En Büyük Kesintisinde Dağıtık Sistem Dersleri
Fly.io, Docker konteynerlerini dünyanın farklı yerlerine dağıtılmış mikro sanal makinelere (Fly Machines) dönüştüren bir platform. 1 Eylül 2024 saat 15:30'da (EST) bir geliştirici yeni bir 'virtual service' konfigürasyon seçeneğini yayına aldı. Birkaç saniye içinde dünya çapındaki tüm proxy sunucuları tamamen kilitlendi. Şirketin geçmişinde yaşadığı en ağır kesinti gerçekleşti: müşteri uygulamalarına hiçbir istek ulaşamadı.
Sorun, Fly.io'nun durum senkronizasyon sisteminin nasıl çalıştığında yatıyor. Müşteri CI/CD işlemleri Fly Machines'i kaldırıp indirdikçe, sistem saniyede birkaç kez güncelleme yayınlıyor. Tokyo'dan Amsterdam'a kadar uzanan kenar proxy'leri (edge proxies), bu güncellemeleri alarak istek yönlendirme tablosunu güncel tutuyor. Böylece kullanıcı istekleri en yakın müşteri sunucusuna ulaşabiliyor.
Ancak yeni konfigürasyon seçeneği, ağ genelinde bir uyumsuzluğa yol açtı. Proxy'ler bu bilinmedik veriyi işleyemedi ve senkronizasyon sistemi çöktü. Dağıtık sistemlerde bir küçük hata, tüm ağa hızla yayılır, bu olaya 'blast amplifier' (patlama yayıcı) denir. Bir sunucudaki sorun saniyeler içinde binlerce sunucuyu etkileyebilir.
Fly.io mühendisleri sorunu bulup düzelttikten sonra, sistem kademeli olarak iyileşti. Olay, dağıtık mimarinin gücünü ve tehlikesini açık biçimde gösterdi: hız ve ölçeklenebilirlik sağlayan aynı sistem, bir hata anında tüm hizmetleri çökertebilir. Eğer kendi ağını veya çok bileşenli bir sistemi yönetiyorsan, değişiklikleri kademeli olarak dağıtmak ve her adımda geri alma planı hazırlamak hayati önem taşır.
0 yorum