운영 우수성
Amazon에서는 소프트웨어를 올바르게 구축하는 동시에 우수한 고객 환경을 지속적으로 제공하기 위한 노력으로 운영 우수성을 정의합니다. 여기에는 팀 구성, 워크로드 설계, 규모에 따른 운영, 장기적 발전에 관한 모범 사례가 포함되어 있습니다. 여러분의 팀은 운영 우수성을 통해 고객에게 도움이 되는 새로운 기능을 구축하는 데 더 많은 시간을 할애하고 유지 보수 및 급한 문제를 해결하는 데 걸리는 시간을 단축할 수 있습니다. Amazon에서는 올바른 구축을 위해 원활하게 운영되는 시스템, 조직과 팀을 위한 균형 잡힌 워크로드, 특히 우수한 고객 경험으로 이어지는 모범 사례를 고려합니다.
운영 우수성의 목표는 새로운 기능과 버그 수정을 빠르고 안정적으로 고객에게 제공하는 것입니다. 운영 우수성에 투자하는 조직은 새로운 기능을 구축하고, 변경하고, 장애를 처리하면서 고객이 지속적으로 만족하게 할 수 있습니다. 운영 우수성은 개발자가 고품질의 결과를 일관되게 달성할 수 있도록 지원함으로써 지속적인 통합과 지속적인 제공(CI/CD)을 지향합니다.
설계 원칙
클라우드에서 운영 우수성을 달성하기 위한 설계 원칙은 다음과 같습니다.
-
코드를 통한 운영: 애플리케이션 코드를 위해 사용하였던 엔지니어링 원칙을 클라우드에서 인프라를 포함한 환경에 적용할 수 있습니다. 그러면 전체 워크로드(애플리케이션, 인프라 등)를 코드로 정의하고 코드로 업데이트할 수 있습니다. 운영 절차를 스크립팅하고 이벤트에 대응하여 이를 실행하여 프로세스를 자동화할 수 있습니다. 코드로 운영을 수행하면 인적 오류가 제한되고 이벤트에 대한 일관된 대응이 가능합니다.
-
작게 자주 발생하고 되돌릴 수 있는 변경 내용 적용: 주기적으로 구성 요소 업데이트가 가능하도록 워크로드를 설계하여 워크로드에 유익한 변경 사항이 지속적으로 적용되게 합니다. 운영 환경에서 발생한 문제를 식별하고 해결하는 데 어려움이 있는 경우, 가능한 한 고객에게 영향을 주지 않고 되돌릴 수 있을 정도의 작은 단위로 변경 내용을 적용합니다.
-
수시로 운영 절차 수정: 운영 절차를 사용할 때 개선할 여지가 있는지 확인합니다. 워크로드가 개선되면 절차도 적절하게 개선합니다. 정기적인 게임 데이를 설정하여 모든 절차가 효과가 있으며 팀이 이러한 절차에 친숙한지 여부를 검토하고 검증합니다.
-
실패 예측: "사전 분석(pre-mortem)" 연습을 수행하여 잠재적인 실패 소스를 식별하고 이를 해소하거나 완화할 수 있도록 합니다. 실패 시나리오를 테스트하고 그에 따른 영향을 이해했는지 여부를 검증합니다. 응답 절차를 테스트하여 효과가 있는지, 팀이 이 실행 단계에 친숙한지 확인합니다. 정기 게임 데이를 준비하여 시뮬레이션된 이벤트에 대한 팀의 응답 및 워크로드를 테스트합니다.
-
모든 운영상 실패로부터 학습: 모든 운영상 이벤트 및 실패로부터 파악한 내용을 통해 개선합니다. 파악한 내용을 팀 전반 및 조직 전체에서 공유합니다.
정의
클라우드의 운영 우수성에는 4가지 모범 사례 영역이 있습니다.
-
조직
-
준비
-
운영
-
개선
조직의 경영진이 비즈니스 목표를 정합니다. 조직은 요구 사항과 우선순위를 파악하고, 이를 통해 비즈니스 성과를 실현할 수 있도록 업무를 구성하고 수행해야 합니다. 또한 워크로드에서 이를 지원하는 데 필요한 정보를 생성해야 합니다. 워크로드를 통합, 배포 및 제공하는 서비스를 구현하면 반복적인 프로세스를 자동화하여 프로덕션 환경에 유익한 변경 사항을 지속적으로 더 많이 적용할 수 있습니다.
워크로드 운영에 내재된 위험이 있을 수 있습니다. 이러한 위험을 파악하고 정보에 근거하여 프로덕션 환경에 적용할지 여부를 결정해야 합니다. 그리고 팀에서 워크로드를 지원할 수 있어야 합니다. 원하는 비즈니스 성과에서 도출된 비즈니스 및 운영 지표를 통해 워크로드 상태, 운영 활동, 인시던트에 대한 대응 능력을 파악할 수 있습니다. 우선순위는 비즈니스 요구 사항과 비즈니스 환경 변화에 따라 달라집니다. 이를 피드백 루프로 활용하여 조직과 워크로드 운영을 지속적으로 개선합니다.