使用VSTS和Azure时正确管理应用程序设置

时间:2018-09-03 12:12:01

标签: azure azure-devops continuous-deployment featuretoggle

如果使用VSTS和Azure,则有两种不同的方法来管理应用程序设置。请记住,这仅是用于连续部署的工具的示例。

您可以在VSTS的CD管道中覆盖JSON文件(在较早的系统中为Web配置),也可以在Azure的“应用程序设置”部分中覆盖设置。我只是在想应该在哪里管理什么设置? 我的想法是在Azure应用程序设置部分中管理依赖于第三方模块的设置,例如数据库(连接字符串),外部服务(例如Application Insights)。如果在第三方系统中出现某些更改,则可以灵活地快速更改某些设置。

仅取决于我将在VSTS中管理的应用程序。 那功能切换呢? 假设您有一个股票市场,并且正在构建一个模块,该模块管理出售/购买称为Blah的新加密货币。在进行所有测试之后,您决定释放该功能并使用负责启用/禁用新功能的标志。您在哪里可以删除Azure或VSTS CD管道中的“应用程序设置”中的标记?

也许我没有提到更多其他类型的设置,这些设置管理起来很麻烦?我问这个问题的主要原因是,当应用程序增长时,设置管理会出现问题,这很容易在配置文件中造成混乱。 请告诉我在Web应用程序中管理应用程序设置的正确方法是什么?

3 个答案:

答案 0 :(得分:3)

我发现了一种用于管理应用程序设置的非常不错的现代替代方法:Azure-Resource-Manager

  

您的应用程序的基础结构通常由许多组成   组件–可能是虚拟机,存储帐户和虚拟机   网络或Web应用程序,数据库,数据库服务器和第三方   服务。您不会将这些组件视为单独的实体   您将它们视为单个实体的相关和相互依存的部分。   您希望将它们作为一组进行部署,管理和监视。蔚蓝   资源管理器使您可以使用自己的资源   整体解决方案。您可以部署,更新或删除所有   一个单一的协调操作即可为您的解决方案提供资源。您   使用模板进行部署,并且该模板可以用于不同的环境   测试,登台和生产等环境。资源资源   Manager提供安全性,审核和标记功能来帮助您   部署后管理您的资源。

请记住,资源可以是独立的。 我还发现亚马逊创造了非常相似的事物,称为CloudFormation

  

AWS CloudFormation提供了一种通用语言供您描述和   在您的云环境中配置所有基础架构资源。   CloudFormation允许您使用简单的文本文件进行建模和   以自动化和安全的方式提供所需的所有资源   适用于所有地区和帐户的应用程序。这个文件   充当您云环境的唯一事实来源。 AWS   CloudFormation免费提供,您只需支付   运行应用程序所需的AWS资源。

答案 1 :(得分:2)

就我而言,正确的方法是采取一致的方法。我个人的喜好(并且我认为这是我工作过的许多其他人的喜好)是使用App Service中的“应用程序设置”,因此在发布的“应用程序和配置设置”部分中发布这些设置任务。

以下是我看到的在发布期间使用应用设置而不是构建的一部分的好处:

  1. 这些设置在发布期间受到控制,因此构建工件与环境无关。这意味着您可以通过使用发行版设置将同一工件部署到任何环境。如果要将相同的工件部署到设置不同的灾难恢复环境中,这将特别有用。
  2. 应用设置位于一致的位置。任何对设置进行更改的人都会知道在哪里寻找它们。
  3. 如果更改核心设置,则无需重建工件

答案 2 :(得分:1)

您可以尝试使用扩展名Azure WebApp Configuration task来管理Web应用程序中的应用程序设置。

  

Azure WebApp配置任务读取VSTS变量并添加   那些作为AppSettings和ConnectionStrings到Azure WebApp。的   任务还支持插槽设置。任务可以链接到   web.config来验证是否所有的AppSettings和ConnectionStrings在   web.config作为VSTS变量存在。

您还可以参考以下文章来管理/配置应用程序设置: