谷雪梅谈云计算

个人简介 谷雪梅,谷歌资深工程师,毕业于卡内基梅隆大学,四年前加入谷歌,负责谷歌中国基础架构方面的工作。

   

1. 非常有幸能采访到谷歌的资深软件工程师谷雪梅女士,我们今天所谈论的话题是关于云计算方面的,现在大家都在热捧云计算,包括IBM他有蓝云,然后微软的也有Live Mesh,Amazon也有EC2,雅虎有自己的云,那么我们想了解下Google的云是什么样子的,这些云之间,这些云概念之间有没有什么异同点?

咱们还是从云计算的概念开始讲起──就是它的根源。最早云计算是二十年前,大概在美国就出现了,当时是戴克这个公司提出来的,他们的研究人员提出来说希望呢有那么一天我们的计算机也不会就是像现在一样,一台一台在每一个桌子上,而是变成一种服务,像电网一样,一插上电源,好,你的计算能力就来了。然后用户想做什么,就通过这个云的网,当时不叫云,当时他们认为这个像电网一样的计算机的网络帮你实现,所以这个是20年前的概念,然后这个概念一直没有被实现。主要原因有两点:一点是硬件,硬件很贵,所以我们当时也不太可能使用很多很多的硬件来给大家提供这种当时还看不到什么很大的应用的用户的需求;然后第二点是软件,后面当这20年来,硬件的价格不断的下降,有那么一天呢,大家终于可以用很便宜的价格买出很多很多硬件的时候,那么这个时候软件就进来了,它的这个角色是什么呢?好,我使用一大堆非常便宜的硬件,然后我给这个用户来构架一个非常大的平台,这个平台可以使用所有的硬件,有很大很大的计算能力,有很大很大的存储能力,那么这个时候,我觉得云计算才终于面世了。它的概念很早,但是实现上面只有在硬件和软件都达到一定水准,才进入现实。所以我觉得不管是IBM还是微软还是MSN和雅虎,在概念上大家都没有区别,大家都想处理大规模的数据,然后通过处理大规模的数据给用户提供你原来可能想象不到的情况,但是在实现上面的话,我作为Google的工程师来讲一讲Google的特点,不太好跟别的这个比较了,Google起步是97年98年,那个时候互联网是很小的,就是小到大概Google用几十台计算机,可能上百台计算机,也可以把整个互联网所有内容都搞下来了,所以那个时候的云是一个小小的云,因为互联网很小。那么在过去10年里边,Google我认为他是一个很幸运的公司,他随着互联网的成长,他自己也在成长,互联网在爆炸性的成长的时候,Google加很多很多的服务器,然后把云计算这个概念放到了每一个产品的开发之中。然后那个时候,当我发现互联网越来越大的时候,原来的那种计算模式可能已经不能满足它成长的速度,那么没有关系,好,我们就买了很多很多,像我刚才讲得便宜的硬件,然后在上面开发功能非常强大的软件,可以处理互联网,整个互联网级别的这些数据,然后给用户提供结果,所以Google有10年的,我认为是实践的经验,而且Google云计算实际上已经做出来了,这是一个可以摆在大家面前给看的东西,每天你在Google上面如果进行网页的搜索,全世界的网页不只是中国的,不只是美国的,全世界的网页,你在上面搜到结果。那么这个结果事实上就是后面很大很大的云,云然后回到现实就是很多很多的硬件,然后上面有非常非常大规模的软件来支撑它,这就是Google的实现。

   

2. 刚才你所谈到的它可能像电网一样那么方便,那么简单,那么能不能再具体化一点,给我们介绍一下?

具体化,其实你看现在很多工作并不需要你的台式计算机,有很多很多工作你不再需要了。那么你打开浏览器,你要进行的搜索没有问题,一行这个查询进去,结果就出来了,这是不是像电网一样方便?然后再有呢,比如说Google还有像网上的就是微软的OFFICE一样,Google的Docs,然后其他的SpreadSheet,很多很多的网上的应用,那么这些应用,你本地不用再装任何的软件,Google都替你做了,你所需要的事情,就是面对一个很简单的浏览器的界面,把你所需要东西放上去,那么你在其他任何地方,你想拿到,你可以随时可以拿回来了,我想这个是个非常简单的例子,可以帮助大家形象的理解。

   

3. 很形象,根据我掌握的资料,云计算好像跟上世纪的两个概念,因为80年代末的时候有一个网格计算,然后90年代末的时候有个公用计算,好像看上去两个概念很类似,我理解看都是讲资源集中在网络服务器上,大家通过网络就可以应用或者计算就可以了,你的理解是什么样子的?

