Блог экспериментатора инженера-разработчика: Infanty.
Я пишу how-to статьи на редкие темы или статьи обзоры - для себя и тех кто со мной работает.
Блог существует при поддержке: "Оккупационных сил Марса".

Когда проект (например на Drupal) небольшой, он не требует особой инфраструктуры для своей разработки и поддержки. Но стоит объёму работ по проекту стать больше 16 ~ 40 часов, как его поддержка и дальнейшее развитие может превратиться в "головную боль". Чтобы этого избежать, для любого среднего проекта необходимо иметь инфраструктуру для его развития и поддержки. Она необходима даже если на проекте работает один разработчик, так как с течением времени разработчик может поменяться и новый разработчик потратит в разы меньше времени на "вхождение в проект".

Один из примеров типовой инфраструктуры среднего проекта:

  • Техническое задание, управление задачами и wiki по проекту можно вести и хранить в Google Docs, Redmine, Jira и Confluence, Open Atrium и подобных системах. В некоторых случаях будет достаточно даже LibreOffice.
  • Исходный код можно хранить в Git используя GitHub, BitBucket или GitLab.
  • Разрабатывать проект можно используя PhpStorm или NetBeans на локальной (например: используя XAMPP), виртуальной (например: используя VirtualBox) или удалённой машине, используя Xdebug.
  • Реализовывать парадигму непрерывной интеграции и тестирования можно используя Jenkins CI и встроенную в Drupal систему тестирования.
  • Мониторить проект на боевом сервере можно используя систему логирования на основе Logstash в связке с Kibana и ElasticSearch.

Начинающим разработчикам для своего небольшого проекта, достаточно будет LibreOffice Writer для описания виденья своего проекта и конечного результата который они хотят получить в результате реализации проекта. А список задач можно вести в LibreOffice Calc делая пометки о способе их реализации там же или в Writer.

Для хранения исходного кода используя BitBucket, достаточно лишь зарегистрироваться в сервисе и подтвердить свой e-mail. Так же дополнительно можно поставить программу: SourceTreea для более удобной работе с Git.

Установка PhpStorm и VirtualBox мало у кого вызовет вопросы. Для удобства разработки желательно, что бы на рабочем сервере и сервере разработки (в данном случае: виртуальном) стояла одинаковая операционная система, например: Ubuntu Server 18.04 LTS.

Вместо Ubuntu Server 18.04 LTS в VirtualBox можно установить например: Linux Mint 19 (Xfce), так как Mint этой версии построен на основе дистрибутива Ubuntu 18.04 LTS.

В ряде случев разработку проще вести используя XAMPP или Acquia Dev Desktop вместо VirtualBox. Но только пока Вам достаточно: Apache, MySQL и PHP. Как только Вам понадобится дополнительное программное обеспечение, Вы можете столкнутся с трудностями его установки в Вашу локальную систему отличную от сервера.

На момент написания статьи отсутствовала стабильная реализация Docker, LXC или LXD под Windows. Но если Ваша локальная система Linux или Mac, то рекомендую ознакомится с инструкциями по настройке Docker или LXD.

Windows Subsystem for Linux (WSL) не умеет нормально работать с сокетами, что накладывает ограничения на использование WSL. Ubuntu в WSL - так же содержит ряд других ограничений припятствующих их полноценному использованию.

VirtualBox можно настраивать вручную или с помощью Vagrant с Puppet или Ansible.

Мой выбор пал на VirtualBox, потому что он позволяет делать копию образа диска виртуальной машины для его сохранения или переноса между разными физическими машинами в формате: "100% работающего слепка".