Sobes.tech
Middle

Ինչպե՞ս կարող ենք որոշել, որ միկրոսերվիսները ճիշտ են աշխատում։

sobes.tech AI

Պատասխան AI-ից

Դա կարելի է որոշել մոնիտորինգի, լոգավորման և տրեսինգի միջոցով:

Մոնիտորինգ

  • Առողջության մետրիկներ: Հասանելիության վիճակ (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 # Ստուգումների միջեւ ժամանակը