11

Releasing перед тем Azure:параметры конфигурации Azure Web Роль в средах

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

отпускании после Azure:

Теперь мы переходим наши веб-приложений для веб-ролей Azure. Веб-роли используют файлы ServiceConfiguration.Cloud.cscfg и ServiceConfiguration.Local.cscfg.

При публикации в облачном сервисе необходимо знать строки подключения. Если мы хотим опубликовать в тестовом облачном сервисе, тогда необходимо отредактировать ServiceConfiguration.Cloud.cscfg. Если мы хотим опубликовать в облачном сервисе Staging или Production, то ServiceConfiguration.Cloud.cscfg необходимо изменить дальше.

Я бы предпочел отвлечь разработчиков AWAY от строк подключения, когда они выполняют их развертывания. Это предотвращает ошибку, указывающую на неправильные условия (которые могут иметь огромные последствия). Как это может быть сделано?

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

Update:

Я обнаружил, что вы можете управлять своими файлами конфигурации службы, добавив больше (и переименование):

enter image description here

И затем, выбрав правильный облачный сервис (черный) и правильной конфигурации обслуживания (красная стрелка) вместе разработчики не должны знать информацию о конфигурации:

enter image description here

Существует еще проблема разработчика выбирают конфигурацию неправильного обслуживания при развертывании облачного сервиса (но, возможно, это может быть автоматизирован в сценарий, чтобы предотвратить это?)

Мой главный ИРК тип окружающей среды (синяя стрелка). Теперь это бесполезно для меня.

+1

Я должен проверить, но я думаю, что это только позволяет выбрать конфигурацию, а не определение сервиса. Таким образом, вы можете столкнуться с проблемами, если вам нужны разные конечные точки (http против https), разные размеры Vm или другие среды. Решение в моей стороне ответа делает это. –

+0

@Eoin: О да, хорошая точка в отношении определения сервиса. Это будет проблемой. Последний вопрос: можете ли вы управлять версиями своего кода, не имея «пакета развертывания». Публикация прямо из Visual Studio немного страшна, поскольку вы не будете знать наверняка, изменился ли код или нет. – davenewza

+1

В нашем случае наш исходный код хранится в GitHub, который мы используем для управления источником, поэтому у нас есть свои собственные процессы, чтобы взять ветку, заблокировать содержимое релиза, а затем перейти к разработке на Master. Когда придет время сделать выпуск Production, мы просто разворачиваем его из ветки, которую мы подписали. –

ответ

4

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

В моем приложении, у меня есть 3 проекта приложения (1 WebRole и 2 Worker Role)

тогда у нас есть 6 проектов облачных развертывания, по одному для каждой целевой среды. Каждый проект развертывания содержит ту же роль в Интернете & Роли рабочих, но имеет другой файл cscfg & csdef.

Solution Organisation

На уровне приложения app.config & web.config файлы обрабатываются через конфигурации Трансформации с помощью SlowCheetah. В основном у вас есть другая конфигурация конфигурации в диспетчере конфигурации для каждого развертывания. поэтому вместо того, чтобы просто Debug и Release, я Debug, QA, Uat, Test, SAndbox, Production

+0

Спасибо за сообщение. Отдельные проекты - одно решение. Пожалуйста, проверьте мое сообщение для обновления (другое возможное решение). Также что вы теперь делаете с средами Production/Staging, встроенными в облачные сервисы? – davenewza

+1

Производство против Staging - это внутренний предварительный узел Azure, поэтому вы можете использовать опцию VIP swapping. однако, если у вас есть совершенно разные среды для каждого, вы, вероятно, можете просто развернуть это место у владельца «Production» вашей соответствующей среды. –