Как организовать модель Development, Staging, Production?

WP блог с ~30k уников в день, три выделенных сервера в распоряжении. У меня стоит две задачи: построить fail-safe работу двух (трёх?) продакшн серверов (один серв. упал, сайт жив); и организовать работу сторонних фриланс-разработчиков, которые будут обновлять сайт.


Предполагаю сделать 1 сервер load balancer'ом, и два зеркальных production — обрабатывать запросы.


Как лучше поступить с разработчиками? Прочитал про Development — (Integration) — Staging — Production. Стоит ли поднимать виртуальные машины для Development и Staging, или вполне можно держать их на одном из продакшн, на отдельном IP, со своей копией БД?

Позволить разработчикам заливать по FTP что-то на продакшн, или жестко ограничить их коммитами в SVN, и только ответственным сотрудникам дать права на запуск деплоймент скриптов из SVN на продакшн?


Что почитать про Best Practices организации работы разработчиков над проектом?
  • Вопрос задан
  • 20957 просмотров
Решения вопроса 1
Wott
@Wott
Разработчики должны иметь свое изолированное окружение, обычно локальное
Дальше неплохо иметь промежуточный dev сервер, как для последнего прогона тестов, так и для интеграционных тестов
Далее dev копируется в продакшн, или снепшот из продакшена копируется в дев и они меняются ( если что можно мгновенно переключиться в старый )
Заливка из VCS только в дев.

Можно ли ставить дев и продакшн в одной среде зависит от того когда тестируется производительность и прочие нагрузочные вещи. Если до заливки в дев, то можно, иначе — нельзя — есть риск завалить тестами или кривыми изменениями.

Я бы сделал один сервер в продакшн, второй в реплику и третий дев. При сем дев и продакшн менял местами и бекапил бы их вдруг в друга, а реплика имела бы два контейнера или набора серверов соответствующие двум другим машинам.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
andreysmind
@andreysmind
есть центральный репозиторий (гит\меркуриал на мой взгляд подойдёт лучше, чем СВН)
новая фича == новая ветка.
каждый разработчик работает локально. как только фича на его взгляд готова — создаётся пул реквест и какой-нибудь опытный разработчик проверяет код и заливает его на тестовый сервер. после того как тестировщики прогнали тесты — деплой на продакшен.
и умоляю, никаких «заливать по ФТП на продакшен». это обязательно выйдет боком в самый неподходящий момент.
Ответ написан
@Vampiro
Девелопить фрилансеры могут у себя там, локально. Вам необходимо поднять тест сервер с копией бд, чтобы можно было глянуть на боевых объемах как работает та или иная фича. И наладить периодическое обновление системы, когда вся команда онлайн. Давать доступ к боевому серверу нельзя. И дело не в том, что завалят, а в том, что это будет случаться в произвольные моменты времени. Копировать на тестовый таблицу пользователей и паролей желательно с модификацией данных. Как-то так в двух словах =)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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