出埃及记:Dropbox退出亚马逊公有云服务,自建私有云

浏览:
字体:
发布时间:2016-03-17 08:38:11
来源:

如果你是Dropbox的五亿用户之一,那么你肯定知道它就是你电脑桌面上的一个文件夹,它可以让你将文档存储在互联网上,将文件发送给其他人,并且可以将文档在笔记本电脑、手机和平板之间进行同步。当你需要的时候,你会使用这个文件夹;当你不需要的时候,你就会忘记它的存在。这就是设计者的初衷;事实上,在这背后,你可以发现工程学方面的史诗级壮举。Dropbox在机器网络上运行,它的演化过程集中体现了在过去十年间使得互联网核心发生改变的力量。今天,这个系统已经发展到了一个新阶段。

出埃及记:Dropbox退出亚马逊公有云服务,自建私有云

在Dropbox的第一个八年中,超过5亿用户在其中储存了数十亿的文件。但是,这家位于旧金山的初创公司并没有真正地将文件自己储存起来,和近些年的很多初创公司一样,Dropbox选择在「亚马逊云服务」中进行线上操作。亚马逊云服务由目前世界上最大的线上零售商亚马逊运营。亚马逊云计算服务使得任何人都可以开发或者运行软件,而不需要设立自己的硬件系统。换句话说,这数十亿文件实际上是存储在亚马逊的设备中,而不是Dropbox的服务器中。

但是这一切都已经成为历史。经过过去的两年半时间,Dropbox建立了自己的大型计算机网络,并且将其服务转移到了由自己的工程师设计的机器系统中。该系统完全由自己的程序工程师设计,依托的也是一种全新的汇编语言。在众多曾就职于网络巨头(例如Google、Facebook和Twitter)的硅谷老将们的努力下,Dropbox已经成功地将90%的文件转移到了新的线上帝国中。 当然,这是一个非常耀眼的工程壮举,而且这一举动的意义已经超越了Dropbox本身。更重要的是,它显示出了云计算服务正快速改变着商业运作模式。同时,它也揭示出在过去十年间席卷整个硬件市场的巨大变化。

出埃及记:Dropbox退出亚马逊公有云服务,自建私有云

Dan Williams, Dropbox基础设施经理

今天,越来越多的公司开始选择「云服务」。根据Forrester公司预测,到2020年,云计算的市场规模将达到1910亿美元,一些互联网巨头,例如google和微软等将会以自己的云服务来撼动亚马逊的地位。在去年的第四季度,亚马逊的网络服务部门只获得了24.1亿美元的营收,而年销售额达到了96亿美元,对于没有了Dropbox的亚马逊来说,这已经是很大的一笔营收了。

但是一些公司是如此巨大,从而使得建造自己的网络就显得特别紧迫。由于经济规模较大,从而使得Google、微软和亚马逊可以将云服务的价格降到很低。但是他们并不是以成本价进行销售。「没有哪一位云服务供应商是在做慈善。」Dropbox工程部副总裁Aditya Agarwal说。如果你的公司足够大,通过削减云服务的开支,你可以省下一大笔钱。而Dropbox就是这样一家不折不扣的大型公司。

然而,建造这样一个巨大的网络非同儿戏,任务相当艰巨,而且这并不适用于所有公司。「正确的做法是不要自己建造这样的网络。」前加州大学圣芭芭拉分校教授Urs H?lzle说。目前他在Google工作,主要负责该公司全球网络的建立,帮助运行云计算服务。

他解释道,大多数公司都没有这样的规模以及自己构建网络系统的必要。如果公司成长停滞,那么这样的举动无疑会让公司雪上加霜。这一点可谓非常适用于Dropbox的境遇。最近几个月,专家和投资者们纷纷开始看衰这家位于旧金山的公司,表示该公司的100亿美元的估值其实名不副实,并且很难吸引真正的商业用户的目光。

但是H?lzle承认对于某些公司来说,这样做还是很有必要的。至少从目前看,Dropbox就是这样的一家公司。根据该公司的首席运营官Dennis Woodside,该举动使得公司获得了「必要的经济价值」。更具有讽刺意味的是,Dropbox在逃离云服务的同时,又在不断强调云服务的强大。它在进行这样的基础设施建设,以便让其他竞争者望尘莫及。或许它也会成为一家云服务公司。通过在大型网络领域迈出的坚实步伐,Dropbox正在和互联网巨头Google、微软和亚马逊一起为全球硬件市场以及信息技术指出新的方向。

