İçeriğe Atla
Mustafa Erbay
Kariyer · 8 dk okuma · görüntülenme Read in English

Değişim Sonrası Doğrulama Ritmi: Smoke, SLO ve Rollback

Yayın bitti sanmak incident’ı çağırır. Değişiklik sonrası doğrulamayı ritme bağlamak için pratik çerçeve: hızlı smoke checks, SLO gözlemi ve rollback kriteri.

100%

Kurumsal platformlarda en pahalı cümle şudur: “Deploy bitti.”
Çünkü çoğu incident, deploy’un yapılmasından değil; deploy sonrası doğrulamanın “kişisel refleks” olarak kalmasından doğar. Doğrulama ritmi yoksa şu olur:

  • değişiklik gerçek kullanıcı trafiğine değdiğinde sürpriz çıkar,
  • hata sinyali geç görülür,
  • rollback kararı tartışmaya dönüşür.

Bu yazıda değişim sonrası doğrulamayı, ekiplerin gerçekten uygulayabileceği kadar sade bir ritme bağlayan bir çerçeve paylaşıyorum.

Amaç: “Yayın”ı tanımla

Yayın, sadece artefact’ın üretime çıkması değildir. Yayın, şu üç sorunun cevabıdır:

  1. Sistem trafik alıyor mu? (smoke)
  2. SLO’lar normale yakın mı? (gözlem)
  3. Bozulursa geri dönüş kararımız net mi? (rollback)

3 katmanlı doğrulama ritmi

Katman 1 — 2–5 dakikalık smoke checks

Hedef: en temel kırılmaları hızlı yakalamak.

  • kritik endpoint’ler 200/ok mu?
  • auth/SSO akışı çalışıyor mu?
  • temel bağımlılıklar (DB, cache, queue) sağlıklı mı?
  • trafik LB üzerinden doğru node’lara dağılıyor mu?

Smoke, “derin analiz” değil; “bariz kırık var mı?” kontrolüdür.

Katman 2 — 15–30 dakikalık SLO gözlemi

Hedef: kullanıcı etkisini ölçmek.

  • error rate (5xx / app error)
  • p95/p99 latency
  • saturation (CPU, mem, conntrack, DB pool)
  • kritik queue/backlog metrikleri

Bu katmanda kritik olan şey baseline: “normal” değerleri bilmiyorsan, karar tartışmaya döner.

Katman 3 — 24 saatlik stabilite penceresi (hafif)

Hedef: “yavaş bozulan” sorunları yakalamak.

  • memory leak / fd leak
  • cache davranışı (stampede, eviction)
  • trafik paterni değişince ortaya çıkan bug

Bu aşama için tam zamanlı nöbet gerekmiyor; ama dashboard ve alarm eşiği doğru olmalı.

Rollback kriterini baştan yaz

Rollback kararı incident anında verilirse, ekip psikolojisi ve iletişim baskısı karar kalitesini düşürür. Basit bir kural seti:

  • 10 dakika içinde SLO belirgin bozuluyorsa → rollback
  • kritik akış çalışmıyorsa → rollback
  • veri tutarlılığı riski varsa → “ileri düzeltme” yerine rollback

Sahada çalışan küçük otomasyonlar

Doğrulamayı kişiden bağımsız kılmak için küçük ama etkili pratikler:

  • deploy sonrası otomatik smoke job (CI/CD veya runbook script)
  • canary dashboard link’i (tek tık)
  • “rollback komutu”nun dokümante olması (tek komut olmasa bile net adımlar)
  • change ticket’a otomatik metrik snapshot ekleme (önce/sonra değil; sadece kanıt)

İletişim: tek paragraf format

Değişiklik sonrası kanıt odaklı tek paragraf iyi çalışır:

  • Değişiklik: ne çıktı?
  • Doğrulama: hangi smoke check + hangi metrik penceresi?
  • Sonuç: SLO normal mi, risk var mı?
  • Plan: izleme süresi ve rollback kriteri

Sonuç

Değişim sonrası doğrulama bir “iyi niyet” değil, operasyonel bir disiplindir. Smoke + SLO + rollback kriteri üçlüsünü ritme bağladığında; MTTR düşer, tartışma azalır ve yayın kültürü hızlanırken güven de artar. Üretimde hedef; sadece yeni özellik çıkarmak değil, çıktıktan sonra gerçekten çalıştığını kanıtlamaktır.

Paylaş:

Bu yazı faydalı oldu mu?

Yükleniyor...

Bu yazı nasıldı?

Sıkça Sorulanlar

Bu makale ile ilgili okurların sorduğu yaygın sorular.

