Share via


확장 릴리스에서 배포 링 사용

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

배포 링을 사용하면 사용자에 대한 영향을 제한하면서 프로덕션 환경에서 확장에 대한 변경 내용을 점진적으로 배포하고 유효성을 검사할 수 있습니다.

모든 사용자가 변경 내용을 노출하는 동시에 모든 프로덕션 환경에 배포하는 것은 권장되지 않습니다. 점진적 롤아웃은 시간이 지남에 따라 사용자에게 변경 내용을 노출하여 적은 수의 사용자로 프로덕션의 변경 내용의 유효성을 검사합니다.

다음 표에서는 링과 링 없음을 사용하는 경우 영향을 받는 영역의 차이점을 보여 줍니다.

링이 없는 경우 영향을 받는 영역 링이 있는 경우
수동 및 오류가 발생하기 쉽습니다. 빌드 자동화되고 일관됨
수동 및 오류가 발생하기 쉽습니다. Release 자동화되고 일관됨
시간 빌드 시간(TTB)
TTR(릴리스 시간)
사용자로부터 전화 걸기 문제 검색 자동 관리
며칠에서 몇 주까지 문제 해결 분~일

자세한 내용은 안전한 배포를 위해 릴리스 파이프라인 구성을 참조하세요.

필수 조건

사용자 유형 할당

각 사용자 유형에 가장 적합한 사용자를 결정합니다. 기대치를 설정하고 성공을 보장하는 데 중요하므로 각 계층에서 피드백과 위험 수준을 제공할 수 있는 기회를 전달합니다. 다음 예제에서는 사용자가 프로덕션에서 세 그룹으로 나뉩니다.

  • 카나리아: 사용 가능한 즉시 자발적으로 기능을 테스트합니다.
  • 얼리어답터: 카나리아 비트보다 더 세련된 것으로 간주되는 자발적으로 릴리스를 미리 봅니다.
  • 사용자: 카나리아 및 얼리어답터를 통과한 후 제품을 사용합니다.

사용자 링

토폴로지 매핑

확장의 토폴로지를 링 배포 모델에 매핑하여 변경이 사용자에게 미치는 영향을 제한하고 가치를 제공합니다. 오픈 소스 커뮤니티 확장의 경우 주로 링 기반 배포를 사용하여 카나리아, 얼리어답터 및 사용자에게 새 릴리스를 점진적으로 공개합니다.

애플리케이션 수준에서 Azure DevOps 확장의 구성은 독립적으로 소화, 크기 조정 및 배포하기 쉽습니다.

각 확장은 다음 작업을 수행합니다.

  • 더 많은 웹 및 스크립트 파일 중 하나가 있습니다.
  • Core 클라이언트를 사용하는 인터페이스
  • REST 클라이언트 및 REST API를 사용하는 인터페이스
  • 캐시 또는 복원력 있는 스토리지에서 상태를 유지합니다.

애플리케이션 계층의 점진적 노출

인프라 수준에서 확장은 Marketplace게시됩니다. 조직에 확장을 설치하면 Azure DevOps 서비스 포털에서 호스트되며 상태는 Azure Storage 또는 확장 데이터 스토리지에 유지됩니다.

인프라 계층의 점진적 노출

확장 토폴로지는 링 배포 모델 및 각 배포 링에 확장을 게시하는 데 완벽하게 적합합니다.

  • 카나리아 링에 대한 프라이빗 개발 버전
  • 얼리어답터 링에 대한 프라이빗 미리 보기 버전
  • 사용자 링에 대한 퍼블릭 프로덕션 버전

초대된 사용자에 대한 노출을 제어하기 위해 확장을 비공개게시합니다.

배포 링을 통해 변경 내용 이동

배포 링을 통해 변경 내용을 이동하는 다음 예제 흐름을 참조하세요.

Azure DevOps 개발자 도구 빌드 작업 확장을 사용하여 확장을 패키지하고 Marketplace에 게시합니다.

