应用配置管理

在分布式架构环境中对应用配置进行集中管理和推送

立即开通 联系销售

概述

应用配置管理(Application Configuration Management,简称 ACM)是一款应用配置中心产品,其前身为淘宝内部配置中心 Diamond。基于该产品,您可以在微服务、DevOps、大数据等场景下极大地减轻配置管理的工作量,增强配置管理的服务能力。


产品优点

稳定可靠

99.99%服务端可用性基础上,保证客户端容灾能力。

推送实时

大规模分布式环境下配置推送秒级完成,且配置保证最终一致。

运维简易

提供一键回滚,配置变更审计,推送轨迹等多项功能。

安全隔离

提供租户级的配置安全隔离,保证敏感配置安全性。

产品详情

应用配置是管理应用变更的常见手段之一。在应用生命周期管理中,开发人员通常会将应用中需要变更的一些配置项或者元数据从代码中分离出来,放在单独的配置文件中管理,称为应用配置。发布应用后,运维人员或最终用户可以通过调整配置来适配环境,调整应用程序的运行行为。

ACM 是分布式系统的配置中心。通过提供配置变更、配置推送、历史版本管理、灰度发布、配置变更审计等配置管理工具。ACM 帮助您集中管理所有应用环境中的配置,降低分布式系统中管理配置的成本,并降低因错误的配置变更带来可用性下降甚至发生故障的风险。完整的 ACM 产品包括三个主要部分:客户端、服务端和用于配置管理的控制台。

传统架构中的配置管理

您只需要在 ACM 控制台上更改配置,配置信息会自动被推送到各个服务器中并在秒级延迟内生效。

ACM 配置管理

在 ACM 的配置管理场景下,您只需要在 ACM 控制台上更改配置,配置信息会自动被推送到各个服务器中并在秒级延迟内生效。


场景

微服务应用架构

随着应用和机器数目的增多,传统架构的应用配置(如 DB_URL 访问信息、服务连接池、服务内部缓存大小等)管理的工作会变得很繁琐。单个应用下多个机器的配置分发,应用对应用的配置依赖,都将成为挑战。如下图所示。

在基于 ACM 的微服务场景下,应用的重要配置信息被发布到 ACM 中。新的配置发布并不依赖配置打包。在新版本的配置发布后,所有应用立即生效,如下图所示。

ACM 的优势:

  • 所有配置中心化,在应用众多的情况下配置管理变得更加方便。

  • 所有配置不依赖版本发布,使得配置变更更加灵活。

  • ACM 天生支持灰度发布和回滚,使得配置的变更发布在微服务架构下变得更加安全。

分布式架构

在各类分布式架构下,如何基于某类 RPC 框架(RESTful,HSF,Dubbo 等)做好服务治理是非常关键的。其中,服务治理的服务路由、服务限流、服务降级、服务鉴权等,均可通过配置中心实现。

以限流降级为例,在阿里巴巴双11期间,ACM实现了秒级响应每一次服务限流降级的相关操作。

其中,每个 RPC 的服务端都会通过 ACM 注册监听对应服务的流控管理信息。当应用需要流控时,管理员在服务治理控制台做出限流操作,服务治理系统就会通过 ACM 将流控信息推送到对应的目标应用服务端,让应用服务端对应配置采取相应的限流动作。

ACM 的优势:

  • 良好的性能。通过采用配置推送的方式来监听服务治理信息,对性能几乎无影响。

  • 秒级推送到相关的服务治理信息,响应时间迅速。

  • 当限流降级错推以后,可以通过秒级配置回滚来恢复状态。

大数据实时计算算法调整

在大数据的实时计算领域,通常需要动态调整计算参数来取得最精确的实时计算结果。

以阿里巴巴内部某 APM 类监控系统为例。该监控系统需要动态调节业务的阈值,来控制实时计算系统和计算业务的报警。而且在阈值修改过程中,要求整个过程实时性好,应用不能停机。该监控系统的计算阈值采用 ACM 的规则来推送。

ACM 的优势:

  • 应用计算参数动态配置、动态生效,生效时间快、性能影响低。

使用入门

使用ACM分为三个步骤:

  • 开通 ACM 服务

  • 管理配置

  • 使用 API 监听配置

详细快速入门介绍请参见文档链接:快速入门

资源

OpenAPI & SDK

产品快速入门

常见问题

公测期间 ACM 支持哪些区域?

在公测期间,ACM 的控制台支持的区域如下:

  • 新加坡

ACM 推荐用户就近访问自己的配置。如果您所在的区域没有部署 ACM,您也可以跨区域访问 ACM。只需要在初始化 ACM 连接的时候,填写正确的连接地址即可。具体连接地址可参见控制台上的代码示例。

目前 ACM 的客户端支持哪些语言?

目前支持如下语言。其他语言如 C++、Python、PHP后续会慢慢增加。

  • ACM Java Native SDK: ACM 原生的 Java SDK。

  • Spring Cloud ACM: ACM 基于 Spring Cloud Config 的 API 实现。

  • ACM Node.js SDK:支持 ACM 配置监听和变更的 Node.js 原生 SDK。

Java Native SDK常见异常

常见异常列表:

  • 异常: Caused by: java.lang.RuntimeException: fail to get diamond-server serverlist! env:default

  • 原因: 公测期间 ACM Java Native SDK 或者 Spring Cloud ACM 的应用必须部署在阿里云的经典网络或者VPC网络内部才能访问ACM配置。这主要是为了安全和QoS的考虑。后续会考虑开放公网的配置读取入口。