ettaluni
@ettaluni
ERROR MEME

Что использовать для PHP разработки? Vagrant, Ansible или Docker?

Доброго дня! Никак не могу вкурить что использовать для проектов. У меня есть свой хост, отдельный, 16 потоков 16ГБ памяти. На нем Virtual Box в качестве средства виртуализации.
Проблема в том что чем больше я изучаю Docker, Vagrant, Системы конфигурации прихожу к выводу что это одно и тоже.
Ну докер может не может автоустановку.
Дак вот что же собственно юзать? Под разработку на MVC\Symfony, Lavarel? Под разработку на CMS, Bitrix, Wordpress и.т.п.
Для разработки на Node js? Подскажите.
  • Вопрос задан
  • 642 просмотра
Пригласить эксперта
Ответы на вопрос 2
index0h
@index0h
PHP, Golang. https://github.com/index0h
Это зависит от того, что, куда и как вы будете диплоить.
По хорошему чем ближе окружения для разработки к продакшну - тем лучше.

Лично я работал со следующими связками:
- Vagrant + bash provisioning
Этот способ с самым низким погором вхождения, но он очень требователен к качеству кода И процесса установки и обновления.

- Vagrant + ansible provisioning
Этот способ по сути включает в себя bash provisioning, но в структуре ansible. Работая в команде будьте готовы к тому, что провизионирование далеко не у всех будет нормально работать и это будет источником вашей головной боли. Если базово подтянуть bash у сотрудников еще не вызовет вопросов, то с ansible это процесс будет сложнее.

- Docker
Чистый докер требует далеко не маленькой компетенции. В команде я бы настоятельно не рекомендовал его использовать без дополнительных обвязок. По сути вам прийдется сделать свой docker-compose.

- Docker + docker-compose
Считаю оптимальным решением для dev окружения при работе как в команде, так и без.
Ответ написан
romesses
@romesses
Backend инженер
Для первичной настройки и поддержки актуального состояния используются системы управления конфигурациями.

Docker используют чаще для гарантии идентичности среды, как в продакшн. Т.е. локально ведется разработка, тестируется в Docker. Если тесты пройдены - можно выкатывать в продакшн. Можно развертывать вручную, конечно. Но лучше, когда используются системы CI/CD (Jenkins, Gitlab CI/CD, Github Actions и пр.)
В случае Docker такие системы на сборочной машине собирают приложение в контейнер Docker и загружают его в реестр Docker, а затем на целевой машине скачивается контейнер и запускается.
В Jenkins можно использовать тот же Ansible и для разворачивания проекта.

Разве не логичнее использовать Linux в качестве хост машины? Всякие VirtualBox не подходят для этих целей.
Ну и если сильно нужна Windows - установите ее в качестве гостевой ОС.
Вот для сравнения различные системы виртуализации:
https://wiki.openvz.org/Comparison
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы