В последнее время все чаще встречаю задачи связанные с автоматизацией разработки и автоматической публикацией новых версий сайта.
Давайте попробую описать те варианты которые встречались в моей практике.
Простой вариант
Самый простой вариант это обычный сайт в одном экземпляре и его редактирование в реальном времени через FTP/SFTP. Тут обычно используется простейший редактор типа Atom с плагином Remote FTP.
Это вполне простое и экономичное решение если сайт простой и частые перебои в его работе не создают значительных потерь финансов или репутации.
Обычный хостинг, GitLab & Deploy Bot
Чуть более сложное решение. Сайт у нас все еще на обычном shared-хостинге. Нет возможности тонко настраивать веб-сервер. Но уже есть потребность в GIT. Например когда над кодом начинают работать 2 человека. Или перебои начинают приносить потери. Нужно контролировать версии и периодически делать откаты.
В этом случае оптимально код держать на GitLab, а публикацию делать с помощью специальных ботов типа DeployBot. Доступа по FTP/SFTP вполне хватает для таких механик.
Как правило тут уже используется Vagrant для настройки и запуска виртуальных серверов на компьютерах разработчика. При этом конфигурация и скрипты запуска виртуальных машин вместе с приложением могут храниться в GIT вместе с кодом самого приложения.
( VPS | DS ) + GitLab & GitLab CI
Когда сайт становится уже достаточно сложным и критичным к надежности, то он переезжает на свой сервер, который можно тонко настраивать.
Тут уже появляется возможность использовать GitLab CI.
Самый простой вариант установки GL Runner на сервер. Подключить к репо приложения на GitLab. И при очередном комите в ветку мастер выполнять git pull на стороне сервера.
Вариант посложнее — запускать множество GL Runner с Докер контейнерами для автотестов и ручного тестирования.
Итого
Усложнять систему разработки и доставки приложений можно бесконечно. Это лишь описание сценариев начального уровня сложности. С ростом нагрузки, растут требования к отказоустойчивости и надежности. Добавляются этапы процесса доставки приложения. Увеличивается число разработчиков. Количество тестов и т д.
Бывают печальными ситуации когда для ресурса с 0 посещаемостью начинают использовать сверх сложную систему контроля версий. Или когда есть критически важное приложение которое публикую практически вручную. Важно уметь выбирать максимально простые решения, но не проще чем это допустимо.
Источник: https://wpcraft.ru/2017/avtomatizatsiya-razrabotki-na-wordpress/