解密阿里巴巴的技术发展路径
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
解密阿里巴巴的技术发展路径
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”念头萌生
阿里巴巴CTO王坚
加入阿里巴巴之前,王坚任微软亚洲研究院常务副院长;再之前,他是浙江大学心理学系教授、系主任。加盟阿里后,王坚马上着手第一个重要工作——筹划集团全年的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’提升和锻炼团队的能力,协调好运维和开发团队间的工作才是关键。”
小机,再见!
阿里巴巴最后一台下线的IBM小机
淘宝是首先推行“去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年的双十一是程立经历过的最轻松一次“大促”,再也不担心有任何技术节点会制约业务的发展了。
一台超级计算机