产品知识库-阿里巴巴Aliware十年微服务架构演进历程中的挑战与实践_第1页
产品知识库-阿里巴巴Aliware十年微服务架构演进历程中的挑战与实践_第2页
产品知识库-阿里巴巴Aliware十年微服务架构演进历程中的挑战与实践_第3页
产品知识库-阿里巴巴Aliware十年微服务架构演进历程中的挑战与实践_第4页
产品知识库-阿里巴巴Aliware十年微服务架构演进历程中的挑战与实践_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、阿里巴巴Aliware十年微服务架构演进历程中的挑战与实践1、目标如今的阿里巴巴平台上,业务生态百花齐放,新的创新业务不断涌现,而这都得 益于阿里底层的微服务架构高可扩展。而谁能想到,早在io年以前,偌大的淘宝网站点都是运行在单一的部署包内,往往对其中一个模块的改动都会牵一发而 动全身。自从2007年以来,在这近10年时间里,阿里巴巴技术团队一直在微服务的道路 上摸索前进着,其间伴随着互联网和移动互联网的盛行,海量的用户一次又一次的洗礼了各个机构的IT系统,而在阿里,这种改变无疑更加频繁与剧烈一一这 些年下来,阿里中间件技术完成了从1.0到3.0时代的蜕变,并已经完成了将技 术变成商业化产品,

2、对于海量微服务的治理能力处于业界领先,形成了自主技术 产品和品牌Aliware。Aliware 阿里巴巴中间何技术品牌駆品 耳 "QEDAS inawiisje DRDS 囱乍换昨 MQARMSCSB在刚刚结束的Velocity China 2016大会上,阿里巴巴集团产品专家倪超,发表 了题为阿里巴巴Aliware十年微服务架构演进历程中的挑战与实践演讲,深入介绍了阿里巴巴从集中式系统向大规模分布式系统演进过程中的微服务解决 之道,并围绕EDAS介绍了高性能RPC!架和应用实时监控服务,最后分享了海 量微服务带来的挑战以及针对双11大促的准备。演讲者倪超,阿里花名银时,阿里巴巴企业

3、互联网架构平台产品专家、国家认证系统分析师、IT畅销书作者,著有从 Paxos到ZooKeeper一书,2015年国 内新书畅销榜Top10。2010年,以实习生身份加入阿里,入职中间件技术团队, 经历了阿里中间件技术从1.0到3.0的变革,目前负责商用软件 EDAS 2、服务化缘起 在2007年的时候,阿里技术团队规模大概是 500人左右,当时的主要业务站点 淘宝网,都在一个单一的 WAF包进行部署,基于传统JAVAEE应用开发架构,使 用的是Oracle数据库和JBoss服务器一一而与此同时,淘宝网的业务每年翻倍 增长。在那个阶段,我们面临着非常多的挑战,总体归纳下来有三点: 第一个挑战是

4、系统的研发成本非常高。上百人维护一个核心工程会碰到很多问题, 包括源代码冲突严重、协同成本非常高等;同时,项目发布周期太长;所有的逻 辑都是耦合的,错误难以隔离,如对淘宝网整个工程里的某个模块、某个系统功能进行一些改动时,整个系统都会面临非常大的技术风险。第二个挑战是数据库能力达到上限。淘宝早期用Oracle数据库,单机的Oracle数据库连接数捉襟见肘、单机IOPS达到瓶颈、CPU90%以上,数据库容量日趋饱 和,每年Down机最少一次,长期高负荷运转,接近崩溃边缘第三个挑战是数据孤岛。业务相关数据处于隔离状态,重复建设严重,数据不一 致问题突出,无法复用,无法进行大数据分析建模。3、微服务

