Бродяга в производстве
Я читал о Vagrant, и я считаю, что это очень полезно для моего развития. В настоящее время я управляю серией сервисов (почта, сеть, LDAP, совместное использование файлов и т.д.), И часто один из них падает и требует быстрого резервного копирования. Возможно ли (и рекомендуется) использовать Vagrant для этих целей?
До сих пор я устанавливал виртуальные машины как настоящие машины.
Я также хотел бы узнать об альтернативе Vagrant, которая позволила бы мне настроить простой файл конфигурации и поставить виртуальную машину, например, с Zimbra, и быстро иметь альтернативный почтовый сервер, включить RabbitMQ и т.д.
Ответы
Ответ 1
Vagrant следует использовать скорее как промежуточную среду для тестирования изменений вашей инфраструктуры. Это должен быть ваш тестовый стенд для автоматических изменений инфраструктуры.
Как мы используем его в моей компании, это так:
- Создайте виртуальные машины для наших управляемых серверов в Vagrant.
- Создайте кукольные определения для каждого сервера.
- Создайте тесты огурца для каждого сервера.
- Сделать изменения инфраструктуры через марионетку и добавить тесты огурца.
- Запустите наши серверы для проверки сбоев.
- Исправить ошибки, отпустить и/или вернуться к шагу 4.
В основном, когда мы довольны нашими изменениями, мы потянем наши марионеточные изменения в производство, чтобы это произошло.
Я бы не рекомендовал использовать бродягу для управления виртуальными машинами для реального производства. Я бы использовал что-то еще, например, бритву, virsh, OpenStack или одну из многих других систем управления vm.
Ответ 2
На этой странице показано, что команда push-команды Vagrant предназначена для развертывания на производстве:
https://www.hashicorp.com/blog/vagrant-push-one-command-to-deploy-any-application/
"Кроме того, несколько объявлений config.push.define могут быть в Vagrantfile для определения нескольких нажатий, возможно, одного для постановки и одного для производства, например.
Ответ 3
Хашикорп только что опубликовал Otto, который должен быть преемником бродяг. Он предназначен для поддержки сред развертывания.
Из страницы Github:
Ключевыми особенностями Otto являются:
-
Автоматические среды разработки: Отто определяет ваше приложение
типа и создает среду разработки, специально предназначенную для этого
приложения с нулевой или минимальной конфигурацией. Если ваше приложение зависит
на другие службы (например, базу данных), он автоматически настроит и
запустите эти службы в своей среде разработки для вас.
-
Построен для микросервисов. Отто понимает зависимости и управление версиями
и может автоматически развертывать и настраивать приложение и все
его зависимостей для любой среды. Приложение должно только
расскажите Отто о его непосредственных зависимостях; зависимости зависимостей
автоматически обнаруживается и настраивается.
-
Развертывание. Отто знает, как развернуть приложения, а также разработать
их. Является ли ваше приложение современным микросервисом, наследием
монолит или что-то среднее между ними, Отто может развернуть ваше приложение на любой
окружающая среда.
-
Docker. Отто может использовать Docker для загрузки и запуска зависимостей
для развития, чтобы упростить микросервисы. Приложения могут быть контейнеризированы
автоматически упростить развертывание без изменения разработчика
рабочий процесс.
-
Инструмент, упрочняющий закачку: Отто использует закалочную оснастку для производства
строить среды разработки (Vagrant),
запускать серверы (Terraform), настроить
услуги (Consul) и многое другое. Отто основывается на
инструменты, которые влияют на крупнейшие мировые сайты.
Otto автоматически устанавливает и управляет всем этим инструментом, поэтому вы не
должны.
Ответ 4
У меня был тот же вопрос, и я исследовал использование Vagrant push, который, согласно их документации, начиная с версии 1.7, Vagrant способен развертывать или "проталкивать" код приложения в тот же каталог, что и ваш Vagrantfile, в удаленный, такой как FTP-сервер.
Я подумываю о том, чтобы у разработчиков появилось бешеное ускорение в виртуальной машине, а также возможность развертывания кода на работающем сервере для рабочих сред.
Ответ 5
- По моему опыту, Vagrant в основном используется в среде разработки.
- Варианты конфигурации и предоставления Vagrant ограничены по сравнению с Terraform, например.
- Если вы работаете в облачной среде, вы можете использовать Terraform для обеспечения инфраструктуры.
- Если ваша среда является локальной или ваши виртуальные машины будут размещены в центре обработки данных, вы можете использовать Ansible, chef или puppet для управления конфигурацией и автоматизации.
Ответ 6
Как упоминал @andrerpena, Отто является преемником Вагранта.
Из www.ottoproject.io:
Отто может развернуть ваше приложение. Пользователи Vagrant в течение многих лет хотели развернуть свои бродячие среды для производства. К сожалению, Vagrantfile не содержит достаточной информации для создания надлежащей производственной среды с лучшими отраслевыми практиками. Создается приложение для кодирования этих знаний, а развертывание - одна команда.