Logo GH

Otomatik İyileştirme ve kendini kurtarma sistemleri

1) Otomatik iyileştirme nedir ve neden gereklidir?

Otomatik iyileştirme, insan müdahalesi olmadan arıza durumunda hizmetin otomatik olarak dengelenmesidir, semptom kurtarma önceliği (SLO) kök neden araması (RCA) üzerinde.
Hedefler: MTTR'yi düşürün, hatalı bütçeleri koruyun, işletme maliyetlerini ve insan hatasını azaltın.

Temel özellikler:
  • Algılama (metrikler/günlükler/sentetikler/olaylar).
  • Çözüm (kurallar/politikalar/ML buluşsal).
  • Eylem (yeniden başlatma/ölçekleme/dökülme/ficheflag/rollback/feilover).
  • Doğrulama (verilen pencerede SLO yeşili).
  • Bozulmaya geri dönün.

2) Otomatik iyileştirme mekanizması haritası

Uygulama düzeyinde: idempotency, timeouts, retry + backoff + jitter, devre kesici, bölme, önbellek bozulması (zarif).
Kubernetes: canlılık/hazırlık/başlangıç probları, restartPolicy, PDB, HPA/VPA, Descheduler, Pod/Node otomatik iyileştirme.
Ağ/kenar: oran limitleri, kiracı başına kotalar, bağlantı boşaltma, arıza açma/kapatma, WAF kuralları.
Kuyruklar/akış: tüketici-otomatik ölçekli, gecikme tabanlı geri basınç, DLQ/otopark.
Depolama/DB: replica-feilover, otomatik onarım (yeniden oluşturma), kısılmış autovacuum, bağlantı havuzu yeniden dengeleme.
CI/CD: kanarya hesaplamaları, aşamalı teslimat, otomatik geri alma.
Olay düzenleme: denetleyiciler/operatörler, iş akışı motorları (Argo, Airflow) ve yeniden deneme ilkeleri.
Watchdog/Heartbeats: Dead Man's Switch arka plan işleri için.

3) Güvenli kendini kurtarma tasarım ilkeleri

1. SLO güdümlü: Tüm otomatik eylemler, kullanıcı deneyimine bağlı belirtilerle tetiklenir.
2. Kanarya-ilk: önce yerel/noktasal, sonra küresel olarak.
3. Tek yönlü kapı korkulukları: zamanlayıcı/koşulla geri alma, riskli işlemler için "çift anahtar".
4. Idempotency: her eylem (yeniden başlatma, geçiş, rotasyon) tekrarlamak güvenlidir.
5. Tasarım tarafından gözlemlenebilirlik: eylem etiketleri, izlerle korelasyon, kim/ne/ne/ne zaman/neden günlüğü.
6. En az ayrıcalık: Otomasyonun minimum hakları vardır (RBAC, kapsamlı sırlar).
7. Maliyet farkındalığı: "pahalı" eylemlerin sınırları (ölçeklendirme, çıkış, anlık görüntüler).

4) Algılama: otomatik iyileşmeyi başlatmak için sinyaller

Метрики: %5xx, p95/p99 gecikme, Kafka gecikmesi, DB kilidi/gecikmesi, düğüm basıncı.
Sentetikler: çalışma süresi düşüşü/yol regresyonu (giriş/depozito).
Günlükler: yeni hata imzaları, istisna oranı.
События K8s: CrashLoopBackOff, NodeNotReady, FailedScheduling.
Kalp atışı: İşin sessizliği> N dakika.

PromQL tetikleyicileri örneği:
promql
API error regression sum (rate (http_requests_total{status=~"5"..}[5m]) )/sum (rate (http_requests_total[5m]))> 0. 01

Kafka: lag> threshold max by (topic, group) (kafka_consumergroup_lag)> 10000

K8s: pod в CrashLoopBackOff increase(kube_pod_container_status_restarts_total[5m]) > 3

5) Otomatik geri yükleme eylemleri (playbook)

5. 1 Uygulama/ağ

Arka uç anomalisi olan devre kesici AÇIK - hızlı başarısız hızlı + önbellek/saplama yanıtları.
Retry + backoff + limitlerle jitter ve de-duplication.
Hız sınırı/boşaltma yükü: aşırı yük altında - kritik yolların önceliklendirilmesi.

5. 2 Kubernetes

Kabı (canlılık) yeniden başlatın ve sağlıklı olmayan bir düğümde ocağı çıkarın.
HPA/VPA: RPS/CPU/gecikme/gecikme ile otomatik ölçeklendirme; VPA - sadece öneriler veya çalışma saatleri geçerlidir.
Düğümlerin otomatik düzeltilmesi: Kalıcı problemler (ağrılar) için kordon + drenaj.
AZ dosyalarına karşı koruma için Affinity/Topology spread.

