Как создать девелопер-версию продакшен сервера на linux?

Подскажите пожалуйста, в каком направлении искать и может есть уже какие то готовые решения.


Есть рабочий debian сервер обслуживающий на nginx довольно крупный сайт в обвязке php+mysql. Все кастомное, никаких фреймворков, код раскидан по разным папкам, разные разработчики в разное время придерживались разных подходов к проектированию приложений и сейчас это такой большой "снеговик" сложно управляемый.


Задача.

Облегчить развертывание актуальных версий проекта из множества php приложений или на dev сервере или что еще лучше, чтобы разработчик мог получить полноценную локальную версию копии рабочего сайта со всем серверным окружением под любой клиентской операционной системой. Нужно еще учитывать, что есть конфиденциальные данные пользователей в БД, которые не нужно давать разработчику, дабы не утекли.


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

И довольно много времени уходит на бэкап и развертывание актуального состояния файлов и базы.


Смотрю в сторону  виртуализации и контейнеризации.


Есть идея сделать образ всей системы "на живую". Перекинуть в VirtualBox или Docker (на винде на маке или линукс), но там диски по несколько терабайт, по сети дергать это нереально. Может быть сделать это один раз,  типа базовый образ системы, а потом добавлять только изменения.


Подскажите, кто сталкивался с подобными задачами, как можно это реализовать?

Спасибо)

GNU/Linux

1K постов15.5K подписчиков

Добавить пост

Правила сообщества

Все дистрибутивы хороши.

Будьте людьми.

Вы смотрите срез комментариев. Показать все
2
Автор поста оценил этот комментарий

из множества php приложений

что значит пхп-приложение? вангую по факту там просто есть папка WebSite и в ней куча подпапок, а все это под одной версией php крутится. И в чем проблема их тупо архивнуть и скопировать тогда?

и да, там нет версионной системы? если нет - кастрировать тим лида, добавить git и заставить работать с ним всех разработчиков. причем кастрировать медленно и у всех на виду.


ну а дальше, к примеру Vagrant box, куда кроме дефолтных LAMP стека прописываем поэтапно шаги:

1. git pull master ну или скачать архив с сервера бекапов

что бы локально создать все файлы нужные для работы сайта


2. дернуть бекап БД

опять же они обязаны быть как минимум ежедневные по крону на лайв сервере!)


3. выполнить скрипт очистки и правки БД

можно посидеть денек, посоставлять SQL запросы, которые бы просто меняли данные на одинаковые типа credit_card_cumber = '1111-1111...' customer_name='vaisa pupkin' и т.д. это достаточно просто сделать.

у нас еще к примеру подключен скрипт "search_replace" (из популярной одноименной библотеки, у которой есть CLI либа - search-replace-db/srdb.cli.php ), который на лету правит некоторые моменты в БД


собственно, готово. ну а дальше пихать все, что душе угодно.

ещё комментарии
ещё комментарии
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку