다음을 통해 공유


Azure에 대한 개발 프로세스

팁 (조언)

이 콘텐츠는 .NET Docs 또는 오프라인으로 읽을 수 있는 무료 다운로드 가능한 PDF로 제공되는 eBook인 'ASP.NET Core와 Azure로 현대 웹 애플리케이션 설계하기'에서 발췌한 내용입니다.

ASP.NET Core 및 Azure를 통해 최신 웹 애플리케이션 설계에 관한 eBook 커버 썸네일입니다.

"클라우드를 사용하면 개인과 중소기업이 손가락을 들이고 즉시 엔터프라이즈급 서비스를 설정할 수 있습니다."- 로이 스테판

시력

Visual Studio 또는 dotnet CLI 및 Visual Studio Code 또는 선택한 편집기를 사용하여 원하는 방식으로 잘 디자인된 ASP .NET Core 애플리케이션을 개발합니다.

ASP.NET Core 앱용 개발 환경

개발 도구 선택: IDE 또는 편집기

완전하고 강력한 IDE를 선호하든, 가볍고 민첩한 편집기를 선호하든, Microsoft는 ASP.NET Core 애플리케이션을 개발할 때 여러분에게 적합한 옵션을 제공합니다.

비주얼 스튜디오. Visual Studio는 ASP.NET Core용 애플리케이션을 개발하기 위한 동급 최고의 IDE입니다. 개발자 생산성을 높이는 다양한 기능을 제공합니다. 애플리케이션을 개발한 다음 성능 및 기타 특성을 분석하는 데 사용할 수 있습니다. 통합 디버거를 사용하면 코드 실행을 일시 중지하고 실행 중인 즉시 코드를 앞뒤로 이동할 수 있습니다. 핫 리로드에 대한 지원을 통해 앱을 다시 시작하지 않고도 코드를 변경한 후에도 이전 작업을 이어서 계속 진행할 수 있습니다. 기본 제공 테스트 실행기를 사용하면 테스트와 결과를 구성할 수 있으며 코딩하는 동안 라이브 단위 테스트를 수행할 수도 있습니다. Live Share를 사용하면 다른 개발자와 실시간으로 공동 작업하여 네트워크를 통해 코드 세션을 원활하게 공유할 수 있습니다. 준비가 되면 Visual Studio에는 애플리케이션을 Azure 또는 호스트할 수 있는 위치에 게시하는 데 필요한 모든 것이 포함됩니다.

Visual Studio 다운로드

Visual Studio Code 및 dotnet CLI (Mac, Linux 및 Windows용 플랫폼 간 도구). 개발 언어를 지원하는 경량 및 플랫폼 간 편집기를 선호하는 경우 Microsoft Visual Studio Code 및 dotnet CLI를 사용할 수 있습니다. 이러한 제품은 개발자 워크플로를 간소화하는 단순하면서도 강력한 환경을 제공합니다. 또한 Visual Studio Code는 C# 및 웹 개발을 위한 확장을 지원하여 편집기 내에서 intellisense 및 바로 가기 작업을 제공합니다.

.NET SDK 다운로드

Visual Studio Code 다운로드

Azure 호스팅 ASP.NET Core 앱에 대한 개발 워크플로

애플리케이션 개발 수명 주기는 각 개발자의 컴퓨터에서 시작하여 선호하는 언어를 사용하여 앱을 코딩하고 로컬에서 테스트합니다. 개발자는 선호하는 소스 제어 시스템을 선택할 수 있으며 빌드 서버를 사용하거나 기본 제공 Azure 기능을 기반으로 CI(연속 통합) 및/또는 CD(지속적인 업데이트/배포)를 구성할 수 있습니다.

CI/CD를 사용하여 ASP.NET Core 애플리케이션 개발을 시작하려면 Azure DevOps Services 또는 조직의 자체 TFS(Team Foundation Server)를 사용할 수 있습니다. GitHub Actions는 코드가 GitHub에서 호스트되는 앱에 대해 Azure에 앱을 쉽게 빌드하고 배포하기 위한 또 다른 옵션을 제공합니다.

초기 설정

앱에 대한 릴리스 파이프라인을 만들려면 소스 제어에 애플리케이션 코드가 있어야 합니다. 로컬 리포지토리를 설정하고 팀 프로젝트의 원격 리포지토리에 연결합니다. 이 지침을 따릅니다.

애플리케이션을 배포할 Azure App Service를 만듭니다. Azure Portal의 App Services 블레이드로 이동하여 웹앱을 만듭니다. +추가를 클릭하고, 웹앱 템플릿을 선택하고, 만들기를 클릭하고, 이름 및 기타 세부 정보를 제공합니다. 웹앱은 {name}.azurewebsites.net 액세스할 수 있습니다.

AzureWebApp

그림 10-1. Azure Portal에서 새 Azure App Service 웹앱 만들기