文档文件的未来亚马逊主导着云计算市场,其主要的竞争对手包括Google和微软。三家公司提供的云服务使得商业和独立程序员可以编写或者运行任何软件,而不需要建立自己的硬件设备。与此同时,这里也存在一个以Dropbox为核心的二级市场,其主要竞争对手包括Box.com、Saleforce.com和Workday等。这些公司相对更加小众,可以在互联网上提供内置软件应用。和一些略微大型的公司一样,它们也可以提供一些商业和开发者能够使用的工具,而免去了建立自己的硬件设备的苦恼,这一点和云服务类似。「该产业的下一个重要时期就是平台争夺战。企业将会在什么样的平台上面建立自己的业务就成为了重点。」Box.com CEO Aaron Levie说。

出埃及记:Dropbox退出亚马逊公有云服务,自建私有云

Akhil Gupta, Dropbox基础设施副总裁

Dropbox希望成为这些平台中的一个,因此它卯足了劲儿要自己建立一个云服务平台。但是这个过程可谓充满了艰险。随着该公司在内置软件领域的继续扩张,该公司将会不可避免地面临来自亚马逊、Google以及微软的越来越大的压力。事实上,这些互联网巨头已经准备好开始挑战那些和Dropbox、Box一样具有文件分享工具的公司。未来文件分享市场的扩张将会明显下降,而离散式文件(例如照片、视频和Word文档等)分享将会变得越来越不重要。文件并不是智能手机的核心业务。随着在线聊天工具以及协作服务的成熟,文件也将不再是中心笔记本电脑应用场景的中心。

Dropbox对于这一切都了然于胸。其超高的市场估值使得其成为一些专家和投资者诘难「独角兽」崛起的靶子。近月来,没有哪家初创公司能抢过Dropbox的风头,同时也伴随着对于其能否和互联网巨头进行抗衡的质疑。通过该公司高管的广泛谈话来看,毫无疑问Dropbox已经意识到了世界正在发生变化,而问题是Dropbox自身的变化(例如花费巨大的时间、金钱和努力将其从亚马逊转移到自身构建的全球性网络中)是否能和世界的变化同步。

初见成效早在James Cowling还在MIT时,他就知道Dropbox的创建者。作为该大学的一名毕业生,他更加关注分布式系统,即在成百上千台设备上进行运算的系统,并且他也曾和Dropbox早期的一些雇员一起学习过,这也让他有机会与Dropbox的联合创始人兼CEO Drew Houston相遇。在Dropbox的发展过程中,他们始终保持联系,并且他们也讨论了Dropbox在自己的网络系统中运行的可能性和操作性。「可以说,这是一个非常大胆的想法。」Cowling说。

出埃及记:Dropbox退出亚马逊公有云服务,自建私有云

Cowling说,2012年他有幸目睹了Google监管Spanner(一个主导了这家互联网巨头很多在线操作的全球数据库)的工程团队。Spanner或许是世界上最大的、也是最复杂的单个数据库,也是分布最广的分布式系统之一。然而,Cowling选择了在Dropbox工作。「我希望可以创造些什么。」Cowling说。Spanner已经建立了,而Dropbox的帝国却还没有。

从目前来看,Dropbox的一部分业务在亚马逊上运行,而另一部分则没有。如果很多用户通过Dropbox分享文件,那么该公司就会选择将文件储存在亚马逊的简单存储服务中,而这些文件的元数据则存储在自己的服务器中。

通过和负责基础设施建设的副总裁Akhil Gupta以及其他人一起工作,Cowling设计了一种软件系统,该系统允许Dropbox存储数百PB的数据——这些数据足以填满数亿个U盘,且存储效率远远高于亚马逊的简单存储服务。他们将这个系统称为「Magic Pocket」。「Dropbox被认为是一个你可以放置所有文件的地方,你不用担心它会消失,而且你还可以随时访问它。这就像是一个充满魔法的口袋。」Gupta说。

从本质上说,他们构建了自己的「亚马逊的简单存储服务」,只是他们根据自己的技术问题调整了软件而已。「我们还没有建造出一个可以替换掉亚马逊简单存储服务的系统,我们只是建立了一个供我们自己使用的系统。」

甚至当Dropbox仍然在亚马逊上的时候,亚马逊就开始表现出会成为Dropbox的一个强有力的竞争者——亚马逊推出了自己的文件分享服务。尽管亚马逊推出的这个版本并不是那么适合用户使用,且缺少Dropbox独特的蓝色文件夹那样的品牌知名度,但是却着实让小型公司非常担心。但是据Agarwal讲述,促使Dropbox撤离亚马逊云服务的主要原因是经济原因而非政治原因。「你需要将这些大型科技公司看做不同的国家,或者友好的邻居,虽然偶尔会出现一些小冲突。亚马逊有非常多的业务,但是我认为亚马逊的首要任务不是成为一个像我们一样的云存储服务供应商。Dropbox已经建立了为自己服务的软件系统,而如今他们又往前迈进了一步,他们建立了自己的硬件系统——Dropbox重新设计了自己的电脑。

