Azure Chaos Studio란?

Azure Chaos Studio는 카오스 엔지니어링을 사용하여 클라우드 애플리케이션 및 서비스 복원력을 측정, 이해 및 개선하는 데 도움이 되는 관리형 서비스입니다. 카오스 엔지니어링은 제어된 오류 주입 실험을 실행하기 위해 실제 오류를 애플리케이션에 삽입하는 방법론입니다.

복원력은 중단을 처리하고 복구하는 시스템의 능력입니다. 애플리케이션 중단으로 인해 비즈니스 또는 업무에 부정적인 영향을 줄 수 있는 오류 및 실패가 발생할 수 있습니다. Azure 애플리케이션을 개발, 마이그레이션 또는 운영하는 경우 애플리케이션의 복원력을 검증하고 개선하는 것이 중요합니다.

Chaos Studio를 사용하면 애플리케이션이 중단 및 실패에 효과적으로 대응하는지 검증하여 부정적인 결과를 방지할 수 있습니다. Chaos Studio를 사용하여 VM(가상 머신)에서 중단 또는 높은 CPU 사용률과 같은 실제 인시던트에 대한 복원력을 테스트할 수 있습니다.

다음 비디오에서는 Chaos Studio에 대한 자세한 배경을 제공합니다.

Chaos Studio 시나리오

서비스 개발 및 운영 수명 주기에 걸쳐 있는 다양한 복원력 유효성 검사 시나리오에 카오스 엔지니어링을 사용할 수 있습니다. 두 가지 형식의 시나리오가 있습니다.

  • 시프트 라이트(Shift right): 이러한 시나리오는 프로덕션 또는 사전 프로덕션 환경을 사용합니다. 일반적으로 실제 고객 트래픽 또는 시뮬레이션된 로드를 사용하여 시프트 라이트 시나리오를 수행합니다.
  • 시프트 레프트(Shift left): 이러한 시나리오는 개발 또는 공유 테스트 환경을 사용할 수 있습니다. 실제 고객 트래픽 없이 시프트 레프트 시나리오를 수행할 수 있습니다.

다음과 같은 일반적인 카오스 엔지니어링 시나리오에 Chaos Studio를 사용할 수 있습니다.

  • 애플리케이션에 영향을 주는 인시던트를 재현하여 오류를 더 잘 이해합니다. 인시던트 후 복구를 통해 인시던트가 되풀이되지 않도록 합니다.
  • “게임 데이” 로드, 크기 조정, 성능 및 복원력 유효성 검사를 사용하여 주요 이벤트 또는 시즌을 준비합니다.
  • 비즈니스 연속성 및 재해 복구 훈련을 수행하여 애플리케이션이 신속하게 복구하고 재해에서 중요한 데이터를 보존할 수 있도록 합니다.
  • 지역적 정전, 네트워크 구성 오류, 스트레스가 높은 이벤트 또는 노이즈 인접 문제에 대한 애플리케이션 복원력을 테스트할 수 있도록 고가용성 훈련을 실행합니다.
  • 애플리케이션 성능 벤치마크를 개발합니다.
  • 프로덕션 환경에 대한 용량 요구 사항을 계획합니다.
  • 스트레스 테스트 또는 부하 테스트를 실행합니다.
  • 온-프레미스 또는 다른 클라우드 환경에서 마이그레이션된 서비스가 알려진 오류에 대한 복원력을 유지하도록 보장합니다.
  • 클라우드 네이티브 아키텍처를 기반으로 하는 서비스에 대한 신뢰도를 빌드합니다.
  • 라이브 사이트 도구, 관찰 가능성 데이터 및 호출 중인 프로세스가 예기치 않은 조건에서 계속 작동하는지 확인합니다.

이러한 많은 시나리오의 경우 먼저 임시 카오스 실험을 사용하여 복원력을 빌드합니다. 그런 다음, 새 배포가 복원력을 회귀하지 않는지 지속적으로 확인합니다. 확인하려면 연속 통합/지속적인 배포 파이프라인에서 배포 게이트로 카오스 실험을 실행합니다.

Chaos Studio의 작동 방식

Chaos Studio를 사용하면 Azure 리소스에서 안전하고 제어된 오류 주입을 오케스트레이션할 수 있습니다. Chaos Studio의 핵심은 카오스 실험입니다. 카오스 실험에서는 실행할 오류와 실행할 리소스를 설명합니다. 필요에 따라 오류를 병렬 또는 시퀀스로 실행하도록 구성할 수 있습니다.

Chaos Studio는 다음 두 가지 유형의 오류를 지원합니다.

  • 서비스 직접: 이러한 오류는 설치 또는 계측 없이 Azure 리소스에 대해 직접 실행됩니다. 예를 들어 Azure Cache for Redis 클러스터를 다시 부팅하거나 Azure Kubernetes Service Pod에 네트워크 대기 시간을 추가하는 것이 있습니다.
  • 에이전트 기반: 이러한 오류는 VM 또는 가상 머신 확장 집합에서 실행되어 게스트 내 오류를 수행합니다. 예를 들어 가상 메모리 압력을 적용하거나 프로세스를 종료하는 것이 있습니다.

오류마다 구성할 수 있는 특정 매개 변수(예: 종료할 프로세스 또는 생성할 메모리 압력의 양)가 있습니다.

카오스 실험을 빌드할 때 순차적으로 실행되는 하나 이상의 단계를 정의합니다. 각 단계에는 단계 내에서 병렬로 실행되는 하나 이상의 분기가 포함됩니다. 각 분기에는 오류를 삽입하거나 특정 기간 동안 대기하는 것과 같은 하나 이상의 작업이 포함됩니다.

각 작업에서 리소스 그룹을 쉽게 참조할 수 있도록 선택기라고 하는 그룹으로 오류를 실행하도록 리소스 대상을 구성합니다.

다음 다이어그램은 Chaos Studio에서 카오스 실험의 레이아웃을 보여 줍니다.

Diagram that shows the layout of a chaos experiment.

카오스 실험은 구독 및 리소스 그룹에 있는 Azure 리소스입니다. Azure Portal 또는 Chaos Studio REST API를 사용하여 실험 상태를 생성, 업데이트, 시작, 취소 및 조회할 수 있습니다.

다음 단계

이제 카오스 엔지니어링을 사용하는 방법을 이해했으므로 다음을 수행할 준비가 되었습니다.