商业价值 发表于:14年07月17日 14:00 [转载] DOIT.com.cn
小机,再见!
淘宝是首先推行“去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、Facebook等顶级公司可以按照5000台机器来划分集群规模。
飞天能做什么?用唐洪的话来说:“它有100PB级别的硬盘,可以存放几百亿的网页;可以给几十万的用户,每人提供几百G的存储;再或者是拥有了一台万核以上的超级计算机,普通计算机一个月需要完成的渲染作业在这个计算机上只需要几分钟就可以完成。”