Smoke checkleri otomatikleştirmek için hangi araçları ve adımları öneriyorsunuz?
Ben genellikle CI/CD pipeline’ımda basit bir Bash script’i ile health‑endpoint’leri curl‑la çağırıp HTTP 200 bekliyorum. Daha karmaşık senaryolar için Postman/Newman ya da k6 gibi load‑test araçlarını tercih ediyorum; bu sayede auth, SSO ve DB‑cache bağlantılarını aynı anda doğrulayabiliyoruz. Script’i GitHub Actions ya da GitLab CI’de hızlı çalışacak bir job olarak tanımlıyorum, sonuçları Slack webhook’u üzerinden ekip üyelerine anında gönderiyorum. Başarısız bir smoke adımı pipeline’ı durdurur ve rollback tetiklenir, böylece “deploy bitti” mesajı yalnızca sağlıklı bir geçişi işaret eder.
SLO gözlemi sırasında baseline belirlemek zor olduğunda ne yapmalıyım?
Geçmiş veri eksikse, ben ilk dağıtımda bir “observability warm‑up” periyodu başlatırım; kısa bir pencere içinde error‑rate, p95 latency ve CPU‑saturation gibi metrikleri Grafana’da toplarım ve bu değerleri yeni bir baseline olarak kaydederim. Aynı zamanda aynı saat dilimindeki geçmiş trafik örneklerini (örneğin hafta içi 09:00‑11:00) karşılaştırarak mevsimsel dalgalanmaları hesaba katarım. Bu geçici baseline, sonraki dağıtımlarda otomatik alarm eşiklerini oluşturur; eğer alarm sık sık tetiklenirse eşikleri yeniden ayarlar, aksi takdirde gerçek bir sapma olduğunda hızlıca müdahale edebilirim.
Rollback kararını hızlı alabilmek için hangi kriterleri önceden tanımlamalıyım?
Ben rollback için üç kesin kriter belirliyorum: 1) Smoke aşamasında kritik endpoint’in 200 OK dışına çıkması, 2) SLO gözleminde error‑rate’in ya da p99 latency’nin baseline’a göre belirgin biçimde bozulması, 3) Sistem kaynaklarında (CPU, mem) yüksek saturasyonun bir süre boyunca sürmesi. Bu kriterleri CI pipeline’ına ve alerting sistemine (PagerDuty/Slack) entegre ediyorum, böylece eşik aşıldığında otomatik “rollback trigger” job’u çalışır. Ayrıca rollback komutunu tek bir git tag’iyle (örneğin `previous‑stable`) bağlayarak, bir iki komutla eski versiyona dönüşü garanti altına alıyorum.
24 saatlik stabilite penceresini hafif tutarken kritik sorunları kaçırmamak için hangi metrikleri izlemelisiniz?
Bu periyotta ben hafif ama etkili bir izleme seti kurarım: memory‑usage trendi (özellikle artan RSS), file‑descriptor count, cache‑eviction rate ve queue‑backlog uzunluğu. Ayrıca “slow‑query” oranı ve GC pause time gibi uygulama‑içı metrikleri Prometheus‑a push ederim. Bu metrikler için makul bir tolerans bandı tanımlayıp, alarmı yalnızca bu bandın dışına çıkınca tetiklemek, gereksiz gürültüyü azaltır. Günlük özet raporunu Slack’e göndererek ekip üyelerinin farkındalığını korur, ama gerçek bir anormallik tespit edildiğinde aynı anda PagerDuty’ye yönlendirme yaparım.
ME

Mustafa Erbay

Sistem Mimarisi · Network Uzmanı · Altyapı, Güvenlik ve Yazılım

2006'dan bu yana sistem mimarisi, network, sunucu altyapıları, büyük yapıların kurulumu, yazılım ve sistem güvenliği ekseninde çalışıyorum. Bu blogda sahada karşılığı olan teknik deneyimlerimi paylaşıyorum.

Kişisel Notlar

Bu notlar sadece sizde saklanır. Tarayıcınızda yerel olarak tutulur.

Hazır 0 karakter

Yorumlar

Sunucu Taraflı AI Moderasyon

Yorumlar sunucuda yapay zeka ile denetlenir ve kalıcı olarak saklanır.

?
0/2000

Sunucu taraflı AI denetim

✉️ Ücretsiz · Spam yok · İstediğin an çık

Yeni yazılardan haberdar olun

Yeni içerikler ve teknik notlar e-postanıza gelsin.

  • 📌
    Haftanın en iyisi Sadece okumaya değer tek yazı
  • 🔧
    Alet çantası Bu hafta kullandığım araçlar
  • 🧠
    Perde arkası Blog'a girmeyen notlar

Spam yapmıyoruz. İstediğiniz zaman ayrılabilirsiniz. · Sadece Umami (self-hosted, Google yok) ile takip.

Okuma İstatistikleriniz

0

Yazı Okundu

0dk

Okuma Süresi

0

Gün Serisi

-

Favori Kategori

İlgili Yazılar