ACM 产品从 2008 年开始就被大量应用于阿里巴巴内部应用的配置管理,是阿里巴巴内部被广泛依赖的中间件产品之一。ACM 在众多核心场景有广泛的使用案例,本文选取典型的场景案例进行详细介绍。
微服务应用架构下的配置管理
在微服务架构下,随着应用和机器数目的增多,配置(如 DB_URL 访问信息、服务连接池、服务内部缓存大小等)管理的工作会变得很繁琐。单个应用下多个机器的配置分发,应用之间的配置依赖,都将成为挑战。
在传统架构的应用发布过程中,修改一个应用配置就需要将整个应用重新打包发布,整个过程非常繁琐,且容易出错,如下图所示。
在基于 ACM 的微服务场景下,应用的重要配置信息被发布到 ACM 中。新的配置发布并不依赖配置打包。在新版本的配置发布后,所有应用立即生效,如下图所示。
ACM 作为配置中心为微服务带来以下好处:
- 所有配置中心化,在应用众多的情况下配置管理变得更加方便。
- 所有配置不依赖版本发布,使配置更新变得更加灵活。
- ACM 天生支持灰度发布和回滚,使得配置的变更发布在微服务架构下变得更加安全。
分布式架构下的服务治理
在各类分布式架构下,基于某类 RPC 框架(RESTful、HSF、Dubbo 等)做好服务治理是非常关键的。其中,服务治理的服务路由、服务限流、服务降级、服务鉴权等功能,均可通过配置中心实现。
以限流降级为例,在阿里巴巴双11,每一次服务限流降级相关操作都要求秒级响应,此需求就通过 ACM 来实现。
其中,每个 RPC 的服务端都会通过 ACM 来注册监听对应服务的流控管理信息。当应用需要流控时,管理员在服务治理控制台做出限流操作,服务治理系统就会通过 ACM
将流控信息推送到对应的目标应用服务端,让应用服务端根据相关配置进行限流。
ACM 为分布式架构下的服务治理带来以下好处:
- 性能良好:通过配置推送的方式来监听服务治理信息,对性能几乎无影响。
- 响应时间迅速:相关的服务治理信息可以被秒级推送。
- 安全性高:当限流降级错推以后还可以通过秒级配置回滚来恢复状态。
应用业务场景动态推送
如何让前端页面快速响应运营活动、降低开发成本、提高运营效率,也是 ACM 的使用场景之一。
以某电商运营为例。通过在前端 Javascript 埋入 ACM 的配置内容(如三方库版本号,静态资源 URL 等),在运营活动发布时,运营人员可以通过运营工具修改
ACM 配置规则,直接让前端 Javascript 的展示生效。
ACM 为应用的业务场景推送带来以下好处:
- 通过配置将业务静态代码和业务场景解耦,显著提高运营相关的应用发布流程。
大数据实时计算的动态调整
在大数据的实时计算领域,通常需要动态调整计算参数来取得最精确的实时计算结果。
以阿里巴巴内部某 APM 类监控系统为例。该监控系统需要动态调节业务的阈值,来控制实时计算系统,实现计算业务的报警。而且在阈值修改过程中,要求整个过程实时性好,应用不能停机。该监控系统的计算阈值采用
ACM 的规则来推送。
ACM 为大数据实时计算场景的应用带来以下好处:应用计算参数动态配置,动态生效,生效时间快,性能影响低。
企业级互联网架构下的异地多活场景
异地多活是企业级互联网架构中的一种高级容灾架构。相对于传统容灾架构,有业务恢复时间短、容量需求低、运维快捷简单等特点。目前异地多活架构被阿里巴巴和饿了么等公司广泛采用。
在阿里巴巴内部,容灾多活架构的核心算法、ID 分片和对应的的路由规则均采用 ACM 来动态推送。其中,相应的客户端和服务端,如 RPC,MQ,DB 都植入了路由路径。当容灾演练或者真实灾难发生时,管理员只需要动态地推送规则,相应的规则会影响到所有架构组件。示意图如下。
ACM 为异地多活场景中的应用带来以下好处:
- 基础架构和容灾逻辑解耦,具体的路由逻辑由容灾规则切换决定。
- 生效快,理论上容灾的切换规则可以秒级推送到十万级别机器。
原创文章,作者:网友投稿,如若转载,请注明出处:https://www.cloudads.cn/archives/34096.html