Dil Seçin

COLA: Bulut Mikroservisleri için Kolektif Otomatik Ölçeklendirme

COLA'nın analizi: Uçtan uca gecikme hedeflerini karşılarken maliyeti en aza indirmek için VM tahsisini küresel olarak optimize eden, mikroservis uygulamaları için yeni bir otomatik ölçeklendirici.
apismarket.org | PDF Size: 1.6 MB
Değerlendirme: 4.5/5
Değerlendirmeniz
Bu belgeyi zaten değerlendirdiniz
PDF Belge Kapağı - COLA: Bulut Mikroservisleri için Kolektif Otomatik Ölçeklendirme

1. Giriş

Bulut uygulamalarında monolitik mimarilerden gevşek bağlı mikroservislere geçiş, kaynak yönetiminde önemli bir karmaşıklık getiriyor. Geliştiriciler, her bir mikroservise kaç tane işlem kaynağı (ör. konteyner replikası, VM) tahsis edeceklerine karar vermek zorundadır. Bu karar, hem geliştiricinin operasyonel maliyeti hem de uygulama kullanıcısının deneyimlediği uçtan uca gecikme üzerinde kritik bir etkiye sahiptir. Yatay Pod Otomatik Ölçeklendirme (HPA) gibi geleneksel otomatik ölçeklendirme yöntemleri, her mikroservisi CPU kullanımı gibi yerel metriklere dayanarak bağımsız olarak ölçeklendirir. Ancak bu yaklaşım, bir uygulama iş akışı içindeki mikroservislerin birbirine bağımlı doğasını göz ardı ettiği için optimal değildir. COLA (Kolektif Otomatik Ölçeklendirici), tüm mikroservisler arasında kaynakları küresel bir hedefle kolektif olarak tahsis eden bir çözüm olarak önerilmiştir: Uygulamanın uçtan uca gecikmesi belirli bir hedefin altında kalırken dolar maliyetini en aza indirmek.

2. Bağımsız Otomatik Ölçeklendirmenin Sorunu

Mevcut endüstri standardı otomatik ölçeklendirme, dağıtık, mikroservis başına bir şekilde çalışır. Her servis, kendi kaynak kullanımı (CPU, bellek) bir eşiği aştığında ölçeklendirme eylemlerini (VM veya pod ekleme/kaldırma) tetikler. Temel hata, bu yerel bakış açısının uygulamanın küresel performansını hesaba katmamasıdır. Bir mikroservisin gecikmesini iyileştirmek, zincirdeki başka bir servis darboğaz olarak kaldığı sürece, genel kullanıcı algılanan gecikmesi üzerinde ihmal edilebilir bir etkiye sahip olabilir. Bu, verimsiz kaynak tahsisine yol açar—bazı servisler aşırı sağlanırken kritik darboğazlar yetersiz sağlanır—ve istenen gecikme Hizmet Seviyesi Hedefi'ne (SLO) ulaşılmadan daha yüksek maliyetlerle sonuçlanır.

3. COLA: Kolektif Otomatik Ölçeklendirme Yaklaşımı

COLA, otomatik ölçeklendirme problemini bir kısıtlı optimizasyon problemi olarak yeniden çerçeveler. Birden fazla bağımsız otomatik ölçeklendiriciyi, uygulamanın mikroservis topolojisi ve performansı üzerinde küresel görünürlüğe sahip tek, merkezi bir denetleyici ile değiştirir.

3.1. Temel Optimizasyon Çerçevesi

Hedef şu şekilde formüle edilir:

  • Amaç: Toplam işlem maliyetini en aza indir.
  • Kısıt: Uygulama uçtan uca ortalama veya kuyruk gecikmesi ≤ Hedef Gecikme.
  • Karar Değişkenleri: Her bir mikroservis $i$'ye tahsis edilen VM (veya replika) sayısı, $n_i$ olarak gösterilir.

Bu, karmaşık, doğrusal olmayan bir optimizasyon problemidir çünkü $n_i$ ile uçtan uca gecikme arasındaki ilişki basit değildir ve iş yükü modelleri ile servisler arası iletişime bağlıdır.

3.2. Çevrimdışı Arama Süreci

