Platform创始人王敬文谈云计算和大数据

概要
本次采访到了Platform公司技术副总裁、创始人王敬文博士,首先王敬文博士解释了云计算背后的技术以及业务推动力,然后讲述了私有云在企业内的实施 现状,紧接着解释了云计算与分布式计算的区别,通过实际案例说明了当前客户对云计算的需求以及国内外用户对云计算需求的异同。从他的角度分析了大数据为企 业的数据分析所带来的挑战。然后介绍并比较了Platform公司大数据领域的产品Platform MapReduce和开源产品的区别。最后给国内正在实施云计算的工程师们以建议。

个人简介
王敬文,Platform公司技术副总裁,创始人。1992年,王敬文与周松年博士在加拿大多伦多市共同创立了Platform公司。从1998年开始至 今,王敬文博士专注于推动Platform公司产品和技术的发展,使其从单一的LSF产品扩展到广泛覆盖集群、网格、云和大数据分析等多个领域的产品系 列。王敬文博士是分布式计算领域的专家,致力于开发出软件产品使数据中心的所有计算机能够像一台计算机那样进行集中管理和使用。

关于会议
希望通过本次采访,能让读者更多地了解Platform这家已经在高性能、分布式和云计算领域耕耘多年的公司及其产品,并通过对王敬文的采访,让读者更多 地了解云计算背后的推动力和对企业业务的影响并了解云计算和大数据之间的关系。

王先生您好,请先向InfoQ的读者介绍一下您自己和您所在的公司?
各位网友好,我叫王敬文,毕业于西北工业大学,77级。90年去的美国和加拿大,92年和另外两位华人在加拿大创办了Platform Computing公司。这个公司一直都在做分布式计算的事情。从最开始做集群(Cluster)后来做网格(Grid),最后做云计算 (CloudComputing),一直都是在这个领域做各方面的产品开发。我们的产品面向全球多个行业,其中包括电子,电子设计,汽车制造业的设计,飞 机航空航天方面的设计,还有医药、政府研究部门、金融行业,还有零售行业中的的智能分析这个领域。全球有两千多个客户,包括很多大客户,像AMD、JP Morgan、华旗银行,还有这个摩根斯坦利这样的大客户,还有Airbus,也是我们的客户。
我们也知道,其实在您所从事的领域,热点名词也非常多,包括虚拟化、云计算、大数据等等。那您认为像云计算之所以这么热,它背后的技术或者业务推动力是什么呢?
可以说两方面,一个是业务推动力,主要是它的回报率。借用IT的话来说就是,现在很少有人用一台计算机,都是用很多台的计算机。计算机多了就会有一个问题 就是耗电、占地、制冷,还有人工,管一台计算机和管很多计算机的成本是不一样的,所以IT逐渐变成一个负担,这个成本越来越高。所以大家都希望能够有一个 更好的方法,就像用水、用电一样,对于一般的小型企业,不需要自己建立IT,就像家里不需要自己用一个发电机一样,可以到公共的地方去用,到时候按使用的 量来付费,这样一个很理想的模式。那么这个驱动力应该说在很早以前,在做网格计算时候就已经提到了,只是说很多技术不成熟,现在就涉及到技术动力,这个技 术动力就是最近几年有很多创新(Innovation),第一点是大家都开始用X86,机器的硬件平台基本上都是兼容的;第二点是操作系统也开始相互兼容 了,大部分都开始移向Linux或者Windows这样的操作系统。那么在这样一个平台下,廉价的硬件已经能够使IT足够商品化,就像做消费品一样,谁都 可以建、可以卖,那样就很有意义(Make sense),如果有一家大的公司能够自己创办一个IT中心,让其他的客户到他那里按需使用,这样他们就不必亲自安装IT,所以这个业务动力还是很明显 的。

