Правильное управление настройками приложения при использовании VSTS и Azure

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

Вы можете переопределить файлы JSON (веб-конфигурацию в старых системах) в конвейере компакт-диска в VSTS или переопределить параметры в разделе «Настройки приложения» Azure. Я вот думаю, какие настройки и где надо управлять? Моя идея состоит в том, чтобы управлять настройками, которые зависят от сторонних модулей, таких как базы данных (строки подключения), внешние службы (например, Application Insights) в разделе настроек приложения Azure. Это может дать вам возможность очень быстро изменить некоторые настройки, если некоторые изменения появятся в сторонней системе.

То, что зависит только от приложения, которым я буду управлять в VSTS. А как насчет переключателей функций? Допустим, у вас есть фондовый рынок, и вы создаете модуль, который управляет продажей / покупкой новой криптовалюты под названием Blah. После всех тестов вы решаете выпустить эту функцию и снять флаг, который отвечает за включение / отключение новой функции. Где бы вы сняли флаг - в настройках приложения в Azure или в конвейере компакт-дисков в VSTS?

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


person GoldenAge    schedule 03.09.2018    source источник
comment
Решили ли вы проблему с помощью ответов ниже? какое-нибудь обновление?   -  person Andy Li-MSFT    schedule 10.09.2018
comment
Я нашел еще один интересный и очень современный подход ARM docs.microsoft.com/en-us/azure/azure-resource-manager/   -  person GoldenAge    schedule 10.09.2018
comment
Что ж, если это сработает для вас, вы можете опубликовать решение в качестве ответа и принять его. Это может быть полезно для других членов сообщества, читающих эту ветку.   -  person Andy Li-MSFT    schedule 11.09.2018


Ответы (3)


Я нашел очень хорошие и современные альтернативы для управления настройками приложений: Azure-Resource-Manager

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

Помните, что ресурсы могут быть независимыми. Я также обнаружил, что Amazon создала очень похожую вещь под названием CloudFormation:

AWS CloudFormation предоставляет вам общий язык для описания и предоставления всех ресурсов инфраструктуры в вашей облачной среде. CloudFormation позволяет использовать простой текстовый файл для автоматизированного и безопасного моделирования и предоставления всех ресурсов, необходимых для ваших приложений во всех регионах и учетных записях. Этот файл служит единственным источником достоверной информации для вашей облачной среды. AWS CloudFormation доступен без дополнительной оплаты, и вы платите только за ресурсы AWS, необходимые для запуска ваших приложений.

person GoldenAge    schedule 11.09.2018

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

Вот преимущества, которые я вижу от использования настроек приложения во время выпуска, а не как часть сборки:

  1. Параметры регулируются во время выпуска, поэтому артефакт сборки не зависит от среды. Это означает, что вы можете развернуть один и тот же артефакт в любой среде, используя настройки выпуска. Это особенно полезно, если вы развертываете один и тот же артефакт в среде аварийного восстановления, где настройки отличаются.
  2. Настройки приложения находятся в одном месте. Любой, кто вносит изменения в настройки, будет знать, где их искать.
  3. Вам не нужно перестраивать артефакт, если вы изменили основные настройки
person Crwydryn    schedule 04.09.2018

Для управления настройки приложения в веб-приложении.

Задача настройки веб-приложения Azure считывает переменные VSTS и добавляет их как AppSettings и ConnectionStrings в веб-приложение Azure. Задача также поддерживает Настройки слота. Задачу можно связать с файлом web.config, чтобы проверить, существуют ли все AppSettings и ConnectionStrings в web.config как переменная VSTS.

Вы также можете ссылаться на следующие статьи, чтобы управлять / настраивать параметры приложения:

person Andy Li-MSFT    schedule 04.09.2018