互联网技术的飞速发展,企业对于云上业务系统的稳定性、可靠性和可扩展性要求越来越高。云上往往都是重要的业务系统,一旦发生故障,如何快速恢复和降低影响面是企业最为关心的。因此,越来越多的企业开始关注云上多活高可用架构,以实现业务的无缝切换和持续稳定运行。2023年云栖大会现场阿里云高级专家丁杰现场分享了《云上多活高可用架构的趋势和实践》的主题演讲,详细介绍了阿里云在多活高可用架构的实践现状与未来趋势的分析展示。
多活高可用,发挥云的核心价值
随着企业业务的不断拓展,对于云的连续性的要求也越来越高。而云计算的核心价值在于其弹性和稳定性。弹性意味着云计算资源可以根据业务需求进行快速伸缩,以满足业务的高峰期需求。稳定性则确保了云服务在面对各种挑战时,如硬件故障或网络中断,仍能提供持续的服务。多活高可用是云的核心弹性和稳定性的重要体现。
例如,大家所熟悉的“热搜崩了”就是指某些高流量的社交媒体或新闻网站由于访问压力过大而导致服务暂时无法正常提供。这种情况可能会因为各种原因发生,比如流量瞬间增大、服务器故障、网络问题或者恶意攻击等。为了解决此类问题,提高服务背后的应用弹性,能快速实现业务单元的快速扩容,这是一种常见的解决方案也是云上的弹性架构的最佳实践之一。
另外比如一个在线购物网站为了保证用户可以随时下单购买商品,需要确保网站始终处于可用状态。为了实现这一点,我们可以将下单链路部署到多个地域/机房/可用区上,通过应用多活或者彻底单元化进行流量管控、应用部署和数据的同步策略。当一个地域出现故障时,其他地域可以立即接管用户的请求,确保网站的正常运行。可以把这种地域宏观层面的容错场景看作一种多活高可用。
云的“弹性”,首先是资源层面的弹性,阿里云通过大规模服务器并池、智能调配和资源规划,通过横向的快速生产和纵向的升降配能力,实现了强大的供给侧弹性能力。也主要是面向单Region维度的。
跨Region,除了公共云上的地域概念,还包括物理的数据中心和自建IDC,也是把包含了公共云的混合云类架构囊括进来了,做到云上云下互相备份和利用公共云的弹性。
在跨Region的用法上,业务的弹性是通过快速建立异地云站点(作业中心),突破单云单地域的资源限制,提升业务抗风险能力和业务容量吞吐,充分利用混合云、多地域的云资源优势。一些企业案例的共同点都是结合业务把相应的单元通过公共云实现弹性,云的可用区和客户的可用区也进行深度的融合。
在跨Region+业务弹性两个前提下,通过多活容灾服务构建跨Region级的流量调度能力、业务容量体系和故障应对体系,突破单地域基础设施稳定性强依赖,在不显著降低资源利用率的情况下(核心链路对等双活同时最好容量管理和流量防护),极大增强业务整体稳定性和连续性。
如何在云上构建业务的弹性和多活
多活高可用是当前云计算和IT领域中的一个重要趋势。丁杰在演讲中提到“资源弹性不等于业务弹性,云平台稳定性不等于业务稳定性,应用多活将成为云原生容灾领域的重要趋势。”
阿里云作为全球领先的云计算服务提供商,致力于为企业提供稳定、可靠、高效的云服务,提供了一系列产品和服务来支持多活高可用架构的部署和运行。
首先,阿里云提供了应用高可用服务AHAS,该产品基于阿里云内部高可用架构最佳实践而打造,主要提供多活容灾、容灾演练等能力,基于该产品的多活容灾MSHA(Multi-Site High Availability)能力,结合服务能帮助用户体系化、标准化低侵入地建设云上高可用架构,全面提升业务稳定性。
它是通过三层抽象的适配+管控+切换+演练来支持的,MSHA提供接入层、服务层、数据层的自研组件,适配客户侧的技术栈,集成到客户应用架构之中。MSHA本身也是支持容灾多活架构的演进的,从同城双活、异地应用双活到单元化等。管控方面,MSHA管控面提供给用户对多活‘架构’的构建和维护,故障场景的整体协同。切换方面,结合流量和数据规则定义、容灾场景下的快速切流等能力,下发管控规则到MSHA组件执行流量管控动作。
容灾多活最重要的是关键时刻的切换能力,切换很多时候业务需要的是能更快速甚至是自动化,缩减RTO,减少损失。所以类似于机房故障自动切零、集群故障自动切换是最为紧要的两个场景,整体来说我们会基于可观测->事件中心->决策&执行的大体逻辑来实现,可观测聚合后形成事件,然后在问题定界上判断半径,专家经验更多的在切流成功与否、禁写和一致性风险上提供经验库,最终系统完成主备/流量的切换或者扩容。
多活模式与架构产品
完全在公有云上建设跨可用区或Region的应用双活方式与公共云+线下专有云/IDC的混合云多活模式均是多活架构设计中的常见实践策略。
云多活模式均是多活架构设计中的常见实践策略。
左边是基于公共云的两地三活(同城跨可用区+异地跨Region),其业务多活单元不等同于单元化,是指根据业务特点在逻辑上分成⼏个逻辑数据中⼼(LDC),命名为单元,核⼼业务在各数据中⼼(LDC)实现⾃流转。业务单元之间,应用多活数据主备。关于单元间的流量,同城一般是对称的,异地会按照特定规则的区分调度业务流量,比如某些延时不敏感的调度到异地的单元,或者是特定条件的用户群调度到异地,异地一般流量很小来保持单元的“热度”,然后在故障场景再通过切流和快速扩容应对。这种架构相对单元化来说改造成本低,兼顾成本和稳定性。
右边是第二种架构模式实践,是阿里公共云+阿里专有云/自建IDC的模式。其本质是希望通过混合云架构解决稳定性和成本问题+通过公共云的部分享受弹性的综合优势,充分利用混合异构的优势。一般简称为往云上弹和往云上逃(故障逃逸)。
这种模式的优势是充分利用了线下资源和即有资产,通过云上来逃逸和弹性扩容,业务上细分云上和云下的流量,这也是我们今天分享的业务弹性和混合云的典型思路。
关于建站工具
除了上文提及的多活产品,业务维度的单元快速建站和拉起也很关键。通过云迁移中心CMH,可以通过架构感知、自动编排、资源创建和全站还原4大能力,在业务架构筛选、自定义建站模版、一站式资源创建和复制配置、快速数据准备等具体的方案能力上提供支撑。
多活高可用整体架构的建设和保鲜提升的能力体系。
对于多活架构的持续演练使其保鲜极为关键,这样当故障真的来临时才敢切换也知道切换的效果和影响面。
结合我们方案交付和工具建设的经验,整理了多活架构管理模型,以指导我们进行多活架构的度量、交付、提升的全周期管理。我们在多活架构上按照架构、能力、保鲜和规范4大维度,进而继续拆分2-3层,通过上百个因子来进行业务应用架构的多活能力度量和建设指导。比如高可用架构中的流量防护架构、业务容量规划架构,这些架构是确保规划后的单元能力在承载故障切换之后过大的流量而不被冲垮,相应规划的容量是确保预设的核心链路的吞吐的,故障场景下通过较低的冗余成本来支撑住核心业务的容灾,整体是ROI比较高的做法。同样的,类似故障隔离能力中的服务内聚、资源隔离和依赖解耦能力,这些能力是在设计阶段的,我们更多的是通过合适的演练方式去检验验收。
整体的多活架构体系能力,在理论模型三个维度基础架构能力、架构健康度和管理规范度的牵引之下,在CMH云迁移中心纳管的应用上云、云化之后的架构量化支撑之上,基于AHAS产品的多活能力MSHA,在多活的建设场景围绕多活容灾标准交付动作进行多活架构的建设,然后演练保鲜期围绕高可用演练标准交付和演练验证方案库进行验证演练提升,整体构成了多活高可用整体架构的建设和保鲜提升的能力体系。
多活高可用架构助力企业创新发展
从冷备到同城双活,再到异地双活和异地多活,多活高可用整体架构的建设和保鲜,技术的发展反映了对业务连续性和稳定性的不断追求。对于提升企业的服务质量和用户体验具有重大的意义,是构建现代数据中心、云计算等高科技设施不可或缺的一部分。
阿里云应用高可用服务AHAS提供了丰富的多活工具,可以成为企业实现业务无缝切换和持续稳定运行的重要手段。在未来的发展中,完整的多活高可用架构交付体系将继续为企业提供稳定、可靠、高效的产品和服务,助力企业实现业务的持续发展和创新。