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



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

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

只依赖于我将在VSTS中管理的应用程序的东西。功能切换如何?假设你有一个股票市场,你正在构建一个名为Blah的模块来管理新加密货币的买卖。在所有测试之后,您决定发布该功能,并使用负责启用/禁用新功能的标志。在Azure的应用程序设置或VSTS的CD管道中,您将在哪里删除标志?

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

我发现了一个非常好的现代应用程序设置管理替代方案:Azure Resource Manager

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

请记住,资源可以是独立的。我还发现亚马逊创建了一个非常类似的东西,叫做CloudFormation:

AWS CloudFormation为您提供了一种通用语言来描述和提供云环境中的所有基础设施资源。CloudFormation允许您使用一个简单的文本文件来建模以自动化和安全的方式提供所需的所有资源适用于所有地区和帐户的应用程序。此文件作为您的云环境的唯一真相来源。AWSCloudFormation不收取任何额外费用,您只需支付用于运行应用程序所需的AWS资源。

就我而言,正确的方法是采用一致的方法。我个人的偏好(我相信这是我合作过的许多其他人的偏好)是使用应用程序服务中的应用程序设置,因此在部署任务的"应用程序和配置设置"部分的发布期间部署这些设置。

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

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

您可以尝试使用扩展Azure WebApp配置任务来管理Web应用程序中的应用程序设置。

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

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

  • 在中管理多个环境的配置和应用程序设置您的CD管道
  • 从VSTS部署Azure Web应用程序时的轻松配置管理

相关内容

  • 没有找到相关文章

最新更新