Logo GH

자동 치유 및 자기 치유

(섹션: 기술 및 인프라)

간략한 요약

자동 치유는 "Kubernetes magic" 이 아니라 올바른 샘플 및 한계, 제어 된 배신, 결함이있는 인스턴스 격리, SLO 자동화 및 버튼/봇에 의한 runabook 동작 등 일련의 분야입니다. 목표는 눈덩이 혼잡없이 MTTR을 줄이고 p95/p99, 지불 및 TTW를 최고점까지 유지하는 것입니다.

1) 자기 치유 원리

1. 실패 및 격리: 불량 포드/인스턴스를 신속하게 식별하고 격리합니다.
2. 백오프 + 지터: 지수 지연 및 지터가있는 모든 리트레이/스케일 아웃.
3. SLO 인식: 빠른 연소 오류 예산으로 자동화가 활성화/향상되었습니다.
4. 이념성: 반복 거래는 안전합니다 (특히 지불/대기열).
5. 심층 방어: 샘플, 할당량, 한계, 회로 차단기, 특이 치 배출, 속도 제한, 분해 모드.

2) Kubernetes의 기지

2. 샘플 1 개: 활력/준비/시작

startupProbe는 무거운 서비스의 조기 재시작으로부터 보호합니다.
준비 프로브는 교통 준비 상태 (따뜻한 캐시/연결) 를 결정합니다.

livenessProbe는 중단 된 프로세스를 다시 시작합니다

yaml readinessProbe:
httpGet: { path: /health/ready, port: 8080 }
periodSeconds: 5 timeoutSeconds: 1 failureThreshold: 3

livenessProbe:
httpGet: { path: /health/live, port: 8080 }
initialDelaySeconds: 20 periodSeconds: 10 failureThreshold: 3

startupProbe:
httpGet: { path: /health/startup, port: 8080 }
periodSeconds: 5 failureThreshold: 30

2. 한계, PDB 및 우선 순위 2 개

요청/제한은 "시끄러운 이웃" 을 제외합니다

PodDisruptionBudget (PDB) 은 모든 포드가 동시에 떨어지는 것을 방지합니다.

yaml apiVersion: policy/v1 kind: PodDisruptionBudget spec:
minAvailable: 2 selector: { matchLabels: { app: payments-api } }

중요한 경로 (지불, 게이트웨이) 에 대한 PriorityClass.

2. 3 재시작 및 배포 전략

'최대 사용할 수 없음: 중요한 서비스를위한 0'; 작은 증분으로 롤링 업데이트.
PodAntiAffinity는 포드를 노드/영역에 할당합니다.

3) 자동 스케일링 및 이벤트 스케일링

HPA (CPU/사용자 메트릭)

yaml apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler spec:
minReplicas: 3 maxReplicas: 30 metrics:
- type: Resource resource: { name: cpu, target: { type: Utilization, averageUtilization: 70 } }
- type: Pods pods:
metric:
name: http_requests_per_second target:
type: AverageValue averageValue: "50"

VPA

배경 작업자/배치 작업에 사용하십시오. prod-API에서-조심스럽게 (다시 시작).

KEDA (대기열/외부 이벤트)

Kafka 지연, RabbitMQ, Redis, Prometheus 요청에 대한 트리거-작업이 축적되면 소비자를 늘립니다.

4) 네트워크 방어: 회로 차단기 및 컬링 "나쁜"

특사/Istio 특이 치 탐지 (и

yaml outlierDetection:
consecutive5xx: 5 interval: 5s baseEjectionTime: 30s maxEjectionPercent: 50

회로 차단기는 종속성을 떨어 뜨리지 않도록 동시 요청/연결을 제한합니다.

속도 제한

복귀의 물결이 사고를 증가시키지 않도록 게임 제공 업체의 입력 호출/PSP 경로/를 제한하십시오.

5) 지터가있는 레트라이, 타임 아웃 및 백오프

규칙: 첫 번째 타임 아웃, 후퇴, 항상 지터와 제한된 시도로.

의사 코드:
python def backoff(attempt, base=0. 1, cap=2. 0):
import random, math sleep = min(cap, base (2 attempt))
jitter = random. uniform(0, sleep 0. 4)
return sleep + jitter

결제-dempotent 키 + 중복 제거.
대기열의 경우-데드 레터 및 지연된 재 시도.

6) 대기열/스트리밍의자가 치유

DLQ + 성장 경고; 고립 된 재 처리.
제어 지연: 자동 규모 소비자 (KEDA), 생산자에 대한 역압.
정확히 한 번/적어도 한 번-의식적으로 선택; 작업은 demmpotent입니다.

7) 현금 및 예열

안전한 장애/롤백을위한 버전 키 ('v2:').
DB/PSP에 연결되는 따뜻한 풀; 전환 전 예열 (청록색/카나리아).
"콜드" 데이터베이스 적중률을 줄이기 위해 부동산 중입니다.

8) SLO에 의한 자동 치료 (신호 동작)

우리는 연소율/TTW/p95 경고를 안전한 자동 동작과 연관시킵니다

카나리아/롤백을 중지하십시오.

(PHP 3 = 3.0.6, PHP 4)

저하 모드 활성화 (UX 단순화, 무거운 기능 비활성화).
타임 아웃이 급증하면 PSP 경로를 전환합니다.

기능 플래그 킬 스위치 활성화