规模化难题经过数年的时间,互联网巨头Google、Facebook、微软和亚马逊等都已经设计了自己的数据中心硬件系统——计算机服务器、网络交换机以及大数据存储硬件等。这些公司没有其他选择,只能是构建全部的硬件系统:他们的互联网帝国太过巨大,从而使得使用传统方式太过昂贵,也太过困难。他们需要一种新的更便宜、更精简、且可塑性更强的硬件。因此他们与全球的硬件制造商和供应商共同合作建造了云服务系统。

今天,Google是世界上建造服务器最多的公司,而它几乎不出售服务器。亚马逊和微软也几乎采用了相同的战略。由于这些公司也会运行云计算服务,因此许多其他的商业也会在传统硬件厂商之外的设备上运行他们的软件。当Facebook对其用户定制服务进行开源以后这一点变得尤其明显。现在大量的供应商(包括一些亚洲制造商如Quanta)开始出售基于Facebook硬件的产品。Rami Aljamal亲眼见证了这一发展过程。如今,他在Dropbox中也设计了这样的机器。和Google、亚马逊、微软一样,Dropbox设计了这种满足其独特需求的设备。

出埃及记:Dropbox退出亚马逊公有云服务,自建私有云

Dropbox储存了大量的数据,因此它需要适合这项任务的设备,而这也正是Aljamal及其团队在该公司的总部——位于旧金山的Dropbox总部的实验室中完成的工作。他们将这台机器称为「Diskotech」。「我们最关心的部分是磁盘,这是所有数据存储的地方。」Aljamal说。每一个Diskotech盒子都储存有PB级的数据。50台这样的设备就可以储存人类迄今为止所写的所有数据。

更换轮胎Cowling及其同事从2013年夏天开始研发Magic Pocket软件,花费了大约6个月的时间来建立初始代码。但是这只是开始的很小一步。一旦该系统建立,他们还必须确保系统能正常工作。他们需要将这套系统应用于多个数据中心的设备内部。他们也需要将软件应用于最新的硬件产品上。不仅如此,他们也需要将所有的数据撤离亚马逊。

这整个过程持续了大约两年的时间。毫不夸张地说,这样的项目是一个非常大的技术挑战。但是这同时也是一个物流挑战。在互联网上转移大量的数据是一件事,而将许多设备转移到数据中心又是另一件事,而Dropbox必须要完成这两件事,以便其可以继续为数亿人服务。「这就像是一辆移动汽车,你希望在更换轮胎的同时汽车仍然在运行。」前Facebook网络工程师Dan Williams说。换句话说,在进行数据转移的时候,Dropbox并不能停下来。他不能告诉自己的用户他们的文件暂时不可用。因此,衡量这项工作完成得是否出色的标准就是用户是否有察觉到异样。

当Cowling及其同事完成了初始代码的时候,他们在一个标准化的硬件网络上进行了测试,该硬件是Dropbox的缩略版,其中大约20%的数据放置在亚马逊的服务器上。他们希望能够连续测试180天而不发现大型错误,甚至在测试房间的墙上挂上了时钟。两个月后,他们发现了一个程序错误——可以看到储存在错误地方的数据,然后他们重新设置了时钟。整个测试持续了大约8个月。

确认该系统可以运行所有的Dropbox以后,该团队进一步将该代码应用在了越来越多的系统上,从而从亚马逊云服务器中复制了越来越多的数据。为了顺利完成该过程,Dropbox与亚马逊的合同延期了6个月。「整个过程其实时间非常紧张。」Cowling说。

事实上,仅仅是将数据从亚马逊迁移出到其他数据中心就是一个非常浩大的、堪称史诗级的任务。将大小为PB级别的数据从一台机器转移到另一台机器和下载一首歌曲完全不是一个量级。事实证明,转移4PB的数据需要花费一天的时间。「光速就是我们转移数据的极限速度。」Agarwal说。

与此同时,电脑也需要转移到数据中心,以便接收数据。想象一下你的办公室中的IT精英正在努力为新雇员搭建一台新电脑——但是这个过程是在Dropbox这个规模完成的。所有的这些过程还有时间的限制。如果他们将该系统应用到数据中心的速度不够快,那么他们就不能很快地从亚马逊迅速获得数据。Dropbox平均每天要搭载40至50台机柜,每个机柜大约搭载8台机器。每一天,卡车都将机器从世界各地运送到Dropbox的数据中心。