对,其实这个是这样的,的确概念上我同意,是没有什么区别,还是咱们回到实现,我认为实现是特别重要的。这个科幻小说,你写一写就写出来了,这个不需要很多工程师做很多工作,但是你真的把那航天飞机发射上去,那就是聚留了几个大的系统工程了,云计算也是,这个概念可能几个聪明的人坐那想出来了,但是你要真的实现呢,你真的需要一大群非常非常有才华的工程师进行长期的、艰苦的、很有创造性的工作才能做出来,所以这是我认为他们最大的区别,就是八九十年代更多的时候是在概念方面,而现在是我们真正看到成果了,而这个成果不是一个小成果,他是针对整个互联网上几百亿网页,各种各样的这个内容,然后做出的结果。然后我再讲讲八九十年代,刚才我不是讲到硬件很贵的问题吗?当时还有一个很贵,就是网络资源很贵,当时可能你传输一个字节花的钱跟现在是完全不一样的概念,所以那个时候,你再讲云计算,你可能也是,我们叫Local的。你可能在这边,一个大楼里边有若干台服务器,没有问题,你直接传输下可以了,但是如果你想从这发出的资源,让世界另外一边的人很容易的得到他,那是不可能的,但是现在的世界就可能了,所以我认为,还是说实现上有最大的区别。

   

4. 那么我们刚才也谈了一些云计算的概念,那么现在我们来看一下,云计算发展它的背后的主要助推因素是什么样子?或者说云计算现在对大家有什么好处?比如说推广云计算的厂商,包括Google,包括微软,包括IBM,还有使用云计算的这些终端用户,包括那些想在云计算平台上工作的架构师。

因为我本人也是工程师,我觉得还是给大家举一个工程方面的例子,我不知道你做过没做过网站?

   

5. 做过简单的。

你当时做网站有没有感觉说,你可能需要什么软件,我得把这个网站搭起来,然后我打电话注册一个域名,然后再出去找这个服务器,然后还得找数据中心,然后可能自己还得肩负点系统,叫什么System Admin,网管员的工作,做个网站就得这样吗。再做复杂一点的,比如说你做一个电子商务的网站,支付了,然后所有的这些,比如像Shopping Cart,什么Transaction,很多很多东西都要做。那么其实在云计算的时候,我给大家举个很简单的例子,Google有一个云上面的应用叫做App Engine,App Engine的概念是很简单,他就是说好吧,你有什么样的自己的想法,甚至你是个小公司,你把你自己的想法用Google给你提供的所有的工具,很容易的就形成你的网站,形成你的这个商业应用,你不用管,你不用再去操心这个网管,你不用再去操心你需要多少的CPU,多少的内存,多少的这个Storage,你甚至不用再操心你去哪里租数据中心,你这些东西所有都不用管,你需要做得事情就是把你的想法想出来,然后用一些简单的前台工具把它实现出来,所有这个底层的东西,全让Google给你实现。这个事实上我觉得是云计算一个非常典型的应用,把大家从这个很多很多技术上的这个很无聊的很乏味的很底层一些东西解放出来,让你把自己的精力主要集中在自己的这个想法的开发上面。

   

6. 下面我们看几个目前比较流行的一些概念和云计算之间的一个比较,比如说大规模计算,分布式存储,还有什么SaaS,就是软件及服务,包括虚拟化,那么你能简单帮我们解释一下这些概念之间的关系或区别吗?

我觉得这些概念其实都是有联系的,比如说咱们先把云计算到一边,咱们先讲讲大规模,比如大规模计算各分布式存储。那么大规模计算,这个是这样,它强调的重点是在多个计算机之间的协作。这个计算机的协作,比如说其实你看一个非常大的数据库,它实际上是大规模计算的,它可能假如说要给你查一条东西的话,它要从很多很多地方来查,查完了最后把一个结果返回给用户。但是比如说大规模计算和分布式存储,它们两个就是一个很配合的关系,因为首先大规模的计算经常会需要很多很多的数据。那么这些数据,毫无疑问是不可能存在一台服务器上的,或者如果你存在一台服务器那会很贵的,你只能把它分布式存储,然后你通过分布式的存储,你必须要设计各种的算法,然后把Data,把这个数据从不同地方拿过来进行什么样的计算,你要考虑到它的IO,考虑到它在Internet上面的传输,考虑很多这种技术的问题,然后你前面实现了这个大规模计算。然后咱们再比如说,像软件及服务这种也不过是说,我们把很多的就是原来放在单独计算机上很独立的一些东西,然后放到网上去,或者放到,你不用关心它是在那里实现的,你只关心它的结果,所以这些你看,这些东西呢,我认为都是关联的,它们有几个重点一定要有的,存储,大规模的存储,这几乎是没有疑问,是一定要的,另外一个是需要很大的,我们叫CPU Power,就是很大的计算能力,因为你需要太多的数据,需要去把它算出来,那么算的结果,究竟是这个,是变成服务的软件呢?还是说你有个想新的想法,是一个互联网上的应用呢?还是什么东西都没有关系,这个商务的应用实际上都是类似的,只是说这个商务应用一定会使用存储计算,然后最后服务,就是前台的服务。那么云计算,我认为是说把这些概念都集中在一起,所以云计算,它更强调的就是说,我觉得它比较像软件即服务,这个服务在那里,你不用关心,你需要关心的只是它的一个结果,所以它更多的是一个应用层面的一个概念。

   

