Friday, June 13, 2008

不能做恶


原本,费城才是美国的首都,后来成了沽名钓誉的华盛顿……细节不提。


我个人很喜欢费城,旧议会大厦、国会博物馆,林林总总,历史沧桑,尽收眼底.费城是希腊语,意思是兄弟般的爱,由贵格教徒最早筑城,是非常非常嫉恶如仇的。


读者可能说了,Google和费城有个蛋关系?这可要从一个部署在费城的神秘服务器说起。


Google为中国政府版本部署了防火墙,在中国google和美国google之间建立了一道钢铁长城。


注意,这和那臭名昭著的GFW可不是一回事。这个防火墙是带ALG和4层以上DPI的。


ALG是应用层网关,广义上讲,是分析协议命令的。同时,也可以屏蔽NATs的参数。


比方说,你发命令说,送这个灾区孩子到青海!这是老大的命令;而送孩子这件事情,老大可不会亲自去,而是别人,承载负责人,也就是运输队,去了青海。ALG就是负责命令和具体的承办之间的桥梁。


也就是说,ALG和Google的具体应用程序息息相关,因为相关的命令是为应用特殊定制的。
DPI,指的是在协议的基础上对承载数据进行相关性分析的技术,英文是Deeper Packet Inspection,目前很火的技术,有感兴趣的可以探讨探讨。简单说,DPI在协议数据的相关性方面起了重要作用。


一般来说,你去邮局送信,那么你得先找到你家附近的邮局,在网络看来,这是三层功能-路由功能。而找到距离你家最近的邮局,可就是4层或者以上,我们一般叫4-7层应用了,因为这和邮局没有直接关系,这需要你查地图,然后用尺子量,看看到底哪个最近。


你跑腿去邮局、还是骑车、或者开车,在去邮局的路上你会不会迷路,会不会摔倒,会不会干脆碰到地震导致你到不了邮局,这都是3层以下的功能了。


这没什么不好理解的,只不过就是一个编号一样,就好比你家在西长安街5号,你非要问,为什么是5号而不是6号一样无聊。


DPI就作了这些纵深的监视工作。以保证这条链路是通畅和合法的。


另外,更重要的是,DPI在多个纵深的链路之间建立了逻辑关系,那么只有逻辑合理的纵深链路才可以通过我的防火墙。--逻辑合理的定义是,比如你去上厕所,那么你肯定要去卫生间,如果你发现一哥们发了上厕所的命令,却本客厅而去,那么肯定出了问题了,有人非法入侵了。于是你得干掉这个链路。


这就是DPI的NB之处了,当然,也是弊病的温床了


至于其他具体技术细节,由于时间久远,不太记得了,所以不敢多写。总之,意思就是说,除了普通的URL过滤之外,还有一些基于内容的过滤和分析,碰到了敏感的玩艺儿,禁止掉。


我想,写到这里,技术人员应该明白为什么google长城和GFW是有区别的了。


在Google设置了这个墙以外,没想到设立在费城的一个大型服务器被中国屏蔽了。你知道,屏蔽服务器,就意味着金钱的损失。


与此同时,其他的服务器也纷纷告状,中国的用户不能访问了。


金钱的损失导致了商人们的疯狂。按照美国惯例,参议员们就开始口若悬河、滔滔不绝了。


参议员们诘问说,你们从费城的法典中赚取了你们的座右铭:不要做恶,但为什么帮助中国人建造这种作恶多端的数据屏蔽?你居心何在?你这种企业有何脸面在世间运作?


参议员一席话说得Google面红耳赤,不能回答。google强辩说,我们做国际化业务,必须要遵守人家本地的法律,对不?有什么问题?


炒来炒去,最后说话的还是股票。股票跌了,Gooogle就开放,被中国干掉;股票不跌,Google就封闭,中国绕了它。就这么折腾来折腾去的闹腾。


最后,股票稳定了,于是Google也就消停了。


总之,在商业看来,金钱才是老大,意识形态是附属的,也就是说,是跨越国界的。西方人称之为资本的自由。


这就是Google所面临的国际化问题之一:法律。


在中国以后,Google又在东欧、朝鲜、古巴。。。总之把,大部分都是这种社会主义哥们国家。。。碰到了类似的问题。


