Değişim Sonrası Doğrulama Ritmi: Smoke, SLO ve Rollback
OPSLeadership
Değişim Sonrası Doğrulama Ritmi: Smoke, SLO ve Rollback
incident logleadershipoperationsrelease
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.
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:
Sistem trafik alıyor mu? (smoke)
SLO’lar normale yakın mı? (gözlem)
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...
Geri bildiriminiz için teşekkürler!
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ır0 karakter
Yorumlar
Sunucu Taraflı AI Moderasyon
Yorumlar sunucuda yapay zeka ile denetlenir ve kalıcı olarak saklanır.
?
0/2000
Sunucu taraflı AI denetim
Henüz yorum yok. İlk siz yapın!
✉️Ü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 iyisiSadece 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.