В 2014 году Крис Вигман форкнул VVV для создания Primary Vagrant – Apache-конфигурации Vagrant, использующей Puppet. Проект непрерывно развивался на протяжении последних трех лет. Последний релиз включил в себя значительные изменения, которые требуют от пользователей уничтожения всех существующих сред перед обновлением.
Primary Vagrant 4.0 переходит на PHP 7.1 по умолчанию. Также в релизе появился генератор сайтов, который упрощает создание новых сайтов и управление ими. Проект также включает в себя Landrush – Vagrant-плагин, предоставляющий простой DNS-сервер без необходимости редактирования файлов хостов.
Вигман отметил, что направление релиза было выявлено на базе пользовательских отзывов, а также особенностей и исправлений, полученных от форка Primary Vagrant, который он использовал во время своей работы в качестве WordPress/веб-разработчика в University of Florida Health. Он сам и четверо его коллег использовали Primary Vagrant ежедневно, что позволило Вигману постоянно совершенствовать проект. Версия 4.0 была выпущена вместе с новой обширной Wiki, которую создал Вигман для облегчения работы его команды.
Переключение между версиями PHP пока осуществляется не так просто, как хотелось бы Вигману. Оно возможно, но Вигман не рекомендует это делать. Он рассматривает возможность переноса проекта на Docker в будущем, но пока придерживается Vagrant.
«Большинство конфигов Docker, которые я видел, на самом деле сделаны так же, как и боксы Vagrant – просто поменяйте Docker на Vagrant», — отмечает Вигман. – «Я обсуждал перенос этого проекта на Docker, но с целью достижения большей гибкости (переключение nginx/mysql, php-версий и т.д.). В данный момент я более заинтересован в том, чтобы сделать его максимально полным, чтобы он выполнял все то, что мне нужно, и я считаю, что в версии 4.0 это было реализовано».
Вигман ранее рассматривал возможность отказа от Vagrant в пользу Docker. В ноябре 2016 он публиковал пост, в котором указывал на некоторые недостатки Vagrant.
«Работая с Vagrant почти три года и даже написав пост о том, насколько он прекрасен, я могу теперь с уверенностью сказать, что это не настолько хорошее решение, каким мне казалось», — говорит Вигман. – «Это не какие-то необдуманные слова, ведь я все же собираюсь запускать версию 4.0 своего проекта. Я отталкиваюсь от ожиданий, которые возлагают на него разработчики, принимая во внимание экосистему инструментов (или ее отсутствие), старательно приспосабливаемую нами под имеющиеся задачи».
Отсутствие гибкости Vagrant для конфигурирования версий ПО наряду с отсутствием хороших интерфейсов для модификации таких особенностей, как конфигурации виртуальных хостов, заставило Вигмана еще раз взглянуть на другие решения. Хотя Vagrant решает массу проблем для тех, кто заинтересован в воспроизведении среды разработки, борьба с раздражающими «подводными камнями» в его обслуживании может съесть массу времени.
«Необходимость в хорошем боксе Vagrant для установки и конфигурировании разных элементов, которые требуются для работоспособности среды, означает, что легко могут произойти какие-либо ошибки. В лучшем случае это будут сообщения об ошибках, и вам просто понадобится установить другой элемент. В худшем случае вам понадобится потратить кучу времени на попытки решения проблем с инструментом, который, как предполагалось, поможет вам создать ваш продукт», — говорит Вигман.
Компания разработчиков 10up, создатели VVV, признали некоторые недостатки использования VVV, Vagrant и Virtual Box/Hyper-V. Недавно они выпустили WP Docker, являющийся более быстрой и легковесной альтернативой представленным решениям. И хотя компания 10up по-прежнему использует VVV в некоторых случаях, их команды разработчиков вольны выбирать лучшее решение для своих проектов.
В будущем релизе Primary Vagrant 5.0 Вигман рассматривает возможность использования Puppet 4 или его замену на новую систему. Он также внимательно изучает переход к Docker и экспериментирует с решениями. Переход к Docker позволил бы подключать PHP, MySQL, Apache и другие сервисы в виде модулей, что открывает возможности по их простой и удобной настройке.
«Если я перейду к Docker, то в таком случае я сделаю проект Primary Docker, а Primary Vagrant будет передан другим», — говорит Вигман. – «Однако я пока не совсем уверен в этом, поскольку это станет серьезным изменением».
Источник: wptavern.com