Есть ли стабильный инструмент для полного веб-развертывания? CI?

Я потратил много часов, пытаясь найти полностью стабильное решение для развертывания приложения (в моем случае это php). Есть много ТАК ответы, где Phing / Capistrano / Гудзон предлагаются, но такие предложения заставляют меня грустить.

Идея состоит в том, чтобы иметь волшебную коробку со всей вашей конфигурацией для всех сред (таких как dev, prod, test и т. Д.), Чтобы обеспечить возможность простого ввода magicbox deploy --env prod на компьютере с Linux, чтобы полностью развернуть приложение, в том числе:

  • настроил nginx / apache
  • настроил php со всеми зависимостями и модами
  • настроил mysql с необходимыми пользователями и базами данных
  • настроенные поисковые системы (такие как Sphinx, ElasticSearch)
  • система для управления установленным коробка, как делать мягкий / жесткий перезапуск (без / с потерей постоянных данных)

Я был вдохновлен бродяга / докер, потому что они кажутся очень похожими на то, что я ищу, но многие парни говорят, что они не готов для использования в производстве. Более того, я увлекаюсь виртуализацией, и мне непонятно, как работает Docker, что означает использование Docker для производительности компьютера и можно ли его использовать с любой VPS провайдер.

Большое спасибо за то, что поделились своим опытом.

-1

Решение

В вашем вопросе много хаоса:

  1. Управление конфигурацией:
    настройка веб-служб, баз данных и т. д. с помощью таких инструментов, как Ansible, Saltstack, Puppet, Chef
  2. Развертывание кода из репозитория в производство:
    сборка пакета, такого как образ Docker или пакет deb \ rpm, или развертывание непосредственно из исходников с помощью сценариев Ansible \ Fabric \ Capistrano
  3. Непрерывная интеграция:
    Автоматически получать источники после каждого коммита или по расписанию, развертывать его в тестовой среде, выполнять тесты, а затем объединять изменения в master или даже развертывать их в рабочей среде с помощью таких инструментов, как Jenkins, Hudson, Teamcity, Buildbot и т. Д.
  4. Сервисная оркестровка для большой сложной среды:
    Когда у вас много компонентов и облачных экземпляров, среда требует сложного проектирования и управления. Для этого случая DevOps использует «облачные операционные системы», такие как Mesosphere, или инструменты оркестровки, такие как Nomad или Juju.

В простейшем случае я рекомендую использовать Ansible для настройки ваших компонентов, Vagrant для локального тестирования и AWS или любой VPS для производства. Когда ваша команда вырастет для автоматизации, вы можете использовать Jenkins для частных репозиториев или Travis-ci для проектов с открытым исходным кодом.

И наймите хорошего DevOps, когда вырастете;)

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]