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

Provoz a observabilita

Hodnocení provozu systému zahrnuje 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, což je u microservices klíčová a často chybějící schopnost.

🟢 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. Tým jeho existenci potvrdil a překročení rozpočtu tak 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 používá 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 s využitím existujících denních záloh 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ů.