最主要的一个革命性的变化,就是虚拟化(Virtualization),过去的五六年中,虚拟化发展非常快,它使得一个机器可以切片,传统意义上来讲通 常是一个机器一个应用。现在一个机器上可以跑多个应用,是因为他能够把机器切片化。因为传统情况下,一个应用在一个操作系统上运行,厂家在提供支持时,假 定你买的这个服务器上运行我这的软件,如果你给我打电话寻求技术支持,说我这个软件不工作了。那么他首先会问,先运行一下PS,看看上面还有什么其他的应 用程序在运行,把那些都杀掉后看是否正常。所以很多情况下,厂家的支持都是假定在这个操作系统上只运行他们的程序,所以很难把多个应用程序,尤其是不同厂 家的程序放在同一个机器上运行,所以最好的方法就是一台计算机一个操作系统,虚机就给这种情景提供了这样一个好的技术的保障,因为他可以把操作系统的存储 器和CPU都切片,切了以后他可以保证给应用程序分配多大的存储器,多大速度的CPU,从而保证在这个框架上能够运行。这种灵活性就使得IT可以向一体化 发展。这个革命性的变化使得云的这个梦想呢,在最近的几年内呢开始变淡了,比较现实了,所以这是一个业务的动力。技术的动力就是可以帮助人们实现这个早就 想实现的,像用自来水、用电这样的一个梦想。这个工作还没有停止,还有很多技术障碍没有完成,特别是公共语言,包括数据安全性,包括软件在云上跑,软件许 可证,所以需要多方的合作。如果要办一个云,允许在这个云上跑一些应用,需要把应用买好,这个软件许可证要买好,三方都要协调。

还有数据,我把数据存到你的存储设备,和我竞争对手的数据放到一起,那我就不放心了,所以这些方面的因素会导致公有云的应用受限,虽然现在还是在不断的增 长中,其中很可观的就是云空间,也就是存储,用户不必自己买很大的存储器,把自己的大量数据放在云上,这样就相对比较简单。Email就是很好的例 子,Email也是最早的软件即服务(Softwareas a Service),像Hotmail类似的公有云,这种比较容易做。那要把企业的Email放到公有云上就有问题了,还是会有安全性的问题。

但是我们在国内因为现有云法律法规,做公有云不是一件非常容易的事情,现在很多以云为中心的公司也非常强调私有云,或者企业内部的应用。那您是如何理解私有云在企业内实施现状的呢?如果我们要去推广私有云的应用,要做哪些努力呢?
私有云比较适合较大型的企业,他们自己本身已经有相当可观的IT基础设施,比如说一个大型公司,可以拥有自己的发电机,可能比公用的电还更合算。同样的道 理,大的IT公司拥有很多的机器,比如说像AMD、Intel他自己做设计的计算机都是上万的,好几万。如果这些都到亚马逊去借机器,可能最后成本还不如 自己买机器划得来,因为它的利用率非常高,机器的使用率也非常高。所以在大公司的内部,他都有一些推动力(Motivation),比如说自己应该有一个 内部私有去,把企业自身的应用,都在这个云上支撑起来,这样就使得私有云的回报率和公有云的回报率几乎是一样的。事实上我们的很多客户,比如说像JP Morgan这样的客户已经实现了这种梦想。他们IT衡量自己的标准就是Google,比如说一个CPU Hour是多少钱,如果用Google的服务是多少钱,我比它还好,就用这种方法来衡量自己的IT。

这样的企业肯定不会舍弃本身的基础设 施而去使用公有云,因为算下来用自己的更合算。而且私有云,没有公有云所有的障碍,比如安全性,因为它处于防火墙内,各方面都没有问题,而且从可靠性的角 度来讲,不会像公有云那么容易发生问题。因为公有云是网络公司搭建的,互联网公司毕竟不像银行这些单位那么至关重要,宕几秒钟没关系,宕几分钟没关系,银 行的交易失效几分钟,可能就丢失很多的商机,可能该买的就没买到,该买的商品没买,该卖的没卖,就会有很大的影响,所以私有云在这种大企业还是很火的,至 少国外是这样。

