SLO ve Hata Bütçesi — Ne Kadar Bozuk Olmaya İzin Var?
Önce şunu oku: Yayın Stratejileri — Hatalı Sürüm Kaç Kişiye Dokunur?
30 saniyede özet
Hiçbir sistem her zaman çalışmaz. SLO, servisin ne kadar güvenilir olacağına dair hedeftir; tamamlayıcısı hata bütçesidir. Yüzde 99.9 bir ayda 43.2 dakika kesinti demektir ve her dokuz bu payı on kat küçültür.
Telefon faturan sana her ay belli bir internet kotası verir. Kotanın tamamını kullanmak bir hata değildir; aşmak ise bir karar gerektirir. Bir servisin güvenilirliği de tam olarak böyle yönetilir.
-
Bayt: Ödeme servisimiz hiç kesilmemeli. Hedefimiz yüzde yüz!
-
Sen: Veritabanı failover'ı, kart ağının kesintisi, bir hatalı deploy... hepsi sıfır mı olacak?
-
Bayt: Şey... O zaman hedefimiz ne olmalı?
-
Bayt: Kullanıcının fark etmeyeceği kadar bozukluğa izin veren bir hedef. Hesaplayalım.
Ölçmek ve hedeflemek
SLIService level indicator: servisin ölçülen güvenilirlik sayısı. Örneğin başarılı isteklerin toplam isteğe oranı ya da belli bir süreden hızlı dönenlerin oranı.Sözlükte gör → ölçtüğün şeydir: başarılı isteklerin oranı ya da belli bir süreden hızlı dönen isteklerin oranı. SLOService level objective: bir SLI'ya konan hedef, örneğin 30 günde yüzde 99.9 başarılı istek. Müşteriye verilen SLA'dan sıkı tutulur.Sözlükte gör → o ölçüye koyduğun hedeftir: “ayın yüzde 99.9’unda başarılı”.
Hedefin tamamlayıcısı error budgetSLO'nun dışında kalan, servisin bozuk olabileceği pay. Kaldıkça risk alınır; bitince yeni özellik yerine güvenilirlik öne geçer.Sözlükte gör →dir. Yüzde 99.9 hedefi, geri kalan yüzde 0.1’in bozuk olmasına izin verir.
Kafam karıştı, daha basit anlat
SLI ölçülen sayı, SLO hedef, hata bütçesi de hedefin dışında kalan, bozuk olmaya izin verilen pay.
SLI ile SLO arasındaki fark nedir?
Hata bütçesi nedir?
Bütçe ne kadar?
Hedef yüzde 99.9 ve ay 30 gün. Bu ayda bir veritabanı failover'ı 10 dakika, hatalı bir deploy 15 dakika, kart ağı kesintisi 20 dakika sürdü. Bütçe yetti mi? Cevabı göster
Yetmedi. Otuz günde 43 200 dakika var; yüzde 0.1’i 43.2 dakika eder. Üç olay toplam 45 dakika sürdü.
Adım adım oku
- Yüzde 99.9 hedefi ayda 43.2 dakikalık bir kota verir.
- Her kesinti kotadan yer: failover, hatalı deploy, dış bağımlılık.
- Kota bitince önce onarım gelir, yeni özellik bekler.
- Bir dokuz daha eklemek kotayı on kat küçültür.
Yüzde 99 bir ayda 432 dakika, yüzde 99.99 ise 4.32 dakika demektir. Her ek dokuz bütçeyi on kat küçültür ve onu tutturmanın bedeli büyür.
Bu yüzden hedef “olabildiğince yüksek” değil, kullanıcının gerçekten ihtiyaç duyduğu kadardır. Kullanıcının fark etmediği güvenilirlik, harcanmış emektir.
Kafam karıştı, daha basit anlat
Yüzde 99.9 ayda 43.2 dakika. Bir dokuz daha 4.32 dakika. Hedefi kullanıcının ihtiyacına göre seç.
Otuz günlük bir ayda yüzde 99.9 SLO kaç dakika kesintiye izin verir?
Neden her servis için yüzde 99.99 hedeflemek iyi bir fikir değildir?
Bütçe bir karar aracıdır
Bütçe kalmışsa ekip risk alabilir: yeni özellik çıkarır, deney yapar. Bütçe bitmişse yeni özellik deploy’ları durur ve ekip güvenilirliğe döner.
Bu kural, “hız mı, güvenilirlik mi” tartışmasını bir sayıya bağlar. Deploy riskini canary gibi bir yolla küçültmek, bütçeyi korumanın çoğu zaman en ucuz yoludur.
Kafam karıştı, daha basit anlat
Bütçe varsa risk al, bittiyse onar. Tartışmayı sayı yönetir.
Hata bütçesi bittiğinde yaygın politika nedir?
Kendin gör
Bir ayın hata bütçesi
Tohum 890893kalan: %100 (43.2 dakikadan)
Oynat ya da adımla: her adım ayın bir olayı.
Şu an ne oldu?
%99.9 → ayda 43.2 dakika
SLO'nun tamamlayıcısı hata bütçesidir: ayın bu kadarında servis bozuk olabilir.
Görevler0/3
%99.9 hedefiyle bütçeyi aşaçık
İpucu
Varsayılan ayarlar yeter.
Aynı ayı %99.9 hedefinin içinde bitiraçık
İpucu
Hangi olayın maliyetini küçültebilirsin?
Daha ilk olayda bütçesi biten bir hedef seçaçık
İpucu
Bir dokuz daha ekle.
Olay günlüğü (0)
Henüz olay yok. Oynat veya adımla.
- Varsayılanla oynat. Yüzde 99.9 hedefinde ay, bütçeyi 1.8 dakika aştı.
- Deploy’ları canary ile yap. Hatalı deploy 0.75 dakikaya indi; ay bütçe içinde bitti.
- Hedefi yüzde 99.99 yap. Bütçe daha ilk olayda bitti.
- Hedefi yüzde 99 yap. Aynı ay, bütçenin yalnızca onda birine yakın.
Bir ayda hatalı deploy'lar bütçenin çoğunu yiyor. En ucuz iyileştirme hangisi?
Tuzaklar
Sunucuyu ölçmek, kullanıcıyı değil. CPU yüzde 40 ve pod’lar ayakta, ama havalelerin yarısı başarısızsa kullanıcı için servis bozuktur. SLI, kullanıcının gördüğünü ölçmeli.
Ortalama gecikme. Ortalama 200 ms iken her yüz istekten biri 8 saniye sürebilir. Gecikme hedefi p95 ya da p99 üzerinden konur.
Bağımlılığından yüksek hedef. Kart ağı yüzde 99.9 ise, ona her istekte bağımlı bir servis daha yüksek bir hedefi tutturamaz.
Kafam karıştı, daha basit anlat
Kullanıcının gördüğünü ölç, ortalamaya değil yüzdeliğe bak, bağımlılığından yüksek söz verme.
Pod'lar ayakta ve CPU düşük, ama havalelerin yarısı başarısız. Hangi SLI bunu yakalar?
Aşağıdaki örnek bir bankanın ödeme API’sinden: SLI’yi ölçen metrikler, SLO hedefi ve bütçe bitince deploy’u durduran bir kapı.
Derinleş · Ödeme API'si: SLI ölçümü, SLO hedefi ve bütçe kapısı 3 dosya · ~33 satır · ilk okumada atlayabilirsin
Kendini sına
Yüzde 99.9 SLO, otuz günlük bir ayda yaklaşık 43 dakika kesintiye izin verir.
Ortalama gecikme 200 ms ve hedefi tutuyor. Neden yine de kullanıcılar şikâyetçi olabilir?
Aklında kalacak üç şey
- 1 SLI ölçülen şeydir (başarılı istek oranı gibi), SLO o ölçüye konan hedeftir. Hedefin tamamlayıcısı hata bütçesidir: servisin bozuk olabileceği pay.
- 2 Otuz günlük bir ayda yüzde 99.9, 43.2 dakika kesinti demektir. Her ek dokuz bütçeyi on kat küçültür; hedef, kullanıcının gerçekten ihtiyacı kadar olmalıdır.
- 3 Bütçe kalmışsa risk alınabilir; bitmişse ekip yeni özellik yerine güvenilirliğe döner. Deploy riskini küçültmek, bütçeyi korumanın en ucuz yoludur.
4 kart sonraki derste seni bekliyor