В начале этой недели запустили в эксплуатацию сервер разработки на платформе LAMP на базе Ubuntu Server 9.04 в офисе компании Вебдока. Смысл сервера разработки в том, что на нём производится непосредственно разработка проектов разработчиками, тестирование и отладка. Так же в любой момент проект разработчика в браузере можно посмотреть любому человеку из офиса не вставая со своего рабочего места, т.к. у каждого проекта для каждого разработчика имеется свой уникальный адрес (url) в сети.
Что же представляет собой сервер разработки? [spoiler] На виртуальной машине был поднят Ubuntu Server. Конфигурация виртуальной машины:
Intel Core 2 Duo 3.0 Ггц;
1Gb RAM;
70 Gb hard drive.
При установке Ubuntu автоматически были настроены LAMP, Postfix и Samba, что меня несказанно порадовало после установки Gentoo. После этого на DNS сервере офиса была прописана зона типа developers.local, в которой была прописана единственная запись типа A – *.developers.local на IP адрес виртуальной машины.
Теперь при обращении на любой из поддоменов developers.local запрос отправлялся на виртуальную машин с LAMP. После этого осталось только создать необходимые виртуальные хосты в Apache для разработчиков. А хосты создаются вида <developer>.<project>.developers.local. Таким образом у каждого разработчика в файловой системе есть своя копия проекта, а при обращении на адрес вида <project>.developers.local мы можем попасть на developer-build проекта, который составляется из ревизий subversion-репозитория данного проекта.
Как происходит работа с проектами?
В нашем случае клиенты-разработчики представляют собой компьютеры на базе ОС Windows. Пользователь обращается на сервер разработки (\\developer-server\<user>) и видит там свой домашний каталог (предварительно необходимо настроить Samba). В своём домашнем каталоге разработчик создаёт каталог projects, в который создаёт ссылки на каталоги с его проектами (виртуальные хосты), на которые у него есть полный доступ. Каталог projects монтируется в ОС как сетевой диск, и теперь этот диск можно использовать как диск с проектами для IDE разработки. Т.к. у каждого разработчика во владении находятся строго индивидуальные каталоги, то и при работе с subversion проблем не наблюдается, можно использовать как командную строку linux через ssh так и TortoiseSVN в качестве windows-клиента.
Что же нам всё это даёт?
Раньше все работали по принципу «весь проект локально», когда на локальной машине разработчика запускался Denwer. Отрицательная сторона такого подхода в том, что для работы проекта используются ресурсы локальной машины, которые можно было бы использовать для более комфортной работы в IDE, или для открытия большего кол-ва вкладок в браузере Собственно, не буду медлить, перечислю весь список плюсов и минусов:
Плюсы.
Быстрое разворачивание проекта;
Настроенное окружение для новых проектов;
Оперативное отслеживание работы разработчиков;
Единое хранилище проектов в разработке;
Нет необходимости настройки LAMP и средств отладки новому сотруднику;
Более быстрая работа проектов при отладке и тестировании;
Отсутствие погрешностей в скорости разработки на «настройку ПО» для разработки;
Удобная синхронизация проекта между разработчиками в пределах одной машины.
Минусы.
Работа по сети, а т.к. у нас в качестве сети используется wi-fi, периодически это является узким местом.
Как видите, всего лишь один минус, но сколько при этом плюсов! __________________________________ Оригинал статьи размещен в моем блоге.
М.б. лучше попробовать держать файлы проекта локально и синхронизировать на сервер тем же rsync'ом или любым иным способом (давно не сидел под Windows)? Это избавит от сетевых проблем, особенно когда нужно запустить поиск по всему проекту. Плюс, можете попробовать вместо самбы использовать sshfs (опять таки не знаю как с клиентами под Windows) по моим тестам работа по сети куда стабильнее.
Да, уже несколько лет держу проект локально, а при изменениях он синхронизируется в одностороннем порядке на сервер разработки. Синхронизация происходит либо через realsync, либо средствами phpstorm, когда что удобнее.
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».