那其实我们在和很多朋友沟通的过程里,他们也说道,其实云计算是一个新瓶装旧酒就这么一个概念,也是从前分布式计算的换一种说法,那么对于这么一种说法您是如何来评价的?它们两个有什么区别?
我先澄清一下,云技术和云计算是两个不同的概念,云计算它是一个经营模式,云计算就说把IT的拥有者或是运营者和IT的使用者分开,原来是IT的使用者自 己买机器,所以他自己有资产,资产就是机器,他自己又是用户又是资产的拥有者。那进入云计算的这个模式以后,使用者不必购买机器,拥有者不使用机器,所以 把两个供应商和需求者分开了,这样就叫云了。但是用什么技术去实现?要实现这个云计算的这个模式,就像我刚才说的,有很多的技术障碍。那么近几年发展起来 的很多技术,都可以把它叫做云技术,包括虚拟化,包括网格计算,包括中间件的革新,还有IT数据中心的自动化 (DataCenterAutomation),这些管理自动化的技术,过去几年都在蓬勃发展,都是趋渐成熟,特别是虚拟化 (Vitualization),解决了很大的问题。

还有网格计算,以网格计算为代表的很多中间件它本身具有这个弹性 (Elasticity),它在哪运行,在哪个机器运行都可以。所以云计算这个模式,在需要的时候,分配机器,而且这个机器不是事先定制好的,这点很重 要,就是中间件,一个云平台上的中间件,如果是移动性(Mobility)比较强的话,还可以不限制在某一台机器上运行的话,就会有很多好处。云计算的这 个技术可以用来做很多事情,它不一定要用来做云计算,它可以做很多优化的工作,比如说把应用优化,能够通过网格计算实现应用的共享。可能以前不是立即交付 (On Demand),应用和平台是固定的。但是使用了这种技术以后可以实现IT的优化(Optimazation),所以这两个不是一个概念。所以分布式计算 它本身就可以认为是云技术的一种,虚拟化又是另外一种云计算的技术,所有这些云计算的技术结合起来可以也很快的能够打造这样一个云这样一个模式,云计算这 样一个模式。

那我们知道Platform在中国已经有十几年的历史了,而且已经积累了一批比较忠实的客户。能否从您的角度和我们分享几个典型的案例,让我们通过这些案例来了解一下当年的客户,他们对云计算的一个需求?
我先谈一下传统的客户,就是我们在中国以前做高性能计算,实际上大的计算中心,都可以把它看作是个云。因为计算中心他自己不用机器,都是给客户用的,所以 他的这个实现实际上就是云计算的模式,可以说他的技术都不是很先进,所谓高性能计算,其实都是一堆的物理机器把应用装上去可以跑就行了。但实际上要实现这 个模式也不是那么容易的,我们有一个客户,比如说上海超算,他就是提供这样一个服务,面向全社会,有很多的硬件,很多的高性能的机器,那么他在上面也装很 多的应用,这些应用有开源的,也有商业的。那么最后很多的用户,比如说宝钢的用户,要去做一些化学计算、分析,他不需要自己,为了做那件事情去买很多计算 机,他就直接到去建立一个帐户,使用完了,付钱就可以,这就是一个很典型的云计算。当然要实现这个的话,有很大的挑战,高性能计算不是用虚拟机,物理机, 那么物理机就存在一个应用之间的干扰问题,就说两个作业在同一台计算机上,如果一个作业把这个存储器都占完了,那么另外一个作业就没有空间可以运行了。

所 以在我们的软件里也有这些控制,比如可以设置这个限制,比如说应用程序不要超过一个GB,那您就不要超过,超过一个GB就死掉了,通过操作系统设置一些设 置,那么这样就保证两个应用程序之间没有相互的干扰。还有记账,比如使用了多少,系统会自动的记录下来,谁从几点钟到几点钟运行了哪几个作业,占用了多少 CPU,多少存储器,多长时间,都可以记录下来,最后他可以用这个去收费,这是一个比较传统的云模式,没有虚拟机,是不是云,可以比对一下。最近的,就是 我们跟浦东软件园合作,做的是公有云管理平台,当然和其他厂家要合作,这个硬件都是新的,要打造这个平台。那么他的目的呢,就是提供虚拟的数据中心,给一 些中小型的企业。中小型的企业,他可能不愿意花很多的资金或者是顾很多的IT的人,去重复做一些最基本的设施,希望他能够到一个云上去开一个帐户,然后把 他员工的访问权限都给开通,这样就等于有了一个私有云,但是是建立在公共云上,是属于虚拟私有云(Virtual Private Cloud)的一个概念。这是这个跟浦软合作的这个案例。还有一个就是电信,电信行业现在比较火,有很多省的电信,比如说黑龙江电信、广东电信,都在积极 努力的在要做私有云。他们的这个方法跟浦软的又不一样,他们不面向社会的,纯粹的是为自己内部使用,就像国外的大企业一样,为自己内部买了很多服务器,也 有很多各种类型的应用。

