0

У меня есть среда разработки, как показано ниже.необходима распределенная архитектура или поток

Сервер разработки с установленным tomcat7, mysql. Наше приложение работает на этом с использованием базы данных mysql. У нас есть еще один сервер под названием Production server, в котором также находятся tomcat7 и mysql. Наше приложение работает и там. мы используем веб-службы amazon, такие как экземпляры ec2. Проблема заключается в том, что всякий раз, когда мы интегрируем некоторые изменения базы данных на сервере разработки, нам необходимо реплицировать один и тот же процесс на рабочем сервере. Может ли кто-нибудь предложить мне идеальную инфраструктуру, в которой мы можем использовать полный клон или любой простой процесс. Любая хорошая архитектура на практике приветствуется.

ответ

1

Любое изменение базы данных должно отслеживаться точно так же, как любая другая часть вашего приложения (конечно, самая очевидная «другая часть», являющаяся вашей базой кода).

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

Если вы предусмотрели возможность установки новых экземпляров вашего приложения в будущем, вам нужно будет создать новые пустые базы данных. Для этого вам также понадобится «сценарий инициализации», который создает структуры по умолчанию вашего приложения Это включает в себя таблицы, триггеры, скрипты создания хранимых процедур и, возможно, некоторые строки по умолчанию в ваших таблицах. Этот скрипт должен поддерживаться так же, как и сценарии обновления. Возможно, вам захочется сохранить пустую базу данных на каком-либо сервере интеграции, обновить с помощью стандартного скрипта обновления т. Затем сбрасывайте эту базу данных при каждом выпуске; этот дамп становится вашим эталонным сценарием создания базы данных.

This blog post at Coding Horror указывает на несколько высококачественных статей на эту тему.

+0

Благодарим вас за ответ. Я не хочу использовать какие-либо скрипты, возможно ли клонировать vm-товары, чтобы процесс был прост? – geekgugi

+0

Просьба пояснить «клонировать виртуальную машину». Вы не можете «клонировать» базу данных, потому что целевая база данных содержит производственные данные. Является ли применение короткого патча базы данных проще, чем клонирование чего-либо, так или иначе? – RandomSeed

Смежные вопросы