Как раньше: открыл удалённую папку на сервере по FTP, скопировал туда свои файлы — сайт работает.
К каким проблемам это приводило:
– Два разработчика скачали один и тот же файл, внесли правки и по очереди загрузили их на сервер. Изменения первого разработчика стёрты вторым.
– Разработчики работают прямо на сервере. Человеческий фактор неизбежно приводит к ошибкам.
Как это выглядит у нас сейчас:
– Разработчик копирует код из Git-репозитория (git clone/git pull
)
– Создаёт свою ветку, в ней изменения хранятся отдельно (git checkout -b
)
– Вносит изменения в свой экземпляр (git commit
)
– Отправляет изменения обратно в репозиторий (git push
)
– Создаёт запрос на добавление своих изменений в общий код (Merge Request)
– Робот 🤖 на новом поддомене разворачивает тестовую копию сайта с изменениями (Review Apps) и запускает тестирование
– Менеджер, Тестировщик и другие разработчики смотрят и щупают изменения
– Разработчик дорабатывает код, тестовый сайт автомагически обновляется
– После принятия запроса на слияние (Merge Request) все новые изменения автоматически выкатываются на промежуточный сервер
– С промежуточного сервера время от времени все обновления попадают на основной сервер (тоже через Merge Request)
В итоге менеджеры могут одновременно отслеживать прогресс разных задач на тестовых доменах и давать обратную связь.
Дополнительные бонусы: исключаем риск утечки данных (152-ФЗ) и рукожопства на сервере (🤖).