希望通过云这个模式,把自己的IT重新整顿一下,集中管理起来,可以把所有的部门作为客户,然后给他们这个提供一 个云的服务这样的IT,当然这是一个宏伟的理想。能够实现多少,要一步一步的走。目前他们的做法,主要是先从底层开始做起,先做基础设施即服务 (Infrastructure as a Service),那么就先找一些比较容易做的项目,因为他这个Data Center数据中心在运行,他不能把他拆了重做,全部改革是不可能的,先做一些试点,现在是在做试点,先从IaaS做起,先实现IT化,自动化,以前是 叫打电话、写报告,说您给我20台机器,要等两个星期。现在能不能给我一个界面,我去login,我通过那个界面自动的提要求,然后过几分钟,或者一个小 时,我就把我的机器能拿到了,这就给用户的生产率(Productivity)能够提高,这是我见到的几个中国的案例。

我们知道您在国外也有很多年的工作背景,而且Platform也有很多比较成熟的国外的用户。我们想了解一下,国内外用户对云的需求和应用有什么异同吗?
需求基本上都是一样的,不同点就是现状不同,在国外,因为他们的IT数据中心历史悠久,有很多预留下来的东西,比如很多的在线跑的应用,还有很多Unix 这种平台,甚至还有一些主机。这样的话,就很难清楚这些现有系统的架构(Architechture)是什么样的,很难从已有的数据中心下手,既使做私有 云,也需要先买新机器,然后把一些认为可以挪到云上来的应用先挪过来,剩下的就暂时不管,不打算再把它移植过来,等新的数据中心建立起来后,然后再慢慢的 把老的废弃掉,就是这样的一个策略。不是说去改造已有的数据中心,去把它变成云太难了,是因为涉及到很多应用厂家,很多系统厂家,还有很多中间件厂家,他 们做不了。

国内相对来讲,IT的历史比较短,特别比如像电信行业都是比较新的,所以它的包袱相对国外来说要少一点,所以我觉得在国内私有 云的潜力会更大一些,比国外要大一些,它的包袱少一点,国外很多大客户是走不动,很难走。还有从区别上讲呢,就是国外做云项目,都是以回报率为目标,每做 一个项目,比如说是做云,他一定要看到我做了以后能为我省多少钱,或者能帮我多赚多少钱,有这个目标以后再考虑花多少钱;国内好像不太一样,目标就是为了 做云,我觉得国外的一些方法也是应该值得借鉴的,就是自己一定要清楚要什么,这是叫以结果为导向(Start with end),先做最后一步,再想第一步。

不是说先开始了再说,先想好最后一步就是你要的是什么样的,哪怕你最后才知道,我要的东西和我现在 其实第一步的东西一定要是相关的,这样才能把云做好。我的感觉是,好像国内好多云项目就是我要做云,至于就是做云要达到什么目的,慢慢再去研究,因为好多 是重项,从上往下这么推动,当然也有好处,就他能做起来,说动就能动起来。但是它的坏处就是做的时候还不知道目的是什么,所以这个可能各有优缺点了,国外 就是好多推动不下去,就是您做什么东西最后都要见到效益才能做。

