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

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

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

一、架构的演进历程

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

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

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

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

01  传统架构

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

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

02  异地多活和用云

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

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

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

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

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

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

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

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

01  业务痛点

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

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

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

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

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

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

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

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

02  上云策略

上云规划分为3步

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

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

03  收益

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

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

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

从去年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  未来规划

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

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

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

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

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

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

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

  1. Lakehouse 架构解析与云上实践

    简介:本文整理自 DataFunCon 2021大会上,阿里云数据湖构建云产品研发陈鑫伟的分享,主要介绍了 Lakehouse 的架构解析与云上实践. 作者简介:陈鑫伟(花名熙康),阿里云开源大数据- ...

  2. 资深架构师十几年的架构干货经验总结分享!

    图片来源:pexels.com 1 架构师承担什么样的责任 记录片<黑猩猩的守护者>中珍妮·古道尔博士说过:「唯有了解,才會關心,唯有關心,才會採取行動,唯有行動,生命才有希望」,套用到架 ...

  3. 【IT技术】阿里RDS首席产品架构师何云飞:阿里云数据库的架构演进之路

    专访阿里RDS首席产品架构师何云飞:阿里云数据库的架构演进之路 原文作者:pipihappy8888 http://www.itpub.net/thread-1887486-1-1.html 如果说淘 ...

  4. 前端晋升ppt_【PPT】快手前端架构师分享:前端发展史

    原标题:[PPT]快手前端架构师分享:前端发展史 2019年8月28-29日在台北国际会议中心举办ModernWeb2019上,由快手前端架构师@俞天翔分享<从网页到应用 - 所经历的前端发展史 ...

  5. 资深模具师分享模具生锈的处理方法,赶快收藏起来吧!

    资深模具师分享模具生锈的处理方法,赶快收藏起来吧! 模具生锈原因 1.成型材料分解的生成物. 2.模具的回潮. 3.手汗. 相关分析 1.成型材料分解的生成物(气体.残渣)对模具的腐蚀的最常见.为了防 ...

  6. 新一代云上基础技术和架构分论坛

    飞天(Apsara)阿里云自主研发.服务全球的超大规模云操作系统.作为面向互联网应用的核心基础软件,向下管理数据中心资源,向上负责提供公共服务及编程接口,是名副其实的云计算之基石. 新一代飞天系统,使 ...

  7. java架构师什么学校好_Java架构师之路:年薪八十万的架构师课程

    原标题:Java架构师之路:年薪八十万的架构师课程 不管是开发.测试.运维,每个技术人员心里都有一个成为技术大牛的梦,毕竟"梦想总是要有的,万一实现了呢"!正是对技术梦的追求,促使 ...

  8. 云原生基础架构的最佳状态,就是没有架构?

    云栖号资讯:[点击查看更多行业资讯] 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 云原生基础架构是通向云原生时代的基石,对于很多架构师来说,上云之后,架构为什么成为了云原生架构而不 ...

  9. 闪存联盟启动“百强架构师”行动 迎接认知时代架构挑战

    近日,以"从领先到顶尖,从局限到无限"为主题的2016 IBM全闪存时代峰会暨闪存联盟第六季在京盛大召开.IBM携手中国闪存联盟及两百余位企业和合作伙伴,共论认知时代下闪存解决方案 ...

  10. 阿里架构师,谈对技术架构的理解,以及架构师角色的思考

    我叫道延, 2014 年加入阿里,在阿里通信工作了近两年.2016 年年底加入业务平台团队,当时 Leader 找我的第一件事就是要解决大促的问题,第二件事就是解决安全生产的问题. 我带着这个命题进入 ...

最新文章

  1. R语言ggplot2可视化:ggplot2可视化时间序列数据并在末尾数据点添加数值标签(number label)
  2. ETSI MEC — 面向边缘计算的 5G 增强技术探讨
  3. HTTP 代理如何正确处理 Cookie
  4. git学习------gt;Git 分支管理最佳实践
  5. python中的垃圾回收机制_python里面的垃圾回收机制
  6. java bundle_java.util.ResourceBundle国际化用法详解
  7. 乔治敦大学计算机专业排名,2020USNEWS数据科学与分析专业综合排名(上)
  8. 七、jdk工具之jconsole命令(Java Monitoring and Management Console)
  9. 实验报告-python文库_python程序设计与实践大作业
  10. linux pivot root,[mydocker]---通过例子理解chroot 和 pivot_root
  11. python理论知识选择题_python基础知识练习题(二)
  12. 强烈建议有孩子的看看
  13. 【二分法】计蒜客:求方程的近似解
  14. javascript学习之使文本框中不能输入数字
  15. L2-007 家庭房产 (25 分)
  16. 如何将ipad大文件传输到window PC
  17. 如何批量将 Json 转为 Excel 格式
  18. 你要看透的56条人生哲理
  19. 数据结构创建有向图(C++语言)
  20. 【047】Testyourvocab-五分钟测试你的英语词汇量

热门文章

  1. 2018年世界计算机超算大赛,2018ASC世界大学生超算竞赛开赛:11队齐破赛会纪录...
  2. The Top 5 cloud security threats presented by Mark Russinovich
  3. 我本将心向明月,奈何明月照沟渠
  4. Git-Dumper工具:从站点中导出一个Git库
  5. linux系统缺少perl组建中的Data::Dumper模块
  6. Win10方便快捷键
  7. Notepad Next:Linux 用户的 Notepad++ 最佳替代品
  8. C++ vector 和push_back 详解
  9. 看看什么叫穿越失败,我承认我确实笑了
  10. Pygame——AI重力四子棋