자습서: Service Fabric 클러스터에 CI/CD로 애플리케이션 배포

이 자습서는 시리즈의 4부로, Azure Pipelines를 사용하여 Azure Service Fabric 애플리케이션에 대한 지속적인 통합 및 배포를 설정하는 방법을 설명합니다. 기존 Service Fabric 애플리케이션이 필요하며 .NET 애플리케이션 빌드에서 만든 애플리케이션을 예제로 사용합니다.

시리즈 3부에서는 다음 방법에 대해 알아봅니다.

  • 프로젝트에 소스 제어 추가
  • Azure Pipelines에서 빌드 파이프라인 만들기
  • Azure Pipelines에서 릴리스 파이프라인 만들기
  • 애플리케이션 자동 배포 및 업그레이드

이 자습서에서는 다음 방법을 알아봅니다.

필수 조건

이 자습서를 시작하기 전에:

투표 애플리케이션 예제 다운로드

이 시리즈의 1부에서 투표 샘플 애플리케이션을 빌드하지 않았다면 다운로드할 수 있습니다. 명령 창에서 다음 명령을 실행하여 로컬 컴퓨터에 샘플 앱 리포지토리를 복제합니다.

git clone https://github.com/Azure-Samples/service-fabric-dotnet-quickstart

게시 프로필 준비

이제 애플리케이션을 만들고Azure에 애플리케이션을 배포했으므로 연속 통합을 설정할 준비가 되었습니다. 먼저, Azure Pipelines 내에서 실행되는 배포 프로세스에 사용할 게시 프로필을 애플리케이션 내에서 준비합니다. 게시 프로필은 이전에 만든 클러스터를 대상으로 하도록 구성되어야 합니다. Visual Studio를 시작하고 기존 Service Fabric 애플리케이션 프로젝트를 엽니다. 솔루션 탐색기에서 애플리케이션을 마우스 오른쪽 단추로 클릭하고 게시...를 선택합니다.

연속 통합 워크플로로 사용할 대상 프로필을 애플리케이션 프로젝트 내에서 선택합니다(예: 클라우드). 클러스터 연결 엔드포인트를 지정합니다. 애플리케이션 업그레이드 확인란을 선택하여 Azure DevOps의 각 배포에 대해 애플리케이션이 업그레이드되도록 합니다. 저장 하이퍼링크를 선택하여 설정을 게시 프로필에 저장한 다음 취소를 선택하여 대화 상자를 닫습니다.

푸시 프로필

새 Azure DevOps Git 리포지토리에 Visual Studio 솔루션 공유

애플리케이션 소스 파일을 Azure DevOps의 프로젝트에 공유하여 빌드를 생성할 수 있습니다.

Git 메뉴에서 Git -> Git 리포지토리 만들기를 선택하여 Visual Studio 2022 IDE에서 새 GitHub 리포지토리 및 Azure DevOps 리포지토리를 만듭니다.

드롭다운에서 계정을 선택하고 리포지토리 이름을 입력한 후 만들기 및 푸시 단추를 선택합니다.

새로운 Git 리포지토리 만들기 스크린샷.

리포지토리를 게시하면 로컬 리포지토리와 동일한 이름을 사용하여 Azure DevOps Services 계정에 새 프로젝트가 만들어집니다.

https://dev.azure.com/\<organizationname>으로 이동하여 새로 만들어진 리포지토리를 확인하고 프로젝트 이름 위로 마우스를 가져간 다음 Repos 아이콘을 선택합니다.

Azure Pipelines를 사용한 지속적인 배달 구성

Azure Pipelines 빌드 파이프라인은 순차적으로 실행되는 빌드 단계 세트로 구성된 워크플로를 설명합니다. Service Fabric 애플리케이션 패키지 및 기타 아티팩트를 생성하는 빌드 파이프라인을 만들어 Service Fabric 클러스터를 배포합니다. Azure Pipelines 빌드 파이프라인에 대해 자세히 알아봅니다.

Azure Pipelines 릴리스 파이프라인에서는 애플리케이션 패키지를 클러스터에 배포하는 워크플로를 설명합니다. 빌드 파이프라인과 릴리스 파이프라인을 함께 사용할 경우 소스 파일로 시작하여 클러스터에서 실행 중인 애플리케이션에서 종료할 때까지 전체 워크플로를 실행합니다. Azure Pipelines 릴리스 파이프라인에 대해 자세히 알아봅니다.

빌드 파이프라인 만들기