企业在实施云计算的时候,经常会遇到一些问题,由于采用了多个不同的云计算的架构或者说环境,他会导致不同的云系统之间集成不是非常的方便,那对于这一点,您认为如何去避免或者去解决类似问题呢?
是这样,首先第一条云是IT的一种实现,它是打造出来的,不是买来的。可以买机器,买服务器,可以买数据库,但买不来云,所以说集成这项任务是无论如何都 避免不了的,因为要建立自己的云。所以说这点要首先想清楚,不可能说买来以后一装就行了,那就不是云了,那只能是买一个服务器,或者买一个集群,要想买一 个云的是不大可能。反过来说,这个集成本身就有复杂性,所以会遇到比如说多种虚机不一样的,不同厂家的虚拟机,多种存储设备,很多API都不一样。然后物 理机和虚机又混着使用,有些应用在物理机上运行,有些应用在虚机上运行,还有跟已有的应用要集成起来,跟已有的内部的一些过程,比如像批准、审批这些东 西,还有用户界面,这些都要集成,所以有很多事情要做。这也是为什么会出来云管理平台这一类产品,云管理平台就是一个框架,这个框架是个云框架,它基本上 搭建好了一个架构(Architecture),就是关于云应该如何来设计,把这个架子搭建起来,然后需要把该拧的螺丝拧上,该连接的部件连接起来,该定 制的地方定制起来,该要加工的地方加工好,那么这样可能省很多力气,所以说为什么会出现云管理平台这一类的产品,就是因为大家都知道做云必须要做集成,云 管理平台本身就相当于集成的一个中间件,而不是应用的中间件。

就是把基础设施(Infrastructure)中不同的部件连接起来,把 存储(Storage)和操作系统以及不同的虚机更多的聚合起来,形成给上层应用的一个易用的平台,所以在选择的时候,一定要选择好。有时候可能有些部 件,它自己说它自己是一个集成平台的,但是看了之后才知道只负责其中一部分,另外一部分还需要再买其他软件,结果这两个软件不是一个厂家生产的,不兼容, 或者说他们的功能有重复,等于又给自己增加了很多麻烦,所以在选择云计算管理平台时,一定要看覆盖程度(Comprehensive),能够覆盖的越多越 好,这样就可以用最少的数目,厂家不要选太多,然后每个厂家都是互补的,比如说虚拟层的厂家,VMware,RedHeT这种虚拟层的厂家。然后上一层的 云管理平台选一家厂家,其他的比如说选自己的这个数据中心管理系统(Data Center Configuration Management)一个厂家,几家就可以了。

那么如果说一个具体的建议的话,要打造一个云的话,有三个方面要注意,第一,要用别人的 云管理平台,不要自己从头做,不要说只买虚拟机,有现成的物理机,自己雇上一大堆人,就能做出来,这样的话就走了很大的弯路,风险也很大,所以一定要用一 种云管理平台来做集成;第二个是得力的技术力量,自己要有得力的技术力量,因为是自己的平台,自己要知道要什么,自己要不知道,那就很难做到。如果自己不 懂的话,最好找一家集成商,来对整个设计进行统筹计划,这样会做的比较全面些。如果是想自己亲手做的话,那么最好不要野心太大,小步走,先做一小步,看见 效益再做下一步,这样会比较好一点。能够减少工程失败的机会;第三条,要有有效的项目管理,不能说这个走到那是那,一定要最开始,就想到结尾,从结尾开始 做计划,计划到开头,这样做出来,一直到最后实现这种东西。

好,那下面我们讨论一下关于大数据的这个问题,因为很多人也提到大数据 和云计算也是相辅相成,或者是不可分割的,云计算产生的背景之一,也是帮助企业来去处理海量的数据,现在越来越多的数据也需要云计算的产品来帮助进行实时 分析,那么Platform这家公司如何应对大数据所带来的挑战呢?
这个大数据现象最开始是在互联网出现的,因为网上的活动很多,包括社区,网上的浏览活动,广告这种信息非常多。现在大数据已经蔓延到了企业里头,有的企业 看到了这个商机,自己也已经有很多数据,比如说银行,比如说像沃尔玛这种大零售业,生物科学(Life Science),生物科技里面也是要做很多的大数据的比对。还有政府,国家安全部门经常会有很多的信息要去监测,比如说有没有恐怖活动,通过短信和 Email这类文档是否能够找出这种蛛丝马迹。

