Skip to content
PublikovánoAktualizováno: 21. července 2026 v 00:00 Vytvořeno v TechFides

Provoz a observabilita

Provoz systému — logování, monitoring a alerting, distribuovaný tracing, zálohování, plán obnovy a připravenost na zátěž. Určuje, jak rychle tým odhalí a vyřeší produkční problém.

📊 Skóre

StavPočet
🟢 OK4
🟠 Částečně1
🔴 Špatně2

Celkově: observabilita a provoz mají solidní základ — distribuovaný tracing, monitoring dostupnosti, alerting nákladů i automatické zálohy databáze fungují. Zbývají dvě mezery: jednotné strukturované logování a chybějící recovery plán + zátěžové testy.

🔍 Co jsme hodnotili

#PoložkaStav
33Distribuovaný tracing🟢
31Monitoring a alerting (dostupnost/infra)🟢
32Alerting nákladů infrastruktury🟢
34Automatické zálohování🟢
30Strukturované logy🟠
35Definovaný a zdokumentovaný recovery plán🔴
36Očekávaná zátěž + zátěžové testy🔴

📌 Klíčové nálezy

🟢 Distribuovaný tracing napříč službami

Existuje sdílený balík @tfpl/opentelemetry implementovaný ve všech 9 backendových službách (propagátory W3C/Baggage/Jaeger/B3, instrumentace HTTP/NestJS/MySQL). Jaeger je nasazen jako součást infrastruktury. Požadavek lze sledovat napříč mikroslužbami — to je u microservices klíčové a často chybějící.

🟢 Monitoring dostupnosti a infrastruktury

14 GCP uptime checků ze tří regionů s alert policy do Slacku (#tf-platform-status), infra metriky přes GCP + Prometheus/Lens, replikace metrik do BigQuery přes K8s CronJob. Dostupnost a infrastruktura jsou pokryté dobře; slabší je aplikační APM (metriky na úrovni aplikace).

🟢 Alerting nákladů infrastruktury

Náklady jsou hlídané přes GCP budget alerts s notifikací na e-mail. Nastavení je v GCP konzoli (mimo repozitář), proto ho audit ze zdrojového kódu nezachytil — potvrzeno týmem. Překročení rozpočtu tedy tým zachytí.

🟢 Automatické zálohování databáze

Hlavní databáze má v GCP nastavené denní automatické zálohy. Kromě toho existuje verzovaná záloha dat jedné podpůrné služby (sidecar skript zálohuje 2× denně). Zálohování je tedy pokryté.

🟠 Nejednotné logování

OpenTelemetry pokrývá traces, ale logování není jednotně strukturované do JSON — winston má jen jedna služba, ostatní spoléhají na NestJS Logger → stdout → GCP Cloud Logging. Interní evidence dluhu navíc hlásí console.log/error obcházející Logger v produkci.

🔴 Chybí recovery plán a zátěžové testy

  • Recovery plán: přestože zálohy existují, není zdokumentovaný postup obnovy (DR plán — kdo, co, v jakém pořadí, jak dlouho). Zálohy bez ověřeného recovery postupu dávají jen částečnou jistotu.
  • Zátěž: žádný nástroj pro zátěžové testy (k6, artillery, jmeter) a žádná definice očekávané zátěže / SLO.

✅ Doporučení

PrioritaDoporučení
VysokáSepsat a otestovat recovery (DR) plán — využít existující denní zálohy DB.
VysokáSjednotit strukturované JSON logování napříč službami a odstranit console.log z produkce.
StředníDefinovat očekávanou zátěž / SLO a zavést zátěžové testy klíčových toků.