解密阿里技术发展路径:去“IOE”实现蜕变 自己革自己的命
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小机