解密阿里巴巴的技术发展路径

jopen 10年前

171222528814413.jpg

  2008 年的一天,阿里巴巴集团(下称“阿里”)开了一次内部会议。在这次当时看来很平常的会议上,明确了两个议题:一,阿里是一家数据公司;二,阿里要把“计 算”变成一种像水和电一样的公共品。当时在中国还没有人谈“大数据”的概念;更没有人想到云计算会和一家互联网公司未来发展如此紧密。

  1999 年阿里成立之初,创始人“十八罗汉”中就不乏技术基因。公开资料显示,创始人之一吴泳铭 1996 年毕业于浙江工业大学计算机系,后成为支付宝的技术总监。盛一飞有多年用户体验设计经验。周悦虹,java 架构师,技术精湛,传言是一名极客。

  随着淘宝网的成立,2003 年阿里开始与 IBM 合作,解决用户、商品和消费信息分散的问题。当时的阿里已经从十几个人的小公司延展出很多新业务,技术系统也变得庞大复杂。到了 2007 年,阿里在 IT 上的投入之大,一度成为 IBM、Oracle 等国外 IT 厂商在中国的标杆用户。当年,阿里首席数据库管理员冯春培甚至受到了 Oracle 公司亚太区高级副总裁 Brian Mitchell 亲切接待,并被授予甲骨文全球第 100 个 ACE(Oracle ACE 是指那些通过撰写书籍、文章或博客,分享 Oracle 经验的技术专家)。

  但实际上,这种甜蜜的合作关系并没有持续太久。

  2008 年前后,阿里业务高速发展使已有的 IT 设备使用到达瓶颈。根据时任支付宝数据库架构师、现丁香园 CTO 冯大辉的描述:“在阿里的 IT 架构中,淘宝和支付宝等拥有大量 IBM 小型机和 Oracle 数据库,以及 EMC、戴尔存储设备。用户激增与用户产生的数据越来越多,每年早上8:00~9:30 之间 CPU(中央处理器)要保持 98% 的使用率。”IBM 小型机价格从几十万到高达百万级人民币,与 Oracle 签订的数据库软件费用达数千万,加之一大笔软硬件支付和一大笔维护费,阿里的技术发展进入一个压力很大的时期。

  紧迫之中,阿里在寻找一名技术高管,要为庞大复杂的业务搭建起全新的技术架构,建立全球顶尖 IT 团队。在 2008 年的这次内部会议上,阿里确定了“数据”和“云计算”两个重要的新战略。

  时任阿里巴巴首席架构师的王坚成为接受这个挑战的不二人选。

  “去 IOE”念头萌生

  加入阿里巴巴之前,王坚任微软亚洲研究院常务副院长;再之前,他是浙江大学心理学系教授、系主任。加盟阿里后,王坚马上着手第一个重要工作—— 筹划集团全年的 IT 预算。他反复琢磨,发现一个重要问题:即便追加巨额 IT 投资,阿里购买的软硬件也未必能满足其业务的高速增长。

  “双十一”大促对 IT 计算资源要求庞大,很难预测业务爆发点所需要的计算资源峰值。但过了高峰期,IT 资源空下来,又会造成浪费。这些实实在在的难题是为阿里提供软硬件服务的厂商从没遇到过的,IBM、Oracle 和他们的客户都不能为阿里 IT 提供任何可供借鉴的经验。其次,整个 IT 就像是一个黑箱子,一旦出现技术故障后,阿里的技术团队要打电话给厂商等待事故处理,而且高端存储设备的性能数据都是由厂商掌控,阿里自己的技术团队并没 有太大的控制权。技术维护变成极其繁琐的工作,支撑业务的效率大大下降。

  而在地球的另一端,Google 和 Amazon 是和阿里业务相近,并值得学习的两个好榜样——Google 是世界上少有的能拥有大规模分布式架构技术的互联网公司,Amazon 是第一个将自己云计算技术对外提供服务,实现营收的公司。

  在一次预算讨论中,阿里巴巴集团负责技术保障的副总裁刘振飞和阿里技术保障部 DBA 负责人周宝方偶然提到:“阿里应该尝试用 PC 技术替代小型机技术。”一听这句话,王坚一下子激动起来:“既然已经思考了这个问题,为什么我们不郑重写下来?明确阿里再也不购买小型机。”

  “去 IOE”(在 IT 设备中去除 IBM 小机、Oracle 数据库及 EMC 存储)由此得名。

  在 2009 年到 2013 年整个“去 IOE”的过程中,阿里技术发展策略逐渐从“商业软件”、“开源软件”发展到自主技术和云计算构成的综合技术服务能力。便宜的 Commodity PC 替换掉过去昂贵的硬件设备,淘宝、支付宝等重要业务将旧的“IOE”集中式架构转变为分布化架构,这种架构是把 IT 后台迁移到云计算平台上的基础工作。

  在“去 IOE”过程中,阿里技术团队也完成了一次成熟的转型,这为阿里向外提供云服务打下了基础。王坚来阿里之前,阿里各业务技术后台是独立运营的,他将阿里运 维团队、平台技术部、大淘宝运维团队、云计算运维团队等整合到一起,成立了集团统一的 IT 技术保障部。阿里旗下子业务模式差别巨大,IT 工具和价值理念也完全不同,所以统一团队经历了很大的技术挑战和组织挑战。这项工作实际为后期阿里云向外提供服务打下了很好的基础,阿里后期推出的“聚石 塔”、“聚宝盆”业务,与这支在“去 IOE”过程中锻炼出的队伍密不可分。

  除了团队,技术人员也面临着个人转型。王坚曾多次说:“‘去 IOE’最难的就在于人。每一次的技术转换,我们都是在革自己的命。如果没有同事们当时敢于尝试的勇气,阿里的技术难题都可能扛不过去。”曾有一位技艺精 湛、对业务非常熟悉的淘宝数据库管理员,在“去 IOE”过程中,他从 Oracle 数据库技术,转到 MySQL 数据库,最后去研发阿里自有技术 OceanBase 数据库。

  技术的重新选择让阿里最有价值的一批技术人才,随时要面对熟练的技术突然没有用的情况。曾参与 IBM 小机下线的技术人员楼方鑫曾说过这样一段话:“去掉一两个系统的 IOE 不是最难的,也不能代表成功;通过‘去 IOE’提升和锻炼团队的能力,协调好运维和开发团队间的工作才是关键。”

  小机,再见!

  淘宝是首先推行“去 IOE”战略的业务部门之一。“去 IOE”之所以能从淘宝开始,是因为淘宝拥有阿里最大的 Oracle 数据库,成本和技术压力最大。

  淘宝技术专家余锋曾说:尽管 Oracle 数据库性能稳定,但是对于淘宝来讲,Oracle 数据库本身已经不能满足业务需求。淘宝的数据库专家从 IT 前端逐渐过渡到后端,弱化 Oracle 数据库,把“Oracle 数据库 +IBM 小型机 +EMC 存储设备”切换到“MySQL 数据库 +PC Server 的模式”。到 2013 年 7 月 10 日,淘宝重中之重的广告系统的 Oracle 数据库全部下线。

  2013 年 5 月 17 日,阿里集团最后一台 IBM 小机在支付宝下线时也使阿里“去 IOE”运动越发受到关注。

  在“去 IOE”的进程中,支付宝首席架构师程立有自己的苦衷。支付宝有阿里最后一台 IBM 小机,这台小机管理着支付宝用户的所有资金。如果这台小机出现故障,用户将会无法支付,甚至连自己账户里有多少钱都看不到了,后果将不堪设想,因此对这台 小机的任何改动都要确保万无一失。

  去除支付宝 IBM 小机的第二个难点在于,去除小机的前提是实现技术架构分布化,为支付宝 IT 迁移到云平台打下基础。但将技术架构从集中变成分布后,很难保证强一致性,比如客户A给客户B转了一笔钱,不能出现A的钱扣了,但B的钱没增加的情况。如 何在一个分布的系统中保证交易处理的一致性是一个要攻克的技术难题。

  “在王坚博士梳理整个阿里技术架构的时候,支付宝曾经是他‘去 IOE’最大的一个‘障碍’”程立向《商业价值》记者说道。“我们必须要保证每天处理的大量资金,一分钱都不能错,一笔都不能差。”出于谨慎,程立和团队 在去掉支付宝系统中其它所有的 IBM 小型机后,还保留着这台小机管理最重要的账户资金。”

  时间回溯到 2012 的“双十一”大促的凌晨,很多消费者不断点击支付按钮,却常常看到支付宝的排队页面。消费者以为支付宝系统崩溃了,实际上,当时是因为支付宝仅存的这台小 机的承载能力有限,在高峰交易期,系统只能对来不及处理的请求进行排队,这种排队带来的延迟产生了巨大的用户体验障碍。

  “双十一”的痛苦经历,让程立最后下定决心去掉这最后一台小机,最终,支付宝技术团队设计出了基于互联网技术的分布式交易处理方案,通过一次完美的项目执行去除了支付宝、同时也是阿里的最后一台 IBM 小机。

  2013 年的双十一是程立经历过的最轻松一次“大促”,再也不担心有任何技术节点会制约业务的发展了。

  一台超级计算机

  在阿里进行“去 IOE”同时,另外一项重要的技术研发也在同时上演。2008 年 10 月 24 日,飞天研发启动。“飞天”是什么?飞天是阿里的大规模分布式系统,几乎等同于整个阿里云的整个技术体系。

  技术网站博客园对飞天——这种分布式技术有一段生动的描述:当你只有六七条鱼的时候, 一个小型鱼缸就够了;可是过一段时间新生了 30 多条小鱼,这个小缸显然不够大了。如果买一个大缸,把所有水草啊、布景、加热棒、温度计都从小缸里拿出来,重新布置到大缸。这个工程要花费很多时间,尤其 水草,纠结在一起很难分开。分布式系统可以帮你在这个小缸旁边接了一个同样的小缸,两个缸联通。鱼可以自动分散到两个缸。帮你越过复杂的系统扩建过程,省 掉了很多时间和设备成本。

  阿里旧的“IOE”架构,本质上代表着基于传统高端设备、大型数据库等软硬件的集中式架构。陈旧集中的技术无法应对阿里爆炸式业务增长,如果在 IT 系统中有一点出现问题,整个架构都面临危险。飞天这种分布式系统集中大量的通用服务器在一个系统中,比单个的大型集中式系统运行速度更快。而且,把计算能 力分散到众多机器上,单个节点的故障只会影响一台机器,其它机器可以照常工作。

  2013 年 3 月,阿里技术保障部给公司高层突然发信一封:“云梯 1 要撞墙了!”云梯 1 是阿里内部另一个基于 Hadoop 的分布式集群系统。保障部的员工发现按照现有数据增量和未来业务增长的情况,阿里的存储和计算能力将在 3 个月内达到瓶颈,数据业务面临停滞,必须将飞天系统快速扩建起来。

  飞天的快速扩建要克服很多难题,国内有大规模分布式系统经验的人不多,阿里的技术团队里只有少数做过或用过分布式系统,所以整个研发的过程是一个探索学习的过程,只有遇到实际的问题,团队才会对工程上的难题有所领悟。

  其次,在系统设计的时候,工程师会设定相应的工作场景、硬件环境的完备性。但在实际生产环境下,各种硬件环境、参数配置,往往会打破设计时的假 设,因此总是会碰到各种问题。在解决这些问题过程中积累的经验,显然不是教科书上可以学到的理论。这个超大计算机也有自己的软肋,她要比单个服务器的可用 性和可靠性要高很多,才能保证服务“永远”不中断,数据“永远”不丢失。

  经过 4 个月的不懈努力,飞天资深技术总监唐洪和他的团队将 5000 台飞天集群部署成功。阿里成为国内首个单集群达到 5000 台规模的公司,在此之前,全球也只有 Google、非死book 等顶级公司可以按照 5000 台机器来划分集群规模。

  飞天能做什么?用唐洪的话来说:“它有 100PB 级别的硬盘,可以存放几百亿的网页;可以给几十万的用户,每人提供几百G的存储;再或者是拥有了一台万核以上的超级计算机,普通计算机一个月需要完成的渲染作业在这个计算机上只需要几分钟就可以完成。”

  “双十一”云备战

  “去 IOE”与“飞天 5K”技术成功后,阿里集团内部所有的重量级业务都已迁移到云计算平台上。

  “聚石塔”、“聚宝盆”、“阿里金融”的大数据研发以及 YunOS 智能移动操作系统等,都运行在阿里云飞天平台上。淘宝、支付宝等各业务部门的底层技术也架设在飞天平台上。阿里金融基于云计算,几分钟之内就能让贷款发 出,每天处理上百 TB 的交易数据,而且保证了每一笔贷款发放的计算成本相同。淘宝也基于阿里云推出电商云——聚石塔,为“双十一”服务。阿里云推出电商云—聚石塔,为“双十 一”服务。2012 年“双十一”,通过聚石塔,阿里云支撑了天猫 20% 的交易额, 2013 年这一数字上升到 75%。

  2013 年“双十一”大战前 3 个礼拜,天猫技术总监庄卓然接到集团通知:大促结束后,他将要被抽调到无线事业部。对他而言,3 年的“双十一”备战完美收官,又将迎接新的挑战。2013 年,阿里第 5 个“双十一”,天猫和淘宝单日成交额达到 362 亿元(根据招股书数据),网站 PV 过百亿,76% 的商家处理工作在聚石塔云计算平台完成,且无一漏单,无一故障。支付宝成功支付 1.88 亿笔,最高每 2 分钟支付 79 万笔。用庄卓然的话:“疯狂业务数据的背后,是对阿里技术团队一次整体大阅兵。”这场阅兵检验了阿里“去 IOE”和云计算的成果。

  3 年备战“双十一”,庄卓然每年都重复着高效的工作时间表。5 月底,投入产品和技术准备。筹划新的突破点和创意同时启动,投入到一些较长周期的研发工作。8 月底,真正的考验来临,冲刺时间段,他每晚习惯性要到两点多才能睡着。有时候,想一些技术难题觉得有突破时,一睁眼就到天亮。庄卓然自己形容自己的工作状 态像“精神分裂”一样,左脑思考的是系统的稳定性建设,右脑不停地找寻当前系统的命门和瓶颈。每一次大促都是对团队技术能力的考验。

  2011 年和 2012 年的“双十一”前夜,庄卓然和技术团队都非常不踏实,即便该做的技术准备都做了,但面对“双十一”巨大的突发流量,只能尽力保证一个完善的技术机制,抓大 放小。“双十一”的最大难点在于峰值流量一压过来,系统要扛得住千万人同时在线和每秒数亿笔交易。

  淘宝和天猫的技术体系非常庞杂。每一笔交易都涉及到银行、商家、淘宝自身和网络等多个系统的处理能力。交易信息层层传递过程中,某一个技术细节 执行不到位,交易就可能失败。比如,当用户量大到一定程度,系统让用户排队,如果这个功能失效,一连串的上下游系统都会受到影响。淘宝的几万台机器,上千 个应用系统复杂交错,很难实景模拟所有的用户行为,比如 1000 万人同时在线,同时下单。2013 年,庄卓然对“双十一”技术的确定和把握,一部分来源于技术团队已经能实现在短期内集结一大批虚拟用户去做压力测试;另一部分是淘宝天猫后台和大多数商家 后台已经上云。

  淘宝、天猫上大概近千万家商家,其中大部分的商家都有自己的 ERP 系统。消费者买一个东西需要点击购买,然后进行支付。这个动作会指向两条 IT 路径:一是连接支付宝,保证有钱可以完成支付;另一条则是进入卖家的 ERP,卖家需要知道自己是否有库存,并减掉相应的货品数量。交易从淘宝或天猫链接到卖家后台系统的过程中,如果卖家 IT 系统薄弱,数据交换可能会因为网络等原因不通畅导致交易失败。

  庄卓然详细讲解了这一过程:“聚石塔提供的云推送功能在第一时间将交易订单同步部署进商家的 ERP、物流、CRM 软件中,并提供动态弹性扩容和安全保护。消费者下单到发货、发票打印,所有信息流转都在云上完成。”

  云上生态系统

  聚石塔只是阿里云应用的一个侧面,阿里长在云上的商业生态体系已经初步形成。

  王坚曾说过:“阿里云平台在内部的代码就是飞天。一个平台的力量有多大,可以造就的东西就有多大,这是过去阿里云为什么花费这么大力气做飞天的原因。”飞天以 Web API 的方式,向外提供计算、存储和大规模数据处理等云计算服务,建立起庞大的云计算生态体系。

  未来的互联网将成为一个果园,各行各业像是一棵棵果树,如何为果树提供良好的养分服务,决定了果园生态的丰富程度。云计算就是牵引传统行业互联网化的引擎。数据将成为云生态里的生产资料,通过强大的计算能力进行实时分析和交互,可以催生出无数新的商业模式。

  在阿里刚刚递交的招股说明书中写道:2013 年1~9 月,阿里云计算服务等收入达 5.6 亿人民币,占总收入的 1.4%,同比增长 15.7%,并且已经拥有 98 万用户。阿里云快速地将阿里和不同行业企业联系到一起,比如消费电子、公共卫生、能源管理、媒体、电子商务、电子政务、移动互联网等。阿里云客户中有传统 的互联网公司,也有移动互联网公司,比如手游公司;还有一些传统企业,比如杭州九阳股份有限公司,这些传统企业的 IT 逐渐向云迁徙。例如,2013 年,阿里与美的集团的深入合作,是基于天猫商城、大数据和阿里云计算平台的多维度合作,这种借助云和数据的能力,让传统企业能与互联网走向更深的耦合。

  阿里云还在借助 ISV 合作伙伴,帮助更多的传统企业上云。2013 年,东软将旗下 SaCa、UniEAP 等软件产品部署在阿里云上;普元推出基于阿里云的 EOS-Cloud 平台,直接在云上支撑企业软件开发。这些 ISV 厂商有大量传统企业用户积累,这种深入合作撬动了一批传统企业上云。2014 年,5 月 8 日,阿里云宣布香港数据中心正式投入使用,阿里云正与 Amazon AWS、、微软 Azure 展开正面竞争,阿里的云生态体系部署已经蔓延到国外。阿里云业务总经理陈金培认为:“所有的产业竞争都是生态系统的竞争,你要么依存于一个生态,要么自己 发展出来一个生态。”马云搭建的基于数据和云的生态,已初步形成。

  2013 年初开始,阿里将其战略调整为“平台、金融、数据”三大业务。云计算是金融、数据的基础。2014 年春,马云的内部信件再次明确了阿里的未来战略:走向激活生产力为目的的 DT(data technology)数据时代。马云的策略是让数据、云计算成为中国商业的基础设施。

  阿里巴巴技术发展大事记

  2007 年

  • 以互联网为平台的商务管理软件公司阿里软件成立。

  2008 年

  • 王坚加盟阿里成为集团首席架构师;
  • 阿里巴巴集团研发院成立;
  • 飞天研发工作开始。

  2009 年

  • 年阿里软件与阿里巴巴集团研发院合并;
  • 阿里云计算成立,在杭州、北京、硅谷设研发中心和运营机构;
  • Oracle 产品构建的 RAC 集群成为国内最大的数据仓库;
  • 淘宝拥有第一个分布式计算系统 Hadoop 集群,规模 300 台。

  2010 年

  • 阿里云第一个云计算机房启用;
  • 阿里巴巴数据量大爆炸的一年,RAC 集群不能满足业务发展速度,迁移到 Hadoop。

  2011 年

  • 阿里云官网上线,“飞天”开始对外提供云服务;
  • 阿里巴巴云智能手机操作系统云 OS 正式发布。

  2012 年

  • “冰火鸟”启动建立支持集团数据化运营,自主研发的分布式计算平台对全集团提供服务。

  2013 年

  • 阿里云计算与万网合并为新的阿里云计算公司;
  • “飞天”集群达到 5000 台,100T 数据 TearSort 算法 30 分钟完成,比当时的世界纪录快 2 倍以上。

  2014 年

  • 阿里云发布移动云平台-聚无线;
  • 香港数据中心正式启用。

       来自: 钛媒体