요약
Contoso Shoes는 출시를 준비하는 동안 높은 가용성을 유지하려는 온라인 신발 매장입니다. 2년 전에 온-프레미스 배포를 클라우드로 마이그레이션했으며 OpEx 모델을 채택하여 이점을 누렸습니다. 지난 6개월 동안 가용성 문제가 발생했으며 운영자는 문제를 신속하게 해결할 수 없습니다. 이제 조직은 중요 업무용 워크로드를 구현하는 데 투자하고 시스템의 전반적인 안정성과 가시성을 향상시키는 데 집중하려고 합니다.
이전 아키텍처에서 애플리케이션은 단일 지역에 배포되었으며 지역 중단을 견딜 수 없었습니다. Azure App Service 및 외부 모니터링 도구에는 애플리케이션 자체의 상태를 검사할 수 있는 방법이 없었습니다. 이러한 간극으로 인해 트래픽이 비정상 App Service 인스턴스로 라우팅되어 요청이 실패하게 된 것입니다. 팀은 플랫폼 종속성에 영향을 주는 API 구성 요소로 인한 문제의 연속적인 영향을 확인할 수 없었습니다.
이 챌린지를 완료하면서 중요 업무용 디자인을 개략적으로 살펴보았습니다. Contoso의 요구 사항을 충족하기 위해 연습을 진행하면서 학습을 적용했습니다.
향상된 디자인은 상태 모델을 사용하여 하나 이상의 구성 요소의 성능 저하를 감지합니다. 이제 SRE 팀은 문제를 신속하게 식별하고 해결할 수 있으며, 이로 인해 전체 가동 중단이 발생할 수 있습니다. 이제 솔루션이 활성-활성 모델의 여러 지역에 배포되었으므로 운영자에게 더 많은 시스템 상태 인사이트를 제공하면서 전체 지역 오류를 견딜 수 있습니다. 또한 Contoso는 지리적으로 가까운 지역에서 클라이언트에게 더 빠르게 서비스를 제공하여 고객 환경을 개선했습니다.
이 챌린지 프로젝트를 완료한 것을 축하합니다. 기존 예제 솔루션을 분석하고 향상된 아키텍처를 디자인하는 능력을 확인했습니다.
제안된 다음 단계
완료한 연습이 유용한 시작점이 될 수 있지만 중요 업무용 워크로드의 모든 측면을 다루지는 않습니다. 잘 설계된 중요 업무용 워크로드에 제공된 디자인 원칙 및 영역을 계속 살펴보세요. 다음과 같은 주요 가치 영역이 권장됩니다.
지속적인 유효성 검사 및 테스트
애플리케이션 코드와 인프라의 상태가 유효한지 완전히 확인해야 합니다. 범위는 안정성, 성능, 가용성, 보안, 품질 및 규모에 대해 설정된 요구 사항을 포함해야 합니다.
자세한 정보: 지속적인 유효성 검사 및 테스트
여러 애플리케이션 환경 사용
개발/테스트 환경은 프로덕션 환경과 리소스를 공유해서는 안 됩니다. 각 환경에는 안정성, 용량 및 보안에 대한 고유한 요구 사항 집합이 있습니다. 이 아키텍처에서 환경 간에 공유되는 서비스를 식별할 수 있나요? 이 권장 사항에 맞게 디자인을 변경하려면 어떻게 하나요?
자세한 정보: 애플리케이션 환경
확장된 배포 환경
중요 업무용 시스템에는 엄격한 시험판 테스트 및 견고한 SDLC(소프트웨어 개발 수명 주기) 방식이 필요합니다. 단일 공유 개발 환경 대신, 스테이징 및 프로덕션과 더 가깝게 일치하는 여러 임시 환경을 사용합니다. 전용 스테이징 환경은 부하 및 성능 테스트, 카오스 테스트, UAT(사용자 수용 테스트) 및 보안 테스트에 사용해야 합니다.
자세한 정보: 임시 블루/그린 배포
메시지 브로커를 사용하여 복원력 추가
여러 엔드포인트와의 조정이 필요한 복잡한 트랜잭션에 도움이 되는 메시지 브로커를 도입합니다. 단일 구성 요소 오류로 인해 판매 손실의 위험을 감수하는 대신 처리를 위해 요청을 큐에 대기할 수 있습니다.
자세히 정보: 느슨하게 결합된 이벤트 기반 아키텍처
자세한 정보
Azure에서 솔루션을 디자인하는 방법에 대한 자세한 내용은 Azure Well-Architected Framework 가이드를 참조하세요.
디자인을 확장하는 방법으로 Azure 아키텍처 센터에서 이러한 참조 아키텍처를 살펴봅니다.