Middle
Mikroxidmətlərin düzgün işlədiyini necə müəyyən etmək olar?
sobes.tech Süni İntellekt
AI-dan cavab
Bunu monitorinq, qeydiyyat və izləmə vasitəsilə müəyyən etmək mümkündür.
Monitorinq
- Sağlamlıq metrikaları: Mövcudluq vəziyyəti (uptime), cavab gecikməsi (latency), səhv nisbəti (error rate), resursların yüklənməsi (CPU, yaddaş, disk giriş/çıxış).
- Biznes metrikaları: Uğurlu əməliyyatların sayı, istifadəçi fəaliyyəti.
- Alətlər: Prometheus, Grafana, Nagios, Zabbix.
Qeydiyyat (Logging)
- Mərkəzləşdirilmiş log toplanması: Bütün mikroservislərdən logların toplanması, səhvlərin, nasazlıqların və anormal davranışların aşkarlanması.
- Strukturlaşdırılmış loglar: JSON və ya digər parsalanabilən strukturlarda loglar, analiz üçün asanlıq təmin edir.
- Alətlər: ELK Stack (Elasticsearch, Logstash, Kibana), Splunk, Loki.
Paylanmış izləmə (Distributed Tracing)
- Sorğuların izlənməsi: Bir sorğunun çoxsaylı mikroservislər vasitəsilə keçməsini izləmək, tıxac nöqtələrini və səhvləri müəyyən etmək.
- Vizualizasiya: Sorğunun axışını diaqram şəklində göstərmək.
- Alətlər: Jaeger, Zipkin, OpenTelemetry.
Hazır olma və canlılıq yoxlamaları (Readiness and Liveness Probes)
- Canlılıq yoxlamaları (Liveness probes): Konteynerin işlək olub-olmadığını müəyyən edir. Əgər yoxlama uğursuz olarsa, kubelet konteyneri yenidən başlatır.
- Hazır olma yoxlamaları (Readiness probes): Konteynerin trafik qəbul etməyə hazır olub-olmadığını müəyyən edir. Əgər yoxlama uğursuz olarsa, kubelet bu pod-a trafik göndərmir.
Avtomatlaşdırılmış testlər
- Bölmə və inteqrasiya testləri: Ayrı-ayrı komponentlərin düzgün işləməsini və qarşılıqlı əlaqəsini yoxlayır.
- Yük testləri: Sistem performansını yüksək yüklə qiymətləndirir.
- Xaos mühəndisliyi (Chaos Engineering): Sistemdə nasazlıqları simulyasiya edərək onun dayanıqlığını yoxlayır.
Yanlış işləmə əlamətləri:
- Loglarda və ya monitorinqdə səhvlərin artması.
- Cavab gecikmələrinin artması.
- Keçirmə qabiliyyətinin azalması.
- Resursların anormal istifadəsi.
- Biznes proseslərində nasazlıqlar.
Kubernetes-də hazır olma yoxlamasının konfiqurasiyasına nümunə:
# Konteyner üçün hazır olma yoxlamasının təyini
readinessProbe:
httpGet:
path: /health # Hazır olma vəziyyətini qaytaran HTTP endpoint yolu
port: 8080 # Xidmət portu
initialDelaySeconds: 5 # İlk yoxlamadan əvvəl gecikmə
periodSeconds: 10 # Yoxlamalar arasındakı interval