배포 게이트 개념
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Azure Pipelines의 배포 게이트는 배포가 진행하기 전에 특정 조건을 충족하도록 릴리스 파이프라인에 추가됩니다. Gates는 보다 안정적이고 안전한 소프트웨어 릴리스로 이어지는 엄격한 검사를 적용하여 배포가 안정적이고 안전한지 확인하는 데 필수적입니다.
게이트는 릴리스 단계의 배포 전 및 배포 후 조건에서 정의됩니다. Azure Function 또는 REST API와 같은 외부 서비스에서 건강 신호를 자동으로 수집하여 이러한 신호에 따라 릴리스의 승격을 제어하는 메커니즘을 제공합니다. Gates는 승인을 통해 올바른 이해 관계자가 릴리스를 승인하고 릴리스가 필요한 품질 및 규정 준수 기준을 충족하는지 확인합니다.
사용 사례
배포 게이트에 대한 몇 가지 일반적인 사용 사례는 다음과 같습니다.
- 인시던트 관리: 배포를 계속하기 전에 특정 조건이 충족되는지 확인합니다. 예를 들어 우선 순위 0 버그가 없는 경우에만 배포가 발생하도록 합니다.
- 승인 요청: Microsoft Teams 또는 Slack과 통합하여 외부 사용자(예: 감사자) 또는 IT 관리자에게 배포에 대해 알리고 승인을 기다립니다.
- 품질 유효성 검사: 통과율 또는 코드 검사와 같은 파이프라인 메트릭을 쿼리하고 미리 정의된 임계값 내에 있는 경우에만 배포합니다.
- 보안 검사: 아티팩트 검색, 코드 서명 및 정책 검사와 같은 보안 검사를 수행합니다. 배포 게이트는 검사를 시작하고 완료될 때까지 기다리거나 완료를 확인할 수 있습니다.
- 기준사용자 경험 비교: 제품 데이터 수집을 통해 사용자 경험이 기준 상태에서 후퇴하지 않도록 보장합니다. 배포 전에 사용자 환경 메트릭을 기준선으로 사용할 수 있습니다.
- 변경 관리: 배포를 계속하기 전에 ServiceNow와 같은 시스템의 변경 관리 절차가 완료되기를 기다립니다.
- 인프라 상태: 배포 후 모니터링을 실행하고 규정 준수 규칙에 대한 인프라의 유효성을 검사하거나 정상 리소스 사용률 및 긍정적인 보안 보고서를 기다립니다.
대부분의 상태 매개 변수는 시간이 지남에 따라 다르며, 정기적으로 상태를 정상에서 비정상으로, 다시 정상으로 변경합니다. 이러한 변형을 고려하기 위해 모든 게이트가 동시에 성공할 때까지 주기적으로 다시 평가됩니다. 모든 게이트가 동일한 간격 및 구성된 시간 제한 전에 성공하지 못하면 릴리스 실행 및 배포가 진행되지 않습니다.
스테이지에 대한 게이트를 정의하다
단계 시작(배포 전 조건) 또는 스테이지 끝(배포 후 조건) 또는 둘 다에 대해 게이트를 사용하도록 설정할 수 있습니다. 자세한 내용은 게이트 설정을 참조하세요.
평가 전에
- 배포 전 게이트 의 경우, 배포 중인 아티팩트에 대해 모든 버그를 기록하는 데 필요한 시간이 지연됩니다.
- "배포 후 게이트에 대해, 지연 시간은 배포된 앱이 안정적인 작동 상태에 도달하는 데 걸리는 시간, 배포 단계에서 필요한 모든 테스트를 실행하는 데 소요되는 시간, 그리고 배포 후 인시던트가 기록되는 시간을 기준으로 가장 큰 값이 됩니다."
기본적으로 다음 게이트를 사용할 수 있습니다.
-
Azure Function호출: Azure 함수의 실행을 트리거하고 성공적인 완료를 보장합니다. 자세한 내용은 Azure 함수 작업
참조하세요. - Azure mMnitor 경고 쿼리: 활성 경고에 대해 구성된 Azure Monitor 경고 규칙을 관찰합니다. 자세한 내용은 Azure Monitor 작업을 참조하시기 바랍니다.
- REST API호출: REST API를 호출하고 성공적인 응답을 반환하는 경우 계속합니다. 자세한 내용은 REST API 작업호출을 참조하세요.
- 쿼리 작업 항목: 쿼리에서 반환된 일치하는 작업 항목 수가 임계값 내에 있는지 확인합니다. 자세한 내용은 작업 항목 쿼리 작업을 참조하세요.
- Azure Policy 규정 준수확인: 지정된 구독 및 리소스 그룹의 범위 내에서, 그리고 필요에 따라 특정 리소스 수준에서 리소스에 대한 Azure Policy 규정 준수를 평가합니다. 자세한 내용은 Azure Policy 준수 작업확인하세요.
또한 Marketplace 확장을 사용하여 고유한 게이트를 만들 수 있습니다.
모든 게이트에 적용되는 평가 옵션은 다음과 같습니다.
- 게이트의 재평가 사이 시간입니다. 게이트를 연속적으로 평가하는 사이의 시간 간격입니다. 각 샘플링 간격에서 새 요청이 각 게이트에 동시에 전송되고 새 결과가 평가됩니다. 샘플링 간격은 설정된 게이트의 일반적인 최대 응답 시간보다 길어야 하며, 이는 모든 응답이 평가를 위해 수신될 수 있는 시간을 허용하기 위한 권장 사항입니다.
- 시간 제한 후 게이트가/이 작동하지 않습니다. 모든 게이트의 최대 평가 기간입니다. 동일한 샘플링 주기 동안 모든 게이트가 성공하기 전에 시간 제한이 오면 배포가 거부됩니다.
- 관문 및 승인. 둘 다 구성한 경우 게이트 및 승인에 필요한 실행 순서를 선택합니다. 배포 전 조건의 경우 기본값은 수동(사용자) 승인을 먼저 묻는 메시지를 표시한 다음, 게이트를 평가한 후 사용자가 릴리스를 거부하는 경우 게이트 함수를 평가하지 못하도록 시스템을 저장하는 것입니다. 배포 후 조건의 경우, 기본 설정은 모든 게이트가 성공적일 때만 게이트를 평가하고 수동 승인을 요청합니다. 이렇게 함으로써 승인자는 릴리스를 승인하는 데 필요한 모든 정보를 갖추게 됩니다.
게이트 분석에 대한 자세한 내용은
게이트 평가 프로세스 예제
다음 다이어그램은 초기 안정화 지연 기간 및 세 번의 샘플링 간격 후에 배포가 승인되는 게이트 평가 흐름을 보여 줍니다.
다음 다이어그램은 초기 안정화 지연 기간 이후에 각 샘플링 간격에서 모든 게이트가 성공하지 못한 게이트 평가 흐름을 보여 줍니다. 이 경우 시간 제한 기간이 만료되면 배포가 거부됩니다.