饿了么资深架构师分享云上基础架构演进

简介: 从单体应用到微服务体系再到多活架构,从用云到IaaS全面上云再PaaS上云,最后全面拥抱云原生,这就是饿了么的云上基础架构演进之路。

演讲嘉宾.png

【图:饿了么资深架构师朱琳骐】


12月10日,饿了么资深架构师朱琳骐在2021云上架构与运维峰会上,分享了饿了么云上基础架构的演进历程。以下是他的演讲实录:


经过10多年的运营,饿了么的业务不仅从起步时的个位数的订单成长到了现在的千万级别,同时还完成了从外卖业务到“爱什么来什么”综合业务形态的演进。我会以业务的需求和变化为主线,聊一聊这10多年我们的技术是如何演进的。


 

一、架构的演进历程


2014年前饿了么和传统的技术性公司并没有特别大的区别,主要是以传统的独立应用方式来进行部署。随着移动互联网的兴起,外卖业务迅猛发展,传统模式的架构只能支撑百万单量。为了支撑业务的灵活多变和不断提升的单量,饿了么进行两次非常大的技术升级。


幻灯片3.JPG


2014年到2017年,饿了么完成了从单体应用到微服务体系的技术改造。2017年完成了多活架构的演进,2018年到2021年9月,完成了从用云到IaaS全面上云和PaaS上云三个重要的里程碑,目前饿了么也在构建基于云原生新的架构体系。


 

二、云计算—基础架构升级1.0


一切技术的演进都是为了满足业务的诉求,业务狂奔促成了饿了么,也促使其完成了从单体到多活架构的演进。


01  传统架构


传统单体架构有着耦合度高、交付慢、运维效率低下等诸多缺陷。随着业务架构的调整,单体服务也逐步按照领域进行了微服务体系的升级。


幻灯片5.JPG


为了提升运维效率、交付效率和稳定性,我们构建出了elss、appos、ice 3三位一体的自动化发布平台,来提升产业的交付效率;还有自研的maxq(当时的rabbitmq无法支撑业务单量)、apirouter、covrus、dal等多个中间件,以及Pylon+huskar微服务框架来增强业务的扩展能力;结合7×24小时的团队实时监控,来大幅的提升排障和响应的能力,整体的技术体系也逐步向DevOps演进,完成从单体到微服务架构的演变。


02  异地多活和用云


2017年,上海机房出现瓶颈,传统的同城双活已经没有办法满足我们的需求,而异地多活对于任何一个技术团队来说都是非常大的挑战。后续经过各方共同努力,耗时3个月,多活成功上线接下来简单介绍一下多活相关的组件


DRC主要是做数据同步,dal在切流的时候做一些数据禁写工作, APIrouter会在Gzs的调度下进行机房之间的流量切换。中间的Soaproxy除了单元内寻址以外,也要在和集团业务有交互的情况下,来进行单元选址。


多活上线后,除了解决业务的容量问题,也为饿了么的稳定性提供了坚实的后盾


多活架构.jpg


上图深色部分是在云上构建的。多活上线以后我们急需资源,按照传统的预算采购再进行部署没有办法跟上我们的节奏,所以必须借助于云上的弹性能力来构建alpha和alt2两套完整的测试环境,这样我们就可以随时根据业务的需求进行容量调整。


互联网的大促是每年的传统,自建的机房早在年初就规划好了,如果我们每年都按照大促的规模进行部署,将有大量的资源被浪费掉。因此我们不只把网关搬到云上,其中一个机房也在云上重新进行了构建。此后,我们只需要在大促前做好云上的扩容就可以了。活动结束后,一键操作缩容即可,节省了大量的成本和时间。


除了大促,薅羊毛也是互联网特有的。为了避免黑产薅羊毛,网关在云上构建的同时,也直接使用了阿里云的tfe来进行流量清洗,安全性能得到了大的提升,而这个对饿了么来说只是付费然后开箱即得的简单操作。


截至2018年,饿了么完成了基于云计算的基础架构1.0升级,多活体系和Sam中间特殊的中间件,在满足业务的同时,也为二次上云的演进埋下了一个伏笔。


 

三、云原生—基础架构升级2.0


01  业务痛点


随着2018年饿了么被阿里收购,饿了么从单一的外卖体系演进到了承接本地生活的综合体系,“爱什么来什么”的业务对我们提出了更高的要求。后续饿了么上云,也是与业务痛点息息相关的。


幻灯片8.JPG


当时我们面临了以下几大问题

⚫  WG机房过保稳定性变差。

⚫  为了降低用户的支出,我们需要降低单均成本。

⚫  从单独的外卖业务到本地生活,我们需要快速试错,必须借助弹性能力才能灵活多变。

⚫  经过淘系业务锤炼的中间件,比我们有更高的稳定性和产品能力。

⚫  要进行rpc框架统一,这不仅能满足业务和集团互联互通的诉求,还能节省大量重复建设的成本。

