Přeskočit na obsah

Provoz

Dokument popisuje navržený provoz; ze všeho v něm dnes existuje jen endpoint kontroly živosti. Zapisuje ale rozhodnutí, která se v provozu dělají špatně narychlo — kdo vlastní feed, co se měří, co musí přežít incident a co ještě není dohodnuté.

Stav
navrženo; služba vystavuje zatím jen kontrolu živosti
Procesy
API, ARQ worker, PostgreSQL, Redis
SLO zpoždění
událost zpracovaná do 24 hodin
Dostupnost API
nedohodnutá — otevřená otázka pro klienta
Runbooky
šest, od zpoždění feedu po zálohu a obnovu

Procesy a vlastnictví feedu

API je bezstavové a horizontálně škálovatelné. Worker běží na ARQ a obsluhuje jak cron pro poller, tak dokumentovou pipeline.

Feed vlastní přes Redis lease právě jeden poller. Druhá replika workeru je proto bezpečná: nepolluje, jen zpracovává dokumenty. To je celý důvod, proč je škálování v tomhle systému otázka jen na straně čtení.

Vedle kontroly živosti jsou navržené endpointy pro stav závislostí (databáze, Redis, zpoždění feedu, stav breakeru, zbývající rozpočet) a pro verzi buildu a verzi projektoru.

Metriky a pravidlo o labelech

Sledují se tři skupiny: příjem (zpoždění, id checkpointu, průchodnost, důvody selhání, stav breakeru, zbývající rozpočet), dokumenty (čekající, zpracované podle typu, selhání stažení, doba extrakce, histogram spolehlivosti, selhání validace podle pravidla) a kontrola (hloubka fronty, rozhodnutí podle výsledku, stáří nejstarší položky). K tomu doba přestavby projekce a verze projektoru.

Pravidlo, které nemá výjimku: žádný label metriky nenese spisovou značku, jméno, částku ani osobní údaj. Labely jsou uzavřené slovníky. Údaj v labelu se totiž rozteče do každého monitorovacího systému po proudu.

Runbooky

SituaceRunbook
Feed se opozdil nebo se zastavilfeed-lag
Chyba projektoru, je potřeba přestavbareplay
Změnil se kontrakt zdroje (WSDL, XSD, formát)contract-drift
Spadla kvalita extrakceextraction-quality
Postupné zapínání feedufeed-rollout
Záloha a obnovabackup-restore

Co musí přežít incident

Replika a úložiště dokumentů. Všechno ostatní je odvozené a přestavitelné, a zálohovací politika neplyne z ničeho jiného než z téhle věty.

Zbytek provozní dohody s klientem chybí: cíl zpoždění 24 hodin je převzatý ze zadání, ale dostupnost API je stále otevřená otázka a fronta kontroly má jen kvalitativní cíl — zpracovávaná v rámci SLA analytika a nerostoucí týden po týdnu.

Kde to v repozitáři žije

Souvisí

Zpět na sekci Dokumentace