웹 브라우저를 열고 새 프로젝트(https://dev.azure.com/\<organizationname>/VotingSample)로 이동합니다.

파이프라인 탭을 선택하고 파이프라인 만들기를 선택합니다.

새 파이프라인

클래식 편집기 사용을 선택해 YAML 없이 파이프라인을 만듭니다.

클래식 편집기

Azure Repos Git을 원본으로 선택하고, VotingSample 팀 프로젝트, VotingApplication 리포지토리, 수동 및 예약 빌드의 경우 master 기본 분기를 선택합니다. 그런 다음, 계속을 선택합니다.

리포지토리 선택

템플릿 선택에서 Azure Service Fabric 애플리케이션 템플릿을 선택하고 적용을 선택합니다.

빌드 템플릿 선택

작업에서 에이전트 풀로 "Azure Pipelines"를 입력하고 에이전트 사양으로 windows-2022를 입력합니다.

작업 선택

트리거 아래에서 지속적인 통합 사용을 선택하여 지속적인 통합을 사용하도록 설정합니다. 분기 필터 내에서 분기 사양이 기본값인 마스터로 지정됩니다. 저장 및 큐를 선택하여 수동으로 빌드를 시작합니다.

트리거 선택

푸시 또는 체크 인 시 트리거도 빌드합니다. 빌드 진행 상황을 확인하려면 빌드 탭으로 전환합니다. 빌드가 성공적으로 실행되는지 확인한 후 응용 프로그램을 클러스터에 배포하는 릴리스 파이프라인을 정의합니다.

릴리스 파이프라인 만들기

파이프라인 탭, 릴리스, + 새 파이프라인을 차례로 선택합니다. 템플릿 선택에서 목록의 Azure Service Fabric 배포 템플릿을 선택하고 적용을 선택합니다.

릴리스 템플릿 선택

작업을 선택한 다음 +새로 만들기를 선택하여 새 클러스터 연결을 추가합니다.

클러스터 연결 추가

새 Service Fabric 연결 보기에서 인증서 기반 또는 Microsoft Entra 자격 증명 인증을 선택합니다. tcp://mysftestcluster.southcentralus.cloudapp.azure.com:19000"(또는 배포하려는 클러스터의 엔드포인트)의 클러스터 엔드포인트를 지정합니다.

인증서 기반 인증의 경우 클러스터를 만드는 데 사용된 서버 인증서의 서버 인증서 지문을 추가합니다. 클라이언트 인증서에서 base-64 인코딩된 클라이언트 인증서 파일을 추가합니다. base-64 인코딩된 해당 인증서의 표현을 가져오는 방법에 대한 정보는 해당 필드에서 도움말 팝업을 참조하세요. 인증서의 암호도 추가합니다. 별도 클라이언트 인증서가 없는 경우 클러스터 또는 서버 인증서를 사용할 수 있습니다.

Microsoft Entra 자격 증명의 경우 사용하려는 클러스터 및 자격 증명을 만드는 데 사용된 서버 인증서의 서버 인증서 지문을 추가하여 사용자 이름암호 필드에서 클러스터에 연결합니다.

저장을 선택합니다.

다음으로 릴리스 파이프라인이 빌드에서 출력을 찾을 수 있도록 파이프라인에 빌드 아티팩트를 추가합니다. 파이프라인아티팩트->+추가를 선택합니다. 원본(빌드 정의)에서 이전에 만든 빌드 파이프라인을 선택합니다. 빌드 아티팩트를 저장하려면 추가를 선택합니다.

아티팩트 추가

빌드가 완료될 때 릴리스가 자동으로 생성하도록 지속적인 배포 트리거를 사용하도록 설정합니다. 아티팩트에서 번개 아이콘을 선택하고 트리거를 사용하도록 설정한 다음 저장을 선택하여 릴리스 파이프라인을 저장합니다.

트리거 활성화

릴리스를 수동으로 만들려면 버전 만들기 ->만들기를 선택합니다. 릴리스 탭에서 릴리스 진행률을 모니터링할 수 있습니다.

배포에 성공했고 클러스터에서 애플리케이션이 실행 중인지 확인합니다. 웹 브라우저를 열고 https://mysftestcluster.southcentralus.cloudapp.azure.com:19080/Explorer/로 이동합니다. 애플리케이션 버전을 확인합니다. 이 예에서는 1.0.0.20170616.3입니다.

변경 내용 커밋 및 푸시, 릴리스 트리거

Azure DevOps의 일부 코드 변경을 체크 인하여 연속 통합 파이프라인이 작동하는지 확인합니다.

코드를 작성하는 동안 Visual Studio는 Git 변경 내용 창의 변경 섹션에서 프로젝트의 파일 변경 내용을 추적합니다.

변경 내용 보기에서 업데이트를 설명하는 메시지를 추가하고 변경 내용을 커밋합니다.

모두 커밋

Git 변경 내용 창에서 푸시 단추(위쪽 화살표)를 선택하여 Azure Pipelines의 코드를 업데이트합니다.

변경 내용 푸시

Azure Pipelines에 변경 내용을 푸시하면 빌드가 자동으로 트리거됩니다. 빌드 진행률을 확인하려면 https://dev.azure.com/organizationname/VotingSample파이프라인 탭으로 전환합니다.

빌드가 완료되면 릴리스가 자동으로 만들어지고 클러스터에서 애플리케이션 업그레이드가 시작됩니다.

배포에 성공했고 클러스터에서 애플리케이션이 실행 중인지 확인합니다. 웹 브라우저를 열고 https://mysftestcluster.southcentralus.cloudapp.azure.com:19080/Explorer/로 이동합니다. 애플리케이션 버전을 확인합니다. 이 예에서는 1.0.0.20170815.3입니다.

브라우저 창에서 실행 중인 Service Fabric Explorer의 투표 앱 스크린샷.

애플리케이션 업데이트

애플리케이션에서 코드를 변경합니다. 이전 단계에 따라 변경 내용을 저장 및 커밋합니다.

애플리케이션 업그레이드가 시작되면 Service Fabric Explorer에서 업그레이드 진행률을 확인할 수 있습니다.

Service Fabric Explorer의 투표 앱 스크린샷.

애플리케이션 업그레이드에는 몇 분이 걸릴 수 있습니다. 업그레이드가 완료되면 애플리케이션이 다음 버전으로 실행됩니다. 이 예에서는 1.0.0.20170815.4입니다.

브라우저 창에서 실행 중인 Service Fabric Explorer의 투표 앱 스크린샷. 업데이트된

다음 단계

이 자습서에서는 다음 작업 방법을 알아보았습니다.

  • 프로젝트에 소스 제어 추가
  • 빌드 파이프라인 만들기
  • 릴리스 파이프라인 만들기
  • 애플리케이션 자동 배포 및 업그레이드

다음 자습서를 진행합니다.