다음을 통해 공유


기업에서 웹 배포

작성자 : Jason Lee

이 자습서에서는 개발, 테스트, 스테이징 및 프로덕션 환경에 대한 엔터프라이즈 규모 웹 애플리케이션의 배포를 관리할 때 발생하는 많은 문제를 해결하는 방법을 설명합니다. 이 자습서에는 다양한 일반적인 작업 및 절차를 안내하는 개념 및 작업 지향 콘텐츠가 혼합된 참조 솔루션이 포함되어 있습니다.

이 자습서의 이탈리아어 번역은 을 방문하세요 http://www.lucamorelli.it.

엔터프라이즈 배포 과제

조직에서는 복잡한 엔터프라이즈 규모 솔루션의 배포를 관리하려고 할 때 이러한 문제가 발생하는 경우가 많습니다.

  • 개발자 또는 테스트 환경, 스테이징 플랫폼 및 프로덕션 서버와 같은 여러 환경에 프로젝트를 배포할 수 있어야 합니다. 솔루션은 각 환경에 대해 서로 다른 구성 설정을 사용하여 배포해야 합니다.
  • 단일 단계 또는 자동화된 빌드 및 배포 프로세스의 일부로 여러 종속 프로젝트를 동시에 배포해야 합니다.
  • 자동화된 프로세스에서 배포를 구동할 수 있어야 합니다. 예를 들어 CI(연속 통합) 프로세스를 사용하여 새 코드가 체크 인될 때 테스트 환경에 웹 애플리케이션을 배포하려고 합니다.
  • 개발자가 모든 대상 환경에 대해 올바른 구성 설정 또는 필요한 자격 증명을 가질 가능성이 낮기 때문에 배포 프로세스를 제어하고 Visual Studio 외부에서 배포 변수를 설정할 수 있어야 합니다.
  • 스키마 기반 데이터베이스 프로젝트를 배포하고 후속 배포에서 기존 데이터를 보존해야 합니다.
  • 사용자 계정 데이터를 배포하지 않고 임시로 멤버 자격 데이터베이스를 배포해야 합니다. 기존 사용자 계정 데이터를 잃지 않고 배포된 멤버 자격 데이터베이스의 스키마를 업데이트해야 할 수도 있습니다.
  • 다양한 대상 환경에 콘텐츠를 배포할 때 특정 파일 또는 폴더를 제외해야 합니다.

접근 방식 개요

이 자습서는 이 시리즈의 다른 자습서와 함께 이 고급 접근 방식을 사용하여 위에서 설명한 과제를 충족합니다.

  • MSBuild(사용자 지정 Microsoft Build Engine) 프로젝트 파일을 사용하여 전체 빌드 및 배포 프로세스를 제어합니다.
  • 이렇게 하면 솔루션의 모든 프로젝트를 스크립트 가능한 단일 작업의 일부로 빌드하고 배포할 수 있습니다.
  • 환경별 설정은 간단한 환경별 프로젝트 파일을 사용하여 구성됩니다. 솔루션 구성을 사용하고 프로필을 게시하여 다양한 환경에 대한 배포를 구성하는 Visual Studio 중심 접근 방식과 달리 이 방법을 사용하면 Visual Studio 외부에서 배포 프로세스를 구성하고 관리할 수 있습니다. 즉, 개발자는 대상 환경에 대한 연결 문자열, 서비스 엔드포인트, 서버 자격 증명 및 기타 배포 변수에 대한 사전 지식이 필요하지 않습니다.
  • 사용자 지정 프로젝트 파일은 TFS(Team Foundation Server) 워크플로의 일부로 Team Build에서 호출할 수 있습니다. 이렇게 하면 CI 시나리오에 대한 자동화된 배포를 구성할 수 있습니다.

IIS(인터넷 정보 서비스) 웹 배포 도구(웹 배포)를 사용하여 웹 애플리케이션 프로젝트를 패키지하고 배포합니다.

  • 웹 배포는 종속성, 구성 설정, 보안 설정 및 기타 요구 사항과 함께 웹 애플리케이션 콘텐츠를 패키지하고 대상 IIS 웹 서버에 배포할 수 있는 프레임워크를 제공합니다.
  • 사용자 지정 MSBuild 프로젝트 파일 내에서 전체 패키징 및 배포 프로세스를 제어할 수 있습니다. 연결 문자열, 서비스 엔드포인트 및 IIS 대상 세부 정보와 같은 웹 배포 패키지와 함께 제공되는 구성 설정을 조작할 수도 있습니다.
  • 웹 배포는 웹 게시 파이프라인과 함께 배포를 사용자 지정할 수 있는 많은 확장성 지점을 제공합니다. 예를 들어 웹 배포 패키지에서 원치 않는 파일 및 폴더를 쉽게 제외할 수 있습니다.

