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