当Dropbox在2008年面向大众推出时,使用此服务的用户数量仿佛一夜之间从寥寥几千,到上万,接着是几百万。
对于一家新成立的初创公司而言,的确是件美好的事。但是它也存在一些问题,尤其是当其思考如何扩展基础设施,以满足日益增长的用户需求。
在这种情况下,Dropbox需要面对更多更困难的挑战,因为它扮演的就是一个提供实时存储和同步解决方案的角色。Dropbox要获得成功,用户必须要信任他们所提供的服务是快速、可靠、并且安全的。
那么,Dropbox是如何设法扩张的呢?Rajiv Eranki曾在2008年至2011年期间担任Dropbox公司服务器工程部的主管,他是Dropbox公司招聘的第二名工程师,他的职责就是帮助扩大产品规模。在Eranki任职期间,他见证了这家公司的用户从2000人发展到4000万!
Eranki之前出席了RAMP大会,并在他的博客上分享了自己的经历。
本文选取了一些关键要素:
选择Python是个正确的决策
在RAMP大会上,Eranki在其演讲中说道,Dropbox团队使用的是Python进行开发工作。这非常有用,因为这意味着,整个平台可以搭载4000万用户,而且不必编写数千行的C语言代码。
这点Rian Hunter在2011年Python举行的PyCon大会上就和Eranki不谋而合。PyCon是一个专注于Python编程语言的开发者大会,Hunter曾在该大会上发表过题为“Python如何帮助Dropbox获得成功”的演讲。
Python的优势在于,和其他编程语言相比,它可以帮助开发团队快速扩大规模。
在Dropbox成立之初,仅有的这两位创始工程师专注在规模扩展方向,而且Dropbox发展的如此迅速,还得益于他们减少了应用程序的复杂度。
Dropbox也使用过一些当时较为流行的软件工具,包括MySQL和亚马逊的简易存储服务S3和云技术服务EC2。至少在企业发展初期的时候,Dropbox的开发团队确实也没有使用一些规模最大或最活跃的用户技术。
测试潜在失败点
Ernaki在他的演讲中反复强调的一点就是,导致系统失败的问题是可测试出来的。Ernaki说,开发团队往往会选择重启服务器去看看哪里会有问题。可是,故障会比战略运营更重要?流程也会自动重启吗?
搞清楚哪些事情引起失败,同时在系统正常的时候就进行测试,这样,就能实际可控那些失败。
Ernaki写道,"这就像是现场直播消防演习,似乎听起来有些蠢,但测试环境往往不够充分,进行生产测试则非常必要,也很保险。"
保持硬件持续性
由于Dropbox用户数量增加,意味着需要购买新的硬件。Dropbox没有选择一堆不一样的服务器配置和硬件类型,他们选择设备机器类型范围很小,但是这些机器的配置都是一致的。
此外,当问题涉及到某一具体的硬件,由于选择设备范围不大,Dropbox有限的“容量规划”总量也有助于保持其硬件的持续性。
使用世界统一时间(UTC)
服务器使用UTC时间代码解决了Dropbox的一个潜在问题,那就是往往在某一时区里,会有一台服务器或一个系统;而在另一时区里面也有别的服务器或系统。在浏览器或文件管理器里,Dropbox尽可能不去转换用户时区的时间。
Dropbox甚至把他们挂在墙上的时钟也设置成世界统一时间,每个人的时间都和他们的服务器保持一致。
这可能听起来有些傻,但是当你大部分业务依赖于可靠的文件同步时, 一个时区的变化可能会导致文件同步错误。
经常更新
无论过去还是现在,Dropbox成功的秘诀之一,就是经常发布更新。在Dropbox创立初期,他们经常在完成编码的同一天就发布更新。这意味着用户立即可以使用最新版本的Dropbox而且还可以帮助进行一些改进工作。
即使在今天,Dropbox仍然对其Mac,Windows以及Linux客户端开发更新测试渠道。这些更新往往是一个新功能,在Dropbox向用户正式发布之前,用户可以进行测试一些新东西,并帮助Dropbox纠正一些Bug。
不过,Dropbox也非常清楚,其客户端必须要依靠稳定的代码。总之,对于一个提供存储和同步服务的公司,有两件事是不能容忍的,一是文件目录损坏,二是存储的工作丢失。
对于Dropbox用户增长,您有什么看法,可以在以下评论栏里留言。
河南亿恩科技股份有限公司(www.enkj.com)始创于2000年,专注服务器托管租用,是国家工信部认定的综合电信服务运营商。亿恩为近五十万的用户提供服务器托管、服务器租用、机柜租用、云服务器、网站建设、网站托管等网络基础服务,另有网总管、名片侠网络推广服务,使得客户不断的获得更大的收益。
服务器/云主机 24小时售后服务电话:
0371-60135900
虚拟主机/智能建站 24小时售后服务电话:
0371-55621053
网络版权侵权举报电话:
0371-60135995
服务热线:
0371-60135900