Article
AI ile Incident Riski: Prod Hata Sürecini Tek Node'da Topla
AI hızlı değişiklikler incident riskini artırır. Alios'ta prod hata sürecini incident node, timeline ve postmortem takibiyle tek yerde nasıl toplayacağınızı öğrenin.
AI ile Incident Riski: Prod Hata Sürecini Tek Node'da Topla

AI araçlarıyla geliştirme hızlandığında deploy sıklığı da artıyor. Günde bir deploy yerine günde iki, üç, bazen daha fazla. Her deploy potansiyel incident noktası.
Bu matematik basit: deploy sıklığı arttıkça, her deploy'un kalitesi sabit kalsa bile, toplam incident olasılığı artıyor. AI kodu hızlı üretiyor ama prodüksiyon ortamını, mevcut sistemin inceliklerini, edge case'lerin tamamını bilmiyor. Hızla yazılan ve hızla deploy edilen kod bazen prodüksiyonda beklenmedik şekilde davranıyor.
Incident önlenemez. Ama yönetilebilir. Yönetimin kalitesi ise büyük ölçüde koordinasyonun ne kadar hızlı kurulduğuna bağlı.
Hızlı Değişiklikler Incident Riskini Nasıl Artırıyor?
AI destekli geliştirmede incident riskini artıran üç dinamik var.
Test penceresi daralıyor. Kod daha hızlı yazılıyor ama test süresi aynı kalıyor. Zaman baskısında test adımları kısaltılıyor, staging'de görülmeyen sorunlar prodüksiyona taşınıyor.
Bağlam eksikliği birikimi. AI üretilen kod parçaları ayrı ayrı doğru ama entegrasyon noktalarında sorun çıkarabiliyor. Birden fazla AI üretilen modülün aynı deploy'da buluşması beklenmedik etkileşimler yaratıyor.
Rollback bilgisi dağılıyor. Hızlı deploy kültüründe "bu çalışmazsa nasıl geri döneriz?" sorusu deploy öncesi sorulmuyor. Incident başladığında rollback adımları bilinmiyor, zaman kaybediliyor.
Koordinasyon gecikmesi. Incident başladığında bilgi farklı kanallara dağılıyor: Slack mesajları, telefon görüşmeleri, ekran paylaşımları. Kim ne buluyor, kim ne deniyor, ne zaman ne değişti — bunlar kayıt altına alınmıyor. Kriz yönetilirken koordinasyon da yapılmaya çalışılıyor.
Alios'ta Incident Node Şablonu
Her incident için tek bir node açılıyor. Bu node incident boyunca tek merkez — tüm bilgi, tüm kararlar, tüm timeline burada yaşıyor. Slack'e paralel mesaj atılıyor ama kayıt node'da tutuluyor.
📌 INCIDENT — [INC-Numara]: [Kısa tanım]
Durum: Aktif / Çözüldü / Postmortem Bekleniyor / Kapatıldı
Öncelik: P1 / P2 / P3 / P4
Başlangıç: [Tarih / Saat]
Tespit: [Nasıl fark edildi — monitoring / kullanıcı / ekip]
Çözüm: [Tarih / Saat — dolduğunda]
Süre: [X saat Y dakika — dolduğunda]
Incident Lead: [İsim]
İletişim Sorumlusu: [İsim]
Teknik Lead: [İsim]
On-call: [İsim]
🔴 ETKİ
Etkilenen sistem: [Hangi servis, modül, sayfa]
Etkilenen özellik: [Ne çalışmıyor]
Kullanıcı etkisi: [Tahmini kullanıcı sayısı]
İş etkisi: [Ödeme alınamıyor / Giriş yapılamıyor vb.]
Şiddet:
[ ] P1 — Tam kesinti, tüm kullanıcılar etkileniyor
[ ] P2 — Kritik özellik çalışmıyor, çözüm yolu yok
[ ] P3 — Önemli özellik bozuldu, geçici çözüm var
[ ] P4 — Küçük sorun, kullanıcılar çoğunlukla ilerleyebiliyor
📋 TİMELİNE
[Saat] — [Olay / Bulgu / Karar — kim, ne yaptı]
🔧 AKSİYONLAR
Aktif:
- [ ] [Aksiyon] — Sorumlu: [İsim] — Deadline: [Saat]
Tamamlanan:
- [x] [Aksiyon] — [İsim] — [Saat]
💬 İLETİŞİM
Müşteri bildirimi: [ ] Gönderildi — [Saat]
Ekip güncellemesi: [ ] Paylaşıldı — [Saat]
Status page: [ ] Güncellendi — [Saat]
🔍 ROOT CAUSE
İlk hipotez: [İlk tahmin — incident başında]
Doğrulanan root cause: [Kanıtlanmış sebep — dolduğunda]
Tetikleyici: [Tam olarak ne tetikledi]
AI bağlantısı: [ ] AI üretilen kod [ ] AI deploy hızı
[ ] İlgisiz
📋 POSTMORTEM
Durum: [ ] Bekleniyor [ ] Yazılıyor [ ] Tamamlandı
Deadline: [Incident kapanışından 48 saat sonra]
Sorumlu: [İsim]Örnek: Baştan Sona Dolu Incident Node
AI üretilen kodun prodüksiyonda incident yarattığı gerçekçi bir senaryo:
📌 INCIDENT — INC-023: Ödeme sayfası 500 hatası
Durum: Kapatıldı
Öncelik: P1
Başlangıç: 18 Mart 2025 — 14:37
Tespit: Datadog alarm — error rate %0.3'ten %12'ye çıktı
Çözüm: 18 Mart 2025 — 16:52
Süre: 2 saat 15 dakika
Incident Lead: Ali
İletişim Sorumlusu: Zeynep
Teknik Lead: Ali
On-call: Mehmet
🔴 ETKİ
Etkilenen sistem: Payment servis — /api/checkout endpoint'i
Etkilenen özellik: Ödeme tamamlama adımı
Kullanıcı etkisi: ~340 kullanıcı ödeme yapamadı
İş etkisi: Ödeme akışı tamamen durdu, checkout
sayfası 500 dönüyordu
Şiddet: [x] P1 — Tam kesinti, tüm kullanıcılar etkileniyor
📋 TİMELİNE
14:37 — Datadog alarm: /api/checkout 500 error rate %12
On-call Mehmet alarmı aldı
14:39 — Mehmet incident node açtı, Ali'ye ping attı
Slack'te #incidents kanalına bilgi verildi
14:42 — Ali incelemeye başladı
Son deploy: 14:15 — Claude ile yazılan
Stripe webhook handler güncellendi
14:48 — İlk hipotez: webhook handler'da tip uyumsuzluğu
Stripe'ın amount alanı integer bekleniyor,
AI kod string döndürüyor
14:51 — Zeynep status page güncelledi:
"Ödeme sisteminde kesinti yaşanıyor,
inceliyoruz"
14:55 — Ali lokal ortamda reproduce etti:
Stripe amount field — AI kod Decimal döndürüyordu,
Stripe integer bekliyor. Validation yoktu.
15:02 — Rollback kararı alındı: 14:15 deploy'u geri alınacak
Mehmet rollback başlattı
15:11 — Rollback tamamlandı
Error rate %0.2'ye düştü — normale döndü
15:14 — Zeynep müşteri bildirimi gönderdi:
"Ödeme sistemi normale döndü, etkilenen
kullanıcılar tekrar deneyebilir"
15:18 — Zeynep status page güncelledi: Çözüldü
15:20 — Ali fix branch açtı: amount field için
tip validasyonu ve dönüşümü eklenecek
16:40 — Fix yazıldı, review edildi
Stripe amount handler: Decimal → integer
dönüşümü + input validation eklendi
16:48 — Staging'de test edildi: Tüm senaryolar geçti
16:52 — Fix deploy edildi, monitoring 10 dakika izlendi
Error rate normal, incident kapatıldı
🔧 AKSİYONLAR
Tamamlanan:
- [x] Incident node açıldı — Mehmet — 14:39
- [x] #incidents kanalı bilgilendirildi — Mehmet — 14:40
- [x] Root cause tespit edildi — Ali — 14:55
- [x] Rollback kararı ve uygulaması — Mehmet — 15:02
- [x] Müşteri bildirimi — Zeynep — 15:14
- [x] Status page güncellendi — Zeynep — 15:18
- [x] Fix yazıldı ve deploy edildi — Ali — 16:52
💬 İLETİŞİM
Müşteri bildirimi: [x] Gönderildi — 15:14
Ekip güncellemesi: [x] Paylaşıldı — 14:40 ve 15:20
Status page: [x] Güncellendi — 14:51 ve 15:18
🔍 ROOT CAUSE
İlk hipotez: Stripe amount field tip uyumsuzluğu
Doğrulanan root cause: Claude ile yazılan webhook
handler, Stripe'ın integer beklediği amount alanını
Decimal döndürüyordu. Input validation yoktu,
hata prodüksiyonda sessizce 500'e dönüştü.
Tetikleyici: 14:15 deploy — webhook handler güncellemesi
AI bağlantısı: [x] AI üretilen kod
Not: Claude prompt'unda Stripe tip gereksinimleri
belirtilmemişti, mevcut sistem bağlamı verilmemişti.Postmortem: Takip Aksiyonlarını Node'lara Bölmek
Incident kapandıktan sonra node "Postmortem Bekleniyor" durumuna geçiyor. 48 saat içinde yazılıyor.
Postmortem'in en kritik kısmı aksiyon planı — ve her aksiyon ayrı node olarak açılıyor. "Postmortem yazıldı" bir görev değil, postmortem'den çıkan her aksiyon ayrı takip birimi.
📋 POSTMORTEM — INC-023
ÖZET
18 Mart 14:37-16:52 arasında ödeme sayfası
P1 incident yaşadı. Claude ile yazılan webhook
handler'da Stripe tip uyumsuzluğu prodüksiyona
geçti. 340 kullanıcı ~2 saat ödeme yapamadı.
Rollback ile kısa sürede çözüldü, fix aynı gün deploy edildi.
ETKİ
Süre: 2 saat 15 dakika
Etkilenen kullanıcı: ~340
İş etkisi: Tahmini X TL ödeme kaybı
ROOT CAUSE
Claude'a Stripe webhook handler yazıldırılırken
amount field'ın integer olması gerektiği belirtilmedi.
Üretilen kod Decimal döndürdü. Staging'de bu tip
farkı hata vermedi çünkü staging mock data
kullanıyordu. Input validation olmadığı için
prodüksiyonda 500 olarak patladı.
NEDEN FARK EDİLMEDİ?
Staging mock data gerçek Stripe davranışını
tam olarak simüle etmiyordu. Review checklist'te
"AI kodu Stripe tip gereksinimleri" kontrolü yoktu.
NEDEN BU KADAR SÜRDÜ?
Rollback kararı 17 dakika gecikmeli alındı —
önce fix yazmaya çalışıldı. Rollback prosedürü
dokümante edilmemişti, Mehmet adımları hatırlamak
için zaman harcadı.
AKSİYON PLANI
Kısa vade — bu sprint:
📌 AKSİYON-INC023-1
[Ayrı node olarak açıldı]
Stripe entegrasyonu için input validation şablonu
Sorumlu: Ali — Deadline: 21 Mart
Kabul kriteri: Tüm Stripe field'ları için tip
validasyonu mevcut, test coverage var
📌 AKSİYON-INC023-2
[Ayrı node olarak açıldı]
Review checklist'e "AI kodu — dış servis tip
uyumluluğu" kontrolü eklendi
Sorumlu: Mehmet — Deadline: 19 Mart
Kabul kriteri: Review checklist güncellendi,
ekip bilgilendirildi
📌 AKSİYON-INC023-3
[Ayrı node olarak açıldı]
Rollback prosedürü dokümante edildi
Sorumlu: Ali — Deadline: 20 Mart
Kabul kriteri: Alios'ta "Rollback Prosedürü"
node'u oluşturuldu, adımlar yazıldı,
ekip onayladı
Orta vade — bu çeyrek:
📌 AKSİYON-INC023-4
[Ayrı node olarak açıldı — roadmap'e alındı]
Staging ortamı gerçek Stripe sandbox ile
entegre edilecek — mock data kaldırılacak
Sorumlu: Ali — Deadline: Q2 sprint planlamasında
önceliklendirilecek
ÖĞRENME
AI araçlarına dış servis entegrasyonu yazdırılırken
o servisin tip gereksinimleri, format kısıtları ve
hata davranışı prompt'a açıkça verilmeli.
"Stripe webhook yaz" değil, "Stripe webhook yaz,
amount integer olmalı, hata durumunda X dönmeli."
Bu incident'ten çıkan prompt şablonu:
"[Servis] entegrasyonu yazılırken şu kısıtlar
geçerli: [tip gereksinimleri], [format kuralları],
[hata durumu beklentisi]"Son Düşünce
AI incident'leri önlemiyor. Ama iyi kurulmuş bir incident süreci hasarı sınırlıyor, öğrenmeyi kalıcı kılıyor.
Alios'ta incident node'u koordinasyonu tek merkezde topluyor. Timeline gerçek zamanlı yazılıyor, aksiyonlar atanıyor, postmortem unutulmuyor. Her aksiyon ayrı node — takip ediliyor, kapatılıyor.
Bir sonraki AI üretilen kod deploy edildiğinde aynı hata tekrarlanmıyor. Çünkü INC-023'ün öğrenmesi review checklist'te, prompt şablonunda ve rollback prosedüründe yaşıyor.