Введение в веб-развертывание

Харш Миттал

Что такое веб-развертывание?

Веб-развертывание — это расширяемое средство клиентского сервера для синхронизации содержимого и конфигурации с IIS. Веб-развертывание используется в основном в двух сценариях:

  1. Разработчики используют его для синхронизации (aka 'publish') скомпилированных веб-приложений (ASP .Net, PHP и т. д.) из средств разработчика (Visual Studio, WebMatrix и т. д.) с IIS
  2. ИТ-специалисты используют его для переноса веб-сайтов и приложений из операционной системы с более старой версией IIS, такой как IIS6, в операционную систему под управлением более новой версии IIS, например IIS 7.5.

Схема, показывющая путь от источника к назначению. Между этими точками являются веб-сайты, базы данных и конфигурация.

Как веб-развертывание сравнивается с FTP?

Веб-развертывание часто сравнивается с такими технологиями, как FTP, XCOPY или RoboCopy. Хотя эти технологии полезны, веб-развертывание предлагает несколько преимуществ.

Ниже приведено сравнение веб-развертывания с FTP:

  1. Веб-развертывание выполняется быстрее, чем FTP. Веб-развертывание не использует различную команду для каждой операции. Вместо этого он выполняет сравнение в начале синхронизации и передает только изменения.
  2. Веб-развертывание безопасно. Веб-развертывание поддерживает передачу по протоколу HTTPS. Обратите внимание, что варианты FTP, такие как SFTP и FTPS, также защищены.
  3. Веб-развертывание может задать дескрипторы безопасности (ACL) для целевых файлов и каталогов. Например, вы можете использовать веб-развертывание для предоставления пользователю Windows конкретного доступа к папке "Загрузки" приложения во время развертывания.
  4. Web Deploy может публиковать базы данных. Веб-развертывание имеет встроенную поддержку создания скриптов для баз данных SQL Server, MySQL Server, Sqlite и SQL Server Compact и применения этих скриптов во время синхронизации. Это может быть очень удобно, если для работы приложения требуется база данных.
  5. Web Deploy может применять преобразования во время развертывания. Вы можете использовать веб-развертывание для изменения строки подключения или параметра приложения во время синхронизации. Веб-развертывание поддерживает большой диапазон преобразований, включая преобразование параметров IIS.
  6. Веб-развертывание интегрируется с Visual Studio 2010 и WebMatrix.
  7. Развертывание веб-приложений является расширяемым. Веб-развертывание имеет богатую общедоступную модель расширяемости, которая позволяет создавать новые сценарии.

Как это работает?

Схема, показывающая путь от источника к пункту назначения для администратора и другой путь для администратора и не администратора.

Большинство операций веб-развертывания моделироваются вокруг операции синхронизации между источником и назначением. Операция синхронизации управляется платформой веб-развертывания с помощью одного или нескольких поставщиков веб-развертывания, как описано ниже.

Платформа

Web Deploy состоит из фреймворка, который управляет состоянием подключения и координирует синхронизацию между источником и назначением. Например, платформа отвечает за пропуск синхронизации определенных типов содержимого, выполнения правил и преобразования файлов.

Платформа доступна через общедоступный API, а также через исполняемый файл командной строки msdeploy.exe.

Providers

Веб-развертывание может синхронизировать любые данные между двумя расположениями с помощью встроенных поставщиков, подключающихся к платформе. Поставщики знают, как синхронизировать определенный тип данных между двумя источниками или получить полезные сведения об источнике данных.

Например, Web Deploy имеет поставщика, который работает с базами данных SQL (dbFullSql) и может синхронизировать всю базу данных SQL Server с другим сервером. Другие встроенные поставщики синхронизируют базы данных MySQL (dbMySql), конфигурацию IIS 7 (appHostConfig), сборки GAC (gacAssembly) или COM-объекты (comObject32/comObject64). Более полный список можно найти в TechNet.

Модель поставщика расширяема и позволяет разработчикам создавать собственные поставщики для веб-развертывания, если они должны синхронизировать пользовательские данные.

Под капотом

Когда источник инициирует действие через Web Deploy, фреймворк Web Deploy устанавливает соединение с пунктом назначения. Веб-развертывание поддерживает две конечные точки подключения, и выбор одной из них зависит от нескольких факторов:

Схема, показывющая дерево принятия решений для назначения I S 7.

  • Если конечным назначением является Windows Server 2003 под управлением IIS6, вы можете подключиться к его службе агента веб-развертывания (также известной как служба удаленного агента). Служба удаленного агента обеспечивает безопасность этого подключения и доступна только пользователям администратора.
  • Если назначение — Windows Server 2008 под управлением IIS7 или Windows Server 2008 R2 под управлением IIS7.5, и вы подключаетесь с учетными данными без прав администратора, тогда вы должны подключиться к конечной точке службы управления веб-сервером. Web Deploy устанавливает обработчик в службе управления веб-сервером, позволяющий неадминистраторам выполнять развертывания после проверки подлинности и авторизации в службе управления веб-сервером.
  • Если назначение — Windows Server 2008 под управлением IIS7 или Windows Server 2008 R2 под управлением IIS7.5 и вы подключаетесь с учетными данными администратора, вы можете подключиться к любой конечной точке.

Узнать больше

Ознакомьтесь с нашими пошаговыми руководствами на iis.net и нашей документацией на technet.