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.
Worker kendi aktör kimliğini, başlatan özneden ayrı olarak denetler. “Sistem yaptı” ile “sistem, alarmı kabul eden nöbetçi mühendis adına yaptı” farklı ifadelerdir ve bir incelemede yalnızca ikincisi işe yarar.
Ş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.
Bu dördüncü adım, kalıcı profilin burada zorunlu olmasının nedenidir. Bir olay onayı yirmi dakika sonra, bir telefondan, orijinal süreç iki kez yeniden dağıtıldıktan sonra gelebilir.

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.