Skip to main content
DevOps

Site Reliability Engineering (SRE): Güvenilir Sistemler İnşa Etme

Mart 14, 2026 8 dk okuma 17 views Raw
Site reliability engineering ve monitoring dashboard
İçindekiler

Site Reliability Engineering (SRE) Nedir?

Site Reliability Engineering (SRE), Google tarafından 2003 yılında ortaya konulan ve yazılım mühendisliği yaklaşımlarını IT operasyonlarına uygulayan bir disiplindir. Google'ın VP of Engineering'i Ben Treynor Sloss tarafından kurulan bu yaklaşım, "bir yazılım mühendisine operasyon sorunlarını çözmesini söylediğinizde ne olur?" sorusunun yanıtıdır.

Geleneksel operasyon ekipleri, sistemlerin çalışır durumda kalmasını sağlamak için manuel süreçlere ve reaktif müdahalelere dayanıyordu. SRE ise bu sorunları otomasyon, ölçüm ve mühendislik prensipleri ile çözmeyi hedefler. Bir SRE ekibi, zamanının en az yüzde ellisini yazılım geliştirmeye ayırır; kalan zaman operasyonel görevlere ayrılır.

2026 yılında SRE, sadece büyük teknoloji şirketlerinin değil, her ölçekteki organizasyonun benimsediği bir yaklaşım haline gelmiştir. Dijital hizmetlerin kesintisiz çalışması iş sürekliliği açısından kritik olduğundan, güvenilirliği sistematik olarak yönetmek artık bir tercih değil zorunluluktur.

Google'ın SRE Prensipleri

Google, SRE yaklaşımının temelini oluşturan bir dizi prensip belirlemiştir. Bu prensipler, güvenilir sistemler inşa etmek isteyen her organizasyon için yol göstericidir.

Risk Kabul Edilebilir

Yüzde yüz kullanılabilirlik hedefi, hem teknik olarak neredeyse imkansızdır hem de ekonomik olarak anlamlı değildir. SRE, belirli bir düzeyde başarısızlığın kabul edilebilir olduğunu savunur. Önemli olan, bu başarısızlık düzeyinin bilinçli olarak belirlenmesi ve yönetilmesidir.

Toil Azaltılmalı

Toil (angarya iş), tekrarlayan, manuel, otomatize edilebilir, taktik nitelikli, kalıcı değer üretmeyen ve sistemin büyümesiyle orantılı olarak artan operasyonel görevlerdir. SRE ekipleri, toil'i sürekli olarak tespit edip otomatize ederek ortadan kaldırmayı hedefler.

Monitoring Her Şeydir

Gözlemlenemeyen bir sistem güvenilir sayılamaz. SRE, kapsamlı monitoring, logging ve tracing altyapısını zorunlu kılar. Sistemin durumunu gerçek zamanlı olarak anlamak, proaktif müdahale için temel oluşturur.

Otomasyon Birinci Önceliktir

İnsanlar hata yapar ve tutarsızdır. SRE, mümkün olan her sürecin otomatize edilmesini savunur. Otomasyon hem hızı artırır hem de insan kaynaklı hataları azaltır.

Değişiklik Yönetimi

Sistem arızalarının büyük çoğunluğu değişikliklerden kaynaklanır. SRE, değişiklik yönetimini sıkı kontroller altına alır. Kademeli yayılım (progressive rollout), canary deployment ve otomatik rollback mekanizmaları, değişiklik riskini minimize eder.

SLI, SLO ve SLA Kavramları

SRE'nin en temel kavramları, hizmet güvenilirliğini ölçmek ve yönetmek için kullanılan üç metrik kategorisidir.

SLI (Service Level Indicator)