经过对用云红利和业务痛点的分析,最终我们选择了全面上云,在云上对本地生活的基础设施进行全面升级


02  上云策略


幻灯片9.JPG


上云规划分为3步


首先从IaaS层开始,将资源网络存储等设施基于云原生进行打造。完成IaaS层上云之后,再进行PaaS上云,采用云上中间件为产研提供服务,还将我们特有的多活相关的中间件基于CloudHosting进行重构,以此完成基于云原生的2.0架构升级。


截至2020年5月30号,本地生活IaaS全面上云,这个过程充分体现了阿里云的技术实力。

幻灯片10.JPG

image.gif


03  收益


接下来分享一下上云的收益。


首先基础设施云化之后,合池收益每月494万,年化近6000万。另外借助弹性能力,我们做了ECS水位治理,日均成本下降了9万,年均的收益达到3400万。此外,基础运维的人力节省了5个


第二点是整个发布系统打通,测试环境和集团共用之后,大概降低了30%容量要求。此外,发布系统人力也节省了5个。


幻灯片11.JPG


从去年6月份到今年9月份,我们完成了PaaS上云。这个过程我们借用了多活能力,对各种方案进行兜底。另外,前面提到的Sam也在这里起到了非常大的作用,它能够在产研无感的同时完美做到同构中间件的切流。


目前为止,微服务体系从Huskar、Pylon迁移到了集团的Pandora、DNS、Sentinel,未来还会再往云上的EDAS进行升级。消息层的kafka已经全部上云,在AMqp开服之后,MAXQ也将会进行升级。代理层已经从SoapProxy升级到HsfProxy,最近饿了么也在和阿里云正在共建中间件4.0,之后就能解决中心化的Proxy问题。存储层的ES已经有70%在云上了,MySQL到RDS的迁移还在项目启动阶段。缓存层的Redis和Ekv已经完全上云了,用了云上的redis和 lindorm。


微服务体系打通之后,Proxy只需要保留多单元的寻址能力,使得节点数目缩减50%,节省了大概1万核。同时,替换了DNCS以后,微服务体系的稳定性和能力都有了大幅的增强,包括原来我们没有的灰度能力。人力成本上节省了近10人。


第二个大收益点在于中间件上云。首先产品的性能稳定性得到提升,其次大促资源预留成本也明显降低。之前每年都会为了大促额外保留30%的buffer,而现在不需要了。还有基础设施方面的人力成本减少50人。


04  未来规划


幻灯片12.JPG


饿了么上云项目的结束并不代表技术演进到此停止,业务还在发展,新的技术痛点依然会存在。根据当前的业务痛点,我们进行了新一轮的规划,主要分为三个方面


⚫  完成通用自研中间件到云上中间件的过渡;同时对自研中间件,进行基于云原生环境的改造,进一步增强产品的稳定性和资源的利用率。


⚫  构建IaaS层资源平台,云上云下的资源统一收口,提升产业的工作效率;同时也要加强资源利用率的感知和成本治理的平台化;最终借助云上H/VPA能力调度能力,结合业务特性来提升整体的资源利用率。


⚫  构建Paas层平台,借助云原生sidecar的部署能力完成从Sam到Envoy升级;增强中间件使用能力,快速定位线上问题;提升中间件能力,如redis数据压缩和分片场景;最后还要保留原来的一些能力,比如资源切换。中间件升级的时候,怎么样保证产研无感以及系统的快速恢复能力,这些都是我们重点要规划的事情。


最后,我想强调,云原生对于饿了么来说,不是技术的终点,而是新的生态下的全新起点。


点击大会官网,查看朱琳骐在峰会上的精彩演讲视频。

