다음을 통해 공유


자습서: Azure Pipelines를 사용하여 Service Fabric 애플리케이션에 대한 CI/CD 설정

이 자습서는 시리즈의 4부입니다. Azure Pipelines를 사용하여 Azure Service Fabric 애플리케이션에 대한 CI/CD(연속 통합 및 지속적인 업데이트)를 설정하는 방법을 보여 줍니다. 자습서를 완료하려면 기존 Service Fabric 애플리케이션이 있어야 합니다. 이 자습서에서는 자습서 시리즈 1부에 설명된 애플리케이션을 사용합니다.

이 자습서에서는 다음을 하는 방법을 알아볼 수 있습니다.

  • 프로젝트에 소스 제어 추가
  • 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의 프로젝트에 애플리케이션 원본 파일을 공유합니다.

Visual Studio 2022에서 새 GitHub 리포지토리 및 Azure DevOps 리포지토리를 만들려면 Git 메뉴에서 Git>Git 리포지토리를 선택합니다.

계정을 선택하고 리포지토리 이름을 입력합니다. 만들기 및 밀어넣기를 선택합니다.

새 Git 리포지토리 만들기를 보여 주는 스크린샷.

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

새로 만든 리포지토리를 보려면 https://dev.azure.com/><organizationname>으로 이동합니다. 프로젝트 이름을 마우스로 가리키고 리포지토리 아이콘을 선택합니다.

Azure Pipelines를 사용하여 지속적인 업데이트 구성

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

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

빌드 파이프라인 만들기

웹 브라우저를 열고 https://dev.azure.com/<organization-name>/VotingSample의 새 프로젝트로 이동합니다.

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

새 파이프라인 만들기를 보여 주는 스크린샷.

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

클래식 편집기를 사용하여 파이프라인을 만드는 방법을 보여 주는 스크린샷.

원본의 경우 Azure Repos Git을 선택합니다. Team 프로젝트의 경우 VotingSample을 선택합니다. 리포지토리의 경우 VotingApplication을 선택합니다. 수동 및 예약된 빌드에 대한 기본 분기를 그대로 둡니다. 그런 다음, 계속을 선택합니다.

Azure DevOps에서 리포지토리를 선택하는 방법을 보여 주는 스크린샷.

템플릿 선택에서 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 자격 증명의 경우 Server 인증서 지문 값을 추가합니다. 클러스터를 만드는 데 사용한 서버 인증서와 사용자 이름암호에서 클러스터에 연결하는 데 사용할 자격 증명을 사용합니다.

저장을 선택합니다.

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

아티팩트 추가를 보여 주는 스크린샷.

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

트리거를 사용하도록 설정하는 방법을 보여 주는 스크린샷.

릴리스 만들기>만들기를 선택하여 릴리스를 수동으로 만듭니다. 릴리스 진행률을 모니터링하려면 릴리스 탭을 선택합니다.

배포에 성공했고 클러스터에서 애플리케이션이 실행 중인지 확인합니다. 웹 브라우저를 열고 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의 투표 앱을 보여 주는 스크린샷.

다음 단계

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