English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

konuk
1 / ?
derslere geri dön

Allspaw'ın Kitabı Neyi Çözer

Bitirmeme Disiplini

John Allspaw, Flickr'de patlamacı bir büyüme döneminde operasyonları yönetmektense sonra 'The Art of Capacity Planning' (O'Reilly, 2008; ikinci baskı 2017) yazmıştır. Tezi: kapasite planlaması, bir defaya mahsus elektronik tablo alıştırması değildir. Ölçüm, tahmin & mühendislik yargısını birleştiren bir süregelen disiplindir. Bu üçten herhangi birini atlarsanız, ya üretimde kapasite tükenirsiniz ya da işlememeyen donanıma para harcarsınız.

Kapasite planlaması iki arıza modunun arasında bulunur:

- Yetersiz sağlama: hizmetler sıcakta çalışır, gecikme süresi yükselir, hata oranları artar, müşteriler ayrılır. Büyüme aşamasında kullanıcıları kaybetmenin en hızlı yolu.

- Fazla sağlama: donanım %10 kullanım oranında bulunur, finans bütçenin neden büyümeye devam ettiğini sorar. Bütçe incelemesinde başınızı kaybetmenin en hızlı yolu.

Sanat, bu iki uçurum arasında koridoru bulmak & iş yükü değiştikçe içinde kalmaktır.

Üç temel soru her kapasite alıştırmasını yönlendirir:

- Elimizde ne var? Somut birimler cinsinden mevcut kapasite: saniye başına istekler, saniye başına sorgular, gigabayt depolama, eşzamanlı bağlantılar.

- Ne lazımdır? Açık belirsizlik sınırları olan gelecek bir tarihte tahmin edilen talep.

- Ne zaman harekete geçmeliyiz? Satın alma, sağlama veya ölçeklendirme için başlangıç süresi. Bulut bunu dakikalara indirgeyebilir; şirket içi aylar anlamına gelebilir.

Kapasite planlaması koridoru: yetersiz, optimal, fazla

Neden Elektronik Tablo Olamaz

Bir e-ticaret şirketi kapasite planlamasını yılda bir kez Kasım ayında önceki 12 ayın trafiğini doğrusal olarak tahmin ederek yapar. Özel sunucularda çalışırlar ve satın alma için başlangıç süresi 6 haftadır. Trafikleri güçlü haftalık mevsimsellik (3x hafta sonu zirvesi), güçlü yıllık mevsimsellik (5x Kara Cuma) & üç yıldan beri %40 yıl-yıl büyümektedir.

Bu yılda bir kez doğrusal tahmin yaklaşımının üretmesi muhtemel en az üç spesifik arıza modunu listeleyin. Her arıza için, elektronik tablonun yoksaydığı gerçekliğin spesifik bölümünü adlandırın & bunu gidermek için daha sık bir ölçüm veya planlama temposu önerin.

İş Yükü ile Kullanım

İki Farklı Sayı, İkisi de Gerekli

Kapasite planlaması, takımlar iki temel boyuttan yalnızca birini ölçtüğünde başarısız olur.


İş yükü: sistemin dışarıdan aldığı talep. Saniye başına istekler, dakika başına işlemler, saniye başına megabayt, eşzamanlı kullanıcılar. İş yükü, dünyanın sizden ne istediğini açıklar.


Kullanım: bu talebe hizmet verirken sistemin ne kadar dolu olduğu. CPU yüzdesi, kullanılan bellek, kuyruk derinliği, ağ bant genişliği, disk IOPS. Kullanım, sistemin bu talep altında nasıl hissettiğini açıklar.


Yalnızca iş yükü ne geldiğini söyler ama bunu servis edip edemeyeceğinizi söylemez. Yalnızca kullanım ne kadar doluyunuz olduğunu söyler ama yarın ne bekleyeceğinizi söylemez. Her ikisine ihtiyacınız var, yan yana çizilmiş, kapasite kararları almak için.


Kapasite oranı = iş yükü / kullanım. Saniye başına 1.000 isteği %50 CPU ile servis ederseniz, kapasite oranınız sunucu başına 100% CPU başına 2.000 RPS'tir. Bu dönüşüm faktörü tahmin edilen iş yükünü gerekli sunucu sayısına çevirmenizi sağlar.


Allspaw ölçüm konusu doğru tanecikliliğini vurgular. Dakikada bir örnek 30 saniyelik zirveleri gizler. Saatte bir örnek her şeyi gizler. Gerçek kapasite işi tepe olayları için dakikadan az çözünürlüğe & eğilim için dakika çözünürlüğüne ihtiyaç duyar. Daha kaba herhangi bir şey tehlikeli yanlış güven üretir.

İş yükü + kullanım zaman içinde yan yana çizildi