예 (Alertmanner → Webhook → Orchestrator 아이디어):
yaml alert: WithdrawalsQueueLag labels: { action: "scale_workers", target: "withdrawals-consumers", by: "+5" }

9) 악화 모드 (우아한 저하)

UI (요청 감소) 를 단순화하고 "비싼" 위젯을 끄십시오.
더 많은 캐싱, 더 적은 팬 아웃/집계.
LLM/추천의 경우-컨텍스트/모델의 크기를 줄이고 "빠른 경로" 를 활성화하십시오.

10) 자동 수정에 대한 GitOps 접근

모든 자동 치료 정책 및 매개 변수 (타임 아웃, 임계 값) 는 Git에 있습니다.
모든 자동 동작은 Grafana에 주석과 변경 로그에 항목을 만듭니다.
카나리아 정책 및 SLO 게이트도 코드입니다.

11) 카오스 엔지니어링: 치유가 효과가 있는지 확인

장애 주사: 네트워크 지연, 난로 감소, PSP 에뮬레이터 장애, 대기열 지연.
게임 데이 시나리오: 우리는 MTTR, 자동 작업 품질, 아티팩트의 존재를 측정합니다.
결과 → runabooks, 임계 값, phicheflags 업데이트.

12) 자동 치유에 대한 관찰 가능성

Exemplars: p95 메트릭에서 트랙으로 빠르게 점프합니다.
'trace _ id' 및 필드 'Reshitory', 'sid', 'atorized _ mode = 참' 의 로그가 있습니다.
릴리스 비교 대시 보드 (안정 대 카나리아), SLO 카드.
자동 작업 감사: 누가/무엇/언제, 소스 메트릭, 결과.

13) 안전 및 준수

자동 치료 로그/메트릭에는 비밀이 없습니다.
지불 활동의 경우-이중 확인/역할.
Geo/PII-feilover로 "잘못된" 지역으로 트래픽을 전달하지 마십시오.

14) 실제 템플릿

Istio DestinationRule-연결 풀 및 특이 치

yaml trafficPolicy:
connectionPool:
http: { http1MaxPendingRequests: 1000, maxRequestsPerConnection: 100 }
outlierDetection:
consecutive5xx: 5 interval: 5s baseEjectionTime: 30s maxEjectionPercent: 50

플래거-자동 플러시/롤백이있는 카나리아

yaml analysis:
interval: 1m threshold: 5 metrics:
- name: request-success-rate thresholdRange: { min: 99 }
- name: request-duration thresholdRange: { max: 300 }
webhooks:
- name: smoke url: http://tester/smoke

KEDA ScaledObject-카프카 지연

yaml triggers:
- type: kafka metadata:
topic: withdrawals bootstrapServers: broker:9092 consumerGroup: w-consumers lagThreshold: "5000"

15) 구현 점검표

1. 시작/준비/활력 및 건강 종점이 구성됩니다.
2. 한계/자원 요청 + PDB/친 화성 방지.
3. API 및 근로자를위한 HPA/KEDA; 지연/처리량 지표.
4. 게이트/메쉬의 회로 차단기, 특이 치 배출, 속도 제한.
5. 백오프 + 지터, 결제 거래의 demempotency가있는 Retrai.
6. 버전 캐시 및 저하 모드.
7. SLO 게이트 → 자동 작동 (롤백/스케일/경로/킬 스위치).
8. GitOps 정책 코드 + 감사 조치, 주석 공개.
9. 주요 시나리오에 대한 혼돈 테스트 및 게임 데이.
10. MTTR/Alert Quality 대시 보드 및 자동 치료 보고서.

16) 반 패턴

시간 의존성 → 플 래핑으로 인해 라이브네스는 프로세스를 "손톱" 합니다.
타임 아웃/지터 → 요청의 폭풍이없는 Retrai.
IO 종속 서비스를 제공하는 CPU 별 HPA → "아무데도".
롤백 → 데이터 손상 중 버전이없는 공유 캐시.
감사/런북없이 자동 동작.
DLQ/지연 지표가 없습니다. → 조용한 부채 축적.
자동 치유와 "숨기기 문제" 혼합: 자동화는 증상을 치유합니다. 근본은 제거되지 않습니다. → 사고 반복.

요약

자가 치유는 고품질 샘플 및 한계, 유능한 배신 및 격리, SLO 신호에 대한 자동 동작, 혼돈 점검 및 감사 등 엔지니어링 분야입니다. 이 윤곽은 플랫폼 충돌에 강하고 MTTR을 차단하며 가장 뜨거운 시간에도 주요 iGaming 메트릭 (p99, 결제 변환 및 TTW) 을 절약합니다.

Contact

문의하기

질문이나 지원이 필요하시면 언제든지 연락하십시오.우리는 항상 도울 준비가 되어 있습니다!

Telegram
@Gamble_GC
통합 시작

Email — 필수. Telegram 또는 WhatsApp — 선택 사항.

이름 선택 사항
Email 선택 사항
제목 선택 사항
메시지 선택 사항
Telegram 선택 사항
@
Telegram을 입력하시면 Email과 함께 Telegram에서도 답변드립니다.
WhatsApp 선택 사항
형식: +국가 코드 + 번호 (예: +82XXXXXXXXX).

버튼을 클릭하면 데이터 처리에 동의하는 것으로 간주됩니다.