但是现在大数据技术基本上大部分是基于开源的,从互联网发明了Hadoop,它是一系列开 源的产品,包括文件系统、并行文件系统和MapReduce,然后在上面还有一些应用的工具,比如说Pig、Hive、HBase这类工具,能够让用户比 较容易的编程,进行数据处理。除此以外,还有一些传统的数据仓库(Data Warehouse)的工具。最近几年由于大数据进入企业,对于传统的数据仓库厂家也是一个挑战,所以数据仓库的厂家也开始发展,出现了一些新的数据库, 比如说像NoSQL这样的数据库,它的结构已经不再是那种关系型数据库,能够处理一些类似于大数据的一些概念。

还有存储设备发生了更新, 并行的存储设备并行文件系统,并行的数据库都出现了,来满足企业对大数据的这些要求。那么Platform怎么应对呢?我们一直做得事情就是分布式计算, 把多台计算机当作一台计算机来管理和使用,能够形成一个非常强大的功能的具有很多CPU、很多处理能力的这样一个大机器,逻辑上的一台大机器。这个技术应 该是在大数据环境下可以用的,我们具体的发现呢,我们能够使用的地方就是给MapReduce这个部件,大数据处理的其中一个关键的部件,能够给他增加很 多的功能,使得企业能够早日的进入大数据的这个方式正常运行。因为现在的这个开源产品,运行到企业有很多的时间。

您是如何看待大数据为企业数据分析和处理方式所带来的挑战呢,以及我们如何应对这些挑战:那包括在大数据领域,Platform对自身的定位是什么样子?
我认为大数据分析的挑战,首先要知道什么是大数据,大数据它并不是一个绝对的数据,多大就算大数据,它实际上是一个多维的问题,一个是数据量肯定是比以前 要大了,第二个是数据的复杂度,它不再是这种表格型的数据,也不仅仅是重复格式的问题,有很多,比如说一张表填很多人的名字、性别、单位、年龄都是一样 的,这样就好处理一点。那么大数据面临的复杂度叫做非结构化数据(Unstructured Data),它没有结构,就像一个Email一样,写到哪儿是哪儿,每个人愿意怎么写就怎么写,所以它没有什么结构,也就很难用传统的数据处理方式去处 理,所以数据量是一个维度(Dimension),数据复杂度是第二个维度(Dimension);第三个就是时间压力,数据量如此之大,数据又这么复 杂,还要能够及时的处理。这三个点结合起来,就很快会发现现有的数据处理工具,无法能够处理,这一类型的数据分析。

所以我认为,所谓大数 据就是由这三个复杂度,三个维度(Dimension),数据量、数据复杂度和时间压力,这三个组成。那么他的挑战主要来自三方面,第一个存储技术,大数 据需要使用并行的这种存储方法,并行的文件系统,或者是并行的数据库,这是存储层的;那么数据的访问和数据的处理,用一般的SQL 语句就不合适了,用的是MapReduce,现在大家普遍都认为MapReduce是一个比较成熟的技术,MapReduce是一个技术,它有相关的像 Pig、Hive,那是在它上面做查询,或者相当于ETL这种处理数据,MapReduce就是这样的一个编程模式,这是第二层;第三层是在应用层,指的 是分析工具和应用,当出现一些新的东西,比如说有个有一个公司叫Datameer,他就开发了像Excel、SpreadSheet一样的东西,其中有很 多功能,可以算平均值,算出现的次数(Word count),能够帮助用户做一些简单的直观的一些分析。所以这个是三层,存储、数据访问和数据处理,最后一层是应用,这三个是技术上面临的主要挑战。

Platform 的定位就是要针对现在,在企业的应用中推广MapReduce这样的一个数据处理和访问的模式的这样一些客户,能够提供一个企业级的MapReduce这 样的中间件。所谓企业级是指开源的产品有很多缺陷,不能够满足企业的一些需求,如果企业要把这些开源的产品用到其产品中的话,会立刻发现很多地方行不通。 主要是指,包括可靠性、多用户、多任务、多作业、多版本,能否在同一个集群中共存,包括可管理性等,IT能不能整个把它管理起来,包括服务水平协议 (SLA:Service Level Agreement),能不能保证,这都是需要解决的问题。

