Uzun Kuyruk Okumak
Gecikme Bir Eğri Üzerinde Yaşar, Bir Sayı Değil
Ortalama bir gecikme, kullanıcıların ne yaşadığını gizler. Gerçek hizmetler bir dağılım üretir: kaç isteğin ne kadar sürdüğünü gösteren bir eğri.
O eğri üzerindeki üç nokta operasyonel anlamın çoğunu taşır:
- p50 (medyan): dağılımın ortası. İsteklerin yarısı daha hızlı, yarısı daha yavaş tamamlanır. Tipik deneyimi tanımlar.
- p99: 99. yüzdelik. İsteklerin yalnızca %1'i bundan daha uzun sürdü. Tipik kullanıcılar için en kötü deneyimi tanımlar.
- p99.9: isteklerin yalnızca %0,1'i daha uzun sürdü. Hizmeti sık sık kullanan güçlü kullanıcılar için en kötü deneyimi tanımlar.
Geometrik bulgu: gecikme dağılımları neredeyse her zaman bir uzun sağ kuyruk vardır. Eğri medyan civarında hızla bir tepeye yükselir, sonra sağa doğru yavaş düşer, genellikle ortalamadan uzakta küçük bir tümsek vardır. Bu tümsek en yavaş kullanıcıları temsil eder: kızgın biletler yazan olanları.
Ortalamalar neden yanıltıcı: medyan 50 ms ve p99'u 5.000 ms olan bir hizmet, tipik ve kuyruk deneyimi arasında 100x'lik bir boşluk vardır. Aritmetik ortalama 100 ms'ye inebilir, felaketi tamamen gizler. Aritmetik ortalama, 2D bir şeklin tek bir nokta projeksiyonudur: şeklin neredeyse tüm bilgisi kaybolur.
Yüzdelik çarpma problemi: 10 arka uç hizmetine dokunacak bir istek, her biri 100 ms p99'a sahip, kabaca 600 ms p99'a sahiptir (100 ms değil). Yavaş kuyruklar çarpılır. SRE kitabının neden uyardığı budur: 'N'nin en yavaş olanından dikkat edin'. N arttıkça, kuyruk gecikmeniz hızla kötüleşir.
Kuyruk Gecikme Matematiği
Hizmet A, 5 arka uç hizmetine paralel olarak yayılan bir istek akışına sahiptir ve tüm yanıtları bekler. Her arka ucun 100 ms p99 gecikmeleri vardır.
Eğim Olarak Bütçe Tükenmesi
Bütçeyi Zaman İçinde Çizmek
2D eksenlerde çizilen hata bütçesi (x'te zaman, y'de kalan bütçe), hizmet durumunu bir bakışta ortaya koymaktadır. Tükenme eğrisinin şekli, on pano'nun bireysel olarak iletebileceği aynı bilgileri taşır.
Üç referans şekil:
- Sağlıklı doğrusal tükenme: bütçe geçen süreyle orantılı düz bir çizgide düşer. 28 günlük bir pencerenin 14. günü itibariyle, bütçenin yarısı kalmalıdır. Bu, SLO hedefinin görünür hale getirilmesidir.
- Hızlı yanma: aşağıya doğru dik bir eğim. Etkin bir güvenilirlik sorununun göstergesidir. Eğim yeterince dikse, bütçe pencere sıfırlanmadan tükenmiş, hata bütçesi ilkesini tetikler.
- İyileştirilmiş eğri: düz veya yükselen bir bölüm. Hizmet, SLO'sundan daha iyi performans göstermektedir. Kalan bütçe zamanla artar, riskli başlatmalar için yer açar.
Yanma oranı, tükenme çizgisinin normalleştirilmiş eğimidir: 1'lik bir yanma oranı, zamanın geçiş hızıyla bütçeyi tam olarak yakma anlamına gelir (SLO'yla mükemmel uyum). 10'luk yanma oranı, izin verilen 10 kat daha hızlı yanma anlamına gelir: bu oranda aylık bütçenin tamamı 2,8 günde tükenirdi.
Multi-window multi-burn-rate uyarı: Google'ın SRE çalışma kitabı, 'son saat içinde 14,4'ün üzerinde yanma oranı VE son 5 dakika içinde 14,4'ün üzerinde yanma oranı' gibi birleştirilmiş koşullarda uyarı yapılmasını önerir. Geometri: kısa bir ani artış değil, sürdürülen dik bir eğim. Bu şekil, geçici arızaları filtreleyerek gerçek tükenme tehditlerini yakalarken.
Yanma Oranını Okumak
Ekibinizin SLO'su 28 gün içinde %99,9'dur. 7. günde, hata bütçenizin %60'ını zaten kullandınız. Son 24 saatteki mevcut yanma oranı 8'dir.
Hizmetler Yönlendirilmiş Grafik Olarak
Üretim Bir DAG Olarak
Modern hizmetler bağımlılıkların bir grafiği olarak çalışır. Her hizmet bir düğümdür. Hizmet A'dan hizmet B'ye yapılan her çağrı, A'dan B'ye yönlendirilmiş bir kenardır. Tam resim yönlendirilmiş bir grafik oluşturur (bazen DAG, bazen Async yeniden denemeler aracılığıyla döngüler).
Kritik geometrik özellikler:
- Çıkış derecesi: bir düğümün kaç hizmete bağlı olduğu. Daha yüksek çıkış derecesi, daha fazla üst akış başarısızlık modu anlamına gelir. 12 arka uca bağlı olan bir hizmet, bu 12'den herhangi biri başarısız olursa başarısız olur.
- Giriş derecesi (fan-in): bu düğüme kaç hizmetin bağlı olduğu. Daha yüksek giriş derecesi, buradaki tek bir başarısızlığın geniş ölçüde yayılması anlamına gelir. 30 bağımlı hizmete sahip bir veritabanı en geniş etki alanına sahiptir.
- Aracılık merkeziyeti: bir düğümden kaç en kısa yol geçer. Yüksek aracılık düğümleri, darboğazlardır. Kimlik doğrulama hizmetleri ve çekirdek API'ler tipik olarak yüksek puanlar alırlar.
- Güçlü bağlı bileşenler: döngü oluşturan hizmet grupları. A, B'yi çağırır ve B, A'yı çağırırsa, bir döngünüz vardır. Döngüler başarısızlık kurtarmasını karmaşıklaştırır: her iki hizmeti başlatmak, diğerinin zaten çalışmasını gerektirir.
Etki alanı, güvenilirlik yatırımını yönlendiren geometrik kavramdır. Bir başarısızlığın etki alanı, etkilediği bağımlı hizmetlerin alt grafiğidir. Güvenilirlik mühendisliği, en geniş etki alanına sahip düğümlere ağır yatırım yapar. Genel sistem güvenilirliğini iyileştirmenin en ucuz yolu, genellikle en yüksek aracılık düğümlerine artıklılık veya zarafsız degradasyon eklemektir.
Etki Alanı Akıl Yürütmesi
Bir tüketici hizmeti şuna bağlıdır: AuthService, UserDB, ProductCatalog, PaymentGateway, RecommendationEngine, EmailService, AnalyticsService. AuthService'e 47 başka hizmet bağlıdır. EmailService'e 3 başka hizmet bağlıdır. RecommendationEngine'e 2 başka hizmet bağlıdır.
Bir Pano'nun Bilgi Geometrisi
Pikseller Gayrimenkul
Bir pano, sonlu alanlı bir 2D yüzeydir. Bir sinyale ayrılan her piksel, başka birine ayrılmayan bir pikseltir. Pano tasarımı bir geometri problemidir: tanımaya yardımcı olan mekansal ilişkileri korurken, en küçük görsel alan içinde en karar-ilgili bilgileri düzenleyin.
Okuma desenleri: Batı okuyucuları F şeklini tarar (sol üstten ilk, sonra çapraz, sonra aşağı). En önemli sinyal sol üstte olmalıdır. Sağ alt en az dikkat alır.
Gestalt gruplandırması: aynı hizmetten sinyaller aynı görsel gruba ait olmalıdır. Bir hizmetin gecikme, trafik, hata ve doygunluğu, ekran üzerinde dağılmış değil, 2x2 ızgaraya ait olmalıdır. Görsel yakınlık mantıksal ilişkiyi kodlar.
Renk kodlaması: hata için kırmızı, doygunluk için sarı, sağlıklı aralıklar için yeşil. Renk seçimleri gelenektir, rastgele değildir. Tersine çevirmek, olaylar sırasında her bakışta bilişsel yük gerektirir.
Y ekseni ölçeklemesi: %0-100'e ölçekli bir grafik, trafiğin iki katına çıkmasından bile sakin görünür. Son değerlere otomatik ölçeklendirilen bir grafik, normal varyasyon sırasında endişe vericidir. Her iki seçenek de uygun kullanımlar vardır; seçim geometriktir, kozmetik değil.
Bilgi yoğunluğu: çok az sinyal, ekibi ne yanlış olduğunu görmezden bırakır. Çok fazlası sinyali gürültüde gömer. Edward Tufte'nin veri mürekkep oranı uygulanır: bilgi ileten mürekkebin oran oranını dekore eden mürekkepe maksimize edin. Sparkline stili minimalizm, bakışta karışık widget'ları yener.
İlk Bakışta Tasarlamak
Ekibiniz, 4 arka uç bağımlılık arasında 8 kritik SLI'ye sahip bir hizmet için tek bir birincil pano tasarlamaktadır. Pano, on-call mühendisinin ilk sorusunu saat 3'te 5 saniyeden kısa sürede yanıtlamalıdır: 'bir şey mi yanıyor, & eğer öyleyse, nerede?'
SRE'nin Geometrisi: Bitirme
Üretimi Çalıştıran Şekiller
SRE uygulamasının altında çalışan dört geometrik yapıdan geçtiniz:
- Gecikme dağılımları yüzdelik noktaların ortalamalardan daha fazla gerçeği taşıdığı uzun kuyruk eğrileri olarak
- Hata bütçesi konileri tükenme eğiminin hizmet durumunu kalan sayıdan daha iyi ortaya koyduğu
- Hizmet bağımlılık grafikleri etki alanı ve merkeziyetin güvenilirlik yatırımını yönlendirdiği
- Pano düzenlemeleri piksel ayırmasının operasyonel sonuçlara sahip bir geometri problemi olduğu 2D gayrimenkul olarak
Geometrik düşünme, SRE'yi genel operasyonlar işleminden ayıran şeydir. Bir ops mühendisi sayıları okur. Bir SRE şekilleri okur. Şekiller hiçbir sayının yakalayamadığı bilgileri kodlar: yanma oranının eğimi, bir kuyruğun kalınlığı, bir düğümün merkeziyeti, bir pano panelinin gestalt'ı.
SRE'nin kendisi hakkındaki eşlik eden ders uygulamaları kapsadı. Bu ders onların altında yatan geometriyi kapsadı. Birlikte, modern güvenilirlik mühendisliğinin görsel ve kavramsal iskelesini oluştururlar.