SLI, bir hizmetin performansını ölçen spesifik metriklerdir. İyi bir SLI, kullanıcı deneyimini doğrudan yansıtmalıdır. Yaygın SLI örnekleri şunlardır:

  • Kullanılabilirlik (Availability): Başarılı isteklerin toplam isteklere oranı
  • Gecikme (Latency): İsteklerin yanıt süresi (genellikle p50, p95, p99 percentile'ları)
  • Hata Oranı (Error Rate): Hata ile sonuçlanan isteklerin oranı
  • Verimlilik (Throughput): Birim zamanda işlenen istek sayısı
  • Doğruluk (Correctness): Doğru sonuç döndüren isteklerin oranı

SLO (Service Level Objective)

SLO, bir SLI için belirlenen hedef değerdir. SLO'lar, ekibin güvenilirlik hedefini somutlaştırır ve karar alma süreçlerine yön verir. SLO örnekleri:

  • Kullanılabilirlik SLO: Aylık kullanılabilirlik oranı en az yüzde 99.9 olmalıdır
  • Gecikme SLO: İsteklerin yüzde 99'u 200 milisaniyenin altında yanıtlanmalıdır
  • Hata Oranı SLO: Saatlik hata oranı yüzde 0.1'in altında kalmalıdır

SLA (Service Level Agreement)

SLA, müşterilerle yapılan ve SLO'ların karşılanamaması durumunda uygulanacak yaptırımları içeren resmi anlaşmadır. SLA'lar genellikle SLO'lardan daha gevşek hedefler içerir çünkü ihlal durumunda finansal veya hukuki sonuçlar doğurur.

SLI, SLO ve SLA İlişkisi

KavramTanımÖrnekKim Belirler?
SLIÖlçülen metrikBaşarılı HTTP yanıt oranıMühendislik ekibi
SLOHedef değer%99.9 kullanılabilirlikMühendislik + Ürün ekibi
SLAMüşteri taahhüdü%99.5 (ihlalde %10 kredi)İş birimi + Hukuk

Error Budget (Hata Bütçesi)

Error budget, SRE'nin en yenilikçi kavramlarından biridir. Bir hizmetin SLO'suna göre ne kadar hataya "hakkı" olduğunu belirler. Örneğin, aylık yüzde 99.9 kullanılabilirlik SLO'su olan bir hizmet, ayda yaklaşık 43 dakika kesintiye izin verir. Bu 43 dakika, o hizmetin error budget'ıdır.

Error Budget Nasıl Kullanılır?

Error budget, güvenilirlik ile yenilik arasındaki dengeyi yönetmek için güçlü bir araçtır:

  • Bütçe yeterli olduğunda: Ekip yeni özellikler geliştirmeye ve riskli değişiklikler yapmaya devam edebilir
  • Bütçe azaldığında: Ekip daha temkinli olmalı, değişiklik hızını yavaşlatmalıdır
  • Bütçe tükendiğinde: Yeni özellik geliştirme durdurulur ve tüm çaba güvenilirliği artırmaya yönlendirilir

Error Budget Politikası

Etkili bir error budget politikası aşağıdaki unsurları içermelidir:

  1. Error budget tükendiğinde hangi aksiyonların alınacağı (feature freeze, code freeze)
  2. Error budget'ın ne zaman sıfırlanacağı (aylık, çeyreklik)
  3. Planlı bakımların error budget'a dahil olup olmayacağı
  4. Harici bağımlılıklardan kaynaklanan kesintilerin nasıl ele alınacağı
  5. Error budget ihlallerinin üst yönetime nasıl raporlanacağı

Toil Azaltma

Toil, SRE'nin en büyük düşmanıdır. Google'ın tavsiyesi, bir SRE ekibinin zamanının en fazla yüzde ellisini toil'e harcamasıdır. Kalan yüzde elli, mühendislik çalışmalarına (otomasyon, araç geliştirme, sistem iyileştirme) ayrılmalıdır.

Toil'in Özellikleri

Bir görevin toil sayılması için aşağıdaki özelliklerden birkaçını taşıması gerekir:

  • Manuel: İnsan müdahalesi gerektirir
  • Tekrarlayan: Düzenli olarak yapılması gerekir
  • Otomatize edilebilir: Bir betik veya araçla yapılabilir
  • Taktik: Stratejik değil, anlık müdahale gerektirir
  • Kalıcı değer üretmeyen: Hizmetin durumunu değiştirmez, sadece mevcut durumu korur
  • Doğrusal büyüyen: Hizmet büyüdükçe iş miktarı artar

Toil Azaltma Stratejileri

  • Tekrarlayan görevleri tanımlayın ve otomasyon önceliği belirleyin
  • Toil'i ölçün (haftalık/aylık toil saatleri takibi)
  • Self-service araçlar geliştirin
  • Runbook'ları otomatize edin
  • Self-healing mekanizmaları oluşturun

Monitoring ve Alerting

Etkili monitoring, SRE'nin temel taşıdır. Doğru yapılandırılmış bir monitoring sistemi, sorunları kullanıcılardan önce tespit etmenizi ve proaktif müdahale etmenizi sağlar.

Monitoring'in Üç Sütunu

  • Metrikler (Metrics): Sayısal ölçümler (CPU kullanımı, istek sayısı, hata oranı). Prometheus, Datadog ve Grafana bu alanda öne çıkan araçlardır.
  • Loglar (Logs): Olayların detaylı kayıtları. ELK Stack (Elasticsearch, Logstash, Kibana), Loki ve Splunk yaygın log yönetimi araçlarıdır.
  • İzler (Traces): Dağıtık sistemlerde bir isteğin tüm servisler arasındaki yolculuğu. Jaeger, Zipkin ve OpenTelemetry tracing çözümleri sunar.

Alerting Best Practice'leri

Alerting, monitoring'in aksiyona dönüşen kısmıdır. Kötü yapılandırılmış alertler, alarm yorgunluğuna (alert fatigue) yol açar ve gerçek sorunların gözden kaçmasına neden olur.

  • Semptom bazlı alerting: Altta yatan nedenleri değil, kullanıcıyı etkileyen semptomları alert'e bağlayın
  • Aksiyona dönüştürülebilir: Her alert, net bir aksiyon gerektirmelidir
  • Önceliklendirilmiş: Kritik, uyarı ve bilgi seviyelerini ayırın
  • Gürültü azaltma: Aynı sorundan kaynaklanan birden fazla alert'i gruplandırın
  • Düzenli gözden geçirme: Aylık olarak alert'leri gözden geçirin ve gereksiz olanları kaldırın

Incident Management (Olay Yönetimi)

Her ne kadar proaktif önlemler alsak da, arızalar kaçınılmazdır. SRE, arızaları hızlı ve etkili bir şekilde yönetmek için yapılandırılmış bir incident management süreci tanımlar.

Incident Seviyeleri

SeviyeTanımYanıt SüresiÖrnek
SEV-1Kritik, geniş çaplı etki5 dakikaAna hizmet tamamen çalışmıyor
SEV-2Ciddi, önemli etki15 dakikaPerformans ciddi düşüş, kısmi kesinti
SEV-3Orta, sınırlı etki1 saatBir özellik çalışmıyor ama workaround var
SEV-4Düşük, minimal etki4 saatKozmetik sorun, düşük trafikli özellik

Incident Yönetim Rolleri

Etkili bir incident yönetimi, net rollerin tanımlanmasını gerektirir:

  • Incident Commander (IC): Olayın genel koordinasyonunu yönetir, kararları verir
  • Operations Lead: Teknik müdahaleyi yönetir
  • Communications Lead: Paydaşlara ve müşterilere iletişimi sağlar
  • Subject Matter Experts: Sorunun kökenini araştıran uzmanlar

Incident Yaşam Döngüsü

  1. Tespit: Monitoring sistemi veya kullanıcı bildirimi ile sorun tespit edilir
  2. Triyaj: Sorunun ciddiyeti ve etkisi değerlendirilir, seviye belirlenir
  3. Müdahale: Uygun ekipler harekete geçer, ilk müdahale yapılır
  4. Çözüm: Sorunun kök nedeni bulunur ve düzeltilir
  5. İyileşme: Sistem normal durumuna döndürülür, veriler doğrulanır
  6. Postmortem: Olay sonrası analiz yapılır ve öğrenilen dersler belgelenir

Postmortem Kültürü

Postmortem, bir olay sonrasında yapılan detaylı analizdir. SRE'nin en değerli pratiklerinden biri olan postmortem, suçlama değil öğrenme odaklı olmalıdır. Blameless (suçsuz) postmortem kültürü, ekip üyelerinin hatalarını açıkça paylaşmasını ve organizasyonun bu hatalardan öğrenmesini sağlar.

Postmortem Şablonu

Etkili bir postmortem aşağıdaki bölümleri içermelidir:

  • Özet: Olayın kısa açıklaması, etki süresi ve kapsamı
  • Zaman Çizelgesi: Olayın başlangıcından çözümüne kadar tüm adımların kronolojik sıralaması
  • Kök Neden Analizi: Olayın gerçek nedeninin detaylı analizi (5 Neden tekniği kullanılabilir)
  • Etki: Kullanıcı etkisi, gelir kaybı, SLO etkisi
  • Öğrenilen Dersler: Ne iyi gitti, ne kötü gitti, nereden şanslı çıktık
  • Aksiyon Kalemleri: Benzer olayları önlemek için yapılacak somut görevler, sahipleri ve son tarihleri

Kapasite Planlaması

Kapasite planlaması, hizmetin gelecekteki talepleri karşılayabilmesi için gerekli kaynakların önceden belirlenmesi sürecidir. SRE, kapasite planlamasını proaktif bir mühendislik görevi olarak ele alır.

Kapasite Planlaması Adımları

  1. Mevcut kullanımı ölçün: CPU, bellek, disk, ağ kullanımını sürekli izleyin
  2. Büyüme trendlerini analiz edin: Geçmiş verilerden büyüme oranını hesaplayın
  3. Projeksiyon yapın: Mevcut büyüme oranına göre gelecek kaynak ihtiyaçlarını tahmin edin
  4. Yük testi yapın: Sistemin mevcut kapasitesinin sınırlarını belirleyin
  5. Tampon hesaplayın: Beklenmedik trafik artışları için yeterli tampon bırakın
  6. Ölçekleme stratejisi belirleyin: Dikey veya yatay ölçekleme, otomatik ölçekleme kuralları

SRE vs. DevOps

SRE ve DevOps sıklıkla karıştırılan ancak birbirini tamamlayan yaklaşımlardır. DevOps bir kültür ve felsefeyi temsil ederken, SRE bu felsefenin somut bir uygulamasıdır.

ÖzellikSREDevOps
OdakGüvenilirlik ve performansGeliştirme ve operasyon işbirliği
KökenGoogle (2003)Topluluk hareketi (2008)
YaklaşımPreskriptif (kuralcı)Normatif (ilke bazlı)
MetriklerSLI, SLO, Error BudgetDORA metrikleri
Ekip YapısıAyrı SRE ekibiÇapraz fonksiyonel ekipler
OtomasyonToil azaltma odaklıCI/CD odaklı

Pratikte birçok organizasyon, hem DevOps hem de SRE pratiklerini birlikte uygular. DevOps kültürü organizasyonun tamamına yayılırken, SRE pratikleri güvenilirlik gereksinimleri yüksek olan hizmetlere uygulanır.

Organizasyonunuzda SRE Uygulamaya Başlama

SRE'yi organizasyonunuzda uygulamaya başlamak için aşağıdaki adımları izleyebilirsiniz:

Aşama 1: Temelleri Atma

  • Kritik hizmetlerinizi belirleyin ve önceliklendirin
  • Her hizmet için SLI'ları tanımlayın
  • Gerçekçi SLO'lar belirleyin
  • Temel monitoring altyapısını kurun
  • On-call rotasyonu oluşturun

Aşama 2: Süreçleri Olgunlaştırma

  • Error budget politikası oluşturun
  • Incident management sürecini tanımlayın
  • Postmortem kültürünü yerleştirin
  • Toil ölçümüne başlayın
  • Runbook'ları oluşturun ve güncel tutun

Aşama 3: Mühendislik Yatırımları

  • Toil azaltma projeleri başlatın
  • Otomasyon araçları geliştirin
  • Chaos engineering pratiklerini benimseyin
  • Kapasite planlaması süreçlerini oluşturun
  • SRE ekibini büyütün ve uzmanlaştırın

Aşama 4: Sürekli İyileştirme

  • SLO'ları düzenli olarak gözden geçirin ve güncelleyin
  • Postmortem aksiyonlarının takibini sağlayın
  • SRE pratiklerini daha fazla hizmete yayın
  • Organizasyonel öğrenmeyi teşvik edin
  • Endüstri trendlerini takip edin ve uyum sağlayın

Sonuç

Site Reliability Engineering, modern yazılım organizasyonlarının güvenilir, ölçeklenebilir ve sürdürülebilir sistemler inşa etmesi için vazgeçilmez bir disiplindir. SLI, SLO ve error budget kavramları, güvenilirlik ile yenilik arasındaki dengeyi ölçülebilir ve yönetilebilir hale getirir. Toil azaltma ve otomasyon, ekiplerin stratejik çalışmalara odaklanmasını sağlar.

SRE yolculuğuna başlarken, mükemmeliyetçilik yerine pragmatizmi tercih edin. Küçük adımlarla başlayın, en kritik hizmetlerinize odaklanın ve sürekli iyileştirme kültürünü yerleştirin. Blameless postmortem'ler, organizasyonunuzun hatalardan öğrenmesini ve aynı hataları tekrar etmemesini sağlayacaktır. Güvenilirlik bir hedefe ulaşmak değil, sürekli devam eden bir yolculuktur.

Bu yazıyı paylaş