5、架构的形成整个微服务架构落实到技术层面,就是把原本集中式的模块分散到分布式里 不同的机制上运行,并且希望有这样一个框架能够将不同机器、不同机房、不同模块之间的服务化调用能够顺畅的构建起来,并且能够帮助组织服务发布、服务 注册以及服务发现等过程。目前阿里生产环境使用的是第三代RPC框架:EDAS-HSF在整个平台90%以上应用当中使用,历经8次双11大促大流量和高 并发考验,支持分布式事务。而我们也将第一代RPC框架EDAS-Dubb(开源,目前已经成为国内最活跃开源软件之一、开源分支达4000多个。基于高效的框架,系统能够通过消息队列实现异步调用实现系统解耦,实现 服务的拆分化和大规模推送。进

6、行服务化拆分之后,需要将每一个服务使用的配 置进行集中式管理。因此,我们研发了可靠的配置推送服务, 能够在毫秒级时间 内完成配置推送,同时支持变更历史记录和推送轨迹的查询。监控是我们非常关注的事情,对于系统整体的性能指标也非常重要,所以, 我们会尝试从不同层面收集信息, 实现对应用立体化的监控,包括资源、容器和 应用,具体包括以下三大方面:系统资源:负载,CPU内存、磁盘、网络 容器:堆内存、类加载、线程池、连接器 服务:响应时间、吞吐率、关键链路分析容器诊室资源监控服务监控(厂立体化r监控/1阿里巴巴目前是架构在Java平台上,作为包含Java运行环境的Java容器 是监控的重点,我们会监控

7、堆内存与非堆内存使用情况、线程运行情况(提前将线程情况全部显示出来)、连接器情况,类加载情况尤复杂,很多时候一个类进 行初始化时,层层依赖其它类,对此,我们在应用启动时跟踪加载的类。fEWma IL «Uhri-in wrig artra I D.3L.L I I WdhMKfld -dBTEQ jwserviceZJLE-CK U I4l1.4:S1 iEti i±Etu* 上卸o 灯璋柏W*吟4m訐4$ ; i qeimE.14 .Ktim'ImK-wnK-T.aM.idiimh'miiaWQlHM.iWhif A£hmA-Bd* dn ptW

8、HIMti na.Acknn'MvttoriHirt i Gmtnt'Ki il.«<. ZJ*mtn*wa».> m C-IM 3 t I 1 »)鼻hiM A±iwlFBrjdbna-fdipKB,diHnMid-dHn.lbi,-unciHd-:1-Mn-.,!.L.Z dfvw-SIMJ»4GTrir己BK? Q Mir>*mfMimWBV-HFiL当原本在集中式的系统架构里面,每个页面会贯穿非常多的模块,每个模块 都耦合在一个系统中,最终监控出的是表象,无法知道页面打开慢是哪个模块哪 个功能逻辑上慢。

9、现在,我们会对每一个服务接口、方法的实时调用情况进行监 控,我们还会调用QPS响应时间进行统计,同时快速感知系统流量变化。淘宝网围绕EDA战术体系进行了一整套的服务化改造,在这个改造过程中, 我们首先将数据复用度最高的数据进行拆分,剥离出用户中心这样的共享型的服 务层,对上层所有业务进行用户相关的所有逻辑,接下来又陆续有千岛湖项目、 五彩石项目,这些项目的背后都是一系列的服务化中心拆分出来的产物,后来经过67年的服务化演进,目前服务中心数已达 50多个。天猫国P示惑豊竽商品中心云基础平台EDAS中间曲5术平台ARMSCSB图为阿里巴巴核心服务化架构。自主创新走出技术困境,沉淀一大批成熟中 间件

10、技术,最底层为共享型中间件和组件,以及阿里云沉淀下来的技术支撑型产 品;共享服务体系打破应用“烟囱式”建设方式,支撑业务快速创新;云化基础架构高效支撑业务增长,灵活的弹性伸缩带来巨大的成本节约。4、海量微服务的挑战和实践随着服务化的拆分,所有的系统会变得越来越多,箭头指向就是底层的服务 化中心,上层调用过来就是前端的业务系统。很多系统调用很多的服务中心,这 时已经没有能够人为的架构师帮助我们进行服务依赖和架构梳理。于是,阿里内部进行了 EDAS鹰眼的研发。图中从上至下,包括从页面打开 到页面完整响应所经历的分布式各层系统调用。阿里内部就是依靠一整套的链路 跟踪系统,能够在系统出现打开失败时,可

11、以非常清晰的故障根源在哪。za-w|MK>M 4m-<i flirU|N1At *<对依赖的性力t* fl-qor .3i inw'IlVWtaw 士* » u«七o> ncn a BJ ' 口幻WWflC if jjv7M&-|J J1巧fnf$ MA.i) U>fTV i4*4b 1 m嚳bM*z11*13MK.'i i >a*QHU±O 00 libw!>tanE> MH* S>IM *lb*fm *n«&易故障点1V* ihi 五 M 區 ata 1in

12、 q KX-也 Ciwr«rd MMft比i3 UlnaE- GtfTfa0 IMTh qvft bq>-h Mm-1*' 19 M4a. + M云*«1 IB«MH* MlF* jgjhltmio声灯n ID tapM.3* MRL Ml.1 «"审anft sfi.事 4 iw $ ri'i *-*瓶颈点4 1-S-HWO £W>®V W>m J5* B !>xtl $ Wl_ r r< we t ehu;1M. Vb*当我们把类似的请求调用链路全部汇总起来进行分析后,就可以

13、在很短时间内进行数据采集,并且有数据化的运营出来。峰值的QPS是指今天在某一个业务 高峰时某一个业务的服务在分钟级别的服务化的调用过程中达到的最大的QPS如图中标记可以看出,即使页面暴露在最前端,但不一定是压力最大的,这就算 数据可视化带给我们的价值所在。 我们还要对数据进行决策上的帮助,数据最大 的价值在于可以精准化的通知我们最大压力点。某个页面打开经过一系列的系统调用时,总会在某一个点出现问题,称之为 易故障点。我们可以直观的看到在过去的一天里, 到底所有的请求在哪一个组件 的出错率最高,我们就可以针对性的解决。在过去的67年时间,沉淀了一整套的容量规划模型。首先我们希望在第 一步将线上真

14、实流量进行引流,通过真实流量压测部分单机性能,然后根据设定 的运行水位计算系统承载的最高容量,从而到最后可以实现机器按需的上线和下 线,把这些系统融会贯通在一起,就是整体的容量规划提供的功能。 所有的压测 在单机上都会定一些指标,当我们进行集群中把一半机器流量全部引到另一半时 候,所有流量的QPS就会翻倍,当单机性能如果没有达到运行水位时, 就会继续 引流,直到达到指标为止。为了在大促时保证系统更稳定的运行,采用了限流和降级的手段。根据不同服务 的优先级,不同服务的重要程度来执行限流和降级的措施。限流降级是阿里最有特色的功能之一,我们会面对非常强大的挑战就是双十一网购狂欢节, 我们需要 在成本和体验中选择一个好的平衡点,要利用这个平衡点我们必须要保证系统的 可用性,不能

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论