为了能够顺利完成数据转移任务,Dropbox设定了最后的期限。与此同时,由于其欧洲业务不断增长,因此他们选择了在欧洲继续使用亚马逊云服务,但是该公司90%的数据已经从亚马逊转移到了Dropbox数据中心。紧接着,更加紧张的工程开始了。

蓄势待发当所有的数据都撤离亚马逊云服务以后,硬件工程师Rami Aljamal相中了程序员Jamie Turner。Magic Pocket仍然只是在普通的机器上运行,接下来就是将其转移到客户定制的硬件上。Aljamal和Turner强强联手,以确保该软件可以在新的硬件上成功运行。Aljamal和硬件工程师设计了一种单一机器Diskotech,可以储存1PB的数据。但是其也存在一个问题,即Magic Pocket软件并不能与这种新硬件很好地兼容。因此Turner用一种全新的程序语言重新编写了Magic Pocket。

这看起来或许有些奇怪。为什么将程序置入上千台机器时,需要改变代码,然后放置到另外的数千台设备中?但是大型互联网数据中心的工作方式。机器的老化非常快,总是会有一些部分在失效,然后你需要将这部分替换掉。你总是需要更新你的设备。首先,Dropbox需要确保其Magic Pocket可以正常运行——这一部分其实已经非常困难。然后替换部分硬件,与此同时还需要保证两者之间可以相互配合得很好。

Crowling、Turner和其他工程师在建造Magic Pocket使用了一种来自Google的新程序语言Go。Dropbox正在引领一种更大的趋势,即适用于新型广泛分布式在线系统的程序语言。Apple也有一种类似的语言叫做Swift,Mozilla则拥有Rust,而还有另一种独立的语言叫做D。所有的这些语言都可以让程序员可以快速地制作出运行速度很快的软件。但是对于该公司正在构建的海量存储系统来说,Go的内存占用量太大了。Dropbox需要一种占用内存更少的语言,因为所有的这些内存空间都可能被进入的文件所占领。因此,在这项为期两年半的项目中,他们在Diskotech设备中最终选择了Rust。

出埃及记:Dropbox退出亚马逊公有云服务,自建私有云

直面危险目前来说,像Google、亚马逊和Dropbox都已经经历了很多其他公司并没有经历的这种极端过程。这就是云计算的力量。事实上,Dropbox并不是Google或者亚马逊,他并不为程序员和商业提供原始的计算能力和基础设施,但是他为个体和商业客户提供了分享和存储数据的服务。Dropbox希望分享能够成为一个平台,这也是为什么Dropbox选择开发一个在线文档编辑和合作工具「Dropbox Paper」。

而Dropbox面临的潜在危险是,随着亚马逊、Google和微软自身业务的扩张,他们势必会限制Dropbox的发展。在这种情况下,该公司将数据转移到自身数据中心的举动或许更像是一个负担。众所周知,旧金山社交游戏公司Zynga在达到了超速增长阶段时,该公司也选择了将所有业务转移到自身的数据中心。但是当其业务下滑之后,他们发现他们根本使用不了如此庞大的基础设施。而现在这一切落到了亚马逊身上。

Dropbox的一大优点是,其具有的很多优秀工程师,例如Agarwal、Gupta、Williams和Sordal等都具有非常丰富的经验。Dan Williams说,「如果你曾经在Facebook或者Google经历过这种超速增长,那么你会非常想念这种感觉。」

现在,Dropbox已经建立了自己的系统,这也代表了目前正在硅谷迅速传播的的一种态度。Google获得了如此巨大的成功,并不仅仅是因为其建造了非常完善的网络搜索引擎业务,而是其建立了在超大规模上运行搜索引擎的技术。Facebook和Twitter也做了相同的事情。现在,则是Dropbox。为了成为巨人,你必须首先站在别人的肩膀上。但是一旦你自己成长为了巨人,你就会觉得是时候为自己建造一个家了。

微信搜索“东方联盟”关注抢6s大礼!下载东方联盟客户端(戳这里)也可参与评论抽楼层大奖!

>更多相关文章
24小时热门资讯
24小时回复排行
资讯 | QQ | 安全 | 编程 | 数据库 | 系统 | 网络 | 考试 | 站长 | 关于东联 | 安全雇佣 | 搞笑视频大全 | 微信学院 | 视频课程 |
关于我们 | 联系我们 | 广告服务 | 免责申明 | 作品发布 | 网站地图 | 官方微博 | 技术培训
Copyright © 2007 - 2024 Vm888.Com. All Rights Reserved
粤公网安备 44060402001498号 粤ICP备19097316号 请遵循相关法律法规
');})();