VSDBCMD.exe 유틸리티를 사용하여 데이터베이스 스키마를 배포하고 업데이트합니다.

  • VSDBCMD를 사용하면 Visual Studio 데이터베이스 프로젝트를 빌드할 때 생성되는 데이터베이스 스키마 파일(.dbschema)에서 데이터베이스를 배포할 수 있습니다. 반면 웹 배포에 포함된 데이터베이스 배포 기능은 로컬 SQL Server instance 기존 데이터베이스를 배포하는 데 더 적합합니다.
  • 데이터베이스 프로젝트를 배포하는 Visual Studio의 기능과 달리 VSDBCMD를 사용하면 기존 대상 데이터베이스에 차등 업데이트를 배포할 수 있습니다. 이렇게 하면 데이터베이스 스키마를 업그레이드하는 동안 기존 데이터를 유지할 수 있습니다.
  • 사용자 지정 MSBuild 프로젝트 파일 내에서 VSDBCMD 명령을 실행할 수 있습니다.

콘텐츠 맵

이 자습서에는 4개의 기본 영역에 속하는 topics 포함되어 있습니다.

이러한 topics 참조 솔루션(Contact Manager 솔루션)을 소개하고 로컬 컴퓨터에서 다운로드하고 구성하는 방법을 설명합니다.

이러한 topics MSBuild 프로젝트 파일을 소개하고, 사용자 지정 프로젝트 파일을 만들고 사용하는 방법을 설명하고, Contact Manager 솔루션에 대한 배포 프로세스를 안내합니다.

이러한 topics 빌드 및 패키징 프로세스의 작동 방식, 빌드 프로세스가 웹 게시 파이프라인과 통합되는 방법, 배포 매개 변수를 수정하는 방법 및 대상 환경에 웹 패키지를 배포하는 방법을 포함하여 웹 애플리케이션 배포에 대해 설명합니다.

주요 기술

이 자습서의 topics 주로 이러한 기술을 사용하여 빌드 및 배포를 관리합니다.

  • Visual Studio 2010
  • MSBuild
  • IIS 7.5
  • 웹 배포 2.0
  • VSDBCMD.exe 데이터베이스 배포 유틸리티

이 시리즈의 다른 자습서

이는 엔터프라이즈 규모 웹 배포에 대한 5가지 자습서의 일부를 구성합니다. 시리즈의 다른 자습서는 다음과 같습니다.

  • 엔터프라이즈 시나리오에서 웹 애플리케이션 배포. 이 소개 콘텐츠는 자습서 시리즈의 컨텍스트 배경을 제공합니다. 자습서 시나리오를 설명하고 시리즈 전체에서 설명한 작업 및 연습이 더 광범위한 ALM(애플리케이션 수명 주기 관리) 프로세스에 어떻게 적합한지 보여 줍니다.
  • 웹 배포를 위한 서버 환경 구성. 이 자습서에서는 웹 Deployment Agent 서비스(원격 에이전트) 또는 웹 배포 처리기 및 원격 데이터베이스 배포를 사용하는 원격 웹 패키지 배포를 포함하여 다양한 배포 시나리오를 지원하도록 Windows 서버를 구성하는 방법을 설명합니다. 사용자 고유의 환경에 적합한 배포 방법을 선택하는 방법에 대한 지침을 제공하며, WFF(Web Farm Framework)를 사용하여 서버 팜의 모든 웹 서버에서 배포된 웹 애플리케이션을 복제하는 방법을 설명합니다.
  • 웹 배포를 위한 Team Foundation Server 구성 이 자습서에서는 CI 프로세스의 일부로 자동화된 배포 및 특정 빌드의 수동으로 트리거된 배포를 포함하여 다양한 배포 시나리오를 지원하도록 TFS를 구성하는 방법을 설명합니다.
  • 고급 엔터프라이즈 웹 배포. 이 자습서에서는 여러 환경에 대한 데이터베이스 배포 사용자 지정, 배포에서 파일 및 폴더 제외, 배포 프로세스 중에 웹 애플리케이션을 오프라인으로 전환 등 다양한 고급 배포 작업을 수행하는 방법을 설명합니다.