Bu optimizasyonu çevrimiçi çözmek, sağlama ve performans stabilizasyonu için gereken süre nedeniyle pratik değildir. Bu nedenle COLA, bir çevrimdışı arama süreci kullanır:

  1. İş Yükü Uygulama: Uygulamaya temsili bir iş yükü uygula.
  2. Darboğaz Tanımlama: En yoğun mikroservisi tanımla (yük altında CPU kullanımındaki en büyük artış).
  3. Bandit Problemi ile Kaynak Tahsisi: Darboğaz servisi için, çok kollu bandit formülasyonunu kullanarak optimal VM sayısını belirle. "Ödül" fonksiyonu, gecikme iyileştirmesini maliyet artışına karşı dengeler.
  4. Yineleme: Küresel gecikme hedefine ulaşılana kadar bir sonraki en yoğun mikroservis için 2-3. adımları tekrarla.
  5. Politika Oluşturma: Sonuç, çevrimiçi olarak dağıtılabilecek bir ölçeklendirme politikasıdır (iş yükü özelliklerinden kaynak tahsislerine bir eşleme).

COLA, bilinen iş yükleri arasında enterpolasyon yapabilir ve görülmemiş bir iş yükü modeliyle karşılaşırsa varsayılan otomatik ölçeklendiricilere geri dönebilir.

4. Teknik Detaylar ve Matematiksel Formülasyon

Temel optimizasyon problemi soyut olarak şu şekilde temsil edilebilir:

$$\min_{\{n_i\}} \sum_{i=1}^{M} C_i(n_i)$$ $$\text{kısıt: } L_{e2e}(\{n_i\}, \lambda) \leq L_{target}$$ $$n_i \in \mathbb{Z}^+$$ Burada:

  • $M$: Mikroservis sayısı.
  • $n_i$: Mikroservis $i$ için kaynak birimi sayısı (ör. VM).
  • $C_i(n_i)$: $n_i$ birimli mikroservis $i$ için maliyet fonksiyonu.
  • $L_{e2e}$: Tüm $n_i$'lere ve iş yükü yoğunluğu $\lambda$'ya bağlı olan uçtan uca gecikme fonksiyonu.
  • $L_{target}$: İstenen gecikme SLO'su.
COLA'nın aramasının 3. adımındaki "bandit problemi", darboğaz servisi için her olası VM tahsisini bir "kol" olarak ele almayı içerir. Bir kolu çekmek, o konfigürasyonu sağlamaya ve ortaya çıkan maliyet- gecikme değiş tokuşunu ölçmeye karşılık gelir. Üst Güven Sınırı (UCB) gibi algoritmalar, konfigürasyon uzayını verimli bir şekilde keşfetmek ve kullanmak için kullanılabilir.

5. Deneysel Sonuçlar ve Değerlendirme

COLA, Google Kubernetes Engine (GKE) üzerinde çeşitli temel otomatik ölçeklendiricilere (kullanım tabanlı ve ML tabanlı) karşı titizlikle değerlendirildi.

5.1. Deneysel Kurulum

  • Uygulamalar: 5 açık kaynaklı mikroservis uygulaması (ör. Simple WebServer, BookInfo, Online Boutique).
  • Platformlar: GKE Standard (kullanıcı yönetimli düğümler) ve GKE Autopilot (sağlayıcı yönetimli altyapı).
  • Temeller: Standart HPA (CPU tabanlı), gelişmiş ML tabanlı otomatik ölçeklendiriciler.
  • İş Yükleri: 63 farklı iş yükü modeli.
  • Hedef: Belirtilen medyan veya kuyruk (ör. p95) gecikme SLO'sunu karşıla.

5.2. Temel Performans Metrikleri

SLO Başarımı

53/63

COLA'nın gecikme hedefini karşıladığı iş yükü sayısı.

Ortalama Maliyet Azalması

19.3%

Bir sonraki en ucuz otomatik ölçeklendiriciye kıyasla.

En Maliyet Etkin Politika

48/53

COLA, başarılı olan 53 iş yükünün 48'inde en ucuz seçenekti.

Küçük Uygulamalarda Optimallik

~90%

