Реанимация блога 2019: теперь контейнерный

Этот блог с попеременным успехом я веду уже около 10 лет. Архив записей начинается с июня 2011 года, хотя домен был зарегистрирован ещё в январе 2009. Немалый срок.

За это время блог побывал на shared-хостинге Timeweb, сперва на самописном движке, затем на WordPress, потом на VDS у Ihor. Сейчас, если мне не изменяет память, это четвёртая его инкарнация.

В мая я создал на https://freelansim.ru/ проект по развёртыванию 5 блогов на WP. Купил 5 минимальных VDS у ihor, нашёл бэкапы своих проектов в том числе samizdam.net. Выполнить проект хотелось с использованием актуальных на текущий момент технологий, и чтобы всё было по красоте: бэкапы в облаке, git, docker, SSL-сертификат. Чтобы следующая переезд занял минимум времени и усилий. Поднимать и настраивать каждый раз LAMP для каждого блога, или пользоваться виртуальным хостингом уже лениво. Система контроля версия и контейнеризация помогут обеспечить быстрое и простое развёртывание веб-приложения в пару команд.

Было составлено добротное техническое задание: какой стек технологий использовать, какие работы требуются по каждому сайту провести. У меня было 5 доменов, 5 пустых репозиториев в собственном gitlab, 5 VDS, где я создал пользователя и установил необходимые пакеты — docker, docker-compose, git. И бюджет 4 000 рублей.

Первый десяток откликнувшихся исполнителей пришлось отправить в архив. Кто-то не имел опыта с docker, кто-то сливался сам. Был один исполнитель, услышавший требование про docker, который заломил 40 000 вместо 4 000. Странная логика. За 40 000 я бы и сам сделал.

В итоге выбранный исполнитель потратил больше недели на настройку пяти сайтов. Полностью выполнить все имевшиеся требования ему не удалось. Не работали бэкапы в S3, установка из репозитория с нуля подразумевала выполнение большого количества магии вручную, которая оказалась недокументированной. Каждый день я ему помогал с разными техническими нюансами и с преодолением трудностей. Похоже он просто взял проект чуть выше имеющихся компетенций. Хотя и был бюджет скромный, а проект требовал экспертизы которая на фрилансе встречается не часто, и стоит дороже типичных работ. В итоге мне стало неудобно требовать дальнейших доделок по ТЗ и я рассчитался с ним.

После рассчёта у меня было 4 условно работающих конфигурации из планировавшихся 5. Бэкап пятой был снят с настолько старой версии WordPress, что подобрать подходящую версию образа, из которого запустился бы контейнер мне так и не удалось. Другие 4 работали, с некоторыми ошибками, т.к. до обновления движка и версий php, которое планировалось для них, исполнителя не хватило.

Воспроизводимость полученных конфигураций была под большим вопросом. Локально мне завести ни одну их них не удалось. Выпуск SSL-сертификата требовал дополнительных усилий, т.е. не был должным образом автоматизирован.

Пришлось вспомнить старую истину: если хочешь сделать что-то хорошо — сделай это сам! Засучил консоль и стал собирать свой репозиторий, на основе которого можно будет получить рабочую конфигурацию с актуальной сборкой WordPress и важными плюшками:

  • бэкапы и восстановление в облаке S3 (я использую свой minio)
  • дамп базы и wp-content в одну команду
  • установка и запуска выполняются в пару команд после клонирования
  • решение легко переиспользовать для новых сайтов
  • никаких дополнительный требований к настройке сервера: склонировал репозиторий, make insall, make run и готово — блог доступен по https.

Текущая инкарнация samizdam.net так же запущена таким образом. Проект, который облегчит я назвал WordPress-Docker-Skeleton. Пользуйтесь на здоровье!

Запись опубликована в рубрике PHP, Доработка Wordpress'а надфилем с метками , , , , . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *