携程乐鸿辉:混合云弹性如何帮助携程应对业务的低迷与快速恢复

本文涉及的产品
轻量应用服务器 2vCPU 4GiB,适用于搭建容器环境
轻量应用服务器 2vCPU 4GiB,适用于搭建Web应用/小程序
轻量应用服务器 2vCPU 4GiB,适用于网站搭建
简介: 2023年10月31日-11月2日,2023云栖大会在中国杭州·云栖小镇举行,携程容器与混合云研发总监乐鸿辉在【云服务器 & 计算服务】专场中带来了题为《混合云弹性如何帮助携程应对业务的低迷与快速恢复》的主题演讲,分享了携程的云原生之旅、混合云弹性实践以及最终实践效果。

2023年10月31日-11月2日,2023云栖大会在中国杭州·云栖小镇举行,携程容器与混合云研发总监乐鸿辉在【云服务器 & 计算服务】专场中带来了题为《混合云弹性如何帮助携程应对业务的低迷与快速恢复》的主题演讲,分享了携程的云原生之旅、混合云弹性实践以及最终实践效果。


以下是他的演讲内容整理,供阅览。


乐鸿辉 携程容器与混合云研发总监


一、携程的云原生之旅


携程从2017年之前就开始了容器化,很早就对在线应用进行了先期探索;2018年时,基于云原生架构业务的未来趋势判断,用K8s代替了原有的Mesos架构,并以K8s为起点构建容器平台,进行云原生化改造



云原生架构不仅是容器化,更是整个infrastructure架构以及应用层的现代化,使其具备有弹性、轻量、可迁移的特性。到2020年,我们经历了疫情,直接导致业务进入了迷期,但是对做基础架构的人来讲是一个非常好的机会所以这几年也是非常繁忙的一段时间,业务技术团队以及我们对整个架构做了很大的改造,去打造一个弹性的、混合多云的系统。


目前,我们已经基于容器平台把近60%以上的算力进行了容器化,包括部分有状态的服务。同时,我们也构建了一个混合多云的架构,充分利用弹性调度的手段,进行降本增效,提升运营的效率。



这张图是航空客运量的数据,可以看到在疫情期间的波动非常大,整个业务上的不确定性对我们造成一个非常大的压力,这个业务的波动会反映在对整个基础设施上的需求和挑战。


以前,我们是基于IDC这样传统的容量预测,相对来讲是一个可预测的范围,什么时候去建设IDC、什么时候去准备什么样的资源。但是一旦进入疫情期间,这个是非常难做到的,基本上以前的历史数据已经无效了。


另一个问题,疫情期间对公司的业务影响比较大,所以降本压力非常大,要尽量杜绝资源浪费。同时,一旦恢复,将会迎来一个猛烈的反弹,对资源有快速扩展的需求。既要降本,又要应对未来极速扩展的需求,对整个技术体系的容量管理和弹性是非常大的一个挑战。



应用容量的管理,在之前是手工进行的,面临以下三个问题:

  1. 管理效率低。因为都是手工管理,虽然有一些辅助的预测工具,但是携程有一万多个应用、两万多个部署组,需要消耗大量的研发人员、SRE的精力。
  2. 容量风险高。手工扩容容易存在偏差,一旦出现数据波动,应用极有可能造成恐慌性的扩容,造成容量挤兑。
  3. 基于以上问题,研发倾向于提前超量扩容,最终导致严重的资源浪费。


二、混合云弹性实践:提出韧性优先架构


针对以上挑战与问题,弹性系统是非常好的解决方案。但从手工管理到弹性的自动化系统,对容器平台构建者而言,怎么让我们的研发人员、乃至整个公司信任这套系统,并在关键时刻起作用呢?我们把这个问题从三个维度进行了拆解。



  1. 弹得快,即跟上流量。
  2. 靠得住,即关键时候不掉链子。
  3. 容量足,容量不足一切都是免谈的。



第一个,是弹得快,是性能问题。首先,我们到底需要多高的性能?第一反应肯定是性能越高越好,但是同样意味着边际成本会越来越高。所以,如何评估合理的目标非常重要。我们是基于场景来评估性能目标的这些场景包括日内扩容、节假日扩容,对未来的增长预期,系统的冗余系数。基于上述场景的数据及评估敲定目标SLO。然后,梳理核心链路,对链路进行拆解,进行数据埋点、启动压测,分析瓶颈再优化的过程。


在优化上,除了代码优化,更重要的是架构上的优化。如果只在部分场景使用了容器、K8s,但其它的架构生态还是基于传统的静态思路构建,而进行调整,那么会对整体性能可靠性造成非常大的影响。整体来讲,云原生更重要的是整个架构的现代化过程。



第二个问题,如何确关键时刻不掉链子。对于研发人员来讲,可以从局部做好每个系统的优化、压测,做好可靠性保障,提升局部的可靠性。但是如果从架构、从自上而下的角度来思考问题,局部的故障是不可能避免的。如果局部出现故障,怎么去保证整体的可靠性,保证业务的承诺是能够达到的?以下介绍几个经典的高可用的设计经验:


第一,做到故障的隔离。要保证系统一旦出现局部问题的时候,避免从一个局部的故障演变成一个整体的故障。在这基础之上,可以在故障域之间做冗余部署,一旦发生故障,就可以利用切换手段完成故障转移。可能大家、包括我们自己也会走一些弯路,我们以前经常关注的是冗余部署和故障转移,往往忽视了故障隔离,但是其实「故障隔离」是其中最重要的一个点,如果做不到故障隔离,后面两个其实都是无效的。


基于上述思想,我们提出了韧性优先架构。



从结构上来看,利用Region 、AZ等公共云提供的天然故障域,在这故障域之内,构建partition这样更小的故障域。不同于业界、社区,我们的K8s是不跨故障域部署的,而是部署在partition的。


基于这样的架构诉求,不可避免得会出现很多的集群,在提供给上游的客户或上游的系统用的时候,我们要简化它的复杂性所以在这之上,每个Region也部署了一套Federation,上层PaaS与使用方对接Federation,由Federation提供Region部署的调度能力及管控能力


基于这样的结构,我们引入了一些约束。对韧性优先架构的约束主要有以下两点:


第一,核心的弹性的高频链路应该收敛在故障域内,在东西向不能出现频繁的控制链路/数据链路的交互,因为这会打破故障隔离的原则

第二,应用要在多个故障域 partition之间进行冗余部署,在变更的规范上,不允许同时跨越多个AZ、多个partition、多个故障域之间的变更,因为这些变更动作同样也会打破故障隔离的前提。一般核心链路涉及到的环节和系统非常多,只有这些环节和系统都做到了这样的架构对齐,才会真正实现韧性优先,这是一个百密一疏和持续性的工作。



基于这样的架构思想我们也设计了多集群的HPA方案,实现HPA功能的韧性优先


首先分析HPA有哪些关键链路第一个,最核心的是对应用容量的自动扩缩容,第二个是HPA的资源的变更,第三个是多区域之间容量的再平衡。因为扩缩容会影响应用承载流量的能力,它是最高频的,这条链路核心,所以它的故障域设计上要做到最小,故障域限定在K8s Cluster。即扩缩容的动作K8s Cluster内就可以封闭,无需跟外部进行交互。再平衡主要是为了平衡各集群及AZ的容量小时级别的不可用都不太影响业务流量的承载,它的故障域要求会松一点,为整个RegionHPA资源的变更类似,故障域定义为Region


基于这样的设计与实现,如果Cluster A挂了,流量会自动把负载均衡传导到Cluster B,在Cluster B扩缩容的组件会自动扩容也就是说整个架构,不论是个别Cluster宕掉或者Federation宕掉,对上层的业务来说完全是无感的,会正常地进行扩缩容



另一方面,怎么解决容量的问题。携程以前是基于IDC构建的,容量扩展周期较长。目前是通过打通阿里云,以混合云的架构,利用云的弹性来扩展容量


