Site Reliability Engineering (SRE) alanında 20 yılda edinilen dersler
YouTube'dan öğrenilen güvenilirlik mühendisliği dersleri
-
Risk azaltma önlemlerinin seçimi
- Ciddi bir hata meydana geldiğinde, hatanın ciddiyetiyle orantılı bir risk azaltma önlemi seçilmelidir.
- Aşırı risk azaltma önlemleri yan etkilere yol açabilir; bu yüzden standart prosedürleri atlamak yalnızca bunun için haklı bir gerekçe olduğunda yapılmalıdır.
-
Acil durumlara yönelik kurtarma mekanizmalarının test edilmesi
- Kurtarma mekanizmaları ve azaltma önlemleri önceden yeterince prova edilmeli ve test edilmelidir; böylece acil durumlarda etkili şekilde yanıt verilebilir.
- Testler, gelecekteki riskleri azaltır ve müdahale kabiliyetini geliştirir.
-
Değişikliklerin kademeli olarak devreye alınması (canary test uygulanması)
- Değişiklikler tümüyle dağıtıma çıkarılmadan önce kademeli olarak devreye alınmalı; böylece bir sorun oluştuğunda tüm sistemi etkilemesi önlenmelidir.
- YouTube'un önbellekleme yapılandırmasındaki değişiklik örneği, küçük bir değişiklikte bile sistematik devreye almanın önemli olduğunu gösterdi.
Google Calendar'dan öğrenilen dersler
-
Acil durdurma işlevinin önemi
- Potansiyel risk taşıyan değişikliklere hızla müdahale edebilmek için "büyük kırmızı düğme" benzeri bir işlev gereklidir.
- Hizmet bağımlılıklarına karşı acil durdurma işlevleri hazırlanmalıdır.
-
Entegrasyon testlerinin gerekliliği
- Birim testleri sınırlı bir kapsamda yararlıdır; ancak sistemin uygunluğunu doğrulamak için entegrasyon testleriyle gerçek ortam bağlantısı içinde doğrulama yapılmalıdır.
- Google Calendar'daki hata örneği, gerçek kullanım yolunu izleyen testlerin önemini gösterdi.
Google'ın 2017'de çıkardığı dersler
-
Acil durumlar için iletişim kanallarının önemi
- İletişim kanalları ve yedek kanallar için hazırlık yapılması gerekir.
- Hizmet kesintisi durumunda, birbirine bağımlı olmayan birden fazla iletişim yöntemi hazırlanmalı ve bunların verimliliği test edilmelidir.
-
Performans düşüşü sırasında asgari işlevselliğin korunması
- Hizmetin tamamen durmaması için, performans düşmüş durumda bile temel işlevleri sunabilecek şekilde tasarım yapılmalıdır.
Afet dayanıklılığına yönelik testler
- Afet dayanıklılığı ve toparlanma testleri
- Hizmetin veya sistemin dayanıklılığı test edilerek, afet durumlarında da sürdürülebilirlik güvence altına alınmalıdır.
- Toparlanma testleriyle, sistemin bir kesintiden sonra normal duruma geri dönebilip dönemediği doğrulanmalıdır.
Otomatikleştirilmiş azaltma önlemlerinin önemi
- Azaltma önlemlerinin otomasyonu
- Birden fazla ağ arızası yaşandığında sorunu manuel olarak ele almak yerine, otomatikleştirilmiş azaltma önlemleriyle çözüm süresi kısaltılmalıdır.
Dağıtımlar arasındaki sürenin kısaltılması
-
Sık rollout yapılması
- Rollout'lar arasındaki uzun zaman gecikmeleri, sistem güvenliğini değerlendirmeyi zorlaştırır.
-
Tek bir küresel donanım sürümü, tek hata noktasıdır
- Yalnızca belirli bir modele bağımlı olmak işletimi basitleştirebilir; ancak o modelde sorun çıkarsa kritik işlevlerin yerine getirilmesi durabilir.
- Farklı ağ omurgalarının varlığı, genel bir kesintiyi önler ve yüksek öncelikli trafiğin hâlâ çalışan alternatiflere yönlendirilmesini sağlar.
Henüz yorum yok.