本篇文章5058字,读完约13分钟
编者按:对于一个好的建筑是设计好的还是进化好的,有不同的观点。今天infoq荣幸地邀请到了前谷歌全球R&D总监tiger,作为嘉宾来看看他的想法。
InfoQ: infoq:2003年,你放弃了博士学位,加入了谷歌,当时谷歌还只是一家初创公司。你能告诉我们一些关于这次经历的事情吗?
老虎:今天,很多人会说,当我辍学的时候,放弃博士学位进入谷歌是一个非常明智的选择。然而,谷歌在2003年只是一个小公司。
当时,许多人说获得博士学位并安全进入研究生院是多么好。不是每个辍学的人都能成为扎克伯格或比尔·盖茨。但我很高兴有生以来第一次做出了正确的选择。
我知道谷歌,因为当时有人偶尔提到它,他说:“你可以搜索一些尝试,网站的名字很难记住。”
当时,市场上没有真正的搜索引擎。我的学长推荐我使用谷歌。一旦你使用它,它就像吸鸦片,你根本无法停止。
所以当我想做点什么的时候,我首先想到了这家公司。
Infoq:当时,我认为你应该有很多选择,比如ibm、微软等大公司,而选择谷歌是为了你的梦想?为了爱好?去改变世界?你认为这是一次冒险吗?我想很多人都面临着和你现在一样的选择。你能给我一些建议吗?
老虎:与此同时,我收到了加入公司的邀请,包括微软研究院和ibm研究院。但我选择了加入谷歌,这似乎就像放弃住在五星级酒店,选择住在地下车库。
事实上,做出这个选择非常简单,因为当微软和ibm接受采访时,他们都面对着一群60多岁的白发老人,但他们都很谦虚,但有些毫无生气。
但我接受了谷歌副总裁艾伦·尤斯塔斯的采访。我记得两年前,全世界的媒体都报道说他从40000米高的平流层跳伞,打破了三项世界纪录。
这就是谷歌带给我的,年轻、充满活力、充满可能性。稳定的背后是不变,不确定的背后是无限的可能性。
我相信,在重要的时间节点和选择中,我们应该抛开更多的“应该”和“最好”,跟随自己的感觉,至少我们不会给自己留下遗憾。
直到我加入公司的那天,我才知道我要做广告后端系统。现在这是谷歌商业化的核心,但当时我们团队只有四个人。
然而今天,谷歌在全球拥有超过50,000名员工。在短短十几年里,公司的规模至少扩大了五十倍。
Infoq:谷歌在技术上总是领先其他公司一步。你想过原因吗?你认为生活中最关键的三点是什么?
老虎:如果我们回顾过去,我想我们可以总结出三点:
首先是需求导向。产品需求、业务需求和用户需求为谷歌创造了前所未有的机遇。
谷歌当时正好站在风口浪尖上,因为他搜索过这样的产品,而互联网恰好处于这个爆炸性的增长阶段!因此,通过搜索该产品产生的使用率和数据是前所未有的,以前没有人见过如此大的数据。这一需求将要求谷歌不要从这些现成的解决方案中寻找答案,也不要寻找现成的产品来拼凑这些解决方案。
因此,我认为谷歌从一开始就非常清楚地看到了这一点,也就是说,市场上没有现成的产品能够解决我们需要处理的如此大规模的问题。因此,我们必须彻底改造它,从零开始建立一个合适的系统。因此,未来的许多技术进步都是基于这一前提。
第二是对技术的高度思考和对基础设施的重视。
当时,谷歌有一些具体问题需要解决。但它并不是真的为了这个问题,它仍然试图使这个东西非常普遍。例如,事实上,当时谷歌的第一批人站在很高的高度。他们不仅仅是为了解决谷歌今天面临的问题,而是为了建立一个前所未有的强大的数据中心。
从数据中心到集群,即服务器集群,一切从头开始。事实上,它一直领先于许多其他公司。事实上,谷歌的这一步非常先进。在这么大一块硬件的基础上,一群非常强大的人已经在其上开发了如此深远的基础设施。
第三是人,选择最好的人,即使他们做最普通的工作。
不管你在哪里,我认为这很重要。当谷歌开始招聘这些人时,它设定了非常高的招聘标准。也就是说,可能招聘的工作并不是特别高级,但他一直在招聘的想法意味着我会招聘最优秀的人来做最普通的工作,而且他还能制造亮点。只有这样,我们才能保持公司持续的创造力。
在谷歌,每天都有很多事情要做,也有很多新东西要学。我认为谷歌做的一件好事是,它在招聘方面非常严格,并且非常注重小而精确的模式。例如,我们做广告词系统,总共有四个人。如果我们合作得好,每个人都很有效率。如果一百个人这样做,速度肯定会慢得多。还有gfs,是三个人写的。
Infoq:你认为商业驱动和技术驱动怎么样?谷歌内部是技术驱动还是业务驱动?
老虎:我认为商业驱动和技术驱动不如商业模式创新和技术创新。但在实践中,我认为没有固定的模式,不同的产品会有不同的需求。
例如,搜索显然是一种技术领先的产品,可能是因为搜索本身没有商业模式。对于用户来说,这是一个完全免费的工具,完全由技术驱动。正是因为谷歌发明了新的pagerank算法,可以得到比当时所有搜索引擎更好的结果,所以技术驱动产生了这样的效果。
但谷歌的广告系统已经成为商业模式创新驱动的产品。技术创新可以解决实际问题,但如果没有发现问题,技术本身就没有实际意义。
当我们第一次开始构建谷歌广告系统时,我们首先想到的是它应该是什么样的商业模式。经过讨论和讨论,我们找到了总的方向,然后在这个前提下,我们思考如何实现技术。当我们想让广告的相关性与搜索的相关性相同时,以前没有任何系统可以做到这一点,因此我们意识到我们需要一个强大的信息学习系统,它需要以前所未有的规模处理数据。按照这种思路,我们首先构建这样一个基础设施,然后将这个广告系统作为一个应用程序来解决它。
将业务和技术分开来看,这可能是因为中国的大多数互联网公司通过分离产品和技术(至少两个团队)来工作。在谷歌早期,我们没有这样明确的划分。谷歌广告词系统当时由我们不到十人的团队负责,从思维、商业模式构建和技术实现等方面进行了讨论和实现。
因此,应该给予哪个优先级取决于产品的属性和要求。
Infoq:业内的一位同事曾经说过,好的架构是进化出来的,而不是设计出来的。你同意这个句子吗?你对建筑的演变有什么看法?
老虎:我不同意。我认为一个好的建筑需要经历几个过程:设计——进化——进化……推翻——再设计,这就是这样一个循环。初始架构必须是根据产品需求和当时的业务需求从头开始设计的。
我认为一个系统的进化一般要经历这样一个阶段:第一个系统必须是欠设计的,从零开始设计之后,它必须是不完美的;第二个版本通常是过度工程化的,因为随着前一个版本的使用,在积累了一定的需求后,你会发现你想在它上面添加很多内容;对于第三个版本,它应该是最合适的,在减去一些不必要的设计后,它更合适。但是,在某个时间点,发现现有的系统架构已经无法维持,跟不上需求的增长,因此需要推动重新设计。
以谷歌的广告系统为例。我在2003年加入谷歌。当时的架构比较简单,分为两层,即web服务层和存储层。所有数据都存储在mysinfoql中,前端web服务器将用户搜索到的关键字转换成数据库查询,然后对所有查询结果进行聚合和排序。
但很快就遇到了问题。我们有两个客户,一个是易趣,另一个是亚马逊。他们购买任何关键词,所以他们的家庭将占据一个独立的数据库,他们的数量仍在上升。当时的解决方案是增加一层隔离,将存储的数据与需要响应在线搜索的数据分开,并增加一层缓存服务器。
后来,将客户作为碎片是不够的。我们改用关键字的指纹作为切分键,从增长最快的数据开始。其他包括不同位置的灾难恢复、多个主数据中心的同时运行等。,所有这些都是后来升级的。建筑的演变通常是这样一个循环过程。
InfoQ:谷歌广告词自最初稳定以来经历了哪些重大调整和优化?国内企业能从中学到什么?
老虎:除了我刚才说的,还有一个升级,可能是在2004年到2005年之间。这一次,结构发生了更根本的变化,主要是考虑到地理上的冗余。因为那时已经有很多钱了,一旦服务中断,后果会很严重。虽然我们从数据存储中有很多副本,但主服务器很容易停机。稍后,我们构建了两组主数据中心,主数据中心中的更新将被推送到所有其他副本数据中心。
一旦主直流发生故障,比如地震,我们可以迅速切换到另一个直流。在正常情况下,这两个系统将同时运行。每个副本数据中心有两个不同的数据流,数据来自不同的主数据流。这两组流是完全独立的,一旦一个流有问题,它可以快速切换到另一个流。
当时,没有成熟的自动故障转移机制。甲骨文当时是可用的,但没有办法将其扩展到那个程度。这个理论似乎已经存在了很多年,但是在实践中,没有一个算法可以在众多的大师中投票选出优胜者。当时谷歌也意识到了这一点。事实上,有许多潜在的问题和一些有趣的事情。
例如,当您有50个数据中心时,如何推送数据也是一个大问题,因为数据量非常大。当时,我们没有使用现成的解决方案,也没有现成的解决方案可以使用,所以我们自己研究了一个。直截了当地说,这是一个酒馆或多重演员的问题。
起初,数据推送的延迟是以小时为单位计算的,一些人利用这种长时间的延迟来重温许多广告的印象。因为我们的副本dc需要几个小时才能知道客户的预算已经用完。后来,经过一系列优化,我们实现了跨dc的最小延迟,如果是同一个dc,则是第二个延迟。
Infoq:你能分享你这些年在建筑方面的经验吗?
老虎:首先,我不认为有任何通用的解决方案可以被采用和使用。尤其是在谷歌,我们非常清楚我们将面临的挑战是前所未有的,它不会以那种方式工作。然而,谷歌的经验确实有助于把握大的技术方向。
例如,从基于规则的推荐系统切换到基于模型的系统肯定会有很大的改进。之后,算法可以被优化,这也将带来改进,但可能很难超越以前的改进。具体算法的实现和优化取决于团队中的这群年轻人。
Infoq:你能谈谈你对生活和事业的理解和感受吗?
老虎:去年年底,我加入了小红树。从头开始的过程对我来说就像在谷歌重新发明广告系统一样令人兴奋。
每一次转变都是为了迫使自己跳出原来的舒适区。在面对和探索新领域的过程中,你不断地学习和测试你潜在的边界。如果你在我二十多岁的时候给我说几句话,也许我会在四十一岁的时候对自己说:
小事跟随你的头脑,大事跟随你的心,没有捷径;艰难的道路更值得开始坚持执念,不辜负最初的意图,及时清理,挑战自我提升。infoq:你接下来的职业计划是什么?
老虎:2014年,为了将谷歌带回中国市场,我开始对国内互联网环境做一系列研究。
这项研究的目的是向谷歌高管建议应该在中国开展哪些业务。然而,在研究过程中,我越来越深刻地感受到,在未来的几年里,在社会互动、移动电子商务、智能硬件和移动支付领域,全球领导者将从中国而不是美国崛起。
我已经在谷歌工作了13年,然后我想在中国市场找到下一个谷歌——在未来的很长一段时间里,我相信小红树将成为我的下一个全部。
Infoq:根据你多年的经验,你能给中国程序员一些建议吗?
老虎:有人曾经问我如何定义一个好的技术人才。
我认为这不能给出一个统一的标准。如果我们用谷歌文化来衡量,这是一个非常重要的因素,我们可以在短时间内学到一些我们以前从未接触过或根本不知道的东西,并把它做好。与学习能力相比,个人经历并不那么重要。
我相信这一点在任何地方都适用,但与此同时,随着回国组建团队,中国工程师和美国工程师之间的一些差异开始慢慢被发现。
中国工程师有一些明显的优势,比如,他们很擅长做事情,有很强的理论基础、很强的算法、基本技能和计算机技能,能把一件事情做得干净利落。
然而,不同之处在于,中国工程师明显没有美国工程师分歧大。我们可能特别习惯于被分配一份工作并且做得很好。然而,硅谷的那些工程师,每天中午吃饭或喝咖啡的时候,都会漫不经心地说,我该做些什么来改变世界呢?他们对这些东西特别感兴趣。
客人介绍
Tiger于2003年退出普林斯顿cs,加入谷歌广告词核心团队,负责广告系统核心技术和产品的开发。由于对广告系统的杰出贡献,泰格两次获得谷歌创始人奖。2007年,泰格回到中国,成立了谷歌上海办公室,之后成为谷歌上海研发中心的总经理。去年年底,泰格加入了肖红书,担任首席技术官。
Infoq是一个有内容的技术社区。这篇文章最初发表在infoq微信公众账号,标识:infoqchina。(点击此原始链接)请联系微信:infoqzone。
原文作者:infoq技术媒体,如有转载,请注明出处:http://36kr/p/5045152
“读完这篇文章还不够吗?如果你也开始创业,希望你的项目被报道,请点击这里告诉我们!”
标题:前 Google 全球研发总监:好的架构需要精心设计而非进化
地址:http://www.j4f2.com/ydbxw/10270.html