5. 3 Kuyruklar/Akış

Otomatik ölçekli tüketiciler gecikmeyi по; verim üreticilerinin geçici olarak azaltılması.
Zehirli mesajlar için DLQ; Arşivlerden tekrar oynatın.

5. 4 DB/Önbellek

Durum/yapılandırma doğrulaması ile kopyaya aktarım.
Bağlantı sızıntıları için bağlantı havuzu sıfırlandı.
İstemcilerin otomatik olarak yeniden yapılandırılmasıyla çalışır durumda beklemede promosyon.

5. 5 CI/CD

Kanarya trafiğinde 5xx/p95 büyüme ile otomatik geri dönüş.
Feature-flags: Global rollback yerine problemli özelliğin otomatik olarak KAPALI olması.

6) Aşamalı teslimat ve otomatik geri alma

Örnek (Argo Rollouts Kanarya Stratejisi)

yaml strategy:
canary:
canaryService: api-canary stableService: api-stable steps:
- setWeight: 10
- pause: {duration: 5m}
- analysis:
templates:
- templateName: api-slo-check
- setWeight: 25
- pause: {duration: 10m}
- analysis:
templates:
- templateName: api-slo-check

Şablon analizi "başarısız" döndürürse (hatalar/gecikme süresi aşılırsa), sunum otomatik olarak geri alınır.

7) Kendini kurtarma aracı olarak özellik bayrakları

Sorunlu özellikler için Kill-switch (sunucu tarafı).
Hedefleme: segment/bölge üzerindeki özelliği devre dışı bırak.
Otomatik kural: eğer özelliğin %5xx'i> X in Y minutes kapalıysa ve bilet birikmişse.
Doğrulama: Bütçeli SLO-panel özelliği.

8) Aşırı yük: kendinizi ölüme "nasıl" tedavi etmeyeceğiniz

Shed-load: Kritik olmayan taleplerin QoS'larını reddetmek/düşürmek (tarifeler, ağır raporlar).
Token-bucket/leaky-bucket ve kiracı/anahtar kotaları.
Uyarlanabilir eşzamanlılık (proxy/SDK düzeyinde) - gecikme süresi arttığında eşzamanlılığı azaltır.
Bulkhead: izole iplik/bağlantı havuzları.

9) Tutarlılık ve idempotency

Idempotent tuşları (request_id) - tekrarlamaya karşı koruma.
Korkulu işlemler (ödemeler, yazma-off) - iki fazlı süreçler, onay/tazminat (saga).
Outbox/Inbox и tam olarak bir kez через idempotency depolama.

10) Güvenlik ve uyumluluk

Otomatikler için minimum RBAC (sadece gerekli kaynaklar).
Tüm eylemlerin denetimi: kim/ne zaman/hangi sinyal/ne etkisi.
Otomatik işlemleri devre dışı bırakmak için manuel geçersiz kılma ve "kırmızı düğme".
Olay eserleri ve otomasyon günlükleri üzerinde Yasal Bekletme.
Sırlar - gizli bir yönetici aracılığıyla, kendi kendine eylemler sırasında anahtar rotasyonu.

11) FinOps: "kendi kendini iyileştirme" fiyatı

Bir sıçrama ile kırılmamak için maksimum otomatik ölçekteki sınırlar.
Eylem metrikleri başına maliyet: 1 yeniden başlatma maliyeti, 1 ek kopya, 1 TB çıkış.
Agregalar: Tasarruf edilen SLO dakikası başına maliyet, azaltılan olay başına maliyet.
"Gece modu" politikaları: iş trafiği düşükse otomasyonun saldırganlığı daha düşüktür.

12) Otomasyonun gözlemlenebilirliği

Grafiklerdeki etiketler: 'remediation _ action =' rollback ',' source = 'argo', 'reason =' slo _ burn '.
Ayrı pano: otomatik eylemlerin sıklığı, başarı, medyan kurtarma süresi, geri alma oranı.
Fayda değerlendirmesi için SLO korelasyonu.

13) Yapılandırmalar ve örnekler

13. 1 K8s: problar ve yeniden başlatma politikaları

yaml livenessProbe:
httpGet: { path: /healthz, port: 8080 }
initialDelaySeconds: 20 periodSeconds: 10 timeoutSeconds: 2 readinessProbe:
httpGet: { path: /readyz, port: 8080 }
periodSeconds: 5 failureThreshold: 3 startupProbe:
httpGet: { path: /startupz, port: 8080 }
failureThreshold: 30 periodSeconds: 5

