Sobes.tech
Middle

Kuidas saab kindlaks teha, et mikroteenused töötavad õigesti?

sobes.tech AI

Vastus AI-lt

Seda saab määratleda jälgimise, logimise ja jälgimise abil.

Jälgimine

  • Tervise metrikad: Saadavuse staatus (uptime), vastuse viivitus (latency), vigade määr (error rate), ressursside koormus (CPU, mälu, ketta sisend/väljund).
  • Ärimetrikad: Edukate tehingute arv, kasutajate aktiivsus.
  • Tööriistad: Prometheus, Grafana, Nagios, Zabbix.

Logimine

  • Keskne logide kogumine: Logide kogumine kõigist mikroteenustest vigade, rikete ja anomaalse käitumise leidmiseks.
  • Struktureeritud logimine: Logid JSON või muudes analüüsitavates struktuurides, et hõlbustada analüüsi.
  • Tööriistad: ELK Stack (Elasticsearch, Logstash, Kibana), Splunk, Loki.

Jälgimine (Distributed Tracing)

  • Päringute jälgimine: Võimaldab jälgida päringu teed paljude mikroteenuste vahel, tuvastada kitsaskohti ja vigu hajutatud süsteemides.
  • Vormistus: Päringu voolu esitamine diagrammina.
  • Tööriistad: Jaeger, Zipkin, OpenTelemetry.

Valmiduse ja elususe kontrollid (Readiness and Liveness Probes)

  • Elususe kontrollid (Liveness probes): Määrab, kas konteiner töötab. Kui kontroll ebaõnnestub, taaskäivitab kubelet konteineri.
  • Valmiduse kontrollid (Readiness probes): Määrab, kas konteiner on valmis vastuvõtma liiklust. Kui kontroll ebaõnnestub, ei suuna kubelet liiklust sellele pordile.

Automatiseeritud testimine

  • Moodul- ja integratsioonitestid: Kontrollivad üksikute komponentide õiget tööd ja nende vahelist koostööd.
  • Koormustestid: Hinnang süsteemi jõudlusele suure koormuse all.
  • Kaose inseneriteaduse testid: Simuleerivad süsteemi rikkeid selle vastupidavuse kontrollimiseks.

Märgid ebatõrke tööst:

  • Vigade sageduse suurenemine logides või jälgimises.
  • Vastuse viivituse suurenemine.
  • Läbivusvõime vähenemine.
  • Ressursside normaalne kasutus.
  • Äritegevuse rikete esinemine.

Kuberneteses valmisoleku kontrolli näide:

# Kontsentreeritud valmisoleku kontrolli määratlus
readinessProbe:
  httpGet:
    path: /health # HTTP lõpp-punkt, mis tagastab 200 OK valmisoleku ajal
    port: 8080 # Teenuse port
  initialDelaySeconds: 5 # Esimese kontrolli eel ooteaeg
  periodSeconds: 10 # Kontrollide vaheline aeg