Fault Injection
목차
Why Fault Injection?
프로덕션 환경에서의 복원력 테스트
1. Chaos Engineering의 핵심 원칙
2. 실제 프로덕션 시나리오 재현
시나리오
원인
Fault Injection 테스트
3. Circuit Breaker와 Timeout 설정 검증
4. 안전한 배포 검증
When to Use Fault Injection
1. 개발 및 테스트 환경
시나리오: 새로운 마이크로서비스 개발
2. 스테이징 환경에서의 통합 테스트
시나리오: 프로덕션 배포 전 최종 검증
3. 프로덕션 환경에서의 Chaos Testing
시나리오: 프로덕션 복원력 정기 테스트
4. Timeout 및 Retry 정책 조정
시나리오: 최적의 Timeout 값 찾기
5. Circuit Breaker 동작 검증
시나리오: Circuit Breaker가 제대로 작동하는지 확인
6. 특정 사용자 그룹에 대한 테스트
시나리오: 베타 테스터에게만 장애 주입
Fault Injection 개요
Delay 주입
Abort 주입
실전 예제
1. Delay와 Abort 조합
2. 조건부 Fault Injection
3. 점진적 장애 주입 (Progressive Fault Injection)
4. HTTP 상태 코드별 테스트
Real-World Scenarios
시나리오 1: 데이터베이스 느린 쿼리 시뮬레이션
시나리오 2: 마이크로서비스 Cascade Failure 테스트
시나리오 3: API Rate Limit 상황 테스트
시나리오 4: 지역 간 네트워크 지연 시뮬레이션
시나리오 5: 배포 중 일시적 장애 시뮬레이션
Testing Strategies
1. Progressive Chaos Engineering
2. Time-Based Testing
3. Automated Testing Pipeline
4. Monitoring and Alerting
5. Blue-Green Fault Injection
모범 사례
1. 작게 시작하기
2. 모니터링 필수
3. 명확한 레이블 사용
4. 자동 롤백 메커니즘
5. 문서화
6. 프로덕션 환경 주의사항
7. 정기적인 테스트
참고 자료
마지막 업데이트