CI 빌드 프로세스는 새 코드가 프로젝트의 소스 제어 리포지토리에 커밋될 때마다 자동화된 빌드를 수행합니다. 이 프로세스는 코드가 빌드되고(이상적으로는 자동화된 테스트를 통과) 잠재적으로 배포될 수 있다는 즉각적인 피드백을 제공합니다. 이 CI 빌드는 웹 배포 패키지 결과물을 생성하여 CD 프로세스에서 사용할 수 있도록 게시합니다.

CI 빌드 프로세스 정의

팀의 누군가가 새 코드를 커밋할 때마다 시스템이 빌드를 큐에 대기하도록 연속 통합을 사용하도록 설정해야 합니다. 빌드를 테스트하고 웹 배포 패키지를 아티팩트 중 하나로 생성하는지 확인합니다.

빌드가 성공하면 CD 프로세스에서 CI 빌드 결과를 Azure 웹앱에 배포합니다. 이 단계를 구성하려면 릴리스를 만들고 구성하여 Azure App Service에 배포합니다.

Azure 웹앱 배포

CI/CD 파이프라인이 구성되면 웹앱을 쉽게 업데이트하고 소스 제어에 커밋하여 배포할 수 있습니다.

Azure 호스팅 ASP.NET Core 애플리케이션 개발을 위한 워크플로

Azure 계정 및 CI/CD 프로세스를 구성한 후에는 Azure 호스팅 ASP.NET Core 애플리케이션을 간단하게 개발할 수 있습니다. 다음은 그림 10-2와 같이 Azure App Service에서 웹앱으로 호스트되는 ASP.NET Core 앱을 빌드할 때 일반적으로 수행하는 기본 단계입니다.

EndToEndDevDeployWorkflow

그림 10-2. ASP.NET Core 앱을 빌드하고 Azure에서 호스팅하기 위한 단계별 워크플로

1단계. 로컬 개발 환경 내부 루프

Azure에 배포하기 위해 ASP.NET Core 애플리케이션을 개발하는 것은 애플리케이션 개발과 다르지 않습니다. Visual Studio 2019 또는 dotnet CLI 및 Visual Studio Code 또는 선호하는 편집기 등 익숙한 로컬 개발 환경을 사용합니다. 공유 소스 제어 리포지토리에 변경 내용을 푸시할 준비가 될 때까지 코드를 작성하고, 변경 내용을 실행하고, 디버그하고, 자동화된 테스트를 실행하고, 소스 제어에 로컬 커밋을 수행할 수 있습니다.

2단계. 애플리케이션 코드 리포지토리

팀과 코드를 공유할 준비가 되면 로컬 원본 리포지토리의 변경 내용을 팀의 공유 원본 리포지토리로 푸시해야 합니다. 사용자 지정 분기에서 작업한 경우 이 단계에는 일반적으로 코드를 공유 분기( 끌어오기 요청을 통해)로 병합하는 작업이 포함됩니다.

3단계. 빌드 서버: 연속 통합. 빌드, 테스트, 패키지

공유 애플리케이션 코드 리포지토리에 대한 새 커밋이 이루어질 때마다 빌드 서버에서 새 빌드가 트리거됩니다. CI 프로세스의 일부로 이 빌드는 애플리케이션을 완전히 컴파일하고 자동화된 테스트를 실행하여 모든 것이 예상대로 작동하는지 확인해야 합니다. CI 프로세스의 최종 결과는 배포할 준비가 된 패키지 버전의 웹앱이어야 합니다.

4단계. 빌드 서버: 지속적인 업데이트

빌드가 성공하면 CD 프로세스에서 생성된 빌드 아티팩트를 선택합니다. 이 프로세스에는 웹 배포 패키지가 포함됩니다. 빌드 서버는 이 패키지를 Azure App Service에 배포하여 기존 서비스를 새로 만든 서비스로 바꿔서 배포합니다. 일반적으로 이 단계는 스테이징 환경을 대상으로 하지만 일부 애플리케이션은 CD 프로세스를 통해 프로덕션에 직접 배포합니다.

5단계 Azure App Service 웹앱

배포되면 ASP.NET Core 애플리케이션은 Azure App Service Web App의 컨텍스트 내에서 실행됩니다. 이 웹앱은 Azure Portal을 사용하여 모니터링하고 추가로 구성할 수 있습니다.

6단계 프로덕션 모니터링 및 진단

웹앱이 실행되는 동안 애플리케이션의 상태를 모니터링하고 진단 및 사용자 동작 데이터를 수집할 수 있습니다. Application Insights는 Visual Studio에 포함되며 ASP.NET 앱에 대한 자동 계측을 제공합니다. 사용량, 예외, 요청, 성능 및 로그에 대한 정보를 제공할 수 있습니다.

참고문헌

Azure에 ASP.NET Core 앱 빌드 및 배포https://learn.microsoft.com/azure/devops/build-release/apps/aspnet/build-aspnet-core