山姆·里奇(Sam Ritchie)最早并非一名程序员,他曾是美国短程皮划艇代表队中的队员之一,并在2009年的世界锦标赛中折桂而归。
里奇曾就读于普林斯顿大学,专业是机械和航空航天工程;但直到他叔叔在2011年底过世以后,他才攀上了作为一名程序员的巅峰。那时里奇创造了一种工具,而这种工具对于Twitter这个正在繁荣发展中的网络“帝国”来说是至关重要的。
这种转变中当然混杂着某种很诗意的东西。里奇的叔叔丹尼斯·里奇(Dennis Ritchie)是计算历史上最重要的软件开发者之一,他在距离普林斯顿大学不远的贝尔实验室中创造了C编程语言,这种语言直到今天仍旧是世界上最流行的编程语言。此外,丹尼斯·里奇还跟和肯·汤姆森(Ken Thompson)一起开发了UNIX操作系统,这种系统是今天在市场上出售的每一台苹果台式机、平板电脑和智能手机的基础。
C语言之父的“鬼魂”
“我接纳了丹尼斯·里奇的鬼魂。”山姆·里奇以其特有的玩笑口吻说道。“我曾是个糟糕的程序员,然后他就去世了。”
在丹尼斯·里奇去世以前不久,山姆·里奇加入了Twitter,并在这家公司中与一位名叫奥斯卡·博伊金(Oscar Boykin)的前量子物理学教授联手,共同开发出了新时代开发工具Summingbird。这种工具之所以让人称道,是因为哪怕是初出茅庐的程序员也能用它来迅速而相对容易地开发软件,从而对海量的在线数据进行分析。
在Twitter网站上,用户每一秒钟发布的Twitter消息多达5700条左右。因此,能对数量如此庞大的数据进行分析的软件简直可以说是价比黄金。对所有这些数据进行分析是了解Twitter服务如何运作并对其进行改善的一种方式,同时也是让广告主能精准定位目标对象的一种方式,而这正是Twitter业务的核心所在。
又一个里程碑
随着软件行业的不断发展进化,一种新类型的软件已经浮出水面,这种软件能很好地利用每一秒钟都会涌入互联网的、永无无休止的信息流。而在这一发展进化的过程中,Summingbird可以说是树立起了又一个里程碑。这种新类型的软件主要是由互联网行业中的各个巨头所开发的,涵盖了从分布式系统基础架构Hadoop到Twitter旗下实时数据处理平台Storm等各种软件和工具。
而Summingbird所提供的正是一种能让开发者同时利用Hadoop和Storm来开发软件和服务的方法,从而令这些软件和服务兼具Hadoop大规模“批量处理”和Strom实时分析的两家之长。
“Summingbird能描述一种逻辑,这种逻辑既可以实时运行,也能在Hadoop上运行,或者是在你笔记本上单机运行。”博伊金说道。“你可以在所有这些不同的地方运行这种逻辑,而无需对其中任何一种运行方式感到过于担心;而且,随后你还可以把所有这些结果都合并到一起。”这是一种前所未有的创举,而随着公司不断地朝着实时分析的方向进发,这种工具的重要性将会变得越来越大。
在里奇和博伊金开发出Summingbird以后不久,一位名叫Wen-Hao Lue的Twitter实习生利用这个工具为该公司开发出了新的Headlines服务,这种新服务能迅速捕获与某一条Twitter消息有关的新闻和网页的链接,然后将其嵌入到这条Twitter消息中去。Headlines服务需要有能力获取庞大的计算能力和海量的数据,而Lue利用Summingbird工具毫不费力地获得了这种能力。
Lue曾说过,如果没有Summingbird这种工具,那么在他短短四个月的实习期里,想要完成开发Headlines服务这样的一项任务,那是绝对不可能做到的。
难用的开发工具
大学毕业以后,山姆·里奇开始涉猎编程领域,为苹果iPhone开发过软件,最后走上了在线开发的道路。他曾到一家名为BackType的公司面试,后来这家公司被Twitter收购,而Strom平台最初就是从该公司中开始构建的,当时由一位名叫南森·马兹(Nathan Marz)的开发者负责开发。在收购交易完成以后,这种工具变成了Twitter基础设施中不可分割的一部分。
“你不妨把Twitter网站上的可用数据想象成一条条水流,到处都有花园浇水用的那种软管在绕来绕去。”里奇说道。“而Storm就像是一个淘金盘,能帮助你淘出金子。”
跟雅虎和Facebook等其他互联网巨头一样,Twitter也曾使用Hadoop来运算数量庞大的数据,但其运算速度较慢。而且,跟Storm一样,Hadoop也相当难用,即使是对经验老道的程序员来说也并不例外。就这两种工具而言,如果有程序员想要利用其庞大的力量,那么首先需要学习特定的专业知识;而且,即使是在掌握了这些知识以后,想要利用这些工具来开发软件也是很困难的。
“不搭调的”二人组
幸运的是,里奇遇到了博伊金,后者曾长期致力于量子物理学领域中的研究工作,随后才加入了Twitter。而后来的事实证明,粒子物理学家相当适合开发那种运行现代网络服务的复杂软件。举例来说,流媒体视频服务提供商Netflix的云架构负责人阿德里安·科克罗夫特(Adrian Cockcroft)就是一名物理学家,大数据公司Cloudant的两位联合创始人麦克·米勒(Mike Miller)和艾伦·霍夫曼(Alan Hoffman)也是如此。
“那是十分常见的事情。一般来说,从物理学和数学转向计算机科学,可以说是一种‘定量流动’。”博伊金说道。“物理学家们经常都会被他们很可能将可解决某种问题的想法所吸引,或是被灌输这种想法。”
从表面上来看,里奇和博伊金看起来如此不同。40来岁蓄有胡须的博伊金无疑散发着一种大学教授的气息,在表达想法时会十分认真地选择措辞;而20来岁金发碧眼的里奇则是那种潇洒放纵、饶舌多嘴的类型。但是,两人之间却达成了一种默契的合作关系,能互相补足彼此想法中的不足之处。甚至于,两人还会互相嘲笑彼此之间的不同之处。
比如说,当有人要求博伊金描述自己的背景时,里奇会抢过话头说:“你有很多东西能说啊,兄弟。”然后博伊金会说道:“他是在说我老呢。”
在Twitter结识以后,两人很快就认识到他们想要开发同一样东西,那就是一种通用的工具,可以同时利用Hadoop和Storm的长处。
代码的“图书馆”
里奇、博伊金和其他一些开发者花了几个月的时间,终于设计出了Summingbird。基本上来说,这种工具就像是一个代码“图书馆”,允许开发者开发能对Hadoop上的海量数据进行运算、随后可通过Strom平台对其进行实时分析的单一软件。
“Hadoop非常可靠,但速度有点慢。而且,这种工具还可允许你进行实时分析。”博伊金说道。“对于这两套系统以及它们合并的复杂过程,你丝毫都不必感到担心。”
两人之所以把这种工具叫做“Summingbird”(直译为“求和小鸟”),是因为Twitter内部的大多数软件工具都会以该公司著名的“小鸟”主题为名。而同样符合Twitter传统的是,这种工具是开源的,公司外部的任何人都可免费使用。现在,一些外部人士已经利用这种工具进行了软件开发工作,例如Hadoop开发者及用户汤姆·怀特(Tom White)等。
怀特说道,Summingbird在边边角角的细节方面还比较粗糙,但他认为,这种混合式“大数据”工具的未来需求将是庞大的。“你需要拥有一个整体的系统,能把这些(大数据)系统的用途都结合到一起。”他说道。
加州大学伯克利分校也开发了一个名为Spark的平台,能同时进行Hadoop式的批量处理和Storm式的实时分析工作,但这个平台与Summingbird不同,原因是其并不能像后者那样提供一种方式,以便合并来自于这两个“世界”的处理结果。
原创文章,作者:kepupublish,如若转载,请注明出处:https://blog.ytso.com/tech/linux/44271.html