Sobes.tech
Middle

Hogyan lehet megállapítani, hogy a mikroszolgáltatások helyesen működnek?

sobes.tech MI

Válasz az MI-től

Ezt meg lehet határozni megfigyelés, naplózás és nyomon követés segítségével.

Megfigyelés

  • Egészségügyi metrikák: Elérhetőségi állapot (uptime), válasz késleltetés (latency), hibaarány (error rate), erőforrások kihasználtsága (CPU, memória, lemez I/O).
  • Üzleti metrikák: Sikeres tranzakciók száma, felhasználói aktivitás.
  • Eszközök: Prometheus, Grafana, Nagios, Zabbix.

Naplózás (Logging)

  • Központosított naplógyűjtés: Minden mikroservice naplóinak összegyűjtése a hibák, meghibásodások és anomáliák felismerése érdekében.
  • Strukturált naplók: JSON vagy más parse-olható struktúrákban lévő naplók az elemzés megkönnyítéséhez.
  • Eszközök: ELK Stack (Elasticsearch, Logstash, Kibana), Splunk, Loki.

Elosztott nyomon követés (Distributed Tracing)

  • Kérések nyomon követése: Lehetővé teszi egy kérés útjának követését több mikroservice-en keresztül, szűk keresztmetszetek és hibák azonosítását.
  • Vizuális megjelenítés: A kérés végrehajtási folyamatának diagramként való bemutatása.
  • Eszközök: Jaeger, Zipkin, OpenTelemetry.

Készség- és élősségvizsgálatok (Readiness and Liveness Probes)

  • Élősségvizsgálatok (Liveness probes): Meghatározzák, hogy a konténer működik-e. Ha nem, a kubelet újraindítja.
  • Készségvizsgálatok (Readiness probes): Meghatározzák, hogy a konténer készen áll-e a forgalom fogadására. Ha nem, a kubelet nem irányít forgalmat erre a podra.

Automatizált tesztek

  • Egység- és integrációs tesztek: Ellenőrzik az egyes komponensek helyes működését és együttműködését.
  • Terheléses tesztek: A rendszer teljesítményének értékelése magas terhelés alatt.
  • Chaos Engineering: A rendszer hibáinak szimulálása a rugalmasság tesztelése érdekében.

Hibás működés jelei:

  • Növekvő hibaarány a naplókban vagy a megfigyelésben.
  • Növekvő válaszidő.
  • Átviteli képesség csökkenése.
  • Abnormális erőforrás-felhasználás.
  • Üzleti folyamatok hibái.

Kubernetesben a készség-ellenőrzés konfigurációjának példája:

# Készség-ellenőrzés definíciója a konténerhez
readinessProbe:
  httpGet:
    path: /health # Az HTTP végpont útvonala, amely 200 OK státuszt ad vissza, ha készen áll
    port: 8080 # Szolgáltatás portja
  initialDelaySeconds: 5 # Késleltetés az első ellenőrzés előtt
  periodSeconds: 10 # Ellenőrzések közötti időköz