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

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

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

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

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

3 ответа

Решение

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

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

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

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

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

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

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

Вы можете попробовать использовать расширение " Конфигурация Azure WebApp" для управления настройками приложения в веб-приложении.

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

Вы также можете ссылаться на статьи ниже для управления / настройки параметров приложения:

Другие вопросы по тегам