Uyumluluk: Pactmark 0.2.x.
delegated-incident-boundary örneği burada anlatılan devretme ve
fencing özelliklerini kanıtlar. Kalıcı devam iddia etmez — bkz. Sınırlar.Durum
Bir platform ekibi olaylar sırasında yardım eden bir asistan istiyor: sinyalleri toplasın, ilişkilendirsin, bir kontrol altına alma eylemi önersin ve — denetim altında — uygulasın. Gürültülü bir tenant’a hız sınırı koysun, sızdıran bir entegrasyonu kapatsın, bir feature flag’i geri alsın. Hata payının en az olduğu senaryo budur; çünkü tam olarak diğer her şey zaten ters giderken çalışır.Gözetimsiz çalışır
Gece üçte, bir alarmla tetiklenir, konsolu izleyen kimse yoktur.
Üretime dokunur
Yanlış bir eylemin patlama yarıçapı, korumaya çalıştığınız şeydir.
Altyapı sağlıksızdır
Zaman aşımları ve kaybolan yanıtlar istisna değil normal durumdur.
Her şey sonradan incelenir
Kesin bir zaman çizelgesi isteyen insanlarca, olay sonrası incelemede.
Devredilmiş yetki
Bir alarmla başlatılan bir koşunun etkileşimli bir insanı yoktur. Yine de bir yetkiye ihtiyaç duyar — ve o yetki türetilmiş olmalıdır, uydurulmuş değil.DelegatedRunAuthority, bir sistem worker’ını tek bir koşuya, tek bir zamanlayıcı makbuzuna, tek bir
kiraya ve tek bir fencing token’a bağlar. Daha yeni bir fence eski devretmeyi geçersiz kılar —
delegated-incident-boundary örneğinin gösterdiği tam olarak budur.
Şekil 1. Bir olay sırasında worker’lar yeniden başlar. Yeniden başlamayı ikinci bir hasar kaynağı
değil güvenli kılan şey fenced kiralardır.
Politika bilinçli olarak dardır
Burada R4 bir onayın arkasına konmuyor, doğrudan reddediliyor. Bir olay sırasında geri alınamaz bir
üretim eylemi için onay istemi, zaman baskısı altındaki yorgun bir insanın verdiği karardır. Bazı
kapılar odada hiç bulunmamalıdır.
İşin çoğunluğu okumadır
Olay değerinin çoğu eylemde değil ilişkilendirmededir. Sıkı egress izin listeleriyle R1 seviyesinde okuma araçları — metrikler, loglar, dağıtım geçmişi, feature flag durumu — bir asistana hiçbir şeyi değiştirme yeteneği vermeden saniyeler içinde bir zaman çizelgesi kurma yeteneği verir.1
Topla
Beyan edilmiş izin listesi üzerinden R1 okumaları.
2
İlişkilendir
İçerik-adresli bir zaman çizelgesi artifact’ı üret.
3
Öner
Normalize edilmiş bir önizlemeyle bir kontrol altına alma eylemi.
4
Bekle
waiting_for_approval. Koşu park eder — muhtemelen uzun süre — ve hiçbir şeyi açık tutmaz.Kontrol eylemi belirsiz kaldığında
Şekil 2. Altyapı zaten sağlıksız. Belirsiz etkiler beklenen durumdur ve stratejinin olay başlamadan önce kaydedilmiş olması gerekir. Bir hız sınırı çağrısı zaman aşımına uğradı. Sınır uygulandı mı?1
Yeniden denemeyin
Bir olay sırasında iki kat hız sınırı, hiç olmamasından kötü olabilir.
2
Park edin ve mutabakat kurun
Kontrol düzlemi sorgulamayı destekliyorsa strateji
reconcilable’dır: mevcut durumu sorgulayın ve
gerçekte ne olduğunu kaydedin.3
Sorgulanamıyorsa öyle söyleyin
abandon_uncertain, etkinin gerçekleşmiş olabileceğini kaydeder. Olay zaman çizelgesi sahte bir
çözüm yerine açık bir soru gösterir.Telafi yeni bir koşudur
Bir kontrol eylemini geri almak bir “geri al” değildir — yeni bir iş eylemidir:CompensationRequested, kendi WorkOrder’ı, kendi yetkisi ve kendi kanıtı olan ayrı bir telafi
koşusu başlatır. EffectCompensated ardından orijinal etki özetini telafi edenle bağlar.
Olay sonrası incelemede bu doğru okunur: şu eylem şu zamanda şu yetki altında alındı ve o
eylem o zamanda o yetki altında tersine çevirdi.
Olay sonrası kayıt
Hâlâ sizde olanlar
Runbook
Hangi eylemlerin otomasyona uygun olduğu bile sistemleriniz hakkında bir muhakemedir.
Uyanık biri
Park edilmiş koşulara bir insan gerekir. Park edip hiç çözülmeyen otomasyon, otomasyon olmamasından
kötüdür.
Kontrol düzlemi semantiği
reconcilable sizin iddianızdır. Kontrol düzlemi güvenilir biçimde yanıtlayamıyorsa yanlıştır.Nedensellik iddia etmemek
Bir zaman çizelgesi sıralamayı gösterir. Nedensellik, birinin savunması gereken bir sonuçtur.
Güvenilirlik ve kurtarma
Olayı adım adım yürütmek.
Dayanıklılık
Fenced kiralar, atomik komutlar ve birlikte yedeklenecekler.