Kod-siz uygulamalar için olay çalışma kitabı: tespit et, triyaj yap, toparla
Kod-siz uygulamalar için bu olay çalışma kitabını kullanarak sorunları hızlıca tespit edin, etkiyi triyaj edin, güvenli şekilde geri alın, net iletişim kurun ve tekrarları önleyin.

Bu runbook nedir ve ne zaman kullanılır
Bir incident, insanların uygulamanızı kullanmasını engelleyen, uygulamayı acı verici derecede yavaşlatan veya veriyi riske atan beklenmedik her sorundur. Kod-siz uygulamalarda bu ani giriş hataları, bir değişiklik sonrası bozulan ekranlar, arka plan otomasyonlarının durması, API hataları veya “başarılı” görünen iş akışlarının veritabanına yanlış değerler yazması şeklinde olabilir.
Yazılı bir runbook, stresli bir anı küçük, net eylemlere dönüştürür. Tahminleri azaltır, kararları (örneğin ne zaman geri alına karar verileceği) hızlandırır ve herkesin aynı gerçekleri paylaşmasına yardımcı olur. Olaylar sırasında yaşanan gecikmelerin çoğu teknik değildir. Bunlar belirsizlikten gelir: Gerçek mi? Kim liderlik ediyor? Ne değişti? Kullanıcılara ne söylemeliyiz?
Bu oyun kitabı, işler ters gittiğinde uygulamaya dokunan herkes içindir: değişiklik gönderen kurucular, dağıtımları ve erişimi yöneten operasyon veya platform sahipleri, ilk bildirimleri duyan destek ekipleri ve etki ve öncelikleri değerlendiren ürün veya iş sahipleri.
Bilerek hafif tutuldu; AppMaster gibi görsel mantık, üretilmiş servisler ve birden fazla dağıtım seçeneği olan platformlarda çalışan ekipler için uygundur.
Tüm olay döngüsünü kapsar: gerçek bir sorunu tespit edip doğrulama, hızlı triyaj, stabilize edip kurtarma (geri alma kararları dahil), kesinti sırasında iletişim kurma ve aynı sorunun tekrarlanmaması için kısa bir olay sonrası inceleme yapma.
Uzun vadeli mimari yeniden tasarım, derin güvenlik adli analizleri veya karmaşık uyumluluk prosedürlerini kapsamaz. Düzenlenmiş veri veya kritik altyapıyla çalışıyorsanız, bu runbook'un üzerine daha katı adımlar ekleyin.
Bir şey bozulmadan önce: normal durumu ve rolleri belirleyin
Olaylar, “normal”in ne olduğunu bilmediğinizde kaotik hissedilir. Ekip gerçek sorunları hızla fark edebilmesi için temel durumu tanımlayın. Kod-siz bir uygulamada erken sinyaller genellikle platform sağlığı, iş metrikleri ve insanlardan gelen karışık uyarılarla gelir.
Her gün izleyeceğiniz sinyalleri yazın, sadece kesintiler sırasında değil. Yaygın olanlar arasında çalışma süresi (uptime), hata oranı, yavaş ekranlar, başarısız girişler, ödeme hataları ve destek taleplerinde veya kullanıcı mesajlarında ani artışlar bulunur.
Herkesin kullanabileceği sade bir şiddet tanımı belirleyin:
- SEV1: Çoğu kullanıcı uygulamayı kullanamıyor veya para/güvenlik/veri riske atılıyor.
- SEV2: Önemli bir özellik bozuk, ancak geçici bir çözüm var.
- SEV3: Küçük sorunlar, sınırlı kullanıcılar veya kozmetik hatalar.
Hareket yaratacak hedefler belirleyin. Örnek hedefler: 5 dakika içinde onaylama, ilk güncellemeyi 15 dakika içinde paylaşma ve 60 dakika içinde stabilize etmeyi hedefleme (tam düzeltme daha uzun sürebilir).
Rolleri ihtiyacınız olduğunda değil, önce kararlaştırın. Kim bir olayı ilan edebilir, kim yönetir ve o kişi çevrimdışıyken yedek kimdir, isimlendirin. AppMaster ekiplerinde bu genellikle Business Process mantığından sorumlu olan kişi ve dağıtımları veya dışa aktarmaları yapabilecek bir yedeği içerir.
Son olarak, olay notları için tek bir paylaşılan yer tutun. Her eylem için zaman damgası kullanın (ne değişti, ne zaman, kim tarafından) ki daha sonra tahmin etmeden hikâyeyi yeniden oluşturabilesiniz.
Tespit ve doğrulama: bu gerçek mi ve ne kadar kötü
Panellere bakmadan önce etkiyi doğrulayın. Açık bir soru sorun: şu anda kim neyi yapamıyor? “Destek ekibi bilet açamıyor” demek, “uygulama yavaş” demekten daha faydalıdır. Mümkünse, etkilenen kullanıcıyla aynı rol ve cihazı kullanarak sorunu yeniden üretin.
Sonra yaygınlığı belirleyin. Tek bir hesap mı, bir müşteri segmenti mi yoksa herkes mi etkileniyor? Hızlı bölümler yapın: bölge, hesap türü, web vs mobil ve tek bir özellik mi yoksa tüm uygulama mı. Kod-siz araçlarda bir sorun küresel görünürken aslında bir izin kuralı veya tek bir bozuk ekran olabilir.
Sonrasında ne değiştiğine bakın. Bir sürüm, yapılandırma anahtarı, veritabanı şeması düzenlemesi veya veri aktarımı için son 1-2 saate bakın. AppMaster gibi platformlarda business process, veri modelleri veya kimlik doğrulama ayarlarında yapılan değişiklikler UI düzgün görünse bile birçok akışı etkileyebilir.
Uygulamanızı suçlamadan önce dış bağımlılıkları elemeleyin. E-posta/SMS sağlayıcıları, ödemeler (örneğin Stripe) ve entegrasyonlar (Telegram, AWS servisleri, AI API'leri) başarısız olabilir veya oran sınırlamasıyla karşılaşabilir. Eğer uygulama yalnızca mesaj gönderirken veya kart tahsil ederken bozuluyorsa, asıl sorun yukarı akışta olabilir.
Basit bir karar kontrol listesi kullanın:
- İzle: Etki düşükse ve hatalar artmıyorsa izlemeye devam edin.
- Hemen hafiflet: Kullanıcılar temel görevlerden engelleniyorsa veya veri risk altındaysa hemen müdahale edin.
- Olay ilan et: Sorun yaygın, zamana duyarlı veya belirsizse olayı ilan edin.
- Yükselt: Sorun ödemeleri, kimlik doğrulamayı veya üretim verisini etkiliyorsa yükseltin.
- Belirli aralıkta kontrol saati ayarla (örneğin her 15 dakika) ki ekip dağılmasın.
Bir kez şiddet ve kapsam sınıflandırıldığında, "gerçek mi?" sorusundan "önce ne yaparız?" sorusuna tahmin olmadan geçebilirsiniz.
Triyaj adım adım (ilk 30 dakika)
Hemen bir olay kaydı açın. Başlığa etkiyi isimlendiren sade bir ifade verin; şüphe edilen sebebi değil (örneğin “AB müşterilerinde ödeme başarısızlığı”). Başlangıç zamanını (ilk uyarı veya ilk rapor) yazın. Bu, kararlar, zaman damgaları ve neyin değiştiği için tek yer olacaktır.
Çalışmaların çakışmaması için roller atayın. Küçük bir ekipte bile sahiplerin isimlendirilmesi stres yüksekken hataları azaltır. En azından şunlar olmalı:
- Olay lideri: odağı korur, öncelikleri belirler, contain vs rollback kararını verir
- Düzeltici: araştırır ve değişiklikleri uygular
- İletişim: paydaşlara ve destek ekibine güncellemeleri paylaşır
- Not tutan: eylemleri, zamanları ve sonuçları kaydeder
Yazılı olarak iki şeyi belirtin: kesin bildikleriniz ve mevcut hipoteziniz. “Bilinen” şunlar olabilir: hata oranı yükseldi, belirli bir endpoint başarısız oluyor, sadece mobil etkileniyor. Hipotez yanlış olabilir ama bir sonraki testi yönlendirmeli. İkisini de öğrendikçe güncelleyin.
Durum kararsızken 15 dakikalık bir güncelleme temposu belirleyin. Hiçbir şey değişmediyse bunu söyleyin. Düzenli güncellemeler yan konuşmaları durdurur ve tekrar eden "haber var mı?" bildirimlerini engeller.
İlk kapsama (containment) eylemini seçin. Amaç, kök neden net olmasa bile zararı hızla azaltmaktır. Tipik ilk hamleler arasında arka plan işleri durdurma, riskli bir özellik bayrağını devre dışı bırakma, bir modüle gelen trafiği sınırlama veya bilinen güvenli bir yapılandırmaya geçme vardır. AppMaster'da bu genellikle Business Process Editor'da belirli bir akışı kapatmak veya hataya yol açan UI yolunu geçici olarak gizlemek anlamına gelir.
Containment bir tempo penceresi içinde metrikleri iyileştirmezse, geri alma planlamasına paralel başlayın.
Önce stabilize et: etkiyi sınırlandırın
Gerçek bir olay olduğunu doğruladıktan sonra, "hata bulma"dan "kan akışını durdurma"ya geçin. Stabilize etmek zaman kazandırır. Araştırma sürerken kullanıcıları, geliri ve veriyi korur.
Zararı azaltan en küçük değişiklikle başlayın. Containment genellikle tam bir düzeltmeden daha hızlıdır çünkü yeni bir özelliği devre dışı bırakabilir, bir iş akışını duraklatabilir veya yeniden inşa etmeden riski olan bir girdi yolunu engelleyebilirsiniz.
Verinin bozulduğundan şüpheleniyorsanız önce yazmaları durdurun. Bu, formları geçici olarak devre dışı bırakmak, kayıtları güncelleyen otomasyonları duraklatmak veya güncelleme kabul eden bir API uç noktasını engellemek anlamına gelebilir. Kötü veriyi okumak rahatsız edicidir, ama kötü veri yazmak temizliği katlar.
Kullanıcılar kilitlenmişse, giriş öncelikli olsun. Önce kimlik doğrulama ayarlarını ve giriş akışını kontrol edin. Ekip sizin ve kullanıcıların uygulamaya erişememesiyle diğer tüm düzeltmeler yavaşlar.
Uygulama yavaşsa veya zaman aşımı oluyorsa yükü azaltın ve maliyetli yolları kaldırın. Ağır ekranları kapatın, arka plan işlerini duraklatın ve istekleri artıran yeni entegrasyonları devre dışı bırakın. AppMaster'da containment genellikle sorunlu bir business process'i devre dışı bırakmak veya maliyetli zinciri tetikleyen bir UI eylemini geçici olarak kaldırmak kadar basit olabilir.
Her eylemi kasıtlı ve belgelenmiş tutun. Baskı altındayken ekipler adımları tekrarlar veya yanlışlıkla bir düzeltmeyi geri alır. Her değişikliği ve sonucu yazın.
Basit bir stabilize sırası:
- Bozulma olasılığı varsa veri yazmalarını durdurun ve yeni kayıtların artık değişmediğini doğrulayın.
- Zaman çizelgesinde yer alan en yeni özellik bayrağını, otomasyonu veya entegrasyonu devre dışı bırakın.
- Erişimi koruyun: önce adminler için giriş ve oturum akışını, sonra tüm kullanıcılar için geri getirin.
- Yükü azaltın: toplu işleri duraklatın ve en yavaş kullanıcı yolunu kaldırın.
- Her eylemi zaman damgası, sahip ve gözlemlenen etki ile kaydedin.
Hedefiniz “güvenli ve kullanılabilir” olmak, “tam çözülmüş” olmak değil. Etki sınırlandığında, sakin şekilde teşhis yapıp doğru geri alma veya düzeltme seçeneğini seçebilirsiniz.
Geri alma (rollback) seçenekleri ve risk kontrolleri
Bir şey bozulduğunda hız önemli ama en güvenli hamle kazanır. Genelde üç pratik seçeneğiniz vardır: geri alma (rollback), ileriye düzeltme (forward fix) veya kısmi geri alma (bir özelliği kapatıp kalanları açık bırakma).
Önce "geri alma"nın sizin kurulumunuzda ne anlama geldiğini netleştirin. Bu önceki sürümü dağıtmak, bir yapılandırma değişikliğini geri almak veya bir veritabanı durumunu geri yüklemek olabilir. AppMaster gibi platformlarda bir “sürüm” backend mantığı, web UI, mobil derlemeler ve ortam ayarlarını içerebilir.
Aşağıdaki risk kontrollerini kullanarak geri almanın güvenli olup olmadığını değerlendirin:
- Veritabanı şeması değişiklikleri: eski sürüm farklı tablo veya alan beklentisinde ise rollback başarısız olabilir.
- Geri alınamaz veri yazmaları: iadeler, durum değişiklikleri veya gönderilmiş mesajlar geri alınamaz.
- Sıralı işler ve webhook'lar: eski mantık öğeleri yeniden işleyebilir veya yeni payload'larda hata verebilir.
- Dış bağımlılıklar: ödeme, e-posta/SMS veya Telegram entegrasyonları davranış değiştirmiş olabilir.
Herhangi bir şeyi değiştirmeden önce basit bir git/gitme kuralı belirleyin. Eylemden sonra 10-15 dakika içinde iyileşmesi gereken 2-3 metrik seçin: hata oranı, giriş başarısı, ödeme tamamlama veya API gecikmesi gibi. Eğer metrikler doğru yönde hareket etmezse durun ve stratejinizi değiştirin.
Geri almanın geri alınmasını da planlayın. Eski sürüm yeni sorunlar çıkarırsa nasıl geri döneceğinizi bilin: hangi build yeniden dağıtılacak, hangi konfigürasyon uygulanacak ve bu ikinci değişiklik kim tarafından onaylanacak. Karar değişmemesi için son “yayınla” kararından tek bir kişi sorumlu olsun.
Olay sırasında iletişim
Sessizlik olayları daha da kötüleştirir. Ekip araştırırken insanları bilgilendirmek için basit, tekrarlanabilir bir yol kullanın.
İç güncellemelerle başlayın. Önce soru soracak kişilere ve engelleri kaldırabilecek kişilere söyleyin. Kısa ve olgusal tutun. Genelde ihtiyacınız olanlar:
- Destek veya müşteri başarı: kullanıcıların ne gördüğü ve şu an ne söyleneceği
- Satış veya hesap ekipleri: hangi hesapların etkilendiği ve neyin söz verilmeyeceği
- Kurucular/mühendislik: ne değişti, ne geri alınıyor, kim üzerinde çalışıyor
- Bir yönetici iletişim noktası: etki, risk, bir sonraki güncelleme zamanı
- Harici metni onaylayan bir sahip
Dış güncellemeler için bildiklerinizle yetinin. Kök nedeni tahmin etmekten veya bir tedarikçiyi suçlamaktan kaçının. Kullanıcılar çoğunlukla üç şeyi ister: onay, etki ve ne zaman tekrar bilgilendirilecekleri.
Basit mesaj şablonları
Kanallarda tutarlı tek bir durum satırı kullanın:
- Durum: Investigating | Identified | Mitigating | Monitoring | Resolved
- Etkisi: “Bazı kullanıcılar giriş yapamıyor” veya “Yeni siparişlerde ödemeler başarısız”
- Geçici çözüm: “10 dakika sonra tekrar deneyin” veya “Web kapalıyken mobil uygulamayı kullanın” (sadece doğruysa)
- Bir sonraki güncelleme: “Bir sonraki güncelleme 14:30 UTC’de”
Kullanıcılar kızgınsa önce kabul edin, sonra spesifik olun: “Kayıt işleminin bazı müşterilerde başarısız olduğunu biliyoruz. Şimdi son değişikliği geri alıyoruz. 30 dakika içinde bir sonraki güncellemeyi paylaşacağız.” Olay sırasında tarih, kredi veya kalıcı düzeltmeler vaat etmeyin.
Çözüldü vs izleme
Ana belirti ortadan kalkmış ve kilit kontroller temizse çözüldü ilan edin (girişler, temel akışlar, hata oranları gibi). Bir düzeltme uygulandıktan sonra tekrarları izlemek için zamana ihtiyacınız varsa monitoring kullanın. Ne izleyeceğinizi, ne kadar süre izleyeceğinizi ve son güncellemenin ne zaman yapılacağını her zaman belirtin.
Nedeni teşhis etme: daraltan hızlı kontroller
İşler stabilize olduğunda, yangın söndürmeden tanımlamaya geçin: belirtileri açıklayan en küçük gerçek setini toplayın. Amaç mükemmel bir kök neden bulmak değil. Amaç, olası bir nedeni belirleyip olayı daha da kötüleştirmeden harekete geçebilmektir.
Farklı belirtiler farklı zanlılara işaret eder. Yavaş sayfalar genellikle yavaş veritabanı sorguları, ani trafik artışı veya dış bir servisin gecikmesi anlamına gelir. Zaman aşımı takılan süreç, aşırı yüklenmiş backend veya uzun süre bekleyen bir entegrasyon nedeniyle olabilir. Hatalarda veya yeniden denemelerdeki artış genellikle yakın zamanda yapılan bir değişiklik, hatalı bir girdi veya yukarı akış bir kesinti ile ilişkilidir.
Hızlı kontroller (15 dakika)
Normal bir test hesabıyla bir gerçek kullanıcı yolculuğunu baştan sona çalıştırın. Bu genellikle UI, mantık, veritabanı ve entegrasyonları aynı anda kontrol ettiği için en hızlı sinyaldir.
Bir avuç kontrole odaklanın:
- Bir yolculuğu yeniden üretin: giriş yapın, ana eylemi gerçekleştirin, sonucu doğrulayın.
- Yavaş/başarısız adımı belirleyin: sayfa yükleme, API çağrısı, veritabanı kaydı, webhook.
- Son verileri kontrol edin: son 20-50 kaydı çoğaltma, eksik alan veya toplamların uyuşmaması için tarayın.
- Entegrasyonları doğrulayın: son ödeme girişimleri (örneğin Stripe), webhook teslimleri ve her türlü mesajlaşma (e-posta/SMS veya Telegram).
- Değişiklik bağlamını onaylayın: zaman çizelgesinde hemen önce ne yayınlandı, hangi yapılandırma değişti veya ne taşındı?
AppMaster kullanıyorsanız, bu genellikle bir Business Process adımına, bir Data Designer değişikliğine veya bir dağıtım konfigürasyonuna doğrudan karşılık gelir.
Karar: hafifletmeyi sürdür veya ileriye düzelt
Hızlı kontroller açık bir suçluya işaret ediyorsa, en güvenli hamleyi seçin: mevcut hafifletmeyi sürdürün veya küçük kalıcı bir düzeltme uygulayın. Rate limitleri, özellik bayraklarını veya manuel çözümleri yalnızca yolculuk iki kez başarılı olduktan ve hata oranı birkaç dakika stabil kaldıktan sonra kaldırın.
Örnek senaryo: mesai saatlerinde başarısız bir sürüm
Salı sabahı 10:15. Bir ekip AppMaster üzerinde oluşturulmuş müşteri portalına küçük bir değişiklik gönderiyor. Dakikalar içinde kullanıcılar giriş sonrası boş sayfalar görmeye başlıyor ve yeni siparişler gelmiyor.
Destek üç bilet alıyor: “Giriş çalışıyor, sonra portal hiç yüklenmiyor.” Aynı zamanda izleme web uygulamasında 500 hata artışı ve başarılı API çağrılarında düşüş gösteriyor. Bunu gerçek bir olay olarak ele alıyorsunuz.
Olay lideri hızlı bir doğrulama yapıyor: test kullanıcı ile masaüstü ve mobil üzerinde giriş denemesi ve son dağıtım zamanını kontrol etme. Zamanlama sürümle uyuşuyor; bu yüzden en azından kanıtlanana kadar son değişikliğin işe karıştığını varsayıyorsunuz.
İlk 30 dakika şu şekilde olabilir:
- Contain: daha fazla kullanıcının bozuk akışa girmesini engellemek için portalı bakım moduna alın (veya etkilenen özellik bayrağını geçici olarak kapatın).
- Rollback kararı ver: eğer hata tam olarak sürüm sonrası başladıysa ve çok sayıda kullanıcı etkileniyorsa önce geri alma yapın.
- İletişim: kısa bir dahili güncelleme paylaşın (ne bozuk, etki, şu anki eylem, bir sonraki güncelleme zamanı). Müşterilere, durumu biliyor olduğunuzu ve üzerinde çalıştığınızı belirten kısa bir mesaj gönderin.
- Kurtarma: bilinen son iyi sürümü yeniden dağıtın (veya ilgili modülü geri alın). Giriş, gösterge paneli yüklemesi ve “bilet oluştur” veya “sipariş verme” gibi bir çekirdek eylemi tekrar test edin.
- İzleme: kararlı ilan etmeden önce 10-15 dakika boyunca hata oranı, giriş başarısı ve destek bilet hacmini izleyin.
10:40'da hatalar normale dönüyor. Metrikleri gözlemlemeye devam ediyorsunuz ve destek yeni biletlerin azaldığını doğruluyor.
Sonrasında ekip kısa bir inceleme yapıyor: bunu ilk kim fark etti (uyarılar mı yoksa destek mi), sizi yavaşlatan neydi (sahip yokluğu, belirsiz geri alma adımları) ve neyi değiştirmeli. Yaygın bir iyileştirme, portalın en önemli üç akışı için bir sürüm duman testi kontrol listesi eklemek ve geri almayı tek adımlı, belgelenmiş bir işlem yapmak olabilir.
Olayları daha kötü yapan yaygın hatalar
Çoğu olay iki nedenle kötüleşir: insanlar araştırırken sistemin zarar vermeye devam etmesine izin verirler veya çok hızlı çok fazla değişiklik yaparlar. Bu runbook sizi her iki durumdan da korumak için tasarlandı.
Yaygın bir tuzak, uygulama hâlâ kötü veri yazarken araştırma yapmaktır. Bir iş akışı döngüye giriyorsa, bir entegrasyon çoğaltma yapıyorsa veya bir izin hatası yanlış kullanıcıların kayıtları düzenlemesine izin veriyorsa önce ilgili süreci durdurun. AppMaster'da bu bir Business Process'i devre dışı bırakmak, bir modül entegrasyonunu kapatmak veya sorunun yayılmasını durdurmak için erişimi geçici kısıtlamak anlamına gelebilir.
Bir diğer tuzak tahminle “düzeltme yapmak”. Birkaç kişinin tıklayıp ayar değiştirmesi zaman çizelgesini kaybettirir. Olay sırasında küçük bile değişiklikler önemlidir. Bir sürücü üzerinde anlaşın, basit bir değişiklik günlüğü tutun ve bilinmeyenlerin üzerine üst üste değişiklik yapmaktan kaçının.
Tekrarlayan olarak daha uzun kesintilere yol açan hatalar:
- Önce araştırma yapıp sonra containment yapma; kötü yazmalar veya çoğaltılan eylemler devam ederken
- Not almadan veya kaydetmeden aynı anda birden fazla değişiklik yapma, hangi değişikliğin yardımcı veya zararlı olduğunu anlayamama
- İletişimi geciktirme veya belirsiz güncellemeler gönderme, güven yerine daha fazla soru yaratma
- Veritabanı durumunu, kuyruktaki işleri veya gönderilmiş e-postaları/webhook'ları kontrol etmeden körü körüne geri alma
- Olayı doğrulama adımı olmadan kapatma
İletişim toparlanmanın bir parçasıdır. Bildiklerinizi, bilmediklerinizi ve bir sonraki güncellemenin ne zaman olacağını paylaşın. “Geri alıyoruz ve 15 dakika içinde faturalama olaylarının doğru olduğunu onaylayacağız” demek, "Bakıyoruz" demekten iyidir.
Hatalar durduğu için olayı kapatmayın. Kısa bir doğrulama kontrol listesi ile doğrulayın: ana ekranlar yükleniyor, yeni kayıtlar doğru kaydediliyor, kritik otomasyonlar bir kez çalışıyor ve kuyruklar (retry'ler, zamanlanmış işler) boşaltılmış veya güvenli şekilde duraklatılmış.
Baskı altındayken çalıştırabileceğiniz hızlı kontrol listesi
Bir şeyler bozulduğunda, beyniniz aynı anda on görev yapmaya çalışır. Bunu kullanarak sakin kalın, insanları koruyun ve servisi geri alın.
Bu bölümü ekibinizin gerçekten göreceği bir yere sabitleyin.
- Gerçek olduğunu onaylayın ve etkiyi belirleyin (5 dakika): Uyarıların kullanıcı raporlarıyla eşleşip eşleşmediğini kontrol edin. Neyin başarısız olduğunu (giriş, ödeme, yönetici paneli), kimlerin etkilendiğini ve ne zamandan beri olduğunu yazın. Mümkünse temiz bir oturumda yeniden üretin (gizli mod veya test hesabı).
Bir dakika ayırıp bir olay sahibi atayın. Bir kişi karar versin, herkes desteklesin.
-
Stabilize et ve contain yap (10 dakika): Kök neden peşine düşmeden önce kanı durdurun. Riskli yolu devre dışı bırakın (özellik bayrağı, geçici duyuru, kuyruk duraklatma) ve bir ana yolculuğu baştan sona test edin. İşe en çok zarar veren yolculuğu seçin, en kolay olanı değil.
-
Servisi geri getir (10-20 dakika): En güvenli hamleyi seçin: bilinen son iyi sürüme geri dönün veya minimal bir düzeltme uygulayın. AppMaster gibi platformlarda bu önceki bir derlemeyi yeniden dağıtmak veya son değişikliği geri almak anlamına gelebilir; ardından hata oranları ve yanıt sürelerinin normale döndüğünü doğrulayın.
-
İletişim (sürekli): Ne etkilendi, kullanıcıların ne yapması gerektiği ve bir sonraki güncelleme zamanı bulunan kısa bir durum güncellemesi paylaşın. Destek için iki cümlelik bir kontrollü mesaj hazırlayın ki herkes aynı şeyi söylesin.
-
Temiz bir şekilde kapat (unutmadan önce): Ne olduğunu, neyi değiştirdiğinizi ve servisin ne zaman geri döndüğünü kaydedin. İzleme, test boşlukları, veri temizliği veya takip düzeltmesi gibi bir sonraki adımları sahipleri ve teslim tarihleriyle atayın.
Olay sonrası: öğren, düzelt ve tekrarı engelle
Uygulama geri döndüğünde incident tamamen “bitti” sayılmaz. Gelecekteki kesintileri en hızlı azaltma yolu, olay tazeyken olanları yakalamak ve o öğrenimleri küçük, gerçek değişikliklere dönüştürmektir.
2–5 gün içinde kısa bir olay sonrası inceleme planlayın. Suçlayıcı olmayan ve pratik tutun. Amaç birini suçlamak değil; bir sonraki olayı daha kolay yönetilebilir kılmaktır.
Aylar sonra biri okuyabilsin diye bir kayıt yazın: kullanıcıların ne gördüğü, ne zaman tespit edildiği, ne denendiği, ne işe yaradığı ve servis ne zaman geri döndüğü. Kök nedeni biliyorsanız ekleyin ve eksik uyarılar, belirsiz sahiplik veya kafa karıştıran yayın adımları gibi katkıda bulunan faktörleri not edin.
Öğrenimleri sahipleri ve teslim tarihleriyle görevlere dönüştürün. Aynı hatayı önlemek için en küçük değişikliklere odaklanın:
- İzleme boşluklarını kapat (olayı daha önce yakalayacak bir uyarı veya gösterge ekle)
- Bir koruyucu ekle (doğrulama kuralı, oran limiti, özellik bayrağı varsayılanı, onay adımı)
- Riskli alan için testleri iyileştir (giriş, ödemeler, veri aktarımı, izinler)
- Runbook'u tam olarak olması gerektiği adımlarla güncelle
- Nöbet veya uygulama sahipleri için kısa bir eğitim yenilemesi yap
Her olay için en az bir önleme maddesi seçin, küçük olsa bile. “Rollerdeki her değişiklik ikinci bir onay gerektirsin” veya “Veri geçişleri önce staging kopyasında çalıştırılsın” gibi önlemler tekrar kesintileri engelleyebilir.
Bu runbook'u build ve yayın süreçlerinizin yanında tutun. AppMaster ile inşa ediyorsanız, her uygulamanın nerede dağıtıldığını (AppMaster Cloud, AWS, Azure, Google Cloud veya self-hosted), kimlerin hızlıca yeniden dağıtabildiğini ve kimlerin geri alma yapabileceğini yazın. Belgelerin tek bir yerde olması için AppMaster proje notlarınızın yanında (appmaster.io) saklamak dakikaların önemli olduğu zamanlarda bulunmayı kolaylaştırır.
SSS
Beklenmedik bir sorun, temel görevleri engelliyorsa, uygulamayı kullanılamaz hale getiriyorsa veya yanlış/tehlikeli veri değişiklikleri riski taşıyorsa runbook'u uygulayın. Kullanıcılar giriş yapamıyorsa, ödemeler başarısız oluyorsa, otomasyonlar duruyorsa veya kayıtlar yanlış yazılıyorsa olayı bir incident olarak ele alın ve runbook'u izleyin.
Önce kullanıcı etkisine bakın: şu anda kim ne yapamıyor ve ne zamandan beri? Ardından aynı rol ve cihazla sorunu yeniden üretin ve bunun tek bir hesap mı, bir segment mi yoksa herkes mi etkilediğini kontrol edin; böylece yanlış nedene takılmazsınız.
Çoğu kullanıcının engellendiği veya para/güvenlik/verinin risk altında olduğu durumlarda SEV1 ilan edin. Önemli bir özellik bozuk ama bir geçici çözüm varsa SEV2; sınırlı kapsamlı veya kozmetik sorunlar için SEV3. Hızlı karar vermek, mükemmel olmaktan daha önemlidir.
Final kararı veren bir incident lead atayın; ardından bir düzeltici (fixer), bir iletişim sorumlusu ve bir not tutan atayın ki insanlar çakışmasın ve yanlışlıkla değişiklik yapmasın. Küçük ekiplerde biri iki rolü üstlenebilir, ama incident lead rolü net olmalı.
Containment, kök neden net değilken bile zararı hızlıca durdurmaktır. AppMaster'da bu genellikle belirli bir Business Process'i devre dışı bırakmak, hataya neden olan UI eylemini geçici olarak gizlemek veya dönen/yanlış veri yazan bir otomasyonu duraklatmaktır.
Eğer sorun bir sürüm yayınından hemen sonra başladıysa ve bilinen iyi bir sürüm hizmeti hızla geri getiriyorsa rollback yapın. İleriye yönelik bir düzeltme yalnızca küçük, düşük riskli bir değişiklik yapıp bunu hızla doğrulayabileceğinizde tercih edin.
Veritabanı şeması değiştiyse, geri alma eski sürümün farklı tablolar/alanlar beklemesi nedeniyle başarısız olabilir. Geri alma riskli sayılırsa önce stabilize edin ve eski sürümün ne beklediğini doğrulayın.
Eğer veri bozulmasından şüpheleniyorsanız, önce yazmaları durdurun; kötü yazılan veriler düzeltmeyi katlayarak zorlaştırır. Pratikte formları devre dışı bırakın, güncelleme otomasyonlarını duraklatın veya güncelleme kabul eden uç noktaları engelleyin.
Kısa, gerçekçi güncellemeler gönderin ve sabit bir tempo belirleyin: ne etkilendi, ne yapıyorsunuz ve bir sonraki güncelleme ne zaman olacak. Sebebi tahmin etmeyin veya tedarikçiyi suçlamayın; kullanıcılar netlik ve öngörülebilir güncellemeler ister.
Ana kullanıcı belirtisi kaybolduktan ve kilit kontroller temizlendikten sonra ancak o zaman “çözüldü” ilan edin (giriş, birincil iş akışı, hata oranları gibi). Bir düzeltme uygulayıp hâlâ tekrarı izliyorsanız durum "monitoring" olarak kalmalı ve neyi, ne kadar süre izleyeceğinizi belirtin.


