Yan yana
DevOpsvsSite Reliability Engineering
DevOps ile SRE arasındaki fark nedir?
Güncellendi 2 dk okuma6 fark
Kısaca
DevOps, hızlı ve güvenli yayın için geliştirme ile operasyonu birleştiren kültürdür; SRE ise Google'ın üretimi güvenilirlik hedefleriyle işletme pratiğidir.
DevOps
Geliştirme ve Operasyon
DevOps, 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.
DevOps sayfasını okuSite Reliability Engineering
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 sayfasını okuDevOps ve Site Reliability Engineering karşılaştırması
| Özellik | DevOps | Site Reliability Engineering |
|---|---|---|
| Nedir | Bir kültür ve uygulamalar bütünü | Yöntemleri tanımlı bir disiplin ve iş rolü |
| Kökeni | 2000'lerin sonundaki DevOps hareketi | Google, 2003 |
| Asıl hedef | Değişiklikleri hızlı ve güvenle teslim etmek | Servisleri üzerinde anlaşılmış bir seviyede güvenilir tutmak |
| Başarı nasıl ölçülür | Dağıtım sıklığı ve teslim süresi gibi teslimat ölçümleri | SLO'lar, hata bütçeleri ve olay verileri |
| Tipik iş | CI/CD hatları, otomasyon, kod olarak altyapı | Nöbet, olay müdahalesi, kapasite planlama, angarya işleri azaltmak |
| İlişki | Geniş fikir | O fikri uygulamaya dökmenin somut bir yolu |
Fark, açıklamalı
DevOps, 2000'lerin sonunda, geliştiricilerin kodu ayrı bir operasyon ekibine duvarın üzerinden atmasına bir tepki olarak doğdu. Ortak sahiplenme, otomasyon, sürekli entegrasyon ve teslimat, kod olarak altyapı gibi uygulamalardan oluşan bir kültürdür ve değişiklikleri sık ve güvenilir biçimde teslim etmeyi hedefler. Site Reliability Engineering ya da kısaca SRE ise 2003'te Google'da, Ben Treynor Sloss üretim sistemlerini işletme işini yazılım mühendislerine verdiğinde başladı.
Fark, genişliğe karşı ayrıntıdır. DevOps hedefleri ve alışkanlıkları tarif eder ama bunların nasıl ölçüleceğini belirlemez. SRE ise somut araçlar getirir: hizmet seviyesi hedefleri (SLO) bir servisin ne kadar güvenilir olması gerektiğini, hata bütçesi (error budget) yayınlar yavaşlamadan önce ne kadar güvenilmezliğin kabul edilebileceğini belirler; mühendislerin otomasyona vakit bulması için angarya işler (toil) sınırlanır ve olaylar suçlamasız postmortem'lerle kapanır.
Google bu ilişkiyi "class SRE implements interface DevOps" diye özetler: SRE, DevOps fikirlerini uygulamanın yollarından biridir. Birçok şirkette roller iç içe geçer; platform ya da DevOps ekipleri hatları (pipeline) ve araçları kurarken SRE'ler en kritik servislerin güvenilirliğine, nöbetine, kapasitesine ve olay müdahalesine odaklanır.
Sık yapılan bir yanlış, DevOps'un bir unvan ya da bir araç seti olduğu düşüncesidir. CI/CD araçları satın almak ya da operasyon ekibinin adını değiştirmek, geliştirme ile operasyonun birlikte çalışma biçimini değiştirmez; SRE de yeni bir isim almış operasyon değildir: elle yapılan işleri ortadan kaldıran yazılımı mühendislerin yazmasına dayanır.
Hangisini kullanmalısınız?
DevOps şu durumlarda doğru seçim:
- Geliştirme ile operasyonun birlikte çalışma biçimini değiştirmek istiyorsunuz.
- Asıl sorununuz yavaş ya da riskli yayınlar.
- Birçok ekibin paylaştığı hatlar ve otomasyon kuruyorsunuz.
Site Reliability Engineering şu durumlarda doğru seçim:
- Servisleriniz kritik ve güvenilirliğin net hedeflere ihtiyacı var.
- Düzenli bir nöbet ve olay süreci gerekiyor.
- Yeni özelliklerle kararlılık arasında hata bütçesi gibi verilere dayanarak karar vermek istiyorsunuz.
Sık sorulan sorular
SRE bir tür DevOps mu?
Google'ın ifadesiyle SRE, DevOps'u gerçekleştirir: DevOps ilkelerini üretim ortamını işletmeye uygulamanın somut ve mühendislik odaklı yollarından biridir.
Bir şirketin ikisine de ihtiyacı var mı?
Ayrı ekipler olarak şart değil. Küçük şirketler çoğu zaman ayrı SRE'ler olmadan DevOps uygular; büyük şirketler en kritik servisleri için SRE ekipleri ekler.
Hata bütçesi nedir?
Bir SLO'nun izin verdiği güvenilmezlik miktarıdır. Yüzde 99,9 erişilebilirlik hedefinde bütçe ayda yaklaşık 43 dakikalık kesintidir; bu süre tükendiğinde ekip yeni özellikler çıkarmadan önce kararlılık üzerinde çalışır.