13. 2 Uyarı - otomatik eylem (sözde)

yaml rule: api_5xx_rate_high action:
type: feature_flag target: "payments. new_flow"
set: false guardrails:
cooldown: 10m max_actions_per_hour: 2 rollback_if:
- condition: "5xx% not reduced within 5m"

13. 3 Kafka lag autoscale (özel metrik ile HPA)

yaml metrics:
- type: Pods pods:
metric:
name: kafka_consumer_lag target:
type: AverageValue averageValue: "500"

14) Otomatik iyileşmeyi test etme (kaos ve oyun günleri)

Kaos enjeksiyonları: ağ duraklamaları, öldürme bölmeleri/düğümleri, veritabanı/önbellek bozulması.
Oyun günleri: zaman sınırı ve MTTR metrikleri ile senaryo eğitimi.
Gölge trafik: kullanıcıları etkilemeden kanarya trafik kiralama.
Kuru çalışma otomasyon modları (yazıyoruz, ancak yapmıyoruz).

15) "Otomatik kurtarma hazırlığı" kriterleri

  • SLO'lar tanımlanmıştır, metrikler sabittir, sentetikler vardır.
  • Örnekler/healthz ,/readyz ,/startupz doğru durumu yansıtır.
  • Kimlik ve çift koruma (özellikle ödemelerde).
  • Özellik bayrakları ve kanarya ekranları mevcuttur.
  • Korkuluklar: bekleme süresi, hız sınırı eylemleri, yüksek riskli işlemler için çift anahtar.
  • Otomasyon kontrol paneli ve denetim günlükleri.
  • Sıkışma durumunda manuel geçersiz kılma ve runbooks planı.

16) Faza göre uygulama (4 yineleme)

1. Temel: SLO'yu tanımlayın, problar ekleyin, yeniden başlatmalar/ana uyarılar ekleyin.
2. Yerel eylemler: phicheflag-kill-switch, lag-scaling tüketiciler, otomatik geri alma kanaryaları.
3. Infra düzeyinde: düğüm iyileştirme, veritabanı/önbellek yük aktarımı, yük gölgeleme.
4. Optimizasyon: korkuluklar, FinOps limitleri, kaos testleri, tespit için ML sezgileri.

17) Sık hatalar ve anti-desenler

Semptomların nedenini tedavi etmek - uzun MTTR.
Kanarya aşaması olmayan küresel eylemler.
Geri alma veya geri alma kriteri yok.
Yanlış sağlık kontrolleri (kırılmış bağımlılık için 200).
Sınırlar/maliyet eşikleri olmadan "Bloat" autoscale.
Geri dönüş ve veri tekilleştirme olmadan kör yeniden ödeme fırtınası.

18) Mini-SSS

Otomatik puanlama için ML'ye ihtiyacınız var mı?
Hayır. SLO/metrikler ve korkuluklar ile ilgili kurallarla başlayın; ML anomaliler ve yüklemler için yararlıdır.

Neden yeniden başlatmak her zaman yardımcı olmuyor?
Kök bağımlı ise (veritabanı, önbellek, ağ), yeniden başlatma yalnızca fırtınayı şiddetlendirir. Bir kırıcı/dökülme/feilover gerekir.

Faydaları nasıl kanıtlanır?
MTTR ve bütçe öncesi/sonrası hatalı tüketimi karşılaştırın. Azaltma metrikleri başına maliyet ekleyin.

Toplam

Otomatik iyileştirme, bir dizi "yeniden başlatma koltuk değneği'değil, bir sistemdir: SLO algılama - güvenli nokta eylemleri - doğrulama - kötüleştiğinde geri alma. Probları, kanarya hesaplamalarını, özellik bayraklarını, ölçeklendirmeyi, gölgelendirmeyi, kaymayı ve sıkı korkulukları birleştirerek MTTR'yi azaltır, bütçeyi hatalı tutar ve maliyeti kontrol altında tutarsınız.

Contact

Bizimle iletişime geçin

Her türlü soru veya destek için bize ulaşın.Size yardımcı olmaya her zaman hazırız!

Telegram
@Gamble_GC
Entegrasyona başla

Email — zorunlu. Telegram veya WhatsApp — isteğe bağlı.

Adınız zorunlu değil
Email zorunlu değil
Konu zorunlu değil
Mesaj zorunlu değil
Telegram zorunlu değil
@
Telegram belirtirseniz, Email’e ek olarak oradan da yanıt veririz.
WhatsApp zorunlu değil
Format: +ülke kodu ve numara (örneğin, +90XXXXXXXXX).

Butona tıklayarak veri işlemenize onay vermiş olursunuz.