Site Reliability Engineering
- Türkçe karşılığı
- site güvenilirlik mühendisliği
- Okunuşu
- sayt rilayıbiliti encinıring
Günlük kullanımda çoğunlukla İngilizcesi tercih edilir.
Kısaca
Site reliability engineering, operasyona yazılım mühendisliğini uygulayan ve hizmetleri otomasyon ile ölçülebilir hedeflerle güvenilir tutan bir disiplindir.
Site reliability engineering (SRE) nedir?
Site reliability engineering ya da kısaca SRE, canlı sistemleri işletmeye operasyonu bir yazılım sorunu olarak ele alan bir yaklaşımdır. 2000'lerin başında Google'da, bir yazılım mühendisleri ekibinden şirketin servislerini işletmesi istendiğinde işi elle yapmak yerine otomatikleştirmeyi seçmesiyle geliştirilmiştir. Site reliability mühendisleri sistemleri dağıtmak, ölçeklemek, izlemek ve onarmak için kod yazar ve güvenilirlik sorumluluğunu özellikleri geliştiren geliştiricilerle paylaşır.
SRE, güvenilirliği kullanıcının bakış açısından ölçmekle başlar. Ekipler başarılı isteklerin oranı gibi hizmet seviyesi göstergeleri (SLI) seçer, bunlar için hizmet seviyesi hedefleri (SLO) belirler ve hedef ile %100 arasındaki farkı hata bütçesi (error budget) olarak ele alır. Bütçe sürdüğü sürece ekipler hızlı yayın yapar; bütçe tükendiğinde sürümleri yavaşlatıp kararlılığa odaklanır. Diğer temel pratikler arasında tekrarlayan elle iş anlamına gelen toil'u sınırlamak, sürdürülebilir nöbet (on-call) rotasyonları ve olaylardan sonra suçlayıcı olmayan postmortem'ler bulunur.
SRE, büyük çevrimiçi hizmetler işleten şirketlerde yaygındır ve birçok kuruluşun aynı anda birden çok ürün ekibini destekleyen SRE ya da platform ekipleri vardır. Yararlı bir karşılaştırma bir havayolu şirketinin bakım ekibidir: hiç onarım gerektirmeyen uçaklar beklemezler, ancak katı güvenlik payları tanımlar, kontrol listelerini izler, her olayı inceler ve kalkıştan önce sorunları yakalayan araçlar geliştirirler.
SRE sıklıkla DevOps ile karıştırılır. DevOps, geliştirme ile operasyonu bir araya getirmek için geniş bir kültür ve pratikler bütünüdür; SRE ise bunu uygulamaya koymanın hata bütçeleri gibi belirli roller, metrikler ve kurallar içeren somut bir yoludur. Popüler bir ifade biçimi class SRE implements DevOps şeklindedir: SRE, daha geniş DevOps fikrinin belirli bir uygulamasıdır.
Önemli noktalar
- SRE, operasyon ve altyapı işlerine yazılım mühendisliğini uygular.
- Güvenilirlik, kullanıcıların deneyimini yansıtan SLI ve SLO'larla ölçülür.
- Hata bütçesi, yeni sürümlerin hızı ile kararlılık arasında denge kurar.
- SRE ekipleri, otomatikleştirilebilen tekrarlayan elle iş olan toil'u azaltmak için çalışır.
- Suçlayıcı olmayan postmortem'ler olayları derslere ve takip düzeltmelerine dönüştürür.
Sık sorulan sorular
SRE ile DevOps arasındaki fark nedir?
DevOps, geliştirme ile operasyonu bir araya getiren bir kültür ve pratikler bütünüdür. SRE ise bu fikirleri uygulamaya koymanın belirli bir yoludur: özel mühendisler, SLO adı verilen güvenilirlik hedefleri ve sürümlerin ne zaman yavaşlatılacağına karar veren hata bütçeleri içerir.
Site reliability mühendisi ne yapar?
Site reliability mühendisi dağıtım ve ölçekleme için otomasyon geliştirir, izleme ve uyarıları kurar, olaylara müdahale etmek için nöbet rotasyonuna katılır ve postmortem'lere liderlik eder. Ayrıca yeni özelliklerin baştan güvenilir ve gözlemlenebilir olması için tasarımlar konusunda geliştiricilerle çalışır.
SRE'de toil nedir?
Toil, bir hizmetin büyüklüğüyle birlikte artan ve kalıcı bir değeri olmayan, takılan işleri elle yeniden başlatmak gibi elle yapılan, tekrarlayan operasyonel iştir. SRE ekipleri toil'u izler ve genellikle zamanlarının yaklaşık yarısında sınırlar; böylece geri kalanı onu ortadan kaldıran mühendislik işine gider.
Sık karşılaştırılanlar
İlgili sayfalar
- DevOpsDevOps ve Bulut, s. 13DevOps, yazılım geliştirme ile BT operasyonlarını birleştirerek yazılımın daha hızlı ve güvenilir sunulmasını sağlayan bir kültür ve pratikler bütünüdür.
- SLODevOps ve Bulut, s. 50SLO, bir hizmetin ölçülebilir güvenilirlik hedefidir (örneğin 30 günde isteklerin %99,9'unun başarılı olması) ve yeterince güvenilirin ne olduğunu belirler.
- PostmortemDevOps ve Bulut, s. 40Postmortem, bir olaydan sonra yazılan; ne olduğunu, neden olduğunu ve tekrarlanmaması için ekibin neyi değiştireceğini açıklayan yazılı bir incelemedir.
- GözlemlenebilirlikDevOps ve Bulut, s. 22Gözlemlenebilirlik, çalışan bir yazılım sisteminin içinde olup biteni log, metrik ve trace verilerini toplayıp analiz ederek anlayabilme yeteneğidir.
- Chaos EngineeringDevOps ve Bulut, s. 8Chaos engineering, bir sisteme sunucu çökertmek gibi kasıtlı arızalar enjekte ederek sistemin beklendiği gibi çalışmaya devam ettiğini doğrulama pratiğidir.
- Yüksek ErişilebilirlikYazılım Mimarisi, s. 48Yüksek erişilebilirlik, bir sistemin, çoğunlukla yedeklilikle tek hata noktalarını ortadan kaldırarak neredeyse her zaman çalışır durumda kalabilmesidir.
- SLADevOps ve Bulut, s. 49SLA (service level agreement), sağlayıcının müşterilerine %99,9 erişilebilirlik gibi hizmet seviyesi ve karşılanmazsa ne olacağına dair verdiği taahhüttür.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin