Как настроить развертывания в Azure, чтобы они использовали разные базы данных в зависимости от среды? - PullRequest
10 голосов
/ 02 апреля 2012

Вы можете легко поменять два развертывания между промежуточной и производственной средой на портале управления Azure, поменяв их VIP. При работе с промежуточной версией сервисов мы также хотим использовать промежуточную базу данных, чтобы не рисковать сгущением фактических данных клиентов. Однако после замены промежуточных и производственных сервисов текущее (и ранее промежуточное) развертывание, очевидно, должно работать с производственной базой данных.

Таким образом, используемая база данных будет зависеть от того, будет ли экземпляр работать в среде Staging или Production . Есть ли хороший способ добиться этого? Я полагаю, что полагаться на VIP и жестко программировать переключение баз данных, вероятно, не лучшая идея.

Ответы [ 3 ]

11 голосов
/ 02 апреля 2012

Я бы рекомендовал прекратить использование «промежуточного слота» службы для функции, для которой вы использовали традиционную «промежуточную среду». Когда я говорю с людьми о Windows Azure, я настоятельно рекомендую им использовать промежуточные слоты только для тестирования нового развертывания перед его началом. Если им нужно более длительное тестирование, то есть то, что многие из нас привыкли иметь локально, а затем использовать отдельную услугу и, возможно, даже отдельную подписку (последнее отлично, если вы хотите прозрачности затрат).

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

Однако, как я обрисовал в первом абзаце, я думаю, что есть лучший способ сделать что-то. :)

6 голосов
/ 25 февраля 2015

В недавнем выпуске веб-сайтов Azure история здесь изменилась. Теперь вы можете указать, что любая настройка приложения или строка подключения является «настройкой слота», прикрепляя ее к определенному слоту. Чтобы решить вашу проблему, вы просто должны установить строку (и) соединения в каждом слоте и позаботиться о проверке «Настройки слота».

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

2 голосов
/ 02 апреля 2012

Re: «При работе с промежуточной версией сервисов мы хотим использовать и промежуточную базу данных, чтобы не рисковать сгущением фактических данных клиентов».Нет встроенного способа сделать это.

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

Я могу представить сценарии, в которых вы такжеВы хотите выполнить несколько сценариев на промежуточном экземпляре перед выполнением VIP-свопа, но не хотите загрязнять производственные данные.Для этого многие компании используют специальные учетные записи - известно, что данные, связанные с этими учетными записями (или помечены каким-либо образом), не принадлежат реальным клиентам, поэтому их можно пропустить при составлении отчетов и выставлении счетов и т. Д.

Re: «Опираясь наЯ думаю, что VIP и жесткое программирование переключения баз данных, вероятно, не лучшая идея ».Если под жестким кодом вы подразумеваете чтение из файла конфигурации, это, вероятно, неплохая идея, если вы используете подход, упомянутый выше.Я слышал, что некоторые люди придерживались подхода «выяснить, не находимся ли мы в промежуточном слоте и делаем ли что-то другое в коде», но я скорее рекомендую то, что я описал выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...