Modal, Kubernetes ötesi mimariyle 1 milyon eşzamanlı sandbox’a çıktı
Modal, Kubernetes tarzı küresel koordinasyonu bırakarak her node’un kendi durumunu yönettiği ve scheduler’ların load balancer gibi davrandığı yeni yapısıyla, saniyede yaklaşık 50.000 sandbox yaratıp 1 milyon eşzamanlı sandbox’ı dakikanın altında ayağa kaldırdı
Modal, sandbox altyapısını baştan tasarlayarak milyonlarca eşzamanlı sandbox ve saniyede on binlerce yeni sandbox oluşturmayı hedefleyen bir mimariye geçti. Bu ölçekte, klasik container orkestrasyon sistemlerinin tasarım sınırları belirginleşiyor ve Modal da buna yönelik radikal değişiklikler yaptı.
Kubernetes gibi geleneksel orkestrasyon çözümlerinde, güçlü tutarlılığa sahip merkezi durum ve küresel koordinasyon, çok yüksek ölçeklerde darboğaz haline geliyor. 1 milyon sandbox çalıştırmak, on binlerce compute node’u ve node ile container sayısıyla birlikte büyüyen pek çok operasyonu beraberinde getiriyor.
Kubernetes tarafında hem scheduler hem de etcd yükü node ve pod sayısıyla birlikte artıyor; ayrıca etcd tek bir keyspace içinde doğal olarak shard edilemiyor. Bu sınırları aşmak mümkün olsa da, pratikte etcd’yi yeniden yazmak ya da değiştirmek ve scheduler’ı paralelleştirmek gibi oldukça ağır mühendislik işleri gerektiriyor.
Modal, bu noktada yönünü değiştirip, sandbox veya node sayısıyla doğrusal büyüyen her bileşenin yatayda ölçeklenebilir olması gerektiğine karar verdi ve sandbox oluşturma yolunu olabildiğince sadeleştirdi. Küresel koordinasyonu bırakarak zamanlama katmanını load balancing’e benzetti ve her worker node’u kendi durumu için tek otorite haline getirdi.
Tek bir seri çalışan scheduler yerine, yatayda ölçeklenebilen bir paralel scheduling sunucu filosu kullanılıyor. Bu scheduling sunucuları, worker’larla doğrudan RPC üzerinden konuşuyor; worker kapasitesi varsa isteği kabul ediyor, yoksa reddediyor.
Tüm worker’lar durumlarını tek bir Redis stream içine yayınlıyor ve yapılan testler bu yaklaşımın 100.000’in çok üzerinde worker sayıları için de kullanılabilir olduğunu gösteriyor. Bu sayede, 1 milyon sandbox’ın bir dakikanın altında oluşturulduğu, kod çalışmaya başlayana kadarki medyan sürenin 0.5 saniyenin altında kaldığı benchmark’lar elde edildi.
Jim Dowling, her büyüklük sıçramasında yeni teknik sorunların ortaya çıktığını ve ekibin saniyede 50.000 sandbox oluşturma hedefine ulaşmak için bu mimariyi adım adım yineleyerek geliştirdiğini vurguladı.
Neden önemli
Bu çalışma, yüksek yoğunluklu izolasyon ve hızlı başlatma gerektiren yükler için Kubernetes’in sınırlarının daha görünür hale geldiği bir ölçeği işaret ediyor. Merkezi, güçlü tutarlı bir datastore ve tekil scheduler etrafında kurulmuş orkestrasyon mimarilerinin, milyonlarca sandbox ve on binlerce node düzeyinde ciddi mühendislik yatırımı olmadan verimli ölçeklenemeyeceği somut bir örnekle gösteriliyor. Modal’ın yolu, koordinasyonun yürütmeden gevşek bağlandığı, node’ların kendi durumlarını tuttuğu ve scheduler’ların daha çok load balancer gibi davrandığı tasarımların önünü açıyor; bu da özellikle çok büyük GenAI ve benzeri iş yükleri için altyapı tartışmalarını Kubernetes’i büyütmekten, bulutun temel yapıtaşlarını yeniden düşünmeye doğru kaydırıyor.
Sinyal mi, gürültü mü?
Bu haber önemli mi, yoksa abartı mı? Başkalarının ne dediğini görmeden önce sen karar ver.
Kaynaklar
- InfoQ