ASP.NET으로 제작된 웹 프로그램을 Azure App Service인 WebApp에 배포하는 시나리오 입니다.
- Repo -> Build -> Staging -> Production
사전 필요학습
- Git (Clone, commit, push)
- ASP.Net Framework (프로젝트 생성)
- Azure WebApp (생성, 슬롯)
사전 준비
- Azure WebApp 생성
- WebApp에 Staging 이라는 슬롯 생성
- Git 설치
- ASP.NET 프로젝스 생성
학습 목표
- Pipeline - Build
- Pipeline - Release (Azure App Service - Web App)
- Staging 배포 후 Production으로 자동 배포
- Staging 배포 후 Production으로 수동 배포
가이드 목록
- 프로젝트 생성
- 레포지토리
- Pipelines - Build
- Pipelines - Release
- Staging에 자동배포
- Production에 자동배포
- Production 수동배포로 변경
- 배포 시나리오
- 시나리오 1
- 시나리오 2
프로젝트 생성
레포지토리
DevOps에는 프로젝트 별로 Git Repository를 제공 합니다.
다른 Git 서비스를 이용하고 DevOps에는 빌드와 배포만 사용하고자 할 때는 이 단 계를 건너 뛰어도 됩니다.
레포지토리를 생성하거나 다른 Git으로부터 가져올 수 있습니다.
여기서는 새로 생성하는방법을 알아 볼께요
레포지토리 초기화
- Add a .gitignore : git에서 관리하지 않을 목록 (예제 에서는 Visual Studio 사용)
- Initialize : Repository 초기화
레포지토리 크리덴셜 생성
DevOps 계정에 Repository Credential을 생성해주어야 합니다.
Credential은 DevOps계정당 하나만 설정되는 항목이므로 이미 다른 프로젝트에서 생성한적이 있으면 이 단계는 스킵해도 됩니다.
아래 화면은 이미 크리덴셜이 있는 상태
레포지토리에 ASP.NET Framework 프로젝트 Push (생략)
Pipelines - Build
DevOps Build Pipeline 생성
다양한 Git 서비스로부터 빌드를 실행할 수 있습니다.
Azure Web App for ASP.NET Template 선택
빌드 파이프라인 설정 시작
Web App이 생성되어 있는 구독 선택후 인증
Web App 선택
사용하지 않을 Task 비활성화
- VsTest 생성하지 않았고
- 배포(Deploy)는 Pipeline - Release에서 별도로 설정
빌드설정 저장 하면서 빌드 성공 확인을 위해 빌드 실행
아래와 같이 빌드가 성공해야 합니다.
Pipelines - Release
릴리스 파이프라인은 크게 2가지 형태로 구성되어 있습니다.
- Artifacts - 어떤 내용을
- Stages - 어디로 배포 한다.
Artifact에서 Staging 배포를 거쳐 Production 으로 자동 배포하는 설정입니다.
- Release Pipeline 생성
Stage 설정 - Staging
Staging 이라는 Stage 생성
Staging Stage 설정 시작
Azure 구독, 앱서비스 Type, 앱서비스 선택
Deploy to Slot or App Service Environment 선택하여 WebApp이 위치한 리소스 그룹 선택과, WebApp의 슬롯 staging 선택 후 저장
Artifacts 설정
Artifact 추가 시작
빌드된 결과물을 배포하기 위해 배포하려는 빌드 파이프 라인 선택
빌드가 끝났을때 마다 본 Pipeline이 실행될 수 있도록 트리거 설정
이전에 빌드 했던 결과물을 Azure WebApp - Staging에 배포가 되는지 확인
Stage 추가 - Production
Production 으로의 배포 환경을 추가하기위해 Pipeline의 설정으로 들어갑니다.
Stage 추가
Web App이 생성되어 있는 구독 선택 후 해당 앱서비스 선택
배포슬롯 선택 (Production)
Product 배포 확인
이전에 빌드 했던 결과물이 Staging배포 후 Production까지 자동으로 배포가 되는지 확인
배포 시작
릴리스 정보 보기 클릭
Staging Stage 배포중
Production Stage 배포중
Staging, Production에 자동 배포 완료
Production 수동 배포로 변경
지금까지의 설정은
빌드가 발생하면 Staging배포 후 Production까지 자동으로 배포 환경입니다.
이번엔
빌드 후 Staging까지는 자동으로 배포 되지만 Production 배포는 수동으로 진행하도록 변경합니다.
Pipeline 설정으로 진입
트리거 설정 진입
트리거 옵션 변경 : After stage -> Manual only
배포 시나리오
시나리오 1
- DevOps CI/CD환경 구축 후
- 여러번의 빌드가 있었고
- 최근 빌드된 내용까지 Staging에 반영되어 있다.
- 현재 Staging에 있는 버전이 안정적인듯 보이므로
- Production으로 배포 하려고 한다.
현재 파이프라인 상태
Staging에 마지막으로 배포되었던 결과물을 Production으로 배포 시작
Production 환경을 Release-2 에서 Release-7로 배포
배포후 파이프라인의 배포 상황
시나리오 1-1
- 앗뿔사 시나리오 1 에서 배포 했던 버전이 있어서
- 이전에 Staging에만 배포했던 것중
- 안정적이였다고 판단되는 버전을
- Production으로 배포하려고 한다.
Staging에만 배포되었던 Release-6을 Production으로 배포
현재 배포되어 있는 Release-7 에서 Release-6으로 배포
배포후 파이프라인의 배포 상황
'IT > Azure' 카테고리의 다른 글
Storage Account blob 이동 테스트 (0) | 2023.04.26 |
---|---|
Azure에서 인증서 백업받기 (0) | 2023.04.26 |
AppService webapp (Java) 만들기 및 Azure DevOps 연동 (0) | 2023.04.25 |
Azure DevOps 비용이 청구될 구독을 등록하여 월 1800분 제한 없애는 방법 (0) | 2023.04.25 |
ADH(Azure dedicated host) 유지관리란? (0) | 2023.04.25 |