那么Hadoop和开源的 MapReduc在设计时只考虑到互联网环境下单一的使用,所以还有很多的工作需要做,才能把它更新、改革,能够做好,满足企业的应用。由于 Platform在企业平台中做了很多年,可以说Platform在很多大企业内部做了类似于Google一样的基础设施,就是Google inside Enterprise,Platform有两千多个客户,已经帮助他们实现了类似于Google这样的一些基础设施,那么先您要做做大数据(Big Data),Platform照样可以给您提供,原有的那些IT知识产权都可以再给MapReduce的处理增加价值,让他满足现有的客户,甚至是那些要 求较高的客户,他所要的功能,我们可以给他很快的提供一,使其投入生产。

Platform所发布的一款企业级的MapReduce产品就是Platform MapReduce ,那能不能再给我们简单的介绍一下这款产品,以及它所适用的场景?
Platform MapReduce实际上是沿用了Hadhoop的开源MapReduce的编程模式,因为那块东西是非常有价值的,特别是针对大数据、非结构化数据,是 非常有效的一种编程的数据处理的方式,所以那部分的开源产品,我们是沿用他的同样的东西做了一些改进,从性能上做了一些改进。我们所做得不同的,就是取代 了开源的MapReduce里面的引擎(Engine),发动机的缺点换了,它的JobTracker和TaskTracker,我们用Platform Symphony这个技术把它代替了。因为Platform Symphony技术,它的这个功能他可以完全可以满足JobTracker和TaskTracker的作用,而且克服了这个开源产品、开源的 MapReduceJobTracker和TaskTracker的很多缺点,如果是这个Master Node死掉以后,你提交的作业,你还得重新提交,还不能自动切换(Fail-Over)。

这些问题对于网格计算来说都是最基本的功能。 所以当我们换上Symphony以后,实际上也就把MapReduce变成了Symphony的一个Application,就那么简单。 Symphony所有好的功能,都继承了下来。Symphony这个产品一直是客户评价非常高的一个产品,在银行里客户就信任这个产品,非常可靠,扩展性 很强(Scalable),而且功能也非常多,包括共享等。举个例子,开源的MapReduce设计的初衷就是一个集群中只运行一个应用,当两个应用在其 上运行时,如果MapReduce的版本不一致也会出现问题,这种情况在企业里是不允许的,因为企业里不同的应用由不同组开发的,每个组的开发周期都不一 样,每个应用的升级时间也不一样。这就是一个项目阻碍(Show Stopper),所以要想在同一个集群中运行不同的应用,就必须使用相同版本的MapReduce。

然而Symphony却没有这个问 题。您可以是任一个版本,每个应用,他有自己的东西。而且Symphony本身就支持多版,在同一个Symphony版本下,应用可以做不同的版本。此 外,Symphony他有集中的应用程序部署,支持从Web页面(Web Console),可以把您的应用推下去,推到不同的节点,而且不同的版本可以共存。同一个机器可以有两个版本,运行其中的任何一个都可以,这样当拥有很 多台机器的时候,使用Symphony管理就会变得非常有效,如果用开源的产品的话,那么每次应用程序的改动,升级工作都会变得非常难,从企业角度上来 看,这么做有很多的局限。

另外一个就是共享,如果有多个应用程序,多个用户,多个不同的客户,使用同一个机群的时,如何保障高优先级的应 用先运行,比如说做交易(Trading Flow),他可以为银行赚钱。然后还有一个作业是后台的模拟(Simulation),可以运行几天的,那么您就应该先给交易让路,如果是交易的任务来 了,马上机器要要空闲出来,来执行作业。所以Symphony给MapReduce加了一些这样功能,而这些功能恰恰是HadoopMapReduce没 有实现的,从外部加了一些插件,做一些工作任务调度。但是从外部对内部的工作任务的细节不是很清楚,所以做出来也不是很效,特别是优先级,特别是任务内部 的属性和参数,不了解的情况下,比较难从外面做。

