Как вы организуете devel окружение?

Здравствуйте, хабражители.
Подскажите пожалуйста, как лучше организовать devel окружение (php проекты), есть много разработчиков и много проектов, все проекты лежат и запускаются на отдельном devel-сервере, СКВ Git.
Сейчас возникло два вопроса:
1. Домены и папки. Сейчас для каждого разработчика есть свой поддомен проекта, например bob.devel.mysite.com. Нужно ли под каждую git-ветку заводить еще поддомен вида t12.bob.devel.mysite.com или лучше переключать ветки в одной папке?
2.Доступ к папкам. Большинство разработчиков сидят на win7, есть mac и ubuntu. Доступ к коду лучше организовывать через сетевые диски используя Samba или у разработчиков должны лежать локальные git хранилища, а на сервер заливать по SFTP?
  • Вопрос задан
  • 3391 просмотр
Решения вопроса 1
@rozhik
У меня организовано следующим образом:
К development серверу есть днс запись вида *.domain.com in A x.x.x.x
Конфиг апача
<VirtualHost *:80> UseCanonicalName Off VirtualDocumentRoot /web/%1/html ServerAdmin webmaster@domain.com <Directory /> ... </Directory> </VirtualHost>

В каталоге /web любой из разработчиков может создавать папки. Сколько ему нужно серверов, и под какие цели — решает сам. Периодически скрипт просит разработчика «почистить» лишние, если у него их больше 5ти. Аналогично для nginx.
Соответственно разработчик сам выбирает ответ на вопрос 1.

К папке /web открыт доступ через sftp, samba. По второму вопросу большинство предпочитают доступ по samba или sshfs (тоесть редактируюют код в основном непосредственно на сервере).

Итого:
Каждый разработчик волен решать как ему нравится. Но, есть полиси с рекомендованым подходом (оно большое).
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Нууу как это сделано у большинства:
у разработчика есть локальная копия репозитория (иначе зачем вам git), и он пишет все у себя локально. Локально интегрирует код других девелоперов со своим ну и т.д. То бишь разработка исключительно локально.

Сервер только один, выкатывать туда можно либо на прямую из git (скажем в gitlab можно добавить доступ по ssh только на чтение) и пулить туда мастер. По сути на сервере всегда должна быть стабильная версия кода, мол с уже заимплеменченными фичами. ну или можно собирать билд в ci по пушу и автоматически разворачивать его.
Ответ написан
1) только bob.devel.mysite.com

код и гит репа — локально. в иде (пхпсторм) настроена авто-синхронизация с той папочкой на сервере
т.е. весь код локально, гит локально, ветки переключаются локально, а F5 делается на bob.devel.mysite.com

такая схема позволяет не париться над окружением у себя на компе, особенно если оно требует много чего (у нас например и rabbitmq и mysql и postgres, и еще mongo была) + у всех разработчиков одинаковое окружение для запуска кода, что тоже немаловажно (помогает избежать «а у меня всё норм работает)
Ответ написан
Комментировать
FanatPHP
@FanatPHP
Чебуратор тега РНР
Мне сложно понять эту проблему, поскольку сам я сижу под осью того же семейства, что стоит на боевом.
Так что, в моем понимании, девел-сервер — это не единственное место, где программист может запустить написанный на локальном компе код, а сервер, максимально приближенный к боевому, для окончательной обкатки и показа всем причастным к задаче лицам.

Соответственно, разумная организация представляется мне такой
1. Разработчик разрабатывает на своей локальной машине. Именно разрабатывает — пишет, запускает, отлаживает. Разработанное заливает в Git
2. На devel-сервере реализовано динамическое создание поддоменов. Создал девел папку t12 в /opt/www/bob — автоматически появился сайт t12.bob.devel.mysite.com.
3. Делаем в этой папке git clone (или pull) — и таким образом обновляем код.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы