1月11日,在上海的云原生实战峰会上,阿里云智能研究员丁宇发布了“应用多活技术白皮书”,同时为了推动业界容灾的发展,建立云原生业务容灾标准,阿里云开源了“应用多活”项目AppActive。
至此,阿里云已经发布了Sentinel、ChaosBlade、AppActive三款高可用开源产品,致力于助力行业落地安全生产实践,帮助企业构建高可用的企业级生产系统,提高企业面对容灾、容错、容量等问题的稳态系统建设能力。
为什么发布应用多活技术白皮书和开源AppActive
2021年,国内外多家知名公司、云平台出现较严重服务中断、宕机事件。这也为企业敲响警钟,越来越多的企业把容灾建设提上日程。在解决容灾问题的同时,为了保持对成本的控制、支撑未来的多云架构演进和灾难容灾的确定性,许多企业选择以多活容灾的方式进行尝试。
但是业内对于多活没有统一的认知,对于“多活”这个词不同企业有不同的定义,很多企业往往以为已经实现了“多活”,可当故障来临的时候,才发现当前系统的故障逃逸能力非常弱,业务恢复和故障定位无法解耦,拖累了企业生产,造成了外部舆情、资金损失等问题;另外,有的企业在了解“多活”之后,下意识想要企业内部先投入资源进行技术预演,但由于缺少经验,往往会造成人力物力等资源的重复浪费。 随着云原生技术发展,越来越多的客户采用云原生技术进行系统构建。如何在云原生上构建稳定高可用的系统,是一个核心挑战。“多活”的认知偏差会加剧企业在基础设施成本、应用改造成本、运维成本等成本面的投入,但存在效率低下、错用甚至无用或者不用的问题,从而享受不到“多活”带来的稳定性红利。因此“多活”需要一个相对统一的标准与认知,加深使用者对它的理解和使用,从而提高业务系统的稳定性。
在当前云原生发展的现状和市场认知下,我们认为应用多活的开源和解读,可以初步定义“多活”的标准和实现,帮助开发者形成统一的“多活”认知。在企业构建多活架构时,基于应用多活共享已有的成熟经验,避免多余的资源浪费。同时,不同的企业具备不同的业务场景和优势,反向推动应用多活进一步完善和演进成熟的多活形态及能力。我们希望依靠社区的力量,让“多活”成为一项事实意义的普惠技术,而不是望而却步的部分人可用技术,帮助更多的企业和个人构建生产级别的高可用架构。
应用多活在架构中的标准设计
在解决企业流量路由一致性、数据读写一致性、多活运维一致性等问题的同时,逐步衍生了一套“多活”的衡量标准,应用多活架构的标准架构,需要满足以下4个设计标准:
l 业务流量多活(BFA,Business Flow Active):应用多活的最终呈现是业务,多活容灾系统具备按照业务特征进行生产流量的精细化调配;
l 同城多活(LRA,Local Region Active):应用是分布式系统的最小服务集合,当主中心出现问题进入容灾态时,要具备全局或局部应用的多活切换能力;
l 异地多活(UDA,Ultra Distance Active):在超远距离(机房间距超过300公里)时,业务系统仍具备较好的访问性能。进入容灾态时,RTO、RPO在分钟级;
l 混合云多活(HCA,Hybrid Cloud Active):向上对业务屏蔽容灾细节,提供统一的多活编程范式。向下对云平台技术保持兼容,支持公有云、私有云、托管私有云、边缘计算节点等不同部署模式的多活场景。
图 应用多活架构设计标准
应用多活的技术能力
遵循应用多活的设计标准,AppActive分别从应用层、数据层和云平台三部分组件支撑应用构建应用多活的架构能力。
应用层是业务应用流量主经的链路,基本构成可分为三部分:
l 接入网关。接入网关作为业务流量打入机房的第一跳,负责应用多活入口流量的识别和分发,具备机房路由和应用路由两个核心能力;
l 微服务。业务流量在机房内部和跨机房的同步调用方式,一般有 Consumer、Provider、注册中心等角色,具备流量路由、流量保护、故障隔离三个核心能力;
l 消息。业务流量在机房内部和跨机房的异步调用方式,基于消息削峰填谷,一般有Producer、Consumer、Broker等角色。
数据层涵盖业务应用数据读写、数据存储和数据同步,其具备流量路由、数据一致性保护、数据同步三个核心能力。
云平台是支撑业务应用运行的核心基石,基本构成覆盖单云、单机房、多云、混合云等形态。
图 应用多活的整体技术方案
应用多活的价值
容灾:分钟级 RTO ,“业务恢复时间”和“故障恢复时间”解耦,在优先业务恢复的前提下,进行故障定位修复。
图 应用多活应对的6大灾难故障
容量:突破地域限制,在路由一致性和数据一致性的基础上,支持跨地域的集群拆分和灵活流量调度
创新:依托于应用多活,企业可以扩展出全域变更强管控、全域故障演练、重点流量保障等多种稳定性能力。
是不是想要探寻更多关于“应用多活”技术的解读呢?更多精彩,欢迎下载阅读 >>点击此处免费下载《应用多活技术白皮书》!<<
AppActive开源讨论群(钉钉群号):34222602
阿里云多活容灾MSHA 交流群(钉钉群号):31623894
AppActive Github地址:https://github.com/alibaba/Appactive
阿里云开发者藏经阁
阿里云开发者社区藏经阁,技术人在线图书馆,开发者必读资料库。汇集阿里工程师技术实战精华,点击即可获得海量免费技术精品资料、电子手册、试读图书等。