3

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

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

仅取决于我将在 VSTS 中管理的应用程序的东西。功能切换呢?假设您有一个股票市场,并且您正在构建一个模块来管理称为 Blah 的新加密货币的买卖。在所有测试之后,您决定发布该功能并采用负责启用/禁用新功能的标志。在 Azure 的应用程序设置或 VSTS 的 CD 管道中,您会在哪里取消标记?

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

4

3 回答 3

4

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

您的应用程序的基础架构通常由许多组件组成——可能是虚拟机、存储帐户和虚拟网络,或者是 Web 应用程序、数据库、数据库服务器和第三方服务。您不会将这些组件视为单独的实体,而是将它们视为单个实体的相关和相互依赖的部分。您希望将它们作为一个组进行部署、管理和监视。Azure 资源管理器使你能够将解决方案中的资源作为一个组来使用。您可以在单个协调操作中部署、更新或删除解决方案的所有资源。您使用模板进行部署,该模板可用于不同的环境,例如测试、登台和生产。资源管理器提供安全、审计、

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

AWS CloudFormation 为您提供了一种通用语言来描述和预置​​云环境中的所有基础设施资源。CloudFormation 允许您使用简单的文本文件以自动化和安全的方式对所有区域和账户中的应用程序所需的所有资源进行建模和配置。此文件可作为您的云环境的单一事实来源。AWS CloudFormation 无需额外费用即可使用,您只需为运行应用程序所需的 AWS 资源付费。

于 2018-09-11T12:06:52.527 回答
2

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

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

  1. 这些设置在发布期间进行管理,因此构建工件与环境无关。这意味着您可以通过使用发布设置将相同的工件部署到任何环境。如果您将相同的工件部署到设置不同的灾难恢复环境,这将特别有用。
  2. 应用程序设置位于一致的位置。任何对设置进行更改的人都会知道在哪里寻找它们。
  3. 如果您对核心设置进行更改,则不必重建工件
于 2018-09-04T14:36:51.743 回答
1

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

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

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

于 2018-09-04T08:51:49.643 回答