Neyi Araç Haline Getirmeli

Takımınız yeni bir ürün lansmanında (bir video transkodlama hizmeti) kapasite araçlandırması başlatıyorsunuz. Dakikadan az çözünürlükte en fazla 8 metrik seçebilirsiniz. Hizmet, video yüklemelerini alır, kuyruklar, birden fazla biçime transcode eder, & çıktıları nesne depolamasına yazar.

Tam olarak 8 metrik seçin. Her biri için, iş yükü mü yoksa kullanım mı yakaladığını etiketleyin, & neden her metrik başka bir metrik yerine dahil olmayı hak ettiğini gerekçelendirin. Yalnızca bir metrik sahibi olsaydınız, kapasite tükenmesini öngörmede en tahmine dayalı olacak bir metriği belirleyin.

Eğilim, Mevsimsellik, Belirsizlik

Her Tahminin Üç Katmanı

Allspaw ve Google SRE kitabı faydalı bir tahmin yapısı hakkında anlaşırlar: eğilim, mevsimsellik, & belirsizlik sınırları. Herhangi birini atlarsanız tahmin yanıltıcı hale gelir.


Eğilim: ay veya yıl boyunca talep eğimi. Genellikle kısa pencereler için doğrusal regresyon, bileşik büyüme için üstel veya parçalı doğrusal modellenir. Eğilim çizgisi 'talep genel olarak nereye gidiyor?' sorusunu yanıtlar.


Mevsimsellik: birden fazla zaman ölçeğinde döngüsel desenler. Günlük (öğleden sonra trafik zirvesi), haftalık (hafta sonu dalgalanmaları), yıllık (Kara Cuma, vergi mevsimi, okul yılı). Çarpımsal mevsimsellik eğilimle ölçeklenir; toplamlı mevsimsellik sabit bir ofset ekler.


Belirsizlik sınırları: tahmin konisi. Sınırlar olmayan tahmin bir tahmintir. Gerçek tahminler açık üst ve alt sınırlarla merkezi bir tahmin yayınlar, tipik olarak %90 veya %95 güvende. Koni, geleceğin daha uzağa projekte ettikçe genişler. 4 haftalık tahmin ±%10 sınırlarına sahip olabilir; 12 aylık tahmin genellikle ±%50 sınırlarına sahiptir.


İşletme büyümesini teknik talepten ayırmak: kapasite planlaması teknik iş yükünü tahmin eder, ama işletme takımları geliri, kaydolmaları veya kampanyaları tahmin eder. Kapasite planlamasının işi, işletme tahminlerini teknik talebe çevirmektir: %30 kayıt büyümesi %30 daha fazla API çağrısı anlamına gelebilir, ama yeni kullanıcılar sistemi daha yoğun kullanırsa %80 daha fazla anlamına gelebilir, ya da daha düşük oranda dönüştürülürlerse sadece %15. Dönüşüm oranı temel işletme tahmininin kadar önemlidir.

Tahmin: eğilim çizgisi, mevsimsel dalgalanmalar, genişleyen koni

Tatil Trafiğini Tahmin Etmek

Hizmetiniz bir e-ticaret sitesine hizmet eder. Geçen yılın Kara Cuma trafiği, Kasım ortalamasının 5 katıydı, 12 saat boyunca sürdü. İşletme %40 yıl-yıl büyümüştür. Pazarlama, Kara Cuma trafiğine %20 ek katkı yapması beklenen ücretli bir promosyon başlatıyor.

Bu yılın Kara Cuma zirvesini mevcut aylık ortalamanın bir katı olarak tahmin edin. Çalışmanızı gösterin. Sonra tahmin için spesifik üst ve alt sınırlar önerin & gerçek talebin bu sınırları dışında itebilecek gerçek dünya olaylarını açıklayın.

Tavanınızı Bilmek

Üretim Bunu Yapmazdan Önce Tavanı Bulun

Tahmin, nelerin geleceğini söyler. Tavan testleri sistemin bunu servis edebilip edemeyeceğini söyler. Allspaw tavan testini kapasite planlamasının tartışılmaz bir girdisi olarak davranır: kontrollü yük altında testini yapana kadar gerçek kapasitesini bilmezsiniz.

Üç tavan testi türü:

- Sentetik yük testi: bir yük üreteç (k6, Locust, JMeter, vegeta) bir hedef hizmete sahne kurulumunda trafik sürücüler. Bir şey kırılana kadar yükü artırın. Kırılma noktası tavanıdır. En iyi izole hizmet testi için.

- Üretim yangın tatbikatı: üretimde kapasiteyi kasıtlı olarak azaltın (sunucuların yüzdesini boşaltın, bir bölgeyi öldürün) ve kalan kapasitesinin gerçek trafik nasıl işlediğini gözlemleyin. Beklenmedik etkileşimler de dahil olmak üzere gerçek üretim davranışını test eder. En yüksek güven ama en yüksek risk.

