카오스 엔지니어링 및 복원력 이해
Azure Chaos Studio 사용을 시작하기 전에 적용되는 핵심 사이트 안정성 엔지니어링 개념을 이해하는 것이 유용합니다.
복원력이란?
대규모 분산 애플리케이션을 만드는 것이 결코 쉽지 않았습니다. 인프라는 클라우드에서 호스트되며 프로그래밍 언어 지원은 다양합니다. 빌드할 많은 오픈 소스 및 호스트된 구성 요소 및 서비스도 있습니다.
아쉽게도 이러한 기본 구성 요소 및 종속성 또는 이를 기반으로 구축된 시스템에 대한 안정성 보장은 없습니다. 인프라는 오프라인 상태가 될 수 있으며 언제든지 서비스 중단이 발생할 수 있습니다. 한 영역의 사소한 중단은 확대될 수 있으며 다른 영역에서는 장기적인 부작용이 있을 수 있습니다.
애플리케이션 및 서비스는 다음과 같은 문제를 계획하고 수용해야 합니다.
- 서비스 중단
- 알려진 종속성과 알 수 없는 종속성에 대한 중단
- 갑작스런 예기치 않은 로드
- 시스템 전체의 대기 시간
애플리케이션 및 서비스는 오류를 처리하고 중단에 대비하여 강화되도록 설계되어야 합니다.
스트레스와 문제를 정상적으로 처리하는 애플리케이션 및 서비스는 복원력이 있습니다. 개별 구성 요소 안정성은 좋지만 복원력은 전체 시스템의 속성입니다. 엔드투엔드 시스템 복원력은 프로덕션과 유사한 통합 환경에서 프로덕션 환경에서 발생할 조건 및 부하의 유효성을 검사해야 합니다.
카오스 엔지니어링 및 오류 주입이란?
- 카오스 엔지니어링: 애플리케이션과 서비스를 실제 스트레스와 실패에 적용하는 방법입니다. 목표는 신뢰할 수 없는 조건 및 누락된 종속성에 대한 복원력을 구축하고 유효성을 검사하는 것입니다.
- 오류 주입: 시스템에 오류를 도입하는 행위입니다. 네트워크 대기 시간 또는 스토리지에 대한 액세스 손실과 같은 다양한 오류를 사용하여 시스템 구성 요소를 대상으로 지정할 수 있습니다. 애플리케이션 또는 서비스에서 처리하거나 복구할 수 있어야 하는 시나리오를 만들 수 있습니다.
카오스 실험은 하나 이상의 구독 리소스 또는 종속성에 대해 개별적으로, 병렬로 또는 순차적으로 오류를 적용하는 것입니다. 목표는 발생하는 모든 문제에 대해 작업할 수 있도록 시스템 동작 및 상태를 모니터링하는 것입니다.
실험은 데이터 센터 정전 또는 DNS 서버에 대한 네트워크 대기 시간과 같은 실제 시나리오를 나타낼 수 있습니다. 발생하는 에지 조건을 시뮬레이션하는 데 사용할 수도 있습니다. 블랙 프라이데이 쇼핑을 하거나 인기 밴드의 콘서트 티켓을 판매하는 경우를 예로 들 수 있습니다.