Мнения о MSDeploy
Вы знаете, следующее "большое" и "деловое" дело от Microsoft.
Это только я, или это действительно трудно для людей? Основные моменты: (IMO):
- Абсолютно критический синтаксис (
-skip:objectName=filePath,absolutePath=App_Offline.*
только для пропусков App_Offline.html
)
- Манифест как мысль после
- Отсутствие полной документации
- Ни слова о расширяемости (кроме нескольких сообщений в блоге). Более того, все эти расширения, разработанные с большим трудом, должны быть зарегистрированы в GAC и в реестре.
- Waaay слишком низкоуровневый (метаданные/метаки, весь этот джаз IIS)
- Нет интеграции с MSBuild
Конечно, MSDeploy и MSDeployAgent достаточно мощные, но действительно ли они должны быть такими сложными для относительно простых задач?
Ответы
Ответ 1
Я тоже разделяю ваши разочарования в связи с отсутствием документации и очевидным низкоуровневым характером этого инструмента.
Однако то, что сделала MS, наконец, создает бесплатный инструмент, с помощью которого вы можете фактически развертывать все серверы script, включая параметрирование адресов, конфигураций и т.д. Это, к сожалению, очень сложная задача - учитывая, сколько бит конфигурации фактически зайдите на веб-сервер - и это, вероятно, лучший способ сделать все это.
Теперь нам нужен действительно хороший графический интерфейс, который может помочь в создании этих пакетов и скриптов и т.д. Графический интерфейс, встроенный в IIS, хорош, но опять же, короткое объяснение - так, надеюсь, скоро это будет рассмотрено.
С функциональной стороны, я использую в данный момент для развертывания сайта с dev → постановка → жить с параметрами, чтобы изменить связанные IP-адреса и т.д. Я был глубоко разочарован тем, что мне потребовалось несколько дней, чтобы все это работало - однако теперь у меня есть это, я могу удалить много возможной человеческой ошибки со стороны ИТ-поддержки - которые несут ответственность за наши развертывания. У меня теперь есть только конфигурация моего промежуточного сервера, и вы можете быть уверены, что все серверы в веб-ферме будут синхронизироваться при каждом развертывании.
Как упоминалось в Sayed, в 2010 году есть задачи MSBuild (теперь функция развертывания веб-сайта используется с помощью msdeploy), что также позволяет использовать настоящую непрерывную интеграционную среду для VSTeamSystem - создание команды который действительно может выполнять полное веб-развертывание, поскольку его последний шаг очень увлекательный (и страшный, предоставленный!).
Ответ 2
На самом деле для MSDeploy существуют задачи MSBuild. Они будут поставляться с .NET 4/Visual Studio 2010.
Ответ 3
Несмотря на то, что по краям немного грубо, я немного походил на MSDeploy. Использование его для синхронизации веб-серверов в ферме очень полезно, поскольку оно является эффективным (только копирование изменений) и заботится о фактических настройках IIS в дополнение к файлам содержимого. Похоже, что MSDeploy является строительным блоком для различных сценариев и использования. Кроме того, как упоминалось ранее, для MSDeploy в .NET есть задача MSBuild. Я воспользовался этой задачей MSBuild, чтобы упростить развертывание моих веб-приложений из TeamCity. Я написал здесь здесь:
Веб-развертывание (MS Deploy) из TeamCity - http://www.geekytidbits.com/web-deploy-ms-deploy-from-teamcity/
Ответ 4
Недавно я начал внедрять конвейер развертывания, и я нашел ссылки ниже полезными:
Также я использовал эти ссылки:
- Видео о MSBuild на dnrtv.com
- Книга Microsoft Press под названием "Внутри Microsoft® Build Engine: использование MSBuild и Team Foundation Build", которую вы можете купить в PDF-версии от Oreilly.
Наконец, книга "Непрерывная доставка" дала мне хорошие идеи о линии развертывания, хотя книга не фокусируется на MSDeploy, но это действительно стоит прочитать.
Ответ 5
Утверждение документации типично для продукта MSFT 1.0, к сожалению, у MSDN больше нет специализированных инженеров-разработчиков технологий, чтобы заполнить пробелы. Вместо этого существует слепая вера в то, что сеть предоставит его.
Я действительно подумываю о том, чтобы избавиться от своих навыков письма и написать короткую книгу на нем, потому что, вероятно, рынок для нее...
Ответ 6
У Msdeploy определенно есть прикосновение к PowerShell: власть над простотой, а не хуже, чем лучше.
Нет альтернативы Windows, но вы можете гибридизовать некоторые свои возможности для автоматизации развертывания. Например:
- Скомпилируйте свое решение с Team City и msbuild
- Используйте msdeploy для преобразования вашего сайта и web.configs на сервере сборки.
- Вручную FTP файл ZIP вашего сайта (он не поддерживает FTP)
- В качестве альтернативы используйте возможности удаленного развертывания. Для этого требуется, чтобы порт 8172 был открыт, много изменений безопасности, и насколько я знаю, никаких уступок для балансировки нагрузки
- Использовать msdeploy на текущем сайте для синхронизации изменений
В качестве инструмента он явно нацелен на поставщиков услуг, поскольку это огромный швейцарский армейский нож. Вы можете делать с ним всевозможные вещи, которые по большей части больше всего убивают для малого бизнеса. У меня нет опыта в крупномасштабных настройках IIS, поэтому, возможно, там, где он сияет.