Symphony那么针对的应用领域,我们的MapReduce针对的领域有前面提到过 的银行系统、金融行业、电信行业、零售行业,还有政府、国家安全行业、生物制药,还有一些小型的互联网公司,像那些大型的互联网公司,比如说Google 他不会用我们的产品,可能百度也不会用。这些大的互联网公司他本身就有很多基础设施(Infrastructure),而且开源本来就是为他们设计的,也 是挺好的,所以我们没有去针对这些公司,我们针对的是这个大数据在其他行业的使用,而其他行业使用的环境不一样,那么其中一个很大的一个需求就是文件系 统,开源的HadoopMapReduce必须绑定HDFS,就是Hadoop并行文件系统,不能用其他的文件系统。但是Hadoop的HDFS有个致命 的弱点,它的名称结点(Namenode)不能自动备援(Fail-Over),如果死掉的话,文件系统也随之瘫痪,这对很多被用来执行关键任务 (Mission Critical)的应用软件是不能接受的。所以很多用户在寻求其他的方案(Alternative),最后能不能用最好的MapReduce,最好的文 件系统结合起来,而不是说就绑定。

目前在这个领域的其他厂商大部分也都是绑定的,文件系统、MapReduce都是捆绑在一起的,用户没 有选择权。我们Platform一个特点就是我们只做MapReduce这一层,文件系统可以是任何的文件系统,我们也支持HDFS、Hadoop,我们 也要支持IBM的GPFS,我们也支持其他的开源的并行的文件系统,我们也支持Oracle SQLBased Database,因为很多时候,这个MapReduce只是作为一个补充,对—个大的数据仓库的一个补充,它又有传统的关系型数据库 (Relational Database),又有这种BigData。

那么BigData里面有很多的垃圾,很多数据不一定有用,但若 是仅仅在那放着,不去处理,就会把有用的信息丢失。所以就可能通过某些数据的抽取,把一些好的东西,会输出到传统的数据库中,把他存下来做长期的使用。所 以Platform这个MapReduce提供了这个灵活性,您可以选择任何的存储方式,任何的数据库,以及任何的应用程序。而其他的厂家提供的都是一个 全站式的,文件系统只能是HDFS没有别的选择,MapReduce就是Hadoop的MapReduce,所以在定位上,我们公司定位也不太一样。

那最后作为一个云计算里面的一个专家,请给已经实施云计算的,或者正计划实施云计算的一些企业或者工程师提一些建议?
我觉得四点建议,第一点是务实,就是以效益为目标,以云技术为手段,不要以云技术为目标,那么这样的话您才有长期,这个项目才有长期的价值,长期的意义; 第二点不要追求一步登云,意思是说走些小步,可以见效益。因为目的是效益,要有回报率。比如说可以考虑从应用着手,不一定非要从IaaS去着手,好多做云 的都是照抄别人的,我先做IaaS,然后PaaS,然后是SaaS,所以一层一层走,其实不是那么回事。要把云技术用起来,哪一部分有意义就先做,所以可 以考虑从应用着手,以中间件为手段,可以比如说把一些Linux、Windows的应用,或者是Unix的一些应用先把它移植到这个集群这样一个环境上, 先具备搭建云的能力(Cloud Ready)。

同时,又可以省去昂贵的费用,就是SND,把那个Unix大的机器,多CPU,非常贵 的,一台机器就好几百万美元,把它换成基于Linux 的机群,几十万美元就够了,所以可以立竿见影。Symphony然后从那再往云走,不耽误任何事情,这是第二条;第三条刚才说了一点,不要机械的从 IaaS做起,除非目的就是要做IaaS,我的目的就是为了给用户提供机器,那就是可以的。那么很多的人有个误区,就是说这个SaaS,是建立在PaaS 上,PaaS是建立在IaaS,这个模式是不对的,很多时候是独立的,各做各的,因为最后那个S——Service产品才是想要的云,只要做任何一个就是 云,不一定非要把三个都做了才是云;第四条是多听用户意见,因为做云项目的很多是学计算机科学(Computer Science),不是科学,不听用户的意见,它是按照自己的想象去做,没有真正实现用户需要的东西。所以我一直在强调,以结果为导向(Start with end),一定要明确要做什么,要达到什么样的效果,获得什么样的回报率,以此为目标。多听用户、客户的意见,因为最终做云,是给客户做的,否则的话,做 出来没有客户,云也就意味着失败。

好,非常感谢王先生接受我们的采访。
好,谢谢。
This entry was posted in Cloud Computing. Bookmark the permalink.

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s