【淘宝技术委员会期刊·二月-牛P日志】正明【老林读后】在政府终于开始对IOE动手的时候,突然想起来当年去IOE的牛人:章文嵩 博士。对于技术的执着追求和如其是的了解,是在章文嵩博士给我们分析他对于一个事情的看法:元数据的分析。当时我还不知道这就是牛P的正明,只知道眼前这个人就像打着少林拳的张无忌。说的轻松无比,其实背后有雄厚实力。

现在看看正明是如何从板卡和操作系统层面上来一步步搬开IOE三座大山的!free hit counters

【淘宝技术委员会期刊·二月-牛P日志】正明

子柳:感谢正明抽出宝贵时间接受我们的采访,从正明这一路走过来看,总的感觉就是“技术驱动人生”,正明已经把技术融进了骨子里。
发表于:2012年03月01日  15:06 转发 184
@淘宝正明:集团核心系统研发负责人,高级研究员。现为2012年“大淘宝技术委员会”会长,毕业于国防科学技术大学计算机专业,工学博士,曾任TelTel首席科学家,国防科技大学计算机学院副教授,RedHat 内核开发者,LVS 开源软件创始人,ChinaCluster 的共同创办者。
子柳:首先恭喜你当选今年“淘宝技术委员会”的会长。2012年将是技术委员会运营的第三年,在今年年会时也有一些委员疑惑的声音,例如技术委员会是一个虚拟的组织,没有调动资源的权利,很难主导一些工作之外的技术创新,作为本届会长,正明对这些声音有什么看法?
正明:技术委员会在淘宝成立有两年左右的时间了,发挥了不少积极作用,例如“Job Model”的编写、“晋升考核”、“技术赛马”活动、“淘宝开源”等,技术委员会确实做了一些事情。可能我们宣传的比较少,呵呵。有同学提到去年有个想法,但是跟业务线关系不大,他去找那些主管,要不到资源。其实像去年“技术赛马”无锋做的“taobao labs”项目,他也不是一个人做的,他也找了好几个人,是跨团队的。那时技术委员会也出面,获得了菲青的支持,把外边的人员放进来,这样“taobao labs”得到了很好的开展。其实技术委员会是除了业务线之外的一个额外的渠道,在这里你能讲你的想法,拿到资源。可能这方面我们宣传不够,很多技术小二不太知道。今年我们要在这方面多宣传一下,包括提升技术委员会在整个技术小二中间的影响力,它有哪些作用,有哪些功能等。
子柳:在去年技术团队是被分离成了几个部分,但是技术应该还是一体的,在大淘宝的大氛围下,“大淘宝技术委员会”在其中担任的是怎么样的一个角色?起怎样的作用呢?这些会给整个淘宝带来什么样的影响?
正明:公司组织架构有不同的划分,这是业务的需要,“技术委员会”是一个纽带,可以把各个组织架构下的技术部门串在一起。“技术委员会”是技术人员的一个组织,它不承担一个具体的业务线,它的互动和学习的功能会更好一些。这样能够使得整个大淘宝的技术人员形成合力,共同推动淘宝技术的发展。
子柳:作为大淘宝技术委员会的新任会长,委员会在未来一年的技术规划是有哪些可以和小二分享呢?
正明:这个规划不是自上而下的,而是技术委员会的各个分会对自己的发展做规划,现在有7个分会,未来可能要增加一个“无线分会”,可能会增加到8个。主要是这些分会来做规划,自下而上的规划会更有生命力。作为技术委员会的“常委”,我们主要的职责是申请到更多的资源和大家一起设立好的激励机制,让分会有更多创新的想法,更自主自发开展工作。总会上我们也会策划些对内对外的交流平台,例如技术委员会的开放日,我们还会搭建技术委员会的网站,开展内部交流活动(例如“空享会”),每个分会有自己的发展基金,“技术委员会”也设立一些奖项用来激励“技术赛马”、“技术创新”等。对外的我们继续支持“技术嘉年华”、“技术沙龙”、“Velocity”等。
子柳:你个人的技术经历非常丰富,在读研究生的时候就开发出了LVS系统,然后在国防科技大学教书,然后去创业,然后又加入淘宝网,能分享一下你这一路是怎么走过来的吗?
正明:念博士的时候开始做的LVS,2000年开始在国防科技大学教学,2006年正式出来了。先是创业了一段时间,两年前加入淘宝。
我是在1998年的时候做的LVS项目,到99年的时候,基于这个项目已经有很多应用了。那时侯我有个同学在上海,复旦大学有个MBA的创业比赛,他问我有什么想法,我就把LVS这个项目给他描绘了一下,结果他拿着这个想法去参赛了,然后好像没有获奖,哈哈。后来我们觉得既然写了这个商业计划书,看着还有点机会,就找一些朋友看能不能拿到投资。在2000年初的时候,找到一笔种子基金。那时侯我还在学校里,我们成立了一个公司。当时正是互联网泡沫时期,我们也没什么经验,几百万的钱我们一年就花完了。这就是我们第一次创业的过程,其实创业要考虑的事情很多,包括整个公司的运作、现金流啊、市场的推广等等。
子柳:当时规模有多大?)规模最大的时候有40多人,在北京和上海两地。
子柳:那是一个什么样的项目?)我们网站的名字叫chinacluster.com,中国集群网络有限公司,围绕LVS做负载均衡的设备和技术服务。
这样差不多一年的时间,公司关闭了,我还在学校待着,教书,做科研。2001年结婚了,2002年太太博士毕业了,想去北京。她是校子弟,从小在国防科大的院子里长大,从幼儿园一直到博士没出去过,等毕业了就想一定要离开这个地方。正好我有个同学在中科院软件所,我们学校派我跟他们合作一个项目,然后就去北京了。正好我有个同学在中科院软件所,当时我们看整个计算机产业的发展,一开始是大型机+哑终端,到现在是个人计算机的天下,这可以说智能是从中心向边缘迁移,导致新的产业格局。然后我们看通讯行业,当时整个通讯体系把持在运营商手里,终端只负责接收和发送讯息。我们预见通讯产业的智能也要往边缘移,网络的层面只要是个“笨网络”就可以,负责报文转发就行了(但目前来看,这个还是牢牢控制在运营商的手里)。当时AT&T的一个研究人员,研究了十几年的智能网,但是后来他把自己的理论颠覆了,认为智能不应该在中心,研究智能网都是错误的,智能应该在终端,我看了之后非常认同。他这个理念跟bell实验室的研究是背道而驰的,后来他被fire掉了。但我认为这是个潮流,一定会发生的,我们顺势而为,不求做出多伟大的东西,搭上这趟车就能成功,于是我们就围绕这这个主题开始研究。我们看到SIP协议实际上是解决了两个peer之间通讯的问题,借助一个session能够找到对方。这个协议跟我们的理念是契合的,我们就研究这个SIP。但是现实中有很多家庭网关,它是私有IP地址,要做NAT地址翻译才能找到公网。SIP协议是七层协议,不会考虑到私有IP,这样两个peer都在私网里面,怎么找到对方?这样NAT穿越就是个问题。当时美国有一家公司Jasomi能做这个事情,一台Jasomi设备要卖好几万美金,很贵。我当时看了他们的规格,看起来也不是很难嘛,正好北京非典爆发了,我一个多月待在家里没啥事干,就把这个功能写出来了,没人打扰时工作效率真高。然后我们在硅谷通过思科找到做SIP Proxy的一个小公司Cathay Networks,他们也快没钱了,我们就合伙干。我们有了SIP相关的技术,但不知道拿它们做什么应用。
我们做的一个应用叫meet2talk,聚在一起聊天,相当于是一个语音聊天室或电话会议。我们这个是面向终端客户的,不是面向企业的,但是发现这个应用不是一般的人能聊得起来的,我们也不想往娱乐的方向发展,用户就很少。然后我们想就面向熟人做一个语音聊天工具好了,在04年做了一个teltel,推出来之后我们发现市场上有了个skype,他们2003年9月做出来,然后我们在技术上也碰到一些问题,面向大规模用户的时候顶不住了,后来美国这边的几位员工要离开,那边就做不下去了。当时我在国内给他们NAT穿越的支持,同时也在做别的项目。2003年底我们在国内做的一个项目叫比酷网(bitcool.tv),让用户上传一些MP3、视频、Flash等,直接提供播放和下载,当时没看到flash技术的巨大价值,这些多媒体文件都是用源格式播放的,流量很大,带宽的成本很高,当时也不知道流量的价值。付不起来流量的钱,我们推出了P2P客户端软件aBitCool,后来收到好莱坞的律师函,又有了版权方面的问题。(问:差点作出一个youtube?),就差那么一点,若当初坚持下来就好了,呵呵。
美国的人要走,我们就去接美国语音通信的研发,解决了teltel大规模用户的支持问题,但发现做这个很难赚钱,PC上大家习惯了免费,电话那一段掌握在运营商手里(包括skype现在也没有赚钱),我们根本没有议价能力。D-Link投资了我们一些,他们有很多网络设备,但是不知道用户是怎么用的,用我们的SIP技术可以得到这些信息。我们就跟D-Link合作,还做了SIP电话、SIP摄像头、SIP电子相框等等,不过都是些小众的产品,也没卖出多少。再后来我们看中了互联网电视,做了一个9X9.TV(云端电视),用户自己组织电视节目,自己做电视台,你也可以订阅别人的节目,我们的设备帮你下载内容,推送到用户的电视机上播放。然后广电总局一纸禁令不能将互联网的内容带到家里的电视,我们这个项目在国内就很难开展了。
子柳:你到淘宝两年多来,一开始主要是LVS和HAproxy的大规模普及,之后做了很多CDN系统的改良工作,今年又推出GreenCompute项目。能介绍一下这几年工作的整体规划思路吗?
正明:这几年工作的整体规划思路就是为淘宝网打造一个高性能、高可扩展、高可用、低成本的基础平台,基本上是在这四个维度上不断深入优化。最早,淘宝的CDN用的是商用的调度负载均衡器Citrix NetScaler,这是当时业界最好的负载均衡器。但是淘宝因为规模越来越大,有很多针对小图片方面的访问需求,用Citrix就遇到很多问题,小图片造成的请求数特别多,万兆网卡的流量只能到3G,一旦流量超过3G,若到了4G,系统就会出现崩溃。在CDN系统中,图片处理的挑战最大,相比视频那种连续的数据,图片这种很小的、比较离散的数据,对硬盘的访问要求很高。淘宝在2008年底到2009年初左右,曾经一度全用SSD,这样下来一个CDN的节点造价就会比较高,要花掉两百万左右的钱,还要再加上商用的负载均衡器。而且刚才也说了,一个NetScaler流量只能提供到3G,两台加起来也就只有6G,而且两个NetScaler还不敢用心跳线,因为它虽然支持这个功能,但是万一有一台坏掉,6G的流量完全转移到另一台,那结果肯定会崩溃掉。所以这就是商用系统的问题:在特别的负载情况下,它是不适用的。
所以我们就开始逐步改造。用LVS+HAproxy,在硬件高配的情况下,一个节点跑到100G都没问题。成本方面,后端肯定不能无限制的花钱,我们就开始用混合存储,SATA、SAS和SSD都有。经过优化之后,效果做到跟全SSD差不多,存储空间更大,命中率更高,像我们现在有些高的,命中率可以做到98%。那么现在我们一个最低标准的CDN节点,流量在10G,成本已经优化到50万;如果低功耗的话,还可以进一步优化到37万。这个项目我们以后还会持续优化,因为优化无止尽嘛,我们追求的目标是更好的用户体验,更短的响应时间,同时还要花更少的钱。
响应时间是我们最关注的指标,因为它直接影响到用户的体验。其实淘宝目前在图片的优化方面做得算还不错,好比今年双十二的时候,我们最高跑到了XXXG(马赛克)的图片流量,这在世界上可能也是一个记录了。你现在打开一个淘宝的网页,图片加载的速度还算蛮快的,目前我们图片请求的平均响应时间已经在10ms左右;但我们还会进一步挖掘,看能不能到9ms以下或8ms以下,让它加载的更快。虽然说,越往下面挖掘,难度会越来越大,但是这也是值得去做的。
另一方面,网络传输这一块也往往是瓶颈。一个图片请求发过来,硬盘的处理时间算10ms,但是在网络传输方面,CDN部署的好的情况,可能会占用20ms,万一网络有问题的时候就可能到70、80ms。所以网络协议的优化方面,可以挖掘的空间可能会更大一些。
2009年底,我们立项要做低功耗的项目,选择了当时我们掌控的比较好的CDN系统。CDN因为对数据的安全性要求不是太高,毕竟上面都是缓存,数据丢了就丢了,全局系统可以随时把坏掉的节点切走,对用户的影响低,所以这个低功耗服务器就专门针对CDN应用进行定制。这中间经历了很多事情,整个过程并不很顺利,最终成功弄出来,也要感谢很多参与的厂商,像威盛,Intel,还有超微。总之我们最终还是把这个基于Atom的服务器用起来了,而且性能优化效果目前跟其他的Intel处理器相比,效果是最好的。其实低功耗服务器在整个绿色计算里面只是一个小环节,服务器还包含高性能服务器,服务器之外还有网络设备,机架,直流供电的电源,到整个数据中心的设计,都应该是绿色计算的范畴。而且我们现在定制的只是一款Atom D525的机器,实际上低功耗也可以有很多款机器的。所以现在我们做的只是其中很小的一部分,分享出来,也是希望大家都能参与进来,尤其是也在关注绿色数据中心的互联网企业。如果大家都能参与进来,对业界会是一个很好的促进。我们现在跟业界同仁已经在联系这方面的事情,目前正在进展中。
子柳:是什么机缘来到淘宝的?
正明:我前面那些年其实做的很累,不断地试验很多新想法,商业的成果很难如预期。有时候有了不错的技术,却不一定能找得到用户,这很难创造什么社会价值。而淘宝的社会价值是显而易见的,系统的规模和挑战在那里,把技术问题就很快给用户带来价值。我2007年的时候来杭州参加过一次网侠大会,后面一直有人跟我联系,我手上那些项目结束之后,在家闲赋了一段时间就过来了。
子柳:你预测一下未来的淘宝网系统会有哪些挑战?
正明:未来规模的挑战会更大,数据的存储系统、中间件、CDN的存储系统,在规模上来之后,这些架构都要重新思考。像CDN现在已经有1000G了,未来达到3000G或更大的时候,在不影响用户体验的前提下,如何降低带宽的成本,是不是要建不同规模的CDN节点,之间是不是要有点层次关系等。在后端的数据层,如我们的hadoop集群真的到了10000台机器的时候该怎么处理?很多东西都需要重新思考。
子柳:你一直活跃于开源社区,你觉得我们从开源社区获得了什么帮助,我们又为开源社区贡献了多少?
正明:我们从开源社区得到的帮助太大了。例如我们去年要提高数据库的性能,影响数据库性能的一个重要因素是存储的IO速度,2010年夏天褚霸我们在一块看最快的非易失性存储产品,就是掉电也不丢数据的。我们联系了国外做PCI-E的flash卡的存储的两家厂商,测试了6个月,效果很好。伏威的团队先在IC上把IBM小型机去掉,换上高端的PC服务器。然后我们帮着一起把存储换成PC服务器加PCI-E存储,也对数据库做了五六个层次的优化,从innoDB的存储引擎到IO的调度器,到flash cache,到文件系统进行调优。这样我们换掉了Oracle,去掉了EMC的存储,IC上去后效果很好。到TC的时候一步就把IOE(IBM小型机、Oracle、EMC存储)替换掉了。……此处马赛克500字……。去IOE的成功,这对淘宝来说是一个标志性的事件。我们最核心的系统已经摆脱了商用软件,完全基于开源软件和自主开发的软件系统,所以说开源软件对我们帮助非常大。
我们现在也把我们自己的一些软件开源,回馈社区了,包括TFS、Tair、WebX、TEngine等。我们的淘蝌蚪平台上已经有了一百多个开源项目,不仅是淘宝的工程师,也有很多是外面的工程师贡献的。我相信国内的开源环境也越来越好了。
子柳:你对刚入行的技术人员有什么建议?
正明:找到自己感兴趣的,花时间进去,通过实践出来的知识积累,比光看书本有用得多。我看过一本操作系统方面的英文书,其中引用了一段中国人的格言:“I hear and I forget. I see and I remember. I do and I understand”,这句话给我留下非常深刻的印象。是荀子说的“不闻不若闻之,闻之不若见之,见之不若知之,知之不若行之。”
子柳:工作上你一直很忙,我也看到你经常在微博上秀生活照,能描述一下你业余时间是什么样子的吗?
正明:主要是带孩子玩,我比较喜欢孩子,当然家里的事不是我做主,我主要负责陪玩,呵呵。
【淘宝技术委员会期刊·二月-牛P日志】正明
分类:

0 条评论

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注