Kapsamlı aramanın mümkün olduğu daha küçük uygulamalarda, COLA vakaların ~%90'ında optimal konfigürasyonu buldu.

5.3. Sonuç Özeti

Sonuçlar, COLA'nın önemli avantajını göstermektedir. Diğerlerinin başarısız olduğu durumlarda tutarlı bir şekilde istenen gecikme SLO'suna ulaştı ve bunu önemli ölçüde daha düşük bir maliyetle yaptı. Maliyet tasarrufu o kadar belirgindi ki, COLA'nın çevrimdışı aramasını çalıştırmanın "eğitim maliyeti" birkaç günlük operasyon içinde telafi edildi. GKE Autopilot'ta, COLA'nın faydaları daha da belirgindi, çünkü sağlayıcı yönetimli soyutlamayı etkili bir şekilde yönlendirerek maliyetleri en aza indirdi.

Grafik Açıklaması (Tahmini): Bir çubuk grafik, Y ekseninde "Başarılı İstek Başına Maliyet" veya "Toplam Küme Maliyeti"ni, X ekseninde ise farklı otomatik ölçeklendiricileri (COLA, HPA, ML-A) gösterebilir. COLA'nın çubuğu önemli ölçüde daha düşük olurdu. İkinci bir grafik, "Gecikme SLO İhlal Oranı"nı gösterebilir; burada COLA'nın çubuğu sıfıra yaklaşırken diğerleri daha yüksek ihlal oranları gösterir.

6. Analiz Çerçevesi ve Örnek Vaka

Analist Perspektifi: Dört Adımlı Bir Ayrıştırma

Temel İçgörü: Makalenin temel atılımı, süslü yeni bir algoritma değil, kritik bir bakış açısı değişimidir: Tüm mikroservis uygulamasını, bağımsız parçaların bir koleksiyonu değil, optimize edilecek tek bir sistem olarak ele almak. Bu, CycleGAN (Zhu ve diğerleri, 2017) gibi modellerin getirdiği bilgisayarlı görüdeki değişime benzer; bu modeller, eşleştirilmiş görüntü çevirisinin ötesine geçerek tüm dönüşüm alanının döngü tutarlılığını düşünmüştür. COLA, kaynak yönetimine benzer bir "küresel tutarlılık" ilkesi uygular.

Mantıksal Akış: Argüman ikna edici derecede basittir: 1) Yerel optimumlar (servis başına ölçeklendirme) küresel bir verimsizliğe toplanır. 2) Bu nedenle, küresel bir kısıtla (uçtan uca gecikme) küresel bir amaç (maliyet) kullan. 3) Bunu çevrimiçi çözmek çok yavaş olduğu için, arama yoluyla çevrimdışı çöz ve politikayı dağıt. Zarafet, darboğazın optimal tahsisini aramayı verimli hale getirmek için bandit problemini kullanmaktadır; bu teknik, sistem optimizasyonu için pekiştirmeli öğrenmede kapsamlı araştırmalarla desteklenen bir tekniktir (ör. UC Berkeley'nin RISELab'ından çalışmalar).

Güçlü ve Zayıf Yönler: Güçlü Yönler: Ampirik sonuçlar mükemmel—%19.3 maliyet azalması yönetim kurulu seviyesinde bir rakamdır. Çevrimdışı yaklaşım pragmatiktir, çalışma zamanı istikrarsızlığından kaçınır. Çerçeve platformdan bağımsızdır. Zayıf Yönler: Aşil topuğu, temsili çevrimdışı iş yüklerine olan bağımlılıktır. Hızla gelişen uygulamalarda veya "kara kuğu" trafik olayları altında, önceden hesaplanmış politika modası geçmiş veya felaket olabilir. Makalenin varsayılan otomatik ölçeklendiricilere geri dönüşü, bu sağlamlık sorunu için bir yara bandıdır, bir çare değil. Ayrıca, arama karmaşıklığı muhtemelen mikroservis sayısıyla birlikte kötü ölçeklenir ve bu da son derece büyük, karmaşık uygulamalarda kullanımını sınırlayabilir.

