OPS 6: 배포 위험을 최소화하기 위해 어떻게 노력하나요?
품질과 관련한 피드백을 빠르게 제공하며, 적절한 성과를 달성하는 데 도움이 되지 않는 변경을 수행한 경우 신속하게 복구할 수 있는 방식을 도입합니다. 이러한 사례를 사용하면 변경 사항 배포로 인해 발생하는 문제의 영향을 완화할 수 있습니다.
리소스
Deep Dive on Advanced Continuous Delivery Techniques Using AWS
AWS Developer Tools
AWS CodeDeploy User Guide
Try a Sample Blue/Green Deployment in AWS CodeDeploy
모범 사례:
-
부적절한 변경을 수행한 경우의 계획 수립:: 변경을 수행했는데 적절한 성과를 달성하는 데 도움이 되지 않는다면 알려진 정상 상태로 되돌릴 수 있는 계획을 세우거나 프로덕션 환경에서 관련 문제를 해결합니다. 이와 같이 준비를 하면 문제에 더욱 신속하게 대응함으로써 복구 시간을 단축할 수 있습니다.
-
변경 사항 테스트 및 확인: 수명 주기의 모든 단계에서 변경 사항을 테스트하고 결과를 검증하여 새 기능을 확인하고 배포 실패의 영향과 위험을 최소화합니다.
-
배포 관리 시스템 사용: 배포 관리 시스템을 사용하여 변경을 추적하고 구현합니다. 이렇게 하면 수동 프로세스에서 발생하는 오류와 변경 사항 배포를 위한 작업을 줄일 수 있습니다.
-
제한된 배포를 사용하여 테스트: 전체 배포를 진행하기 전에 기존 시스템과 함께 제한된 배포를 사용해 테스트를 진행하여 원하는 결과를 달성할 수 있는지를 확인합니다. 예를 들어 Canary 배포 테스트나 원박스 배포를 사용합니다.
-
병렬 환경을 사용하여 배포: 병렬 환경에 변경 사항을 구현한 다음 새 환경으로 이전합니다. 배포가 정상 완료되었음이 확인될 때까지는 이전 환경을 유지합니다. 이렇게 하면 만일의 경우 이전 환경을 롤백할 수 있으므로 복구 시간을 최소화할 수 있습니다.
-
작게 자주 발생하고 되돌릴 수 있는 변경 내용 배포: 되돌릴 수 있는 소규모 변경 작업을 자주 수행하면 변경의 범위가 감소합니다. 그러면 문제를 더 쉽게 해결할 수 있으며 변경 사항 롤백 옵션을 사용해 문제 해결 시간을 단축할 수 있습니다.
-
통합 및 배포 완전 자동화:: 워크로드 빌드, 배포 및 테스트를 자동화합니다. 이렇게 하면 수동 프로세스에서 발생하는 오류와 변경 사항 배포를 위한 작업을 줄일 수 있습니다.
-
테스트 및 롤백 자동화: 배포된 환경의 테스트를 자동화하여 원하는 성과를 달성할 수 있는지를 확인합니다. 원하는 결과를 달성할 수 없는 경우에는 알려진 정상 상태로 롤백하는 과정을 자동화하면 수동 프로세스에서 발생하는 오류를 줄이고 복구 시간을 최소화할 수 있습니다.
개선 계획
부적절한 변경을 수행한 경우의 계획 수립:
변경 사항 테스트 및 확인
AWS Cloud9
What is AWS Cloud9?
How to test and debug AWS CodeDeploy locally before you ship your code
배포 관리 시스템 사용
Introduction to AWS CodeDeploy - automated software deployment with Amazon Web Services
What is AWS CodeDeploy?
What is AWS Elastic Beanstalk?
What is Amazon API Gateway?
제한된 배포를 사용하여 테스트
Working with deployment configurations in AWS CodeDeploy
Blue/Green deployments with AWS Elastic Beanstalk
Set up an API Gateway canary release deployment
병렬 환경을 사용하여 배포
Working with deployment configurations in AWS CodeDeploy
Blue/Green deployments with AWS Elastic Beanstalk
Set up an API Gateway canary release deployment
작게 자주 발생하고 되돌릴 수 있는 변경 내용 배포
통합 및 배포 완전 자동화:
What is AWS CodeBuild?
Continuous integration best practices for software development
Slalom: CI/CD for serverless applications on AWS
Introduction to AWS CodeDeploy - automated software deployment with Amazon Web Services
What is AWS CodeDeploy?
테스트 및 롤백 자동화
Redeploy and roll back a deployment with AWS CodeDeploy