티스토리 뷰
실습 3: 릴리즈 게이트를 추가 한 후 애플리케이션 업데이트 및 배포
이 실습에서는 애플리케이션에서 약간의 코드 변경을 수행하고 빌드 및 릴리즈를 트리거하는 리포지토리에 커밋한다.
진행에 앞서 다음 작업을 먼저 수행한다.
1. Bugs 쿼리의 Security...를 클릭한다.
2. "ReleaseGates...." 라는 Users를 검색하여(각자의 프로젝트 이름이므로 다를 수 있다.) 추가하고 Read를 "Allow" 한다.
1. Repos로 이동하여 파일을 클릭한다. "src/PartsUnlimitedWebsite/Views/Home/Index.cshtml"경로로 이동하여 30행의 "20%"에서 "30%"로 내용을 수정한다. 수정 후 변경 사항을 Commit 한다.
2. PartsUnlimited-CI 빌드 파이프라인을 실행한다. 빌드가 성공하면 Releases 탭으로 이동한다. 성공적인 빌드 후 릴리즈가 트리거 되었음을 알 수 있다.
3. 릴리즈 Logs 이동하여 진행 상황을 확인한다. 평가 전에 Query Work Items 게이트가 지연되어 활성 버그가 있음을 알 수 있다. 이러한 버그는 더 진행하려면 닫아야 한다. 다음 샘플링 시간은 5분 이후이다.
4. Boards 탭에서 Queries로 이동한다.
5. Shared Queries 아래 Bugs를 선택한다.
6. New State에서 “Disk out of space in Canary Environment”라는 제목의 버그가 표시된다. 인프라 팀이 디스크 공간 문제를 해결했다고 가정하고 상태를 Closed로 변경하고 Save 한다.
7. 릴리즈 logs로 돌아간다. 평가가 통과 된 것을 볼 수 있다.
8. 평가에 성공하면 Pre-deployment approval 요청이 표시된다. Canary 환경에 배포하려면 Approve를 클릭한다.
9. Canary 환경에 대한 배포가 성공하면 모든 예외에 대한 애플리케이션 모니터링을 시작하는 배포 후 게이트가 작동하는 것을 볼 수 있다.
10. 이제 신속하게 애플리케이션을 확인한다. Azure Portal에서 CanaryRelease Azure Web App으로 이동하고 Browse를 클릭한다.
11. 애플리케이션이 시작된 후 More를 클릭한다. 오류 페이지가 표시된다. 경고를 트리거하려면 이 작업을 두 번 수행한다.
이 오류 시나리오는 랩 및 실제 환경에서 "disabling a feature flag" 또는 "upgrading the infra"와 같은 해결 방법과 경고 분석을 위한 것이다.
12. 이 예외는 경고를 트리거하는 Application Insights에서 모니터링 된다. Azure Portal에서 트리거된 경고를 볼 수 있다.
(다음과 같은 화면이 전시되기까지는 시간이 다소 걸린다.)
13. 예외로 인해 경고가 트리거되었으므로 Query Azure Monitor 게이트가 실패했다. 그러나 게이트는 아직 지연 기간 중이므로 다음 평가가 진행될 때까지 기다려야한다.
14. 다음 단계로 Query Azure Monitor 게이트는 파이프라인을 차단하고 Production 환경에 대한 배포를 방지한다.
요약
Gates는 사용자가 피드백에 반응하고 제한 시간 내에 문제를 해결할 때까지 릴리즈가 대기하도록 한다. 게이트 샘플은 계속 실패하고 배포는 문제가 해결 될 때까지 대기한다. 문제가 해결되면 게이트의 다음 샘플이 성공하고 배포가 자동으로 진행된다.
문제를 해결하기 위해 새 릴리즈가 필요한 경우 배포를 취소하고 현재 릴리즈를 수동으로 중단 할 수 있다.
여기에 릴리즈 게이트가 있어 팀이 더 적은 수의 수동 단계로 더 높은 신뢰도로 애플리케이션을 릴리즈 할 수 있다. 이제 배포가 충족되는 데 필요한 모든 기준에 대한 기본 감사 기능이 제공된다.
한다.
참고
이 실습에 대한 비디오를 제작 해주신 Nagaraj Bhairaji에게 감사드린다. 이 실습에서 설명하는 모든 단계를 안내하는 다음 비디오를 시청할 수 있다.
'Azure와 함께 하는 DevOps' 카테고리의 다른 글
76. Azure DevOps - Slack 통합 2편 (0) | 2021.03.22 |
---|---|
75. Azure DevOps - Slack 통합 1편 (0) | 2021.03.15 |
73. 릴리즈 게이트를 사용하여 배포 제어 2편 (0) | 2021.03.01 |
72. 릴리즈 게이트를 사용하여 배포 제어 1편 (0) | 2021.02.22 |
71. SonarCloud로 코드 품질 지속적으로 향상 3편 (0) | 2021.02.15 |