Как синхронизировать развертывания (особенно изменения объектов базы данных) в нескольких средах

У меня есть этот вызов. Я инженер DevOps и инженер-программист в команде, где несколько месяцев назад разработчики перешли от использования центральной БД Oracle к БД на виртуальной машине CentOS на своих индивидуальных ноутбуках. Переход от центральной базы данных должен был уменьшить зависимость от администраторов баз данных, а также устранить проблемы, возникающие из-за несогласованности данных.

План совместного использования и обеспечения синхронизации базы данных со всеми в команде заключался в том, что каждый человек будет делиться сценариями изменений со всеми. Проблема в том, что мы используем Skype для общения (мы только настроили slack, но еще не начали его использовать в полной мере), и хотя люди иногда выкладывают текст сценариев изменения БД, некоторые могут его пропустить. Другая проблема заключается в том, что некоторые разработчики пропускают публикацию изменений. Кроме того, новые выпуски развертываются в рабочей среде без развертывания в тестовой и демонстрационной средах.

Это стало серьезной проблемой для нас, особенно для меня, который недавно взял на себя ответственность за синхронизацию наших демонстрационных развертываний с производственными развертываниями. Большинство проблем с синхронизацией граничит с отсутствием синхронизации базы данных из-за отсутствия скриптов изменений или объектов БД. Oracle — наша предпочитаемая БД.

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

Как я могу решить эту проблему, чтобы обеспечить плавное, безболезненное и менее трудоемкое развертывание? Может ли миграция наших приложений в Docker помочь с проблемами синхронизации БД и связанной с этим недисциплинированностью разработчиков? Какой процесс мы можем внедрить для улучшения в этой области?

Заранее большое спасибо за вашу помощь.




Ответы (1)


Посмотрите на @ http://www.dbmaestro.com. Я настоятельно рекомендую вам присоединиться к демо-сессии DBmaetro. TeamWork может помочь вам объединить изменения из нескольких баз данных в одну общую базу данных и безопасно перенести изменения из одной среды в другую
Дэнни

person Danny Neuberger    schedule 19.04.2017