- Gölge yük: gerçek üretim trafiğini üretimin yanında çalışan hedef hizmete yeniden oynatın. Gerçek iş yükü desenleri (nadir sorgu karışımı, garip kullanıcı aracıları) yakalar kullanıcıları etkilemeden. Güçlü orta yol.


Başlık geçerli yük ile tavan arasındaki tampordur. SRE parmak kuralları:

- Sabit durumda %50 başlık tek bölge hizmeti için (böylece bir bölge arızası kalan bölgeyi tüketmez)

- N+2 artıklığı olan çok bölge hizmeti için %30 başlık

- Bilinen tepe olaylarına yaklaşılırken %100+ başlık (Kara Cuma, spor finalleri)


Başlık israf değildir. Saat 3'te mühendisleri çağırmama maliyeti, dalgalanma sırasında müşterileri kaybetmeme, & bir bölge arızası yaptığında kademeli bir arıza yaşamamaktır. Finans takımları bazen başlığı azaltmaya kalkışır; kapasite mühendisleri, o konuşmayı duygusal yerine faktik yapmak için sıkı çalışmanın maliyetini açıklamak zorundadırlar.

Başlık tamponu: mevcut yük, tavan, & aralarındaki boşluk

Tavan Testi Tasarımı

Belgeli kapasite tavanı olmayan bir hizmeti devralırsınız. Mevcut üretim yükü 12 sunucu arasında saniye başına 800 istektir, ortalama CPU %35'tir. Pazarlama, tepe noktasında trafiği 3.000 RPS'ye çıkması beklenen bir kampanya açıklamaktadır.

Sonraki 4 haftada bir tavan testi programı tasarlayın. Test türlerini, 'kırıldı'ı tanımlayan ölçümleri, ayarlayacağınız başlık hedefini, & tavan testinin mevcut 12 sunucunun 3.000 RPS'yi işleyip işleyemeyeceğini ortaya çıkarıp çıkarmadığına bağlı olarak aldığınız eylemi belirtin. Mevcut 12 sunucunun 3.000 RPS'yi işleyemeyeceğini tavan testi ortaya çıkarırsa, somut olarak ne yaptığınızı belirtin.

Yukarı, Dışarı, ya da Diyagonal

Güç Eklemek, Kutular Eklemek, ya da Her İkisi Ne Zaman

Üç temel ölçeklendirme stratejisi, her birinin belirgin maliyet & güvenilirlik profilleri:


Dikey ölçeklendirme (ölçeğini büyütmek): daha büyük makineler. 8 çekirdekli sunucuları 32 çekirdekli sunucularla değiştirin. En basit yol; tek makine sınırlarına vurana kadar işe yarar. Tek arıza noktası kalır. Maliyet doğrusal olmayan şekilde büyür: 32 çekirdekli makine genellikle 4x 8 çekirdekli maliyetinden fazlasına mal olur.


Yatay ölçeklendirme (ölçeğini genişletmek): daha fazla makine. Yük dengeleyicinin arkasına sunucular ekleyin. Kapasite sunucu sayısı ile doğrusal olarak ölçeklenir. Arıza modları kayar: dağıtılmış koordinasyonu işlemek zorundadırlar, ama tek sunucu arızası artık hizmeti yok etmez. İşletme karmaşıklığı artar.


