Sobes.tech
Middle

Kā noteikt, ka mikroservisi darbojas pareizi?

sobes.tech AI

Atbilde no AI

To var noteikt, izmantojot uzraudzību, žurnālu reģistrēšanu un izsekošanu.

Uzraudzība

  • Veselības metriki: Pieejamības statuss (uptime), atbildes aizkave (latency), kļūdu līmenis (error rate), resursu slodze (CPU, atmiņa, diska ieejas/izejas).
  • Biznesa metriki: Veiksmīgu darījumu skaits, lietotāju aktivitāte.
  • Instrumenti: Prometheus, Grafana, Nagios, Zabbix.

Žurnālu reģistrēšana

  • Centralizēta žurnālu vākšana: Žurnālu apkopošana no visiem mikroservisiem, lai atrastu kļūdas, bojājumus un anomālas uzvedības.
  • Strukturēta žurnālu reģistrēšana: Žurnāli JSON vai citās analizējamās struktūrās, lai atvieglotu analīzi.
  • Instrumenti: ELK Stack (Elasticsearch, Logstash, Kibana), Splunk, Loki.

Izsekošana (Distributed Tracing)

  • Pieprasījumu izsekošana: Ļauj izsekot pieprasījuma ceļu caur daudziem mikroservisiem, identificēt šaurās vietas un kļūdas izplatītās sistēmās.
  • Vizuālizācija: Pieprasījuma plūsmas attēlojums diagrammas veidā.
  • Instrumenti: Jaeger, Zipkin, OpenTelemetry.

Gatavības un dzīvības pārbaudes (Readiness and Liveness Probes)

  • Dzīvības pārbaudes (Liveness probes): Nosaka, vai konteineris darbojas. Ja pārbaude neizdodas, kubelet pārstartēs konteineru.
  • Gatavības pārbaudes (Readiness probes): Nosaka, vai konteineris ir gatavs pieņemt satiksmi. Ja pārbaude neizdodas, kubelet nevadīs satiksmi uz šo pod.

Automatizēta testēšana

  • Modulāri un integrācijas testi: Pārbauda atsevišķu komponentu pareizu darbību un to mijiedarbību.
  • Slodzes testēšana: Novērtē sistēmas veiktspēju lielas slodzes laikā.
  • Haosa inženierijas testi: Simulē sistēmas bojājumus, lai pārbaudītu tās izturību.

Nepareizas darbības pazīmes:

  • Kļūdu biežuma pieaugums žurnālos vai uzraudzībā.
  • Atbildes aizkaves pieaugums.
  • Pārsūtīšanas jaudas samazināšanās.
  • Resursu normāla izmantošana.
  • Biznesa procesu bojājumi.

Kubernetes piemērs, kā iestatīt gatavības pārbaudi:

# Konteineru gatavības pārbaudes definīcija
readinessProbe:
  httpGet:
    path: /health # HTTP punkts, kas atgriež statusu 200 OK, kad gatavs
    port: 8080 # Pakalpojuma ports
  initialDelaySeconds: 5 # Aizkaves laiks pirms pirmās pārbaudes
  periodSeconds: 10 # Pārbaudes intervāls