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:
Я обнаружил, что вы можете управлять своими файлами конфигурации службы, добавив больше (и переименование):
И затем, выбрав правильный облачный сервис (черный) и правильной конфигурации обслуживания (красная стрелка) вместе разработчики не должны знать информацию о конфигурации:
Существует еще проблема разработчика выбирают конфигурацию неправильного обслуживания при развертывании облачного сервиса (но, возможно, это может быть автоматизирован в сценарий, чтобы предотвратить это?)
Мой главный ИРК тип окружающей среды (синяя стрелка). Теперь это бесполезно для меня.
Я должен проверить, но я думаю, что это только позволяет выбрать конфигурацию, а не определение сервиса. Таким образом, вы можете столкнуться с проблемами, если вам нужны разные конечные точки (http против https), разные размеры Vm или другие среды. Решение в моей стороне ответа делает это. –
@Eoin: О да, хорошая точка в отношении определения сервиса. Это будет проблемой. Последний вопрос: можете ли вы управлять версиями своего кода, не имея «пакета развертывания». Публикация прямо из Visual Studio немного страшна, поскольку вы не будете знать наверняка, изменился ли код или нет. – davenewza
В нашем случае наш исходный код хранится в GitHub, который мы используем для управления источником, поэтому у нас есть свои собственные процессы, чтобы взять ветку, заблокировать содержимое релиза, а затем перейти к разработке на Master. Когда придет время сделать выпуск Production, мы просто разворачиваем его из ветки, которую мы подписали. –