相关文章
|
12天前
|
容灾 网络协议 数据库
云卓越架构:云上网络稳定性建设和应用稳定性治理最佳实践
本文介绍了云上网络稳定性体系建设的关键内容,包括面向失败的架构设计、可观测性与应急恢复、客户案例及阿里巴巴的核心电商架构演进。首先强调了网络稳定性的挑战及其应对策略,如责任共担模型和冗余设计。接着详细探讨了多可用区部署、弹性架构规划及跨地域容灾设计的最佳实践,特别是阿里云的产品和技术如何助力实现高可用性和快速故障恢复。最后通过具体案例展示了秒级故障转移的效果,以及同城多活架构下的实际应用。这些措施共同确保了业务在面对网络故障时的持续稳定运行。
|
12天前
|
负载均衡 Serverless 持续交付
云端问道9期实践教学-省心省钱的云上Serverless高可用架构
详细介绍了云上Serverless高可用架构的一键部署流程
41 10
|
5月前
|
存储 架构师 测试技术
架构之道——人人都是架构师
本文的探讨和编写主要围绕三个方面:架构是什么?架构师要解决的问题有哪些?解决这些问题的方法论是什么?最后作者希望人人都能具备架构师思维。
|
15天前
|
运维 监控 安全
天财商龙:云上卓越架构治理实践
天财商龙成立于1998年,专注于为餐饮企业提供信息化解决方案,涵盖点餐、收银、供应链和会员系统等。自2013年起逐步实现业务上云,与阿里云合作至今已十年。通过采用阿里云的WA体系,公司在账号管理、安全保障、监控体系和成本管控等方面进行了全面优化,提升了业务稳定性与安全性,并实现了显著的成本节约。未来,公司将持续探索智能化和全球化发展,进一步提升餐饮行业的数字化水平。
|
1天前
|
监控 Serverless 测试技术
云端问道9期方案教学-省心省钱的云上Serverless高可用架构
本文介绍了省心省钱的云上Serverless高可用架构,主要分为两个部分:1. Serverless的发展历程、特点及高可用架构;2. SAE(Serverless Application Engine)产品介绍。Serverless作为一种云计算模式,让用户无需管理底层基础设施,自动弹性扩展资源,按需付费,极大提高了资源利用率和业务灵活性。SAE作为Serverless计算服务,提供了简便的应用部署、运维自动化、丰富的弹性策略和可观测性等功能,帮助企业降低运营成本、提升研发效率。通过极氪汽车、南瓜电影等客户案例展示了SAE在实际应用中的优势。
|
3月前
|
缓存 NoSQL Java
秒杀圣经:10Wqps秒杀,16大架构绝招,一文帮你秒变架构师 (2)
高并发下的秒杀系统设计是一个复杂的挑战,涉及多个关键技术点。40岁老架构师尼恩在其读者交流群中分享了16个关键架构要点,帮助解决高并发下的秒杀问题,如每秒上万次下单请求的处理、超卖问题的解决等。这些要点包括业务架构设计、流量控制、异步处理、缓存策略、限流熔断、分布式锁、消息队列、数据一致性、存储架构等多个方面。尼恩还提供了详细的实战案例和代码示例,帮助读者全面理解和掌握秒杀系统的架构设计。此外,他还分享了《尼恩Java面试宝典》等资源,帮助读者在面试中脱颖而出。如果你对高并发秒杀系统感兴趣,可以关注尼恩的技术自由圈,获取更多详细资料。
秒杀圣经:10Wqps秒杀,16大架构绝招,一文帮你秒变架构师 (2)
|
3月前
|
分布式计算 大数据 Serverless
云栖实录 | 开源大数据全面升级:Native 核心引擎、Serverless 化、湖仓架构引领云上大数据发展
在2024云栖大会开源大数据专场上,阿里云宣布推出实时计算Flink产品的新一代向量化流计算引擎Flash,该引擎100%兼容Apache Flink标准,性能提升5-10倍,助力企业降本增效。此外,EMR Serverless Spark产品启动商业化,提供全托管Serverless服务,性能提升300%,并支持弹性伸缩与按量付费。七猫免费小说也分享了其在云上数据仓库治理的成功实践。其次 Flink Forward Asia 2024 将于11月在上海举行,欢迎报名参加。
283 6
云栖实录 | 开源大数据全面升级:Native 核心引擎、Serverless 化、湖仓架构引领云上大数据发展
|
3月前
|
缓存 NoSQL Java
秒杀圣经:10Wqps高并发秒杀,16大架构杀招,帮你秒变架构师 (1)
高并发下,如何设计秒杀系统?这是一个高频面试题。40岁老架构师尼恩的读者交流群中,近期有小伙伴在面试Shopee时遇到了这个问题,未能很好地回答,导致面试失败。为此,尼恩进行了系统化、体系化的梳理,帮助大家提升“技术肌肉”,让面试官刮目相看。秒杀系统设计涉及16个架构要点,涵盖业务架构、流量架构、异步架构、分层架构、缓存架构、库存扣减、MQ异步处理、限流、熔断、降级、存储架构等多个方面。掌握这些要点,可以有效应对高并发场景下的秒杀系统设计挑战。
秒杀圣经:10Wqps高并发秒杀,16大架构杀招,帮你秒变架构师 (1)
|
3月前
|
消息中间件 分布式计算 druid
大数据-154 Apache Druid 架构与原理详解 基础架构、架构演进
大数据-154 Apache Druid 架构与原理详解 基础架构、架构演进
86 2
|
5月前
|
弹性计算 运维 关系型数据库
云上Serverless高可用架构一键部署体验与测评
在数字化转型背景下,Serverless架构因其实现业务敏捷、降低成本及提升服务可靠性而备受青睐。本文以阿里云Serverless应用引擎(SAE)为核心,展示了一种高可用、低成本且易于扩展的解决方案。通过单地域双可用区部署,构建了具备自动伸缩与故障恢复能力的架构。借助阿里云的一键部署功能,大幅简化了搭建流程,实现了快速部署,并通过性能与成本分析验证了其优势。对比传统ECS,SAE在资源利用与运维效率上表现更佳,特别适合平均负载较低的应用场景。