Как организовать сервера для нескольких разработчиков?
Суть вопроса следующая:
У нас есть онлайн проект и в данный момент мы расширяемся, нанимаем дополнительного программиста. Сейчас над сайтом я работаю один и каких-то вопросов безопасности не возникало. Но вот если добавится 1-2 или более сотрудников то тут уже есть риски что кто-то из-за чего-нибудь может с сервером и бд что-то сделать, это если дать полные доступы как сейчас к сайту и бд.
Вопрос, как правильно организовать структуру серверов чтобы обезопасить работу и данные сайта?
Что есть сейчас:
1. VPS на бегете
2. на нем Laravel с сайтом + БД MySql
3. работаю через bitbucket
На счет файлов сайта как-то опасений нет т.к. все проходит через bitbucket и я всегда буду видеть что загружается на сайт
А вот с БД сложнее, к рабочей БД будет доступ у всех и получается что потом любой может с ней что-то сделать неприятное... Бекапы делаются, но все равно неприятно будет...
Какое я вижу возможное решение:
1. текущую сборку оставляем и именуем его как продакшен)
2. на бегете создаем новый VPS(с меньшим тарифом, большой для него не нужен будет) и именуем его как dev
3. клонируем прод на dev + клон БД.
4. и теперь получается что разработчики будут работать только с dev сервером
5. при выполнении очередной задачи, разработчики делают все на dev, тестируют, если все норм то выгружают результат в bitbucket, а я потом все это дело выгружаю на прод и если нужно делаю migrate базы
И вот тут у меня вопрос, как синхронизироавть БД чтобы актуальные данные подтягивались с прода на тестовую БД(БД большая)
коммитит на прод только один - ты ну или кто там главный
а базу хорошая практика держать или семплированные, или вообще сгенеренные данные - чтобы не сперли
используй логическую репликацию (это в Постгре, хз есть ли в MySQL но должно быть)