7. 那虚拟化在里边办什么角色?

虚拟化,我想是这样的,虚拟化当然是一定跟他前面这些概念是相关的。然后比如像云计算,它所谓的虚拟化是说,所有的后台这些计算,存储什么的,都和你现在的,你自己面前的这个计算机事实上是脱离的,你不用管他在哪,他可能是在美国,还可能是在英国,或者是在印度尼西亚,这些对你来讲已经没有关系了,你所需要关心的只是你面前的一个结果,所以我想后面对这些东西的话,他就比较虚拟,而不是你现实看到很多很多服务器在你面前。

   

8. 那么另外一个说法就是说,有人将云计算比喻成互联网为中心的软件,你是如何理解的?

我非常赞同,我觉得其实这对云计算是一个很好的,尤其对于那种不太了解云计算的人,是一个非常好的说法,能让他很明白的理解什么是云计算。然后你看这里边,其实我想强调一个重点是说,它是以互联网为中心的,这点为什么很重要呢?原来,假如说有些我们的的研究人员,他有想法,他有很好的想法,比如说翻译,那么翻译事实上,他那些算法几乎已经定型了,他所需要的是什么呢?需要大量的就是说我们叫做Training Data,就是训练数据,这个数据量越大,结果就越准,现在如果这个研究人员,终于可以得到整个互联网上所有的内容的时候,那么你想想看,他的训练的数据就是整个互联网,那么其实这个对他的结果就非常有好处,所以我认为互联网时代,比如他的翻译就是革命性的,它是云计算一个非常好的应用。而且你可以从互联网上,看到有很多很多新鲜的想法出来,这个我们不用花时间再讲了,但是说以互联网为中心的,我非常赞同,就是人类从来没有那么一个时候,可以让你在很简单的,你在一个小小的计算机前面,可以看到全世界所有的内容,从来没有过。

   

9. 非常好,那么目前Google,刚才你也提到了,他现在已经有了成熟的这么一个云计算的应用,我想问一下它的商务前景是什么样的?

Google这个公司挺有意思的,从来不收大家钱,而且不收终端用户钱,不收。如果你要是说几个产品,说我这个产品的商务模式是,我要收每个用户的钱,那这个公司,你是不会把它发布出去的,所以它的商务前景我想是在那里呢?首先有可能,我只说有可能,可以把广告放上去,你今天有一个自己的新鲜的商务想法,你可以用Google的云计算的技术,在网上有了自己的这么一个家,我们不收你钱,但是你可能需要很多很多的资源,那这个时候这个怎么办?我们也许可以把广告放在旁边,也不影响你整个商业运作,但是也许你会把一些广告给用户看,当然这是我个人的猜测,不代表公司。所以我认为这个商务前景,Google有自己的一个理念,就是你把一个东西做得非常好,然后其他的就跟着来了,盈利就跟着来了,现在所以我想还是,Google还是在摸索阶段,怎么把自己在公司内部非常成熟,然后做得很好的,做得很快,规模很大,然后也很便宜,这么好的一个云计算的系统推给大家,其实公司也在摸索,只是这个前景也很光明,比如App Engine 在美国,他一发布出来,好多好多人想去用,然后在网上设一个网站,很快都用满了,Google只给那么多资源,当然主要是想测试一下吗。然后现在大家有好多在等,然后Google就是往上加,但是想来用的人越来越多,所以大家只好都在等,所以那么现在怎么解决这个问题?也就是说它的商务的模式怎么样?其实还是在摸索。

   

10. 他会向那些企业用户收钱吗?

我想可以这样,这个我不能代表公司,只能说是我想企业用户,不过这是个双赢的结局,如果Google假如说收了钱,可以给用户带来更好的这个应用体验的话,我也许,只能说也许,但是Google一般来讲,它主要面对的这个客户还是个人客户多一点,然后所以也是广告模式也是比较成熟,所以往这个方面发展可能性更大一些。

   

11. 那么如果说一个架构师要在Google的云计算平台,就是刚才提到这个App Engine上面做应用的话,他需要做那些准备?或者另外注意哪些事项?

我还是先讲讲做那些准备,注意事项,我想你在开发过程中可能总会遇到各种各样的问题,这个没有关系,可以跟其他用App Engine大家一起交流就好了。准备现在是这样子,App Engine的API提供了,我个人认为还不算太完备,他现在只有Python开放的API,他的Java的API还没有推出,但是很快会推出了,所以的话,像一般架构,就说如果咱们是写程序,程序员,工程师,可能更多的在语言方面,在API方面需要多注意一些,那么架构的话,我觉得更多的是一种它的概念的转换,就他原来可能是习惯是,他是软件开发的这套思路,你现在把它变过来,你要变成它是一个Internet Service,它是一个互联网的服务,这个概念一定要转过来,如果这个概念转不过来的话,我觉得你会浪费App Engine资源。

   

12. 有没有哪些比较特别注意的事项?

特别注意的,想想看,比如说它对数据库什么的,这个是不太好,因为Google不是做数据库起家的,我们是做File System文件系统,都是拿这些东西起家的,所以的话,我觉得还是刚才我讲的,就说一定要从概念上转变过来,不要再拿传统的软件开发的模式再像Google的App Engine,这样不行的。

   

13. OK,那么另外一个问题就是什么样的企业,或者组织是适合用云计算的,那么什么样的企业或组织就是还不方便用云计算,然后另外一个就是云计算的不足之处,你认为它在哪里?

就像我刚才讲得,我还是想回到刚才那个电网的例子,如果有那么一天云计算真的像电网一样方便了,你想没有企业不用电吧?当然云计算如果到了那一天的话,我想没有企业不适合用云计算,现在的话,这个云计算我个人认为,他基本上还是比较的,像先锋性质的这样一个实验性的东西,所以这个如果有些企业,他可以,比如说他想涵盖很大很大的规模,或者比如很多地方,他现在架构是那种比较分布式的,这个他可能跟云计算契合会比较方便一点,有些假如说传统的做财务软件的企业,然后你是开发的思路都是,像我刚才讲的是传统的思路,那么你转到互联网的服务上面来,可能会花一段段时间,但我觉得就是最终还是,大家可能都会往这个方向转,因为实在是,每个企业对于自己维护自己底下一大套的IT的东西是没有必要的,把这些都扔给云计算,都扔给那些服务器,然后减少自己的这些费用,然后把更多的精力投入到自己这种企业的商务开发上面会更好一些,我现在是这么认为。就是互联网企业用云计算可能会更适合一些,跟互联网相关的Video,网上的视频,或者网上很多很多的像这种,我们叫Content Distribution,我觉得这个都比较适合。

   

14. 那是不是说那些比较关键性的应用?比如金融,包括一些购物还不太适合?

我觉得你这个问题很有技巧,这个也不能说不适合了,像App Engine上面现在已经事实上有不少像这种电子商务的网站,已经在上面了,我只是想说这个,有人说Google还是做搜索引擎起家的,可能在这个比如说像金融的互联网安全,他是不是有特别的需要,在这个方面,可能我们关注的力度还不够,更多的关注尤其是安全方面,更多的是说搜索这个引擎所面临的问题,那么的确你说现在是不是有用户的数据都非常非常的那种敏感的,就可以使用云计算,这个的确是个问题。

   

15. 那我们最后一个问题,来看一下云计算,就是你认为云计算在接下来一段时间,他会有什么样的发展和变化?

我刚才讲说Google有10年的云计算经验了,都是在公司内部的,所以现在要推出这个概念,其实最重要的是说,让更多人去用它,让更多人用的话,首先让我们Developer要用,所以一定要有很好的API,这点上是毫无疑问的,所以在云计算,Google现在当然在这上面花很大的力气,各种各样的API,地图的API,然后App Engine用API,然后我们叫GData就是网上的存储,各种各样的API越来越多,所以,那么随着API的发展,可能大家会越来越方便的使用这个云计算后面的这个技术架构,然后再比如说,我们还可能特别希望看到,有些什么那种叫杀手Killer Application,杀手应用,这种最好出现一些,这样可以更好的让大家看到云计算它的威力在哪里,所以我想下面一段就是API和Killer Application。

   

16. OK,非常感谢你接受我们的采访。

没问题,谢谢。

你可能感兴趣的:(谷雪梅谈云计算)