Harekete Geçirilebilir İçgörüler: Bulut mimarları için mesaj açıktır: CPU eşiklerini izole bir şekilde ayarlamayı bırakın. Küresel performans gözlemlenebilirliği ve merkezi bir karar motoru oluşturmaya veya benimsemeye yatırım yapın. Hibrit bir yaklaşımla başlayın: COLA'nın felsefesini kritik servis zincirlerini tanımlamak ve orada kolektif ölçeklendirme uygulamak için kullanın, daha az kritik, bağımsız servisleri ise geleneksel HPA'da bırakın. Gösterildiği gibi, Yatırım Getirisi (ROI) hızlı olabilir. Bulut sağlayıcıları dikkate almalıdır; GKE Autopilot gibi araçların, "yönetilen" altyapı vaadini gerçekten yerine getirebilmesi için bu tür akıllı orkestrasyon katmanlarına ihtiyacı vardır.

7. Uygulama Görünümü ve Gelecek Yönelimler

COLA'nın arkasındaki ilkeler, temel VM ölçeklendirmesinin ötesinde geniş bir uygulanabilirliğe sahiptir:

  • Çoklu Kaynak ve Heterojen Ölçeklendirme: Gelecek sürümler, VM boyutuna (bellek vs. işlem optimize), GPU tahsisine ve hatta maliyet ve dayanıklılık için kullanılabilirlik bölgeleri veya bulut sağlayıcıları arasında yerleştirmeye kolektif olarak karar verebilir.
  • Servis Mesh'leri ile Entegrasyon: COLA'yı bir servis mesh'i (Istio gibi) ile birleştirmek, daha zengin telemetri (istek seviyesi izleme, bağımlılık grafikleri) sağlar ve optimizasyonun bir parçası olarak trafik yönlendirme ve devre kesici üzerinde doğrudan kontrol etmeyi bile mümkün kılar.
  • Çevrimiçi Uyarlama ve Meta-Öğrenme: Büyük araştırma sınırı, çevrimdışı sınırlamanın üstesinden gelmektir. Meta-öğrenmeden gelen teknikler, COLA'nın politikasını gerçek zamanlı geri bildirime dayanarak çevrimiçi hızlıca uyarlamasına veya düşük trafik dönemlerinde yeni konfigürasyonları güvenle keşfetmesine izin verebilir.
  • Yeşil Bilişim Hedefleri: Optimizasyon hedefi, Cloud Carbon Footprint projesi gibi kaynaklardan veri ekleyerek, karbon ayak izini veya enerji tüketimini en aza indirecek şekilde genişletilebilir ve sürdürülebilir bilişim girişimleriyle uyumlu hale getirilebilir.
  • Politika Pazarı: Yaygın uygulama modelleri (ör. e-ticaret, medya akışı) için önceden optimize edilmiş COLA politikaları paylaşılabilir veya satılabilir, böylece bireysel eğitim çalıştırmalarına olan ihtiyaç azalır.

8. Kaynaklar

  1. Sachidananda, V., & Sivaraman, A. (2022). COLA: Collective Autoscaling for Cloud Microservices. arXiv preprint arXiv:2112.14845v3.
  2. Zhu, J., Park, T., Isola, P., & Efros, A. A. (2017). Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks. Proceedings of the IEEE International Conference on Computer Vision (ICCV).
  3. Burns, B., Grant, B., Oppenheimer, D., Brewer, E., & Wilkes, J. (2016). Borg, Omega, and Kubernetes. Queue, 14(1), 70–93.
  4. Hoffman, M., Shahriari, B., & Aslanides, J. (2020). Addressing Function Approximation Error in Actor-Critic Methods. Proceedings of the 37th International Conference on Machine Learning (ICML). (Çevrimiçi uyarlama için ilgili gelişmiş RL örneği).
  5. Cloud Carbon Footprint. (t.y.). Bulut kullanımının karbon ayak izini ölçmek ve görselleştirmek için açık kaynaklı bir araç. Şu adresten alındı: https://www.cloudcarbonfootprint.org/.
  6. Verma, A., Pedrosa, L., Korupolu, M., Oppenheimer, D., Tune, E., & Wilkes, J. (2015). Large-scale cluster management at Google with Borg. Proceedings of the European Conference on Computer Systems (EuroSys).