Principal/WordPress Fullstack/Blueprints/DevOps y Velocidad/Zero-Downtime деплой WordPress через GitHub Actions, Rsync и атомарные симлинки
Volver a tarjetas «DevOps y Velocidad»
DevOps y Velocidad(ТЗ 52 из 54)
ТЗ: Zero-Downtime деплой WordPress через GitHub Actions, Rsync и атомарные симлинки
DevOps y Velocidad2 шагов • +10 XP

ТЗ: Zero-Downtime деплой WordPress через GitHub Actions, Rsync и атомарные симлинки

Построение промышленного CI/CD пайплайна непрерывной доставки: сборка фронтенда темы на Node 22, тестирование, rsync файлов в каталог релизов, атомарное переключение симлинка current и автоматический rollback.

~10 ч работыУровень: SeniorGitHub ActionsZero Downtime DeployAtomic SymlinksRsync & SSHWP-CLIAutomated RollbackOPcache Reset
+5 XP за шаг
Выполнено 0 из 2 шагов (0%)
Трудозатраты~10 рабочих часов
Фриланс вилка~$450 – $750 (€400 – €700)
Оценка веб-студии~$950 – $1,600 (€900 – €1500)

ТЗ заказчика (исходный бриф):

Каждый коммит в ветку main должен автоматически тестироваться, собираться и разворачиваться на production за секунды без малейшего прерывания сессий покупателей.
Ключевые требования:
  • •Изолированная структура каталогов: releases/, shared/ (uploads, wp-config.php) и симлинк current
  • •CI пайплайн: установка зависимостей pnpm, проверка типов tsc, сборка Vite и прогон тестов
  • •Безопасная доставка по SSH через rsync с исключением служебных файлов (.git, node_modules, tests)
  • •Атомарное переключение симлинка current на новый релиз (0 секунд простоя)
  • •Сброс PHP OPcache и Redis кэша после каждого успешного релиза
  • •Автоматический откат на предыдущий релиз, если healthcheck эндпоинт отдает ошибку
Ограничения проекта:
  • •Запрет на ручное редактирование файлов на сервере
  • •Папка wp-content/uploads/ должна храниться в shared/ и оставаться нетронутой при деплоях
Критерии приёмки (KPI):
  • 0 секунд даунтайма (Zero Downtime) при релизах
  • Время прогона пайплайна < 90 секунд
  • Автоматический откат в течение 5 секунд при сбое healthcheck

Пошаговое практическое руководство по ТЗ

Подробный разбор архитектуры, код реализации и советы эксперта по каждому этапу:

1
Этап 1 из 2

Подготовка архитектуры каталогов на сервере

Практическое руководство:

Создайте базовую структуру: /var/www/site/releases, /var/www/site/shared/uploads, /var/www/site/shared/wp-config.php. Направьте Nginx root на /var/www/site/current.

План и контрольные точки реализации:
1Создать каталоги releases и shared
2Вынести uploads и wp-config.php в shared
3Направить Nginx root на /var/www/site/current
Важные технические нюансы и подводные камни:

Убедитесь, что симлинк current является относительным или абсолютным и указывает на активный релиз.

BASH
# Подготовка структуры каталогов
mkdir -p /var/www/site/releases
mkdir -p /var/www/site/shared/uploads

# Nginx root настраивается на:
# root /var/www/site/current;
2
Этап 2 из 2

Создание пайплайна GitHub Actions

Типичные грабли на этом ТЗ

2 антипаттерна

Что сдаём клиенту (Deliverables)

Чек-лист сдачи
Готовый файл рабочего процесса .github/workflows/deploy.yml
Скрипт развертывания deploy.sh на production-сервере
Настроенная структура каталогов releases/ и shared/
Интеграция healthcheck проверки с авто-роллбэком

Инструменты экосистемы Fullstack AI Lab для этого ТЗ

Интеграция