这看起来或许有些奇怪。为什么将程序置入上千台机器时,需要改变代码,然后放置到另外的数千台设备中?但是大型互联网数据中心的工作方式。机器的老化非常快,总是会有一些部分在失效,然后你需要将这部分替换掉。你总是需要更新你的设备。首先,Dropbox需要确保其Magic Pocket可以正常运行——这一部分其实已经非常困难。然后替换部分硬件,与此同时还需要保证两者之间可以相互配合得很好。
Crowling、Turner和其他工程师在建造Magic Pocket使用了一种来自Google的新程序语言Go。Dropbox正在引领一种更大的趋势,即适用于新型广泛分布式在线系统的程序语言。Apple也有一种类似的语言叫做Swift,Mozilla则拥有Rust,而还有另一种独立的语言叫做D。所有的这些语言都可以让程序员可以快速地制作出运行速度很快的软件。但是对于该公司正在构建的海量存储系统来说,Go的内存占用量太大了。Dropbox需要一种占用内存更少的语言,因为所有的这些内存空间都可能被进入的文件所占领。因此,在这项为期两年半的项目中,他们在Diskotech设备中最终选择了Rust。
直面危险目前来说,像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。为了成为巨人,你必须首先站在别人的肩膀上。但是一旦你自己成长为了巨人,你就会觉得是时候为自己建造一个家了。
本文来源:不详 作者:佚名