Diyagonal ölçeklendirme (Allspaw'ın terimi): önce ölçeğini büyüt rahat bir sunucu boyutuna, sonra oradan ölçeğini dışarı genişlet. Daha büyük sunucuların basitleştirilmiş işletmesini birden fazla sunucunun artıklığı ile birleştirir. Çoğu üretim hizmeti diyagonal ölçeklendirme alanında bulunur.


Ayrılmış ve istek üzerine fiyatlandırması: bulut sağlayıcılar öngörülebilirliği ödüllendirir. Ayrılmış kapasite istek üzerine olmaktan %30-60 daha ucuzdur ama 1-3 yıllık bir taahhüt gerektirir. Kapasite planlayıcıları tipik olarak sabit durum talebini ayrılmış kapasiteyle kilitler ve zirveleri istek üzerindeye çıkarırlar. Bu bölme yanlış değerlendirmek ya para israf eder (aşırı ayrılmış) ya da bütçeyi sürprizlere maruz bırakır (zirvelerde ayrılmamış).


Spot örnekleri ve ön ödemeli iş yükleri: istek üzerine maliyetinden %60-90 daha ucuz ama dakikalar içinde geri çekilebilir. Toplu işler, analitik, eğitim iş yükleri ya da zarif kesintiye tasarlanmış herhangi bir hizmet için uygun. Üretim kullanıcıya yönelik trafik tipik olarak spot'dan kaçınır.

Diyagonal ölçeklendirme yolu: küçük orta kutudan sonra yatay ölçeğini genişlet

Ölçeklendirme Yolu Seçme

Video transkodlama hizmetiniz 8 orta boyutlu bulut örneğinde çalışır (her biri 8 çekirdekli). Sonraki 6 ayda 3x büyüme bekliyorsunuz. İş yükü CPU'ya bağlı, video başına paralelleştirilebilir, & her video transkod 90 saniyeli sondan sona alır. Ayrılmış örnekler istek üzerine maliyetinin %50'sine mal olur. Spot örnekleri istek üzerine maliyetinin %30'una mal olur ama 2 dakikalı bildirimle sonlandırılabilir.

Sonraki 6 ay için bir ölçeklendirme stratejisi tavsiye edin. Hangi örnek boyutlarını seçtiğinizi, ayrılmış/istek üzerine/spot karışımını, & karışımın her parçasını iş yükü özellikleriyle nasıl gerekçelendirdiğinizi belirtin. Planınızdaki tek en büyük riski tanımlayın & bir azaltmayı önerin.

Kapasite Planlaması Kariyerleri

Kapasite Planlaması Becerilerinin Ödeme Yaptığı Yer

Kapasite planlaması, kendi başına nadir olarak bir iş unvanıdır. Beceriler birkaç rol altında görünür:


Site Güvenilirlik Mühendisi: kapasite planlaması temel bir SRE sorumluluğudur. Çoğu SRE takımı, tahmin modellerine, tavan testlerine & sağlama otomasyonuna sahip olan bir veya iki mühendise sahiptir.


Bulut Maliyeti / FinOps Mühendisi: bulut harcama optimizasyonuna odaklanmış daha yeni bir rol. Kapasite planlamasını finansal modelleme, sözleşme müzakereleri, & ayrılmış örnek portföyü yönetimi ile birleştirir. Bulut faturaları genellikle maaşlardan sonra ikinci en büyük masraf olduğu için büyük bulut'ya özgü şirketlerde son derece iyi ödeme yapıyor.


Performans Mühendisi: düğüm başına verimliliğe & tavan testlerine odaklanır. İş: aynı donanımdan daha fazla kapasite ayıkla profil oluşturma, optimizasyon, & mimari değişiklikler yoluyla. Ağır sistemler & dil çalışma zamanı bilgisi.


Kapasite Planlaması Uzmanı: çok büyük şirketlerde (Google, Meta, Amazon, Netflix), adanmış kapasite planlaması takımları vardır. Tüm filo boyunca tahmin modelleridir, ölçekte satın alma müzakere eder, & finans ile çok yıllı donanım yol haritaları koordinatlıdır.


Bileşik beceriler: zaman serileri analizi (R, Python statsmodels, Prophet), kuyruk teorisi (M/M/1, M/M/c, Little Yasası), en az bir yapılandırma yönetimi aracı, en az bir bulut maliyet panosu, & bir CFO'nun anlayabilmesi ve harekete geçirmesi gereken tahmin raporu yazma yeteneği. Teknik beceriler sizi röportaja alır; iletişim becerleri sizi bütçe alır.

Kapasite kariyerleri: SRE, FinOps, Performans, Uzman

Özetleme

Şimdi Bildiğiniz Şey

Kapasite planlaması, yıllık bir alıştırma değil, bir süregelen disiplindir. Kapsadığımız:

- Aşırı sağlamadan ve yetersiz sağlamadan koridor

- İş yükü ile ölçümün iki boyutu kullanımı

- Her tahminin üç katmanı: eğilim, mevsimsellik, & belirsizlik sınırları

- Tavan testleri (sentetik, gölge, yangın tatbikatı) gerçek kapasiteyi bilmenin tek yolu

- Başlık tamponları & neden israf değildikleri

- Diyagonal ölçeklendirme & ayrılmış/istek üzerine/spot fiyatlandırma kararı

- Bu beceriler bütçe yetkilisinin kazandığı kariyer yolları


İki fikir en çok önemli. Tek noktalarla asla sınırları ile tahmin edin. & üretim bunu yapmazdan önce tavanınızı ölçün. Bu ikisini ileri taşı & geri kalan izler.


Önerilen okuma: Allspaw'ın 'The Art of Capacity Planning' (O'Reilly, 2017 ikinci baskı), Google'ın SRE Kitabı'ndaki ilgili bölümler (sre.google/books/ adresinde ücretsiz), & Brendan Gregg'in alttaki sistemler işi için 'Systems Performance'. Geometri-of companion dersi daha derin gider: Little'ın Yasası alan olarak, kuyruk eğrileri, eğilim yamaçları, & başlık zarflar.