除了防火墙之外,一些国家,比如穆斯林国家,他们更是特殊要求内容的本地化,古兰经的神圣化,不可存取性。。。等等。。。等等。。。这是人家法律的要求,于是Google又不得不面临技术上的挑战:
自治的联邦网络体系怎么走??


采用和松散的多入口?还是紧凑的单入口的技术……

怎么办???


且听下回分解。

Labels:

Google的生蛆原理(Google构架之四)

续前(《自建内容的Google(Google架构之三)

作者:Paul Wang

在法律上合法以后,Google就开始了技术设计。

这地儿技术人员太少,所以我不做更深入的探讨,只描述个大概。

前面说了,有个WEB的监视设备,那么下一步就是对web的内容进行剖析,分解,和分布。

在设定web剖析的策略之前,我们需要明确我们要剖析什么?

比如,一段Video,其中有萨朗私通不穿内裤接受询问的镜头,我想看,能找到不?

对不起,google的回答是:不能。

ok。我是一个音乐迷,我无意中听了一歌,唱到,“。。。欺骗之后的疲惫。。。”,别的嘛也不知,那么我想找到这首歌,行吗?

对不起,google的回答是:不能。但是,google可以让你搜索歌词库,然后找到歌名。

这就明白了,google的搜索是基于文本的,而不是流媒体--就是指音频、视频等。

其实,流媒体搜索是很复杂的事情,其复杂性不在技术上,而在于商业模式,无法统一,也无法实施。至于技术方面,早就风行世界的mpeg-7,mpeg-21标准,很容易就可以保证流媒体的可搜索性。

按布林的说法,当时google如此决定完全是因为成本的原因:他不可能有钱做流媒体搜索。

分析完文本之后,google将数据结果打包分类分布,他们用术语数据Barrel来形容,就是数据筒,每个桶里都放着打包分类的数据。以加快搜索相应速度。

除此之外,完全依赖于操作系统本身自带的输入输出系统,无法做到高效率,于是Google又开发了基于磁盘数据影射的搜索方式,绕过操作系统,直接搜索。这也并不困难,无法就是缓冲磁盘阵列,然后进行代码的模式匹配-就好比你拿个筛子,合适尺寸的走,不合适的留。

为了相应更高端的搜索要求,他们又做了仿射-也就是说,可以通过不同的途径找到同一的内容。这个更是简单,如果你学过比较好的数学的话。

在这些基本的架构思想敲定后,google开始了服务器的布置,并实现了冗余部署。这个很重要,冗余是保证效率的关键,其目的很简单:让最需要的人在最快的时间内存取最需要的数据。

就这么简单。

为了管理冗余和分布式部署,google开发了全球的文件系统,每一个节点可以mount,也可以卸掉ummont-就好比是需要的时候上车,不需要的时候下车。

这就是google的生蛆原理。不动声色的监视、蠕动、繁殖和分布。

技术上OK就可以了?就可以赚钱了?

可笑!记住,这世界,想赚钱,你得先有钱,所有那些记者们写的如何白手起家的故事都是编排给穷人看的,好让他们有了生活的希望。

要玩钱了,这时候,拉姆·西里亚姆就出马了,这个天才的不折不扣的王八蛋该演戏了。

于是,演出正式开始了。

...to be continued

相关:关于Google的五个“啊呸”
老二永远为老大服务--关于Google架构的前言
像蛆一样蠕动(Google架构之一)
Google还没起飞就会夭折么(Google架构之二) 自建内容的Google(Google架构之三)
Labels:

你为什么不试试树杈?

按照很多学者的说法,女性心理中很强大的趋同意识是来自于她们不希望也不喜欢自我开放、精神自由的体验。

我不是女人,对此不能肯定。但男人却是绝对完全相反的---(也许如今的小男孩们不这样了,不晓得)。

到底是不是如此呢?

不过,从大街上女人们的装饰风格的趋同化来看的话,这些学者们还是很正确的。

这不,今年夏天,我突然发现一大群女人们拎包的姿势变了,他们中的很多不再用手拎包了,转而用臂弯,把包跨在里边,然后小臂向前突出,走路的时候,保持一个基本固定的角度。从远处看,仿佛树杈。

如果这位腰很粗,那么就是一大树树杈;

如果这位腰很细,那么就是一小树树杈;

如果这位臂很长,那么就是一长树杈;

如果这位臂很短,那么就是一短树杈;

……

帖子正写道这里,办公室一妹妹走过我面前,不怀好意的对我说,

“呦~~呦~~~想老婆呢??~~~怎么脸色有桃花呀?”

我也不含糊,斩钉截铁的说,“……肯定不是想你!!!”

说罢,这位也懒得搭理我,哼了一声,扬长而去,我下意识的抬头望去,

哦!上帝!……树杈!

Labels:

Monday, April 28, 2008

自建内容的Google(Google架构之三)

布林琢磨来琢磨去,在纸上写了几条:

1。法律神圣不可侵犯。

在美国这地儿,你想和法律玩儿,简直是在找死,除非你有辛普森那样的大运,和金钱 - 即使你有,你也不能保证一定能赢。

2。搜集的信息源先用google自己的。

这就是Google网络图书馆的概念,goole和几所大学签了协议,建造这些电子图书馆。那么我搜罗的信息都是我自己图书馆里里的,法律许可,你管不着。想必大家都在你工作中、生活中使用了很多很多了。不在赘述。

3。每当搜索我自己的信息时,愿意发布自己信息的,把你的名字发布出去。

就凭着这三条,google从无到有,发展了起来。

随着时间的推移,服务供应商渐渐体会到在线搜索的好处,也越来越多地渐入到了发布了行列。与此同时,服务也渐渐达成了不成文的共识:在DNS(就是地址本儿系统)许可的范围之内的信息,属于可以搜索的合法的内容之列。

实际上,关于这个内容,就连最严格的塞班斯法案也并没能清楚地描述,理由很简单,美国是一个强调民主的国家,个人、公司的利益高于一切,所以没有相关的硬性指示,由各地区自行规定。

但是,在DNS系统之内的信息,比如一个不小心暴露的link,也能让google的引擎去探测,钻探,最终让你的信息变得可以搜索。

怎么办?

google答应服务商,在NATP的概念上,google不涉及,不探测,不公布,不泄露。

NATP是个嘛东西呢?

我前面说了,你家是有公共地址的,比如LLF家的地址。但是,LLF家的厨房和客厅是没有公共地址的,换句话说,你不会在地址本上找到:北京市。xxxxx。。。号厨房;北京市。xxxxx。。。号客厅;这样的地址。

显而易见,厨房和客厅是私有的。这叫内网:内网无处不在。你只要运行一下你机器的Ipconfig,看看你的IP地址是不是192.168。。。。。,如果是,那你就是处于内网,相当于LLF家的厨房和客厅,外人看不到。

但有时候FanFan想向外人显摆她新买的新鞋,于是她就向全世界公开说,欢迎看我的新鞋,请访问北京市。xxxxx。。。号客厅。

OK,这时候,内网的内容就临时性的公开到了外部,这叫NAT(网络地址转换),一旦Fanfan显摆完了,她就关闭了这个临时公开的的地址。也就是说,北京市。xxxxx。。。号客厅不存在了。

听明白了吗?这就是NATs技术的核心。。。我发现好多人NB烘烘的和我说,我懂P2P,我懂NATS,。。这算个狗屁技术??!!??!。。不晓得这些年轻人在NB在炫耀什么?!?!

话说回来,google答应服务商不去碰及所有有关内网的信息。

说实话,这也不是google多么的圣洁和高尚,因为内网信息的临时性,无法让google得到持续一定的数据来源,这才是杀手锏。

就这样,在布林半情愿、不情愿的情况下,google建立了起来。

写道这里,各位可能会问:

布林哪儿来的钱建立他的图书馆的呢??一个穷学生怎么能有那么多钱呢???

我也想建图书馆,可是我没钱,咋办呢?

是阿,到底,布林怎么有了三头六臂,搞到了钱让他启动google呢?

难道是贩毒不成?请听下回分解。

(。。待续。。。)

Labels:

Friday, April 25, 2008

Google还没起飞就会夭折么(Google架构之二)

和老鹰起飞的逻辑一致,Google走的是地下路线,土行孙的路数,但也是先监视Web的动作。

在讲web之前,我得先插一句,你们要知道,这世界可不是只有一种网络,Web,事实上Web是最后的网络。在web之前,有电话网络、收音机网络、电报网络、电视网络。。等等各种网络,他们和Web完全不同。布林实际上最早琢磨的是如何监视和利用电视网络,这样的话,google可以很容易的和营业额很差的一些服务供应商联营,实现盈利的目的。

可惜,电视业的老大们,像著名的CNN之类的,不好使,看不到google的前景。于是布林就断了此念头,专心于web。

web很简单,很容易监视。因为Web是通过地址本来实现的。

比如LLF家,中国北京市东城区鼓楼东大街xxxx号xxx楼。这就是一个确切的地址。

web也是一样编码,也有这样的地址,只不过它的写法不同,变成了64.233.189.99。(这是google的地址)。

总之,我可以知道所有的地址-这不过是个数字游戏而已-,那么监视其内容也就顺理成章了,对把?

但是,出乎布林意料的是,他碰到了前所未有的法律问题:我家的地址并不受法律保护,但是我家的东西受保护,你不可以监视!!!!!!

的确,假如你家安了摄像机,世界上所有人都能看到你家的一举一动,你会不会很恼火呢?

于是这些人开始反对google,理由只有一个:

我有反对被搜索被检测的权利!

这一下子,布林的google就处于了绝境,因为你违背了人类的隐私权!!

怎么办?

布林急得嘴角起跑,脚底生疮,团团措手,而毫无章法。难道说,google还没有起飞,就夭折了吗???

Labels:

Thursday, April 24, 2008

像蛆一样蠕动(Google架构之一)

你果真认为人类是世界上最成功的动物吗?真的吗?

如果你说是,那么很不幸,你没文化:低头看看地上的蚂蚁,它们无处不在,和人类一样成功;抬头看看嗡嗡叫的蚊子 - 如果你能 - 它们也和你一样成功!!

你杀不完,煮不烂,击不溃它们!永远不能。

速度不快的坚持不懈的蠕动、迁移和尽心尽力的繁殖,才是王道,也是蚂蚁们和蚊子们大肆繁荣的哲学原理。

布林如何不懂得这个生物界最基本的道理?

于是,Google架构的第一个特色就是:蠕动,迁移,和繁殖!

顺便说一句,我一定用最通俗的语言讲Google的架构,放心,保你高小文化也能看懂。

大家都知道老鹰眼神好,可你研究过老鹰是如何抓兔子的吗?

老鹰首先起飞,选一个区域,比如华北平原;盘旋一把,来到了十三陵水库边儿;选择一个树木不茂盛之地,便于观察。于是开始漫长的盘旋和等待,等待兔子的出现,一爪击之,吃掉!

老鹰抓兔子的办法和启示就是当年所谓不可一世的斯坦福大学的导致google产生核心思想的论文的基本思想。

当然,Google没有老鹰那么的雄壮,low class的多得多,他们只能蠕动。

...to be continued

Labels:

Friday, April 18, 2008

老二永远为老大服务

 

老二永远为老大服务这个俗语大家肯定能看懂,我就不解释了。

不懂这个俗话的也不要紧,他的意思就是说,但凡你要成功的做一件事情,你必须先要有正确恰当的动机,动机决定一切。

进而要有功能化的东西,没有功能,无论你怎么口吐莲花,怎么滔滔不绝,也是一水中望月,空中楼阁。。

google也不例外。

Google老大的故事被新闻界吵得神乎其神,也就是一忽悠。在这些炒作中,最煽情的莫过于布林老大的一番独白:我小时候生在俄罗斯,家里穷,但我爱学习,可是图书馆太贵,我去不起。于是我就梦想,如果有一天,世界上所有爱学习的人都能免费去图书管,那么会多好阿?

。。。。

怎么样,这故事听起来娓娓动听,颇为煽情把?

但实际呢?实际上又是如何呢?你知道,这个世界就是这德性,NB的人在那里夸夸其谈,其他大多数的傻人在那里留着口水点头称是。

实际却是,Google开始起家,瞄准的方向却是广告,在线广告,这是能挣大钱的东西,这和布林小时都的悲惨遭遇毫不相关。

如何为在线广告提供一个大量金钱的出口,就成了布林的动机 - 也是google的动机。

并不像媒体宣传的那样,google的几个脾气十分古怪的小子们聚在一起搞研究。正相反,他们借钱租用了Yahoo的搜索服务。

和中国软件业的现状类似,他们对Yahoo做了反向工程 - 意思就是破解,了解了Yahoo是如何工作的,细节我后面会讲到 - 半年后他们说,Yahoo太烂,退了。

可怜Yahoo,就像当年IBM支持微软一样,不明不白的就培养出了一个白眼狼。

这样,Google就有了自己的功能:yahoo + 斯坦福大学的几个研究报告。

老二,老大都到位了,剩下的就是技术人员开始动手了。

介绍完google的背景。下一节,我开始描述第一个阿呸:google的架构。

Thursday, April 17, 2008

关于Google的五个“啊呸”

有人说,Google的技术太NB了,我一辈子都学不会,那么我告诉你,阿呸!

有人说,Google肯定和美国政府有关系,是特许的,否则怎么会统治美国的搜索界,进而又统治了全世界?那么我告诉你,阿呸!

有人说,Google的技术属于人工智能领域,高处不胜寒,是高度机密的,别人无法得知,那么我告诉你,阿呸!

有人说,Google搜索引擎使用了极其昂贵的硬件设备,超级机器,别人想模仿都不成,那么我告诉你,阿呸!

有人说,Google太油菜了,他们有无数的创新和专利,全世界第一无二,那么我告诉你,阿呸!

下面分别掰吃掰吃这5个阿呸,作为开篇来让你进入Google的世界,剥掉google性感华丽的外衣,让他一丝不挂,让他彻底的裸体!!!

Wednesday, November 29, 2006

作普罗米修斯还是西西弗斯?

假如你去饭馆儿吃饭,剩了不少,也许你觉得舍不得,于是打包回家。可事实上第二天你打开冰箱门时却发现你对这把冰箱弄得一股怪味儿的残羹剩饭毫无兴趣,直接奔垃圾箱去了。于是你既没有省钱,还发现冰箱中的其他食物因此而很腻歪。

就像这样,在波士顿我犯下了我一生中迄今为止最大的错误。把我所拥有的技术水准比作打包的剩饭,以备后用;而同时又想在商业上有所展足,但又不愿意放弃我的技术背景,想面面俱到,这个比作冰箱,结果呢?除了把自己弄得一身怪味儿外,毫无所获。就这样,摇摆不定,双双涉足。

不会抛弃,不会忘记,把自己多年来的技术经验奉为圣明,但实际上对纯粹的商业来说非但没有任何帮助,反而成为了沉重的负担,事实上以前的优势成了如今的劣势,一句话,没有坚定自己的思路。直到今天,我还在为此而付出沉重的代价。

关于这个问题,一会儿再谈。

看到坛子里许多人喜欢谈技术,那么好吧,就分2个部分写这一章,第一部分写技术,第二部分写非技术的东西。

公司总部和深圳完全不同。要知道那是在90年代,TCP/IP都不是广泛的被人了解,他们就已经开始研究Internet的安全市场了。我被分配到了研发部,所谓研发部,就是不赚钱的一个部门,纯粹的做一些前瞻性的研究,以准备将来的市场。应当说,我们当时做的研究其思想是相当简单而直接的:用硬件来进行Internet安全理念的设计,而不是软件。

简单地说,好比你家电闸上的保险,你得随手预备几个保险丝,一旦电闸上的保险丝烧掉了,那么你很快就可以换一个新的以保持供电系统的正常。

我们当时设计了数个Blade组成的阵列(7-8Blade),用来防范Brute-ForceDDoS。一个Blade中发现问题和异常,立马切换到另一个,重新配置,这样,不论黑客如何攻击,总有一个正常的转换开关,就好比保险丝一样。而且,每一个Blade都布置了强力的操作系统和软件,可以实现许多复杂的算法。虽然说理论上讲这并不能保证绝对的安全,但是这种伸缩性的设计确实可以在规定的操作规程基础上满足安全的需要,而且简单易行:需要的时候不过是关掉一个Blade,启动另一个而已。

这是典型的美国文化、美国设计:简单、实用而且维护方便,费用低廉。

这个研究部加上我,一共有15个人。他们几乎都是一色儿的MITPHD,而且硬件工程师居多,但他们只做到Firmware这一层,剩下的Linux嵌入式部分以及上层,由我和另2个新人来做。而我个人则主要负责Layer3以下的核心部分以及Interface,这也是总部为什么把我从深圳调来的原因。

虽然我从来没有做过嵌入式,但操作系统一向是我的强项,于是进展比较顺利。但有一个麻烦,就是SMP(对称多处理机系统)。那些PHD牲口们把Blade作的很复杂,而且每个板子上有2CPU。现如今的Linux,大约是从2.2吧?我记不得了,已经对SMP有了很好的支持,但当时的Linux核心却没有。当然UNIX早就有了SMP支持,但无法取得源代码。

于是自己设计SMP就成了我在波士顿立足的第一个利器。做得好,肯定立足,否则就只好灰溜溜的滚回深圳了。

我的思路很简单,比如一个公司的普通部门,一般都有2个领导:一个经理,一个技术负责人;在公司的日常运作中,此2人有一个分工,来处理所有的业务流,当 然大多数情况下是并行的。当然他们还要有合作,那么也就有了串行化的需要。SMP有一点点不同,因为现实中的经理和技术负责人是不同的,而SMP则是全面对称的。这样实际上简化了现实的情景。

那么在软件的角度来看,一个虚拟的域(Domination)组概念可以来模拟2个领导,很显然,还需要一个全局的Schedule来协调2个域。对于我的工作而言,我只要关心从MAC以及其它设备上传来的数据在SKT_B的基础之上加上一个Schedule对象、Domination对象,当然,也需要Spin-Lock这样的空旋锁定机制,我还需要把它改造成逐渐升级的空旋,从HIGH LEVEL上,肯定可以满足我的需要。

于是我把的Proposal提交了领导,Douglas,一位日后对我非常有影响的法国基督徒,MIT的教授。Doug很满意,说,你干吧。当然,在high level上,这个问题很直接,但实际上许多细节完全不适应于SMP,因为当时的核心架构在设计上压根儿就没有这样的意识。

我花了整整2个半月,终于完成了雏形。在测试的那一天,部门所有的人都坐在我旁边,加电、启动,在MAC上送来源源不断的数据,在Interface上,数据哗哗的,流畅、顺利,2CPU同时工作!!!哈哈。。成了!

Doug仔细看了看Log,点头说,good Job

当然,这仅仅是一个雏形,距离现实的应用还差距甚远。虽然如此,但我的Idea可以工作了,这是一件大大的喜事。

随后的几个月里,我加载了STACK,以一种弹性的一致的方式处理不同的业务需要,并最终通过了UNIX级别的BenchMark测试。换句话说,我做成了。以后我再没有接触过2.2以上版本儿的Linux核心,我不清楚他们是怎样处理SMP的,但我估计也不会比我的思路差多少。有知道的人我们可以切磋切磋。

顺理成章的,人事部门和我签了正式合同。

这一天,我高兴得在心里说,波士顿,我终于真正的来了!

顺便说一句,在中国,有一个很不好的概念,很多人总觉得一个程序员,一个搞所谓科技的人员就应该呆头呆脑,高高在上,把自己的工作和现实生活脱离开来,高处不胜寒,这是非常错误的。

软件不是科学,是工程,既然是工程,那么就和人们的生活没有多大的差别,不要成天把自己关在屋子里,2耳不闻窗外事,这不会成为一个好工程师。当你读一些看似不相干的闲书,看一些垃圾电视剧,甚至去酒吧喝酒泡妞儿,无形中都会让你理解人们的生活,对你的所谓技术会有极大的帮助!!

这是真的!如果你还意识不到这一点,那么就赶快醒悟把!

作普罗米修斯还是西西弗斯?下一篇,我开始写非技术的东西,写一些生活的事情,讲述讲述我的普罗米修斯经历和西西弗斯的悲惨。

大家耐心等一等吧。