요약

완료됨

이 모듈에서는 패키징에 대한 버전 관리 전략 , 버전 관리 모범 사례 및 패키지 승격 워크플로에 대해 설명했습니다. 소프트웨어 개발 수명 주기 내내 패키지 버전을 관리하기 위한 필수 개념을 배웠습니다.

학습 내용

다음의 이점 및 사용을 설명하는 방법을 학습했습니다.

버전 관리 전략 구현

  • 버전 중요도: 종속성 관리 및 소프트웨어 안정성에 적절한 버전 관리가 중요한 이유를 인식합니다.
  • 변경할 수 없는 패키지: 게시된 패키지는 변경할 수 없음을 이해합니다. 새 버전만 릴리스할 수 있습니다.
  • 버전 유형: 주 버전, 부 버전 및 패치 버전 증가 및 각 버전 사용 시기를 이해합니다.
  • 패키지별 버전 관리: 다양한 패키지 유형(NuGet, npm, Maven, Python, 유니버설 패키지)에 대한 버전 관리를 구현합니다.

시맨틱 버전 이해

  • SemVer 2.0 형식: 일관된 통신을 위해 Major.Minor.Patch 버전 관리 적용
  • 주요 변경 내용: 주 버전을 사용하여 호환되지 않는 API 변경 내용을 알릴 수 있습니다.
  • 새로운 기능: 하위 호환성을 위한 추가 기능에는 경미한 버전을 사용합니다.
  • 버그 수정: 이전 버전과 호환되는 수정에 패치 버전을 사용합니다.
  • 시험판 레이블: 레이블(알파, 베타, rc)을 사용하여 시험판 품질을 나타냅니다.
  • 버전 우선 순위: 버전을 비교하고 정렬하는 방법을 이해합니다.

Azure Artifacts 뷰 사용

  • 세 가지 기본 보기:@Local 보기, @Prerelease 보기, 및 @Release 보기를 활용합니다.
  • @Local 보기: 업스트림 소스를 포함한 모든 패키지를 포함합니다.
  • @Prerelease 보기: 시험판 레이블이 있는 패키지로 필터링합니다.
  • @Release 보기: 프로덕션 준비 패키지만 표시합니다.
  • 뷰별 URI: 특정 보기를 사용하도록 패키지 소비자를 구성합니다.
  • 사용자 지정 보기: 세분화된 품질 수준에 대한 추가 보기를 만듭니다.

패키지 홍보

  • 품질 게이트: 프로모션을 사용하여 품질 수준을 통해 패키지를 이동합니다.
  • 프로모션 워크플로: → @Local → @Prerelease 진행을 구현 @Release 합니다.
  • 자동화된 프로모션: Azure Pipelines 작업을 사용하여 테스트 결과에 따라 승격을 자동화합니다.
  • 수동 승격: 중요한 패키지에 대해 수동 승인 게이트를 적용합니다.
  • 보존 보호: 승격된 패키지는 삭제로부터 보호된다는 것을 이해합니다.
  • 업스트림 패키지: 캐시된 업스트림 패키지의 승격을 관리합니다.

파이프라인에서 패키지 전송하기

  • 자동화된 게시: 피드에 패키지를 자동으로 게시하도록 빌드 파이프라인을 구성합니다.
  • 버전 생성: CI/CD에서 자동화된 버전 번호 생성을 구현합니다.
  • 패키지 메타데이터: 패키지에 포괄적인 메타데이터를 포함합니다.
  • 원본 태그 지정: 추적 기능을 위해 소스 코드에 패키지 버전 태그를 지정합니다.

모범 사례 적용

  • 문서화된 전략: 서면 버전 관리 전략 설명서를 유지 관리합니다.
  • SemVer 채택: 의미 체계 버전 관리 2.0에서 표준화합니다.
  • 리포지토리당 단일 피드: 피드를 하나만 참조하도록 각 리포지토리를 구성합니다.
  • 자동화된 게시: 만들 때 패키지를 자동으로 게시합니다.
  • 승격하기 전에 테스트: 상위 보기로 승격하기 전에 항상 패키지를 테스트합니다.
  • 팀 조정: 버전 관리를 완료 정의에 통합하십시오.

주요 개념 요약

