Otomatik Ölçekleme
- İngilizcesi
- Autoscaling
- Okunuşu
- otoskeyling
Günlük kullanımda iki ad da yaygın.
Kısaca
Otomatik ölçekleme, sunucu ya da konteyner gibi bilişim kaynaklarının talebe göre otomatik eklenip çıkarılmasıdır; performans sabit, maliyet düşük kalır.
Otomatik ölçekleme (autoscaling) nedir?
Otomatik ölçekleme, bir uygulamanın sahip olduğu bilişim kapasitesini otomatik olarak değiştiren bir bulut ve konteyner özelliğidir. Trafik arttığında daha fazla sunucu, sanal makine ya da konteyner ekler; trafik azaldığında bunları kaldırır. Amaç, uygulamayı yoğun zamanlarda hızlı yanıt verir halde tutarken geri kalan zamanlarda boştaki makineler için ödeme yapmamaktır.
Bir otomatik ölçekleyici CPU kullanımı, bellek, istek oranı ya da bir mesaj kuyruğunun uzunluğu gibi metrikleri izler ve bunları, örneğin ortalama %70 CPU gibi bir hedefle karşılaştırır. Metrik hedefin üzerinde kalırsa genellikle bir yük dengeleyicinin arkasında yeni örnekler başlatır; altında kalırsa, her zaman yapılandırılmış bir asgari ve azami sınır içinde, bazılarını kapatır. Bazı sistemler ayrıca öngörülebilir yoğunluklar için zamanlanmış ölçekleme ya da talebi geçmiş örüntülerden tahmin eden öngörülü ölçekleme kullanır.
Kuyruklar uzadığında daha fazla kasa açan ve mağaza sakinleşince kapatan bir süpermarketi düşünün. Otomatik ölçekleme, günlük trafik döngüleri olan web uygulamalarında, kuyrukları işleyen arka plan işçilerinde (worker) ve hem pod sayısını hem de onların çalıştığı node sayısını ölçekleyebilen Kubernetes kümelerinde kullanılır.
Otomatik ölçekleme genellikle yataydır; yani uygulamanın daha fazla kopyasını ekler ve bu, tek bir makineye daha fazla CPU ya da bellek verilen dikey ölçeklemeden farklıdır. Yatay otomatik ölçekleme, uygulama durumsuz (stateless) olduğunda, yani herhangi bir örnek herhangi bir isteği karşılayabildiğinde en iyi çalışır. Ayrıca anlık da değildir: yeni örneklerin başlaması zaman alır, bu yüzden ani artışlar yine de yedek kapasite ya da hız sınırlama gerektirebilir.
Önemli noktalar
- Otomatik ölçekleme, talebe göre kapasiteyi otomatik olarak ekler ya da çıkarır.
- CPU, bellek, istek oranı veya kuyruk uzunluğu gibi metriklerle yönlendirilir.
- Asgari ve azami sınırlar ölçeklemeyi güvenli, maliyetleri öngörülebilir tutar.
- Yatay ölçekleme örnek ekler, dikey ölçekleme tek bir örneği büyütür.
- Durumsuz uygulamaları otomatik ölçeklemek en kolay olanıdır.
Örnek
# Keep average CPU near 70% by running between 2 and 10 pods
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: web-app
spec:
scaleTargetRef: { apiVersion: apps/v1, kind: Deployment, name: web-app }
minReplicas: 2
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target: { type: Utilization, averageUtilization: 70 }Sık sorulan sorular
Yatay ve dikey ölçekleme arasındaki fark nedir?
Yatay ölçekleme, işi paylaşan daha fazla makine veya konteyner eklerken dikey ölçekleme tek bir makineye daha fazla CPU, bellek ya da depolama verir. Otomatik ölçekleme genellikle yatay ölçekleme anlamına gelir, çünkü kesinti olmadan gerçekleşebilir.
Otomatik ölçekleme para tasarrufu sağlar mı?
Sağlayabilir; çünkü gün boyu zirveye göre boyutlandırmak yerine ek kapasite için yalnızca ihtiyaç duyduğunuz sürece ödersiniz. Yine de kötü ayarlanmış sınırlar ya da yanlış metrik üzerinden ölçekleme para israfına yol açabilir veya uygulamayı kapasitesiz bırakabilir.
Sıfıra ölçekleme (scale to zero) nedir?
Sıfıra ölçekleme, trafik olmadığında tüm örnekleri kaldırmak demektir; böylece boştaki bir uygulama neredeyse hiç maliyet oluşturmaz. Serverless platformlarında yaygındır; ödünleşimi, bir sonraki istek geldiğinde yaşanan cold start gecikmesidir.
İlgili sayfalar
- KubernetesDevOps ve Bulut, s. 30Kubernetes, konteynerli uygulamaların bir makine kümesi üzerinde dağıtılmasını, ölçeklenmesini ve yönetilmesini otomatikleştiren açık kaynaklı bir sistemdir.
- Yük DengeleyiciDevOps ve Bulut, s. 54Yük dengeleyici, gelen trafiği birkaç arka uç sunucuya dağıtan bir sunucu ya da hizmettir; hiçbir sunucu aşırı yüklenmez ve uygulama erişilebilir kalır.
- Bulut BilişimDevOps ve Bulut, s. 5Bulut bilişim, sunucu, depolama ve veritabanı gibi bilişim kaynaklarının internet üzerinden, kullandığın kadar öde modeliyle talep üzerine sunulmasıdır.
- ServerlessDevOps ve Bulut, s. 46Serverless, sağlayıcının kodu talep üzerine çalıştırıp sunucuları yönettiği, otomatik ölçeklediği ve yalnızca gerçek kullanıma ücret aldığı bulut modelidir.
- ÖlçeklenebilirlikYazılım Mimarisi, s. 30Ölçeklenebilirlik, bir sistemin daha fazla kullanıcı ya da veri gibi artan iş yükünü, kaynak ekleyerek performansı düşmeden karşılayabilme yeteneğidir.
- KonteynerDevOps ve Bulut, s. 28Konteyner, bir uygulamayı bağımlılıklarıyla paketleyip ana makinenin paylaşılan işletim sistemi çekirdeği üzerinde çalıştıran hafif, yalıtılmış bir pakettir.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin