Какой из них лучше осьминог или msdeploy для автоматического развертывания на нескольких серверах с использованием teamcity
Я изучил оба. Хотите, чтобы ваши предложения о том, какой из них лучше для автоматического развертывания в Интернете на нескольких серверах.
Ответы
Ответ 1
Думаю, вам обязательно нужно попробовать TeamCity и Octopus. Мы используем TeamCity для создания пакетов Octopus (NuGet) и инструмента Octo для автоматического запуска развертывания в тестовую среду после каждой сборки succesfull. После этого мы используем портал Octopus для развертывания развертывания в других средах.
Мы используем следующую командную строку Octo для запуска развертываний TeamCity:
Octo.exe create-release --apiKey=YourOctopusAPIKey --server=http://YourOctopusServer:9015/api --project=YourOctopusProjectName --deployto=YourOctopusEnvironment
Шаг Octo create-release должен быть в отдельном проекте TeamCity, иначе NuGet не будет обновлен с помощью полученного пакета из сборки.
Ответ 2
MSDeploy может использоваться для развертывания всего, начиная с веб-приложений и заканчивая базами данных, а Web Farm Framework можно использовать для синхронизации с основным сервером на вторичных серверах (что вы также можете делать вручную, используя разные наборы пармеров, если хотите).
То, что вы описываете, является "конвейером развертывания". Я не уверен, как вы собираетесь интегрировать его в Team City, но основная предпосылка:
- Создайте приложение, протестируйте и упакуйте его (объявив все параметры, которые необходимо установить). Вставьте пакет (и любые файлы, необходимые для последующих шагов) в репозиторий артефактов (возможно, Team City, если он его поддерживает).
- (автоматически запускается). Получите пакет из репозитория артефактов и разверните его в dev, вызвав
msdeploy -verb:sync -source:package.zip -dest:auto,computerName=http://server:8172/msdeploy.axd -setParamFile:dev.xml
- (в ручном режиме) Развертывание пакета на этап
- (в ручном режиме) Развертывание пакета для работы
MSDeploy поддерживает удивительное количество функций, включая хранение учетных данных в диспетчере учетных данных Windows и параметризацию практически всех аспектов развертывания. Я настоятельно рекомендую вам проверить это. (Он также бесплатный, кроме лицензии Windows Server)
Ответ 3
Это зависит. (мне кажется, что этот вопрос еще не отмечен). Но в любом случае, возможно, стоит спросить себя:
- Вы разрабатываете веб-сайт, который требует от QA подписывать и продвигать или иметь набор автоматизированных тестов для проверки каждой сборки?
- Развертываете ли вы развертывание в нескольких средах (QA, UAT, Demo, Production) и хотите увидеть красивую панель, в какой версии есть?
- Вам нужны определенные пользователи для разрешения на производство?
- Вам нужно развернуть другие типы компонентов (службы Windows, базы данных и т.д.).
- Вам нужна дополнительная настройка на каждом сервере перед началом развертывания (например, звоните шоколадно, чтобы установить и настроить Mongo). Aka ограниченное выделение сервера.
- Требуется контроль над жизненным циклом продвижения (например, перейти к производству, только если он прошел через QA).
Если вы сказали "да" большинству из вышеперечисленных, я бы сказал, что Octopus Deploy выигрывает руки для развертывания. И угадайте, что это бесплатно для до 5 проектов и бриза, чтобы встать и работать.
Для простых веб-сайтов, которым требуется простое управление CMS конечными пользователями или веб-сайтами, которые разработчикам не требуется поддерживать, я бы сказал, что все материалы Azure и MSDeploy - отличный инструмент для работы. Как отметил Ричард Салай, в наши дни он имеет отличные инструменты командной строки для регулярного опубликования.
В терминах сервера сборки это не имеет особого значения, поскольку оно должно использоваться для создания артефактов. Team City - победитель для меня, хотя благодаря хорошей интеграции с Octopus. ИМО, что отдельное обсуждение.