버전 불변성

  • 게시된 버전을 변경하지 마세요. 게시된 패키지는 변경할 수 없습니다.
  • 항상 새 버전을 만듭니다. 변경하려면 새 버전 번호가 필요합니다.
  • 신뢰 및 안정성: 소비자는 버전이 변경되지 않는다고 신뢰합니다.

의미 체계 버전 관리 원칙

  • Major.Minor.Patch: 세 부분으로 구성된 버전 번호입니다.
  • 명확한 통신: 버전 번호는 변경 범위를 나타냅니다.
  • 이전 버전과의 호환성: 마이너 및 패치는 호환성을 유지합니다.
  • 시험판 레이블: 레이블을 사용하여 품질 수준을 나타냅니다.

Azure Artifacts 뷰

  • 품질 지표: 뷰는 품질 수준별로 패키지를 구분합니다.
  • 프로모션 워크플로: 명시적 프로모션은 뷰를 통해 패키지를 이동합니다.
  • 소비자 선택: 소비자는 위험 감수에 따라 선택을 합니다.
  • 보존 보호: 삭제로부터 보호되는 승격된 패키지입니다.

자동화의 이점

  • 일관성: 자동화된 프로세스는 사람의 오류를 줄입니다.
  • 속도: 자동화를 사용하여 더 빠른 릴리스 주기.
  • 품질 게이트: 승격 전에 자동화된 테스트입니다.
  • 추적: 모든 빌드는 추적 가능한 아티팩트가 생성됩니다.

다음 단계

학습 계속

버전 관리 기술 향상:

  • 고급 승격 워크플로: 승인 게이트를 사용하여 다단계 승격을 구현합니다.
  • 버전 범위 관리: 종속성 버전 범위 및 제약 조건을 이해합니다.
  • 분기 전략: 분기 전략(Gitflow, 트렁크 기반)에 버전 관리를 맞춥니다.
  • 핫픽스 버전 관리: 핫픽스 및 백포트를 올바르게 처리합니다.

고급 시나리오 살펴보기:

  • Monorepo 버전 관리: monorepo 리포지토리의 버전 패키지입니다.
  • 중대한 변경 관리: 기능을 중단하고 제거하는 전략.
  • 버전 고정: 소비자가 새 버전을 채택하는 시기를 제어합니다.
  • Changelog 자동화: 커밋에서 자동으로 변경 로그를 생성합니다.

실용적인 응용 프로그램

구현 시작:

  1. 전략을 문서화합니다. 팀에 대한 버전 관리 지침을 작성합니다.
  2. SemVer 2.0 채택: 의미 체계 버전 관리에서 표준화합니다.
  3. 피드 및 뷰 구성:@Local, @Prerelease, 및 @Release 뷰를 설정합니다.
  4. 버전 관리 자동화: 빌드 파이프라인에서 자동화된 버전 생성을 구현합니다.
  5. 승격 워크플로 설정: 패키지 승격을 정의하고 자동화합니다.
  6. 팀 교육: 모든 사용자가 버전 관리 전략을 이해하고 따르도록 합니다.

DevOps 사례와 통합

DevOps 워크플로의 버전 관리:

  • 연속 통합: 패키지 빌드 및 게시를 자동화합니다.
  • 지속적인 업데이트: 제어된 릴리스에 프로모션 워크플로를 사용합니다.
  • 코드로서의 인프라: 애플리케이션 패키지와 함께 버전 인프라 패키지.
  • 기능 플래그: 점진적 출시를 위해 버전 관리와 기능 플래그를 결합합니다.

자세히 알아보기

공식 설명서

추가 리소스

패키지 유형별 가이드

도구 및 자동화

  • GitVersion - Git 기록에서 자동화된 버전 관리
  • semantic-release - 버전 관리 및 패키지 게시를 완전히 자동화하는 시스템.
  • Azure DevOps CLI - Azure Artifacts 자동화를 위한 명령줄 도구입니다.

커뮤니티 및 지원

  • Azure DevOps 설명서: 포괄적인 가이드 및 자습서를 살펴보세요.
  • Microsoft Q&A: 질문하고 커뮤니티에서 답변을 얻습니다.
  • Azure DevOps 블로그: 최신 기능 및 모범 사례를 계속 업데이트하세요.
  • GitHub 샘플: 예제 파이프라인 및 구성을 살펴봅니다.