안전한 배포 방법에 대한 권장 사항
이 Power Platform Well-Architected Operational Excellence 체크리스트 권장 사항에 적용됩니다.
오이에스:10 | 워크로드의 안전한 배포 방법을 명확하게 정의하세요. 소규모, 점진적, 품질 관리 릴리스 방법의 이상을 강조합니다. 최신 배포 패턴을 사용하여 위험을 제어하세요. 일상적인 배포와 긴급 또는 핫픽스 배포를 고려합니다. |
---|
이 가이드에서는 안전한 배포 관행을 사용하기 위한 권장 사항을 설명합니다. 안전한 배포 프로세스 및 절차는 워크로드를 안전하게 변경하고 배포하는 방법을 정의합니다. 이를 구현하려면 위험 관리의 관점에서 배포를 생각해야 합니다. 이러한 관행을 구현하면 배포 시 인적 오류의 위험을 최소화하고 문제가 있는 배포가 사용자에게 미치는 영향을 제한할 수 있습니다.
주요 디자인 전략
안전한 배포 방법을 구현할 때 명심해야 할 중요한 지침이 있습니다.
- 안전성과 일관성: 프로덕션 작업 부하에 대한 모든 변경은 본질적으로 위험하므로 안전성과 일관성에 초점을 맞춰야 합니다.
- 건강 모델: 점진적 노출의 각 단계를 시작하기 전에 배포가 상태 검사를 통과해야 합니다.
- 문제 감지: 문제가 감지되면 배포를 즉시 중단하고 복구를 시작해야 합니다.
다음 섹션에서는 이러한 각 사항에 대한 자세한 권장 사항을 제공합니다.
안전성 및 일관성
애플리케이션 코드, 인프라 코드(IaC), 기능 플래그 또는 구성에 대한 업데이트를 배포하는 경우 작업 부하에 위험이 발생합니다. 프로덕션에 저위험 배포는 없습니다. 모든 배포는 표준 패턴을 따라야 하며 일관성을 강화하고 인적 오류의 위험을 최소화하기 위해 자동화되어야 합니다. 워크로드 공급망 및 배포 파이프라인이 안정적이고 안전하며 명확하게 정의된 배포 표준을 갖는 것이 중요합니다. 모든 배포를 가능한 위험으로 간주하고 모든 배포에 동일한 수준의 위험 관리를 적용합니다.
위험에도 불구하고 워크로드에 정기적인 변경 사항을 계속해서 배포해야 합니다. 정기적인 업데이트를 배포하지 못하면 배포를 통해 해결해야 하는 보안 취약성과 같은 다른 위험이 발생합니다. 자세한 내용은 공급망 워크로드 개발 설계에 대한 권장 사항에서 확인하세요.
빈번한 소규모 배포가 드물게 대규모 배포를 수행하는 것보다 낫습니다. 문제가 발생할 때 작은 변경을 하면 해결하기가 더 쉬우며 배포를 자주 수행하면 팀이 배포 프로세스에 대한 자신감을 키우는 데 도움이 됩니다. 배포 중에 이상이 발생할 경우 워크로드 프로세스를 검토하여 프로덕션에서 배우는 것도 중요합니다. 인프라 설계 또는 롤아웃에서 약점을 발견할 수 있습니다. 배포 중에 문제가 발생하면 책임 없는 사후 분석을 프로세스에 포함시켜 사고에서 얻은 교훈을 포착해야 합니다.
상태 모델
가시성 모니터링 플랫폼 및 안정성 전략의 일부로 강력한 상태 모델을 개발합니다. 상태 모델은 워크로드의 구성 요소와 전반적인 상태에 대한 심층적인 가시성을 제공해야 합니다. 출시 후에는 상태 지표를 면밀히 모니터링합니다. 롤아웃 중에 상태 변경에 대한 알림을 받으면 즉시 문제를 조사하고 변경 사항을 롤백하는 등 다음 조치를 결정하세요. 사용자가 문제를 보고하지 않고 모든 상태 지표가 녹색으로 유지되면 출시가 계속될 것입니다. 사용자가 보고한 문제나 부정적인 상태 신호가 없다고 해서 문제가 숨겨진 것은 아니라는 점을 확인하려면 사용 지표를 상태 모델에 포함해야 합니다. 자세한 내용은 고장 모드 분석 수행에 대한 권장 사항에서 확인하세요.
문제 감지
배포로 인해 롤아웃 그룹 중 하나에서 문제가 발생하면 롤아웃을 즉시 중지해야 합니다. 경고가 수신되는 즉시 문제의 원인과 영향의 심각도를 조사하십시오. 문제 복구에는 다음이 포함될 수 있습니다.
- 배포에서 변경한 내용을 취소하고 마지막으로 작동한 구성으로 되돌리는 롤백 입니다.
- 출시 중에 문제를 해결하여 앞으로 나아갑니다. 핫픽스를 적용하거나 문제를 최소화하여 롤아웃 중에 문제를 해결할 수 있습니다.
- 마지막으로 알려진 작업 구성을 사용하여 새로운 인프라를 배포합니다.
변경 사항, 특히 데이터베이스, 스키마 또는 기타 상태 저장 구성 요소 변경 사항을 롤백하는 것은 복잡할 수 있습니다. 안전한 배포 관행 지침에는 작업 부하에 대한 데이터 자산 설계에 따라 데이터 변경을 처리하는 방법에 대한 명확한 지침이 제공되어야 합니다. 마찬가지로, 안전한 배포 프로세스가 소홀히 되지 않고 핫픽스나 기타 최소화 노력이 안전하게 수행되도록 하기 위해 롤포워드를 신중하게 처리해야 합니다.
일반 권장 사항
필요한 경우 롤백 및 롤포워드할 수 있도록 빌드 아티팩트 전반에 걸쳐 버전 관리를 구현합니다.
Gitflow 또는 환경 기반 분기 구조 대신 개발 팀 전체에서 긴밀하게 동기화된 협업을 적용하는 릴리스 흐름 또는 트렁크 기반 분기 구조를 사용합니다.
안전한 배포 관행을 최대한 자동화하세요. 자세한 내용은 자동화 구현에 대한 권장 사항에서 확인하세요.
CI(연속 통합) 방식을 사용하여 코드 변경 사항을 리포지토리에 정기적으로 통합합니다. CI 방식은 통합 충돌을 식별하고 대규모의 위험한 병합 가능성을 줄이는 데 도움이 될 수 있습니다. 자세한 내용은 지속적인 통합에 대한 권장 사항에서 확인하세요.
기능 플래그를 사용하여 프로덕션의 새로운 기능이나 변경 사항을 선택적으로 활성화하거나 비활성화합니다. 기능 플래그를 사용하면 새 코드의 노출을 제어하고 문제가 발생할 경우 배포를 신속하게 롤백할 수 있습니다.
프로덕션 환경을 미러링하는 스테이징 환경에 변경 사항을 배포합니다. 실습 환경을 사용하면 실제 환경에 배포하기 전에 통제된 설정에서 변경 사항을 테스트할 수 있습니다.
코드 검토, 보안 검사, 규정 준수 검사 등 배포 전 검사를 설정하여 변경 사항을 안전하게 배포할 수 있도록 하세요.
문제가 발생한 서비스에 대한 트래픽을 자동으로 중단하고 시스템이 더 이상 저하되지 않도록 회로 차단기를 구현합니다.
비상 프로토콜
안전한 배포 프로세스를 핫픽스나 보안 침해 또는 취약성 노출과 같은 긴급 문제에 맞게 조정할 수 있는 방법을 정의하는 규범적 프로토콜을 수립합니다. 예를 들어, 비상 프로토콜에는 다음이 포함될 수 있습니다.
- 승진 및 승인 단계 가속
- 스모크 테스트 및 통합 테스트 가속
- 굽는 시간 단축
어떤 경우에는 비상 상황으로 인해 게이트 품질 및 테스트가 제한될 수 있지만 게이트는 대역 외 훈련처럼 최대한 빨리 실행되어야 합니다. 비상 시 안전한 배치 가속화를 승인할 수 있는 사람과 가속화가 승인되기 위해 충족해야 하는 기준을 정의하세요. 맞추다 비상 응답 계획 에 비상 프로토콜을 추가하면 모든 비상 상황이 동일한 프로토콜에 따라 처리됩니다.
고려 사항
안전한 배포 방식을 구축하고 유지하는 것은 복잡합니다. 강력한 표준을 완벽하게 구현하는 데 있어 성공 여부는 소프트웨어 개발의 여러 영역에 걸친 관행의 성숙도에 달려 있습니다. 자동화를 활용하고, 인프라 변경에 대한 IaC 전용, 분기 전략의 일관성, 기능 플래그 및 기타 관행을 통해 안전한 배포를 보장할 수 있습니다. 이 가이드를 사용하면 워크로드를 최적화하고 관행이 발전함에 따라 개선 계획을 알릴 수 있습니다.
Power Platform 간편 사용
파이프라인의 목표는 ALM 자동화와 CI/CD(지속적인 통합 및 지속적인 배포) 기능을 서비스에 도입하여 Dynamics 365 고객을 위한 애플리케이션 수명 주기 관리(ALM)를 민주화하는 것입니다. Power Platform Power Platform
Microsoft Power Platform Azure DevOps 빌드 도구는 Power Platform기반 앱과 관련된 일반적인 빌드 및 배포 작업을 자동화하는 데 사용할 수 있습니다.
GitHub Actions를 사용하면 Power Platform 개발자가 자동화된 소프트웨어 개발 라이프사이클 워크플로를 구축할 수 있습니다. Microsoft Power Platform용 GitHub Actions를 사용하면 리포지토리에서 워크플로를 만들어 앱을 빌드, 테스트, 패키징, 릴리스 및 배포할 수 있으며 자동화를 수행하여 Power Platform에 빌드된 봇 및 기타 구성 요소를 관리할 수 있습니다.
ALM Accelerator 는 지속적인 통합/지속적인 배포 프로세스를 자동화하도록 설계된 애플리케이션, 스크립트 및 파이프라인 세트로 구성된 오픈 소스 도구입니다.
Azure Pipelines를 사용하여 테스트를 자동화하세요.
솔루션의 환경 변수는 매개변수 키와 값을 저장하고, 이는 다른 애플리케이션 객체에 대한 입력으로 사용됩니다. 사용 개체에서 매개 변수를 분리하면 동일한 환경 내에서 또는 솔루션을 다른 환경으로 마이그레이션할 때 값을 변경할 수 있습니다.
Power Platform 환경 은 롤백하는 데 도움이 되는 특정 시점 복원 기능을 제공합니다.