소개
온라인 아웃도어 의류 소매업체의 소프트웨어 엔지니어로 일한다고 상상해 보십시오. 귀하는 클라우드 네이티브 마이크로 서비스 기반 .NET 앱인 소매업체의 온라인 상점을 배포하고 업데이트할 책임이 있습니다.
프로젝트 요구 사항을 충족하고 팀의 민첩한 개발 사례를 향상시키기 위해 GitHub Actions 및 Azure Pipelines를 통해 CI/CD(지속적인 통합 및 지속적인 배포)를 비교하기로 결정합니다. CI/CD 파이프라인은 일련의 자동화된 단계를 사용하여 빌드에서 모든 환경을 통해 앱을 컴파일하고 배포합니다.
현재 웹에는 마이크로 서비스 아키텍처가 있고 각 마이크로 서비스가 독립적으로 배포되므로 단일 서비스에 대한 CI/CD를 설정하여 시작합니다.
제품 서비스라는 .NET 웹 API는 웹 사이트의 모든 백 엔드 카탈로그 기능을 지원합니다. 이 모듈에서는 제품 서비스에 대한 CI/CD 파이프라인을 구현합니다.
이 모듈에서는 다음 단계를 안내합니다.
- GitHub Actions를 컨테이너 레지스트리에 인증합니다.
- GitHub Actions에서 사용되는 중요한 정보를 안전하게 저장합니다.
- 마이크로 서비스용 컨테이너 이미지를 빌드하는 작업을 구현합니다.
- 빌드를 트리거하기 위해 마이크로 서비스 코드를 수정하고 커밋합니다.
- 업데이트된 컨테이너를 AKS(Azure Kubernetes Service) 클러스터에 배포하는 작업을 구현합니다.
- 배포를 트리거하기 위해 Helm 차트를 수정하고 커밋합니다.
- 마이크로 서비스를 이전 배포로 되돌립니다.
고유한 Azure 구독을 사용하여 이 모듈에서 리소스를 배포합니다. Azure 구독이 없는 경우 시작하기 전에 체험 계정을 만듭니다.
중요
Azure 구독에서 불필요한 요금이 발생하지 않도록 하려면 이 모듈을 완료한 후 Azure 리소스를 삭제해야 합니다.
사전 요구 사항
- DevOps 사례에 대한 개념 지식입니다.
- 컨테이너, Docker 및 AKS에 대한 개념 지식.
- 소유자 권한으로 Azure 구독에 액세스
- GitHub 계정에 액세스합니다.
- 다음 섹션에 설명된 대로 설정된 Visual Studio Code 또는 GitHub Codespaces에서 개발 컨테이너를 실행할 수 있습니다.
개발 컨테이너
이 모듈에는 개발 컨테이너 또는 개발자 컨테이너를 정의하는 구성 파일이 포함되어 있습니다. 개발 컨테이너를 사용하면 필요한 도구로 미리 구성된 표준화된 환경이 보장됩니다.
개발 컨테이너는 두 환경 중 하나에서 실행할 수 있습니다. 시작하기 전에 다음 링크 중 하나의 단계에 따라 Docker 설치 및 필요한 Visual Studio Code 확장을 포함하여 환경을 설정합니다.
- Visual Studio Code 및 로컬 컴퓨터에서 지원되는 Docker 환경
- GitHub Codespaces(비용이 적용될 수 있음).