Sobes.tech
Middle

Kako odrediti da mikroservisi funkcionišu ispravno?

sobes.tech АИ

Одговор од АИ

Ово се може одредити помоћу надгледања, логовања и трасирања.

Надгледање

  • Метрике здравља: Статуси доступности (uptime), кашњење одговора (latency), стопа грешака (error rate), оптерећење ресурса (CPU, меморија, дискови улаз/излаз).
  • Бизнис метрике: Број успешних трансакција, активност корисника.
  • Алатке: Prometheus, Grafana, Nagios, Zabbix.

Логовање

  • Централизовано прикупљање логова: Агрегација логова из свих микросервиса за проналажење грешака, кварова и аномалног понашања.
  • Структурирано логовање: Логови у формату JSON или других парсираних структура за олакшање анализа.
  • Алатке: ELK Stack (Elasticsearch, Logstash, Kibana), Splunk, Loki.

Трасирање (Distributed Tracing)

  • Праћење захтева: Омогућава праћење пута захтева кроз више микросервиса, идентификовање уских грла и грешака у распоређеним системима.
  • Визуелизација: Представљање тока извршења захтева у облику дијаграма.
  • Алатке: Jaeger, Zipkin, OpenTelemetry.

Провере спремности и живости (Readiness and Liveness Probes)

  • Провере живости (Liveness probes): Одређују да ли је контејнер активан. Ако провера не успе, kubelet поново покреће контејнер.
  • Провере спремности (Readiness probes): Одређују да ли је контејнер спреман да прихвати саобраћај. Ако провера не успе, kubelet не усмерава саобраћај на тај под.

Аутоматизовано тестирање

  • Модуларни и интеграциони тестови: Проверају исправност рада појединачних компоненти и њихову интеракцију.
  • Тестирање оптерећења: Оцени производност система под високим оптерећењем.
  • Тестови отказа (Chaos Engineering): Имитирају кварове у систему за проверу његове отпорности.

Знаци неисправног рада:

  • Повећање учесталости грешака у логовима или надгледању.
  • Повећање кашњења одговора.
  • Смањење пропусне моћи.
  • Нормално коришћење ресурса.
  • Кварови у пословним процесима.

Пример конфигурације провере спремности у Kubernetes-у:

# Дефиниција провере спремности за контејнер
readinessProbe:
  httpGet:
    path: /health # Пут до HTTP ендпоинта који враћа статус 200 OK када је спреман
    port: 8080 # Порт сервиса
  initialDelaySeconds: 5 # Задршка пре прве провере
  periodSeconds: 10 # Интервал између провера