확장 링

  1. Countdown 위젯 확장 프로젝트의 개발자가 GitHub 리포지토리에 대한 변경 내용을 커밋합니다.
  2. 커밋은 연속 통합 빌드를 트리거합니다.
  3. 새 빌드는 카나리아 환경 배포를 자동으로 시작하는 연속 배포 트리거를 트리거합니다 .
  4. Canaries 배포는 Marketplace에 프라이빗 확장을 게시하고 미리 정의된 조직과 공유합니다. 카나리아만 변경의 영향을 받습니다.
  5. 카나리아 배포는 얼리어답터 환경 배포를 트리거합니다. 배포 전 승인 게이트를 사용하려면 권한 있는 사용자 중 한 명이 릴리스를 승인해야 합니다. 얼리어답터 환경에 대한 사전 배포 승인
  6. 얼리 어답터 배포는 마켓플레이스에 프라이빗 확장을 게시하고 미리 정의된 조직과 공유합니다. 카나리아얼리어답터는 모두 변경의 영향을 받습니다.
  7. 얼리 어답터 배포는 사용자 환경 배포를 트리거합니다. 더 엄격한 배포 전 승인 게이트를 사용하려면 모든 권한이 부여된 사용자가 릴리스를 승인해야 합니다. 사용자 환경에 대한 배포 전 승인
  8. 사용자 배포는 마켓플레이스에 퍼블릭 확장을 게시합니다. 이 단계에서는 조직에 확장을 설치한 모든 사용자가 변경의 영향을 받습니다.
  9. 변경 내용이 링을 통해 이동함에 따라 효과가 증가한다는 것을 깨닫는 것이 핵심입니다. 카나리아얼리어답터변경 사항을 노출하면 프로덕션에 릴리스하기 전에 변경 및 핫픽스 중요 버그의 유효성을 검사할 수 있는 두 가지 기회가 있습니다.

문제 모니터링

모니터링 및 경고는 문제를 감지하고 완화하는 데 도움이 될 수 있습니다. 인프라 문제, 위반 및 기능 사용과 같이 중요한 데이터 형식을 결정합니다. 사용자가 경고를 무시하고 높은 우선 순위 문제를 누락하지 않도록 실행 가능한 경고에 집중합니다.

필요에 따라 멀리서 보고 드릴다운할 수 있는 시각적 대시보드, 데이터의 개략적인 보기로 시작합니다. 보기의 정기적인 하우스키핑을 수행하고 모든 소음을 제거합니다. 시각적 대시보드는 많은 알림 이메일보다 더 나은 스토리를 전달하며, 종종 전자 메일 규칙에 의해 필터링되고 잊혀집니다.

Team Project Health 및 기타 확장을 사용하여 파이프라인, 리드 및 주기 시간에 대한 개요를 빌드하고 다른 정보를 수집합니다. 샘플 대시보드에서는 34개의 성공적인 빌드, 21개의 성공적인 릴리스, 1개의 실패한 릴리스 및 2개의 릴리스가 진행 중임을 분명히 알 수 있습니다.

Azure DevOps의 상위 수준 대시보드

기능 플래그에 대한 종속성이 있나요?

아니요. 릴리스의 일부로 배포해야 하지만 처음에는 사용자에게 노출되지 않는 특정 기능이 필요할 수 있습니다. 기능 플래그를 사용하면 변경 내용에 포함된 기능을 세밀하게 제어할 수 있습니다. 예를 들어 기능에 대해 완전히 확신하지 못하는 경우 기능 플래그 를 사용하여 하나 또는 모든 배포 링에서 기능을 숨길 수 있습니다. 다음 이미지와 같이 카나리아 링의 모든 기능을 사용하도록 설정하고 얼리어답터 및 프로덕션 사용자에 대한 하위 집합을 미세 조정할 수 있습니다.

기능 플래그

자세한 내용은 기능 플래그를 사용한 점진적 실험을 참조 하세요.

FAQ

Q: 변경 내용이 다음 링에 배포될 수 있음을 어떻게 알 수 있나요?

A: 릴리스를 승인하는 사용자에 대한 일관된 검사 목록이 있어야 합니다.

Q: 다음 링으로 변경 사항을 푸시하기 전에 얼마나 기다려야 합니까?

고정된 기간이나 "쿨오프" 기간이 없습니다. 모든 릴리스 유효성 검사를 성공적으로 완료하는 데 걸리는 기간에 따라 달라집니다.

Q: 핫픽스를 관리하려면 어떻게 해야 할까요?

A: 링 배포 모델을 사용하면 다른 변경 내용과 마찬가지로 핫픽스를 처리할 수 있습니다. 문제를 빨리 catch할수록 다운스트림 링에 영향을 주지 않고 핫픽스를 더 빨리 배포할 수 있습니다.

Q: 공유 릴리스 환경에 걸쳐 있는 변수를 어떻게 처리합니까?

A: 기본 및 사용자 지정 릴리스 변수를 참조 하세요.

Q: 파이프라인에서 사용하는 비밀을 어떻게 관리할 수 있나요?

A: 파이프라인에서 사용하는 암호화 키 및 기타 비밀을 보호하려면 Azure Key Vault를 참조하세요.