具体来看,在携程容器的IP是全局可路由的,然后AZ内是应用共享同一个流量调度单元,做到调用尽量收敛。在这样的一个结构下,也提出了一些约束:AZ之间容量的驱动是由流量的驱动来进行的,但是AZ内的容量负载,甚至是故障切换,是由Federation进行调控实例数比例来进行的。


三、效果最高峰1分钟扩容近2000个容器实例



上图是阿里云的某一个AZ的资源使用的展示。可以看到,波动是非常剧烈的,也非常感谢阿里云在ECS的弹性供应上有非常强的能力,帮助我们应对流量的尖峰和波动。



从过去一年的指标看,弹性系统可靠性没有发生过影响业务的故障。像今年这么大挑战情况下,基本上系统的可靠性达到了历史最高峰。在假日高峰,能够做到一分钟有近2000个容器实例的扩容。扩展性上,最高将30%的容量调度到阿里云;效率上,90%以上的应用开了HPA,同时HPA本身的参数是由autopilot产品来负责去优化与管以达到最优或者遵循统一的策略,这样基本不需要人的参与去运维。


成本方面,通过弹性系统,在线应用CPU的宿主机利用率在25%到30%之间。当然宿主机利用率的上限也受到多AZ容灾设计上的限制,如2个AZ的容灾架构一般宿主机的利用率不要超过50%


因为每个应用是按需使用资源的,所以应用跟应用之间,业务跟业务之间它有一个错峰的效应。基于错峰的效应,整个五一期间,把容量需求的峰值消减了28%以上,同样也可以达到降本的效果。

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
人工智能 弹性计算 算法
一文解读:阿里云AI基础设施的演进与挑战
对于如何更好地释放云上性能助力AIGC应用创新?“阿里云弹性计算为云上客户提供了ECS GPU DeepGPU增强工具包,帮助用户在云上高效地构建AI训练和AI推理基础设施,从而提高算力利用效率。”李鹏介绍到。目前,阿里云ECS DeepGPU已经帮助众多客户实现性能的大幅提升。其中,LLM微调训练场景下性能最高可提升80%,Stable Difussion推理场景下性能最高可提升60%。
127031 268
|
弹性计算 人工智能 安全
阿里云弹性计算产品线负责人张献涛 为计算提速,弹性计算的创新与普惠
“阿里云始终围绕‘稳定、安全、性能、成本、弹性’的目标不断创新,为客户创造业务价值。”10月31日,杭州云栖大会上,阿里云弹性计算计算产品线负责人张献涛表示,通过持续的产品和技术创新,阿里云发布了HPC优化实例等多款新品,性能可提升40%,并对g8i等多款第八代ECS实例升级算力、降低成本,让客户真正体验到云计算带来的创新和普惠。
阿里云弹性计算产品线负责人张献涛  为计算提速,弹性计算的创新与普惠
|
存储 人工智能 弹性计算
阿里云弹性计算_加速计算专场精华概览 | 2024云栖大会回顾
2024年9月19-21日,2024云栖大会在杭州云栖小镇举行,阿里云智能集团资深技术专家、异构计算产品技术负责人王超等多位产品、技术专家,共同带来了题为《AI Infra的前沿技术与应用实践》的专场session。本次专场重点介绍了阿里云AI Infra 产品架构与技术能力,及用户如何使用阿里云灵骏产品进行AI大模型开发、训练和应用。围绕当下大模型训练和推理的技术难点,专家们分享了如何在阿里云上实现稳定、高效、经济的大模型训练,并通过多个客户案例展示了云上大模型训练的显著优势。
105689 10
|
7月前
|
存储 人工智能 安全
AI 驱动下的阿里云基础设施:技术创新与产品演进
本文整理自阿里云智能集团副总裁、阿里云弹性计算产品线与存储产品线负责人吴结生在“2025 AI势能大会”上的演讲,重点介绍了阿里云在AI基础设施领域的技术创新与产品演进。内容涵盖CIPU架构、盘古存储系统、高性能网络HPN等关键技术,以及第九代英特尔企业实例、ESSD同城冗余云盘等新产品发布。同时,文章详细阐述了灵骏集群的优化措施和可观测能力的提升,展示阿里云如何通过持续创新为AI负载提供强大支持,助力企业在AI时代实现智能化转型。
AI 驱动下的阿里云基础设施:技术创新与产品演进
|
7月前
|
自然语言处理 云计算 开发者
「轻」启未来:阿里云轻量应用服务器用户交流会
为助力中小企业与开发者轻松上云,阿里云举办「「轻」启未来:轻量应用服务器用户交流会」。活动聚焦最新产品迭代、游戏自建服实战及智能问答系统解析,助您降低选型门槛,快速找到适合业务需求的云服务器。扫描海报二维码报名,赢取百元代金券!
|
11月前
|
弹性计算 人工智能 安全
对话 | ECS如何构筑企业上云的第一道安全防线
随着中小企业加速上云,数据泄露、网络攻击等安全威胁日益严重。阿里云推出深度访谈栏目,汇聚产品技术专家,探讨云上安全问题及应对策略。首期节目聚焦ECS安全性,提出三道防线:数据安全、网络安全和身份认证与权限管理,确保用户在云端的数据主权和业务稳定。此外,阿里云还推出了“ECS 99套餐”,以高性价比提供全面的安全保障,帮助中小企业安全上云。
202278 16
对话 | ECS如何构筑企业上云的第一道安全防线
|
9月前
|
弹性计算 人工智能 资源调度
DeepSeek大解读系列公开课上新!阿里云专家主讲云上智能算力、Kubernetes容器服务、DeepSeek私有化部署
智猩猩「DeepSeek大解读」系列公开课第三期即将开讲,聚焦阿里云弹性计算助力大模型训练与部署。三位专家将分别讲解智能算力支撑、Kubernetes容器服务在AI场景的应用实践、以及DeepSeek一键部署和多渠道应用集成,分享云计算如何赋能大模型发展。欲观看直播,可关注【智猩猩GenAI视频号】预约。 (239字符)
|
11月前
|
调度 云计算 芯片
云超算技术跃进,阿里云牵头制定我国首个云超算国家标准
近日,由阿里云联合中国电子技术标准化研究院主导制定的首个云超算国家标准已完成报批,不久后将正式批准发布。标准规定了云超算服务涉及的云计算基础资源、资源管理、运行和调度等方面的技术要求,为云超算服务产品的设计、实现、应用和选型提供指导,为云超算在HPC应用和用户的大范围采用奠定了基础。
180026 22
|
存储 人工智能 弹性计算
产品技术能力飞跃,阿里云E-HPC荣获“CCF 产品创新奖”!
9月24日,在中国计算机学会举办的“2024 CCF 全国高性能计算学术年会”中,阿里云弹性高性能计算(E-HPC)荣获「 CCF HPC China 2024 产品创新奖」。这也是继 2022 年之后,阿里云E-HPC 再次荣获此奖项,代表着阿里云在云超算领域的持续创新结果,其产品能力和技术成果得到了业界的一致认可。
101344 61
|
存储 弹性计算 人工智能
阿里云弹性计算_通用计算专场精华概览 | 2024云栖大会回顾
阿里云弹性计算产品线、存储产品线产品负责人Alex Chen(陈起鲲)及团队内多位专家,和中国电子技术标准化研究院云计算标准负责人陈行、北京望石智慧科技有限公司首席架构师王晓满两位嘉宾,一同带来了题为《通用计算新品发布与行业实践》的专场Session。本次专场内容包括阿里云弹性计算全新发布的产品家族、阿里云第 9 代 ECS 企业级实例、CIPU 2.0技术解读、E-HPC+超算融合、倚天云原生算力解析等内容,并发布了国内首个云超算国家标准。
阿里云弹性计算_通用计算专场精华概览 | 2024云栖大会回顾

热门文章

最新文章