Dropbox是一家坐落在舊金山的初創(chuàng)公司,在全球擁有5億用戶。隨著規(guī)模的擴大, Dropbox棄用亞馬遜云服務(wù),自主建設(shè)了龐大的數(shù)據(jù)中心。這是一個工程上的壯舉,它的意義也遠遠超出了Dropbox本身。
Dropbox看上去只是計算機桌面上的一個文件夾,但有了它,你可以輕松愉快地把文件儲存在互聯(lián)網(wǎng)上,或者把文件發(fā)送給其他人,或者在你的筆記本電腦、手機和平板電腦上進行同步。這個文件夾使用起來輕松自然,幾乎不會消耗你的腦細胞。但是在這個文件夾的幕后,卻有一個工程上的壯舉。 Dropbox使用的大型機器網(wǎng)絡(luò)代表著一種力量,在過去十年里,這種力量讓互聯(lián)網(wǎng)的核心發(fā)生了巨大變化。而在今天,它又邁入了一個令人矚目的新階段。
在公司誕生之后的最初8年里, Dropbox為5億計算機用戶儲存了海量文件。但是它并沒有把這些文件真正存儲在自己的地盤上。就像近年來很多其他科技初創(chuàng)公司一樣,Dropbox也把東西儲存在了“亞馬遜云服務(wù)”上面。那是一個非常受歡迎的服務(wù),由世界上最大的在線零售商亞馬遜提供。任何人都可以使用亞馬遜云服務(wù)來構(gòu)建運行自己的軟件,無需自己架設(shè)硬件。換句話說,Dropbox的海量文件是儲存在亞馬遜的機器上,而不是Dropbox自己擁有和運行的機器上的。
但現(xiàn)在不再是這樣了。在過去的兩年半的時間里, Dropbox自己架設(shè)了龐大的計算機網(wǎng)絡(luò),把海量文件轉(zhuǎn)移到了一系列新的機器上,這些新機器是公司自己的工程師設(shè)計的,機器上運行的軟件系統(tǒng),也是由公司自己的程序員使用一種嶄新的編程語言開發(fā)的。這些工程師和程序員,曾經(jīng)在互聯(lián)網(wǎng)巨頭谷歌、Facebook和Twitter開發(fā)過類似的技術(shù),擁有豐富的經(jīng)驗?,F(xiàn)在,Dropbox已經(jīng)將大約90%的文件搬到了這個新的網(wǎng)上王國里面。
毋庸置疑,這是一個宏大的工程壯舉。但這一舉動的意義遠遠超出了Dropbox本身。它突顯了云計算如何正在迅速改變企業(yè)的經(jīng)營方式。與此同時,它也揭示了一些翻天地覆的變化是如何在過去十年里席卷全球硬件市場的。
如今,越來越多的公司正在搬到“云端”——而不是離開云端。根據(jù)調(diào)研機構(gòu)Forrester的預(yù)測,隨著谷歌和微軟這樣的巨頭進入云服務(wù)市場,挑戰(zhàn)亞馬遜的領(lǐng)軍地位,到2020年,云計算的規(guī)模預(yù)計將達到 1910億美元。亞馬遜拒絕對此事進行置評,但該公司去年第四季度的財報顯示,亞馬遜web服務(wù)部門營收為 24.1億美元,相當(dāng)于年化營收逾 96億美元——注意,這是在Dropbox離開之后的數(shù)字。
但是,有些公司變得日益龐大,到達了這樣一個階段:棄用別人提供的云服務(wù),使用自己的定制技術(shù),搭建自己的網(wǎng)絡(luò),反倒更加省錢。由于規(guī)模經(jīng)濟效應(yīng),亞馬遜、谷歌、微軟可以把云服務(wù)的價格保持在比較低廉的水平上。但它們向別人收取的價格也并非就是云服務(wù)的成本價。 “沒有人把云服務(wù)當(dāng)做慈善事業(yè)來做,” 曾經(jīng)在facebook工作過的Dropbox工程副總裁阿迪亞·阿加瓦爾(Aditya Agarwal)說,“這個服務(wù)總歸是有利潤的。”如果你自己的規(guī)模足夠龐大,那么不使用云服務(wù),反而可以節(jié)省不少資金。而Dropbox現(xiàn)在已經(jīng)達到了這樣的規(guī)模。
盡管如此,建立這種規(guī)模的網(wǎng)絡(luò)是一項非常艱巨的任務(wù),并不是每一家公司都適合。 “正確的想法其實應(yīng)該是:不要自己動手去做,” 烏爾斯·霍澤爾說。 他曾是加州大學(xué)圣巴巴拉分校的教授,也是谷歌的第八位員工,主持了谷歌全球網(wǎng)絡(luò)的建立,現(xiàn)在在幫助運營該公司的云計算服務(wù)。他解釋說,大多數(shù)公司都沒有龐大到規(guī)模經(jīng)濟的程度,也缺乏相應(yīng)的技能。如果公司的增長停滯了,這么做反而會讓公司騎虎難下。Dropbox似乎也有一絲這樣的跡象。近幾個月來,專家和投資者對Dropbox不太看好,說它100億美元的估值水分很大,因為該公司在吸引真正的企業(yè)客戶方面進展緩慢。
但是霍澤爾也承認,對于有些公司來說,這么做也挺合理。至少就目前來說,Dropbox就是屬于這種類型的公司。據(jù)Dropbox首席運營官丹尼斯·伍德賽德(Dennis Woodside)說,他們自己架設(shè)這個網(wǎng)絡(luò)已經(jīng)具有了“巨大的經(jīng)濟價值”。實際上,在棄用亞馬遜云服務(wù)的同時,Dropbox也展示了為什么云服務(wù)如此強大。該公司自己也修筑了基礎(chǔ)設(shè)施,讓別人無需再做這件事。而且,Dropbox自己也是一個云服務(wù)公司。它把數(shù)據(jù)轉(zhuǎn)移到自己的龐大網(wǎng)絡(luò)上,此舉也讓它加入了亞馬遜、谷歌和微軟的行列,把全球硬件市場(以及整個IT行業(yè))朝著一個全新的方向推動。
文件的未來
亞馬遜是云服務(wù)市場的主力軍。它的主要競爭者是谷歌和微軟。使用這三家公司提供的服務(wù),其他公司或者獨立程序員可以構(gòu)建并運行任何軟件,而不用架設(shè)自己的硬件。這樣的好處,只有全球最大的科技公司才能提供。
與此同時,二級市場也在不斷增長。這個市場以Dropbox為中心,它的主要競爭對手包括Box.com、Saleforce.com等等。這些公司處在一個不同的垂直市場——在互聯(lián)網(wǎng)上提供預(yù)先構(gòu)建的軟件。就像巨頭公司一樣,它們也提供了一些工具,讓企業(yè)和開發(fā)人員無需搭建自己的硬件,就可以利用這些工具——這正是云服務(wù)的吸引力的精髓。 “這個行業(yè)的下一個重要時代,就是平臺之戰(zhàn),”Box.com的首席執(zhí)行官亞倫·萊維(Aaron Levie)說。 “關(guān)鍵問題是:企業(yè)要在哪個平臺上構(gòu)建自己的服務(wù)?”
Dropbox希望自己能成為其中的一個贏家,因此決定大手筆建設(shè)自己的云服務(wù)。但是,事情并沒有那么容易。該公司將會面臨來自亞馬遜、谷歌和微軟的日益激烈的競爭。事實上,這些巨頭已經(jīng)在挑戰(zhàn)Dropbox和Box這一類文件共享工具了。文件共享市場未來有可能萎縮。單獨文件(單獨的照片和視頻,Word文檔和電子表格)的共享,將變得不再那么重要。文件不是智能手機上的核心。而且有了Slack這種隨時連線的消息和協(xié)作服務(wù)之后,在桌面上,文件也離中心舞臺越來越遠了。
Dropbox也很清楚這一切。該公司的巨大估值,已經(jīng)讓它成為了備受專家和投資者責(zé)難的“獨角獸”。最近幾個月里,沒有哪一家初創(chuàng)公司承受的壓力比Dropbox更大,有很多人都對它在企業(yè)業(yè)務(wù)領(lǐng)域與互聯(lián)網(wǎng)巨頭對抗的能力表示了質(zhì)疑。從該公司高管的一些發(fā)言來看,很明顯,Dropbox清楚的意識到了世界正在發(fā)生變化。在該公司花費了這么多的時間、金錢和精力打造自己的全球網(wǎng)絡(luò)之后,現(xiàn)在的問題是,公司自身的變化是否順應(yīng)了這個世界的發(fā)展方向?
合理之處
詹姆斯·考林(James Cowling)在麻省理工學(xué)院讀書的時候,就認識了Dropbox的創(chuàng)業(yè)者。當(dāng)時他在那里讀研究生,專業(yè)方向是分布式計算系統(tǒng)(在幾十個、幾百個,甚至上千個設(shè)備上運行的計算系統(tǒng)),他和最早的一批Dropbox員工一起研究這個課題,就這樣,他認識了Dropbox的聯(lián)合創(chuàng)始人兼首席執(zhí)行官德魯·休斯頓(Drew Houston)。在Dropbox不斷成長的過程中,他們一直保持著聯(lián)系,而且一起討論過棄用亞馬遜云服務(wù)的條件和方式。 “這個想法似乎非常大膽,”考林說。
考林說,2012年,互聯(lián)網(wǎng)上最大膽的創(chuàng)新公司谷歌曾想把他招募到Spanner團隊。Spanner是谷歌的全球數(shù)據(jù)庫,該公司的大量在線服務(wù)都以它為依托。而且,Spanner可能也是地球上的最大最復(fù)雜的數(shù)據(jù)庫,是分布式系統(tǒng)中最有分布式特性的一個。但是考林還是決定去Dropbox工作。 “我想創(chuàng)建一些東西,”考林說。Spanner已經(jīng)建好了,但Dropbox的數(shù)據(jù)王國還沒有。
Dropbox在誕生之后的大部分時間里,都采用了部分上使用亞馬遜云服務(wù),部分上使用自己數(shù)據(jù)中心相結(jié)合的方式。用戶通過Dropbox共享文件時,該公司就把這些文件儲存在亞馬遜的Simple Storage Service(簡稱為S3)上,同時把這些文件的所有元數(shù)據(jù)——即它們屬于誰,允許哪些人下載——存放在Dropbox自己數(shù)據(jù)中心的機器上。
該公司的基礎(chǔ)設(shè)施副總裁阿卡利·古普塔(Akhil Gupta)曾在谷歌工作??剂趾凸牌账约捌渌艘黄穑O(shè)計了一個全面的軟件系統(tǒng),Dropbox可以存儲存儲成百上千PG的數(shù)據(jù)——相當(dāng)于數(shù)以億計個優(yōu)盤的存儲量——而且儲存效率比在亞馬遜S3上高得多。他們給這個系統(tǒng)取名“魔法口袋”(Magic Pocket)。 “我們的構(gòu)想是,你可以把你所有的東西都存放在Dropbox上,不會迷路,不會找不到東西,你隨時都可以使用它們,它就像一個魔法口袋。”古普塔說。
從本質(zhì)上說,他們相當(dāng)于是建立了公司自己的亞馬遜S3,所不同的,只是他們專門設(shè)計了軟件,用來解決該公司特定的技術(shù)問題。 “這不是對等替換,”阿加瓦爾說。 “而是一個專門為我們自己度身定制的東西。”
即便是在Dropbox還沒有搬離亞馬遜的時候,亞馬遜就已經(jīng)表現(xiàn)得像是Dropbox的競爭對手了。亞馬遜提供了自己的文件共享服務(wù),雖然它缺乏Dropbox那樣的用戶友好度,而且品牌知名度也不如Dropbox,但這不免讓規(guī)模相對較小的Dropbox感到擔(dān)心。不過阿加瓦爾說,棄用亞馬遜云服務(wù)主要是財務(wù)上的原因,而不是競爭上的原因。“你必須把這些科技巨頭想象是一個國家——友好鄰邦,雖然你可能會與它們發(fā)生這樣那樣的小沖突,”他說。 “亞馬遜在很多領(lǐng)域都很出色,但我認為,當(dāng)一家云儲存提供商并不是它們的首要任務(wù),這和我們不一樣。”
事情最好真的能像他希望的那樣,因為Dropbox已經(jīng)壓下了它的全部賭注。它根據(jù)自己的需要開發(fā)了自己的軟件。而且還不僅僅是如此,Dropbox也度身定制了硬件:它自己設(shè)計了計算機。
定制硬件
多年以來,互聯(lián)網(wǎng)巨頭谷歌、Facebook、微軟和亞馬遜都在為自己的數(shù)據(jù)中心設(shè)計硬件——計算機服務(wù)器、網(wǎng)絡(luò)交換機,有些時候還包括用來儲存大量數(shù)據(jù)的硬件。這些公司別無選擇,只能自己動手處理所有一切:因為它們的在線王國已經(jīng)變得如此龐大,使用通用設(shè)備只會更加昂貴、更加困難。它們需要的是新型硬件——更便宜、更精簡、更具可塑性。因此,它們和硬件制造商一起,和亞洲本地的零部件供應(yīng)商一起,設(shè)計制造了專門的設(shè)備。
如今,谷歌建造的服務(wù)器比全世界其他任何一家公司都多——包括那些銷售服務(wù)器的廠商。亞馬遜和微軟在這方面也沒落后。而且,由于這些公司提供云計算服務(wù),很多其他企業(yè)現(xiàn)在采用的硬件也和傳統(tǒng)的通用硬件有差別——特別是在Facebook開源了其定制設(shè)備的設(shè)計之后?,F(xiàn)在,一些供應(yīng)商,包括廣達這樣的亞洲制造商,都在銷售基于Facebook硬件的產(chǎn)品。
拉米·阿加馬(Rami Aljamal)親身經(jīng)歷這個變化。他在Twitter設(shè)計了一系列精簡機型,也在戴爾的新部門DCS工作過(戴爾設(shè)立這個部門,是希望奪回市場份額。谷歌等公司設(shè)計自己的硬件,讓戴爾損失了一些市場份額)?,F(xiàn)在,他在Dropbox的設(shè)計機器。就像谷歌、亞馬遜和微軟一樣,Dropbox認為它也必須擁有適合自己獨特需求的機器。
Dropbox存儲了海量數(shù)據(jù),因此它需要適合開展這個任務(wù)的機器。阿加馬和他的團隊在 Dropbox總部一個實驗室里面設(shè)計了這種機器,他們稱之為Diskotech。 “我們最關(guān)心的東西是磁盤,” 阿加馬說。 “所有信息都儲存在磁盤上。”Diskotech寬約45厘米,長約106厘米,高15厘米,可存儲多達1 PB數(shù)據(jù)(100萬GB)。只需要50臺這樣的機器,就可以儲存人類有史以來寫過的一切東西。
進行更換
考林和同事從2013年夏天開始開發(fā)“魔法口袋”軟件,花了大約6個月的時間完成了初始代碼。但是,這只是他們邁出的一小步。在系統(tǒng)建成之后,他們必須確保軟件能夠正常工作,必須讓它在多個數(shù)據(jù)中心數(shù)以千計的機器正常運行。他們不得不為公司的新硬件改寫軟件,而且還得把所有的數(shù)據(jù)都搬離亞馬遜。
整個過程花了兩年的時間。毫無疑問,這樣的項目是技術(shù)上的一大挑戰(zhàn)。但是與此同時,它也是后勤上的一個挑戰(zhàn)。在互聯(lián)網(wǎng)上移動如此之多的數(shù)據(jù)是一回事,把這么多的機器搬到數(shù)據(jù)中心又是另外一回事,而且他們必須在Dropbox繼續(xù)為億萬用戶提供服務(wù)的同時做到這兩件事。 “就好比是一輛正在行駛的汽車,你希望能夠在開車的同時,還能夠更換輪胎。”機器擴張工作的負責(zé)人丹·威廉姆斯(Dan Williams,曾是Facebook網(wǎng)絡(luò)工程師)表示。也就是說,在進行這些變更的時候,Dropbox不能停運。它不能對億萬用戶說:你們的文件暫時無法使用了。這個艱巨任務(wù)圓滿完成的最佳指標之一,就是用戶完全注意不到公司有這樣的變化。
考林和同事在寫完最初的代碼之后,就在一種比較標準的硬件上面進行了測試。他們的目標是連續(xù)測試180天不會出現(xiàn)重大錯誤。團隊甚至在Dropbox總部的墻上掛了一個倒計時鐘。兩個月之后,測試出現(xiàn)了一個錯誤——可能會把數(shù)據(jù)存儲到錯誤的地方——然后他們又把倒計時鐘調(diào)回到180天。測試總共歷時8個月。
團隊覺得這個系統(tǒng)可以正式運行的時候,就把代碼移到了越來越多的系統(tǒng)上,同時也從亞馬遜復(fù)制了越來越多數(shù)據(jù)。公司與亞馬遜的主要合約將在六個月后期滿,他們決心到那個時候完成搬遷過程,這樣就不需要續(xù)簽合同了。 “留給我們打開降落傘的時間非常短,”考林說。
把數(shù)據(jù)從亞馬遜遷移到其他數(shù)據(jù)中心,這是一個史詩級的任務(wù)。從一臺機器移動PB級的數(shù)據(jù)到另一臺機器上,和下載幾首歌到你的筆記本計算機上不可同日而語。即使是最快的互聯(lián)網(wǎng)通道,帶寬也是有限的。事實上,傳輸4 PB數(shù)據(jù)大概會花一天的時間。 “你會受光速所限,”阿加瓦爾說。
同時,他們還必須把計算機運到數(shù)據(jù)中心架設(shè)好。你可以把這想成是你公司的IT人員為一個新員工安裝計算機——但是以Dropbox那樣的規(guī)模。這種工作必須在有限的時間內(nèi)完成。因為如果不迅速設(shè)置好數(shù)據(jù)中心,他們就無法迅速地從亞馬遜移動數(shù)據(jù)。該公司每天安裝四十到五十個機架,每個機架上安放八臺單獨的機器。有一次他們遇到一個事故,不過不是計算機類型的事故。機器是用卡車運到Dropbox各個數(shù)據(jù)中心的,那一次是在24小時之內(nèi),有兩輛前往不同數(shù)據(jù)中心的卡車先后發(fā)生了事故。
盡管出現(xiàn)了這樣那樣的麻煩,Dropbox還是在最后期限之前完成了任務(wù)。它沒有與亞馬遜續(xù)簽合同。不過該公司在歐洲的業(yè)務(wù)還是在繼續(xù)使用亞馬遜云服務(wù)——這只不過是因為Dropbox在歐洲的發(fā)展不太穩(wěn)定——但是,古普塔的團隊把所有文件中的90%都搬遷到了Dropbox的數(shù)據(jù)中心。
改換編程語言
隨著數(shù)據(jù)搬離亞馬遜云服務(wù),硬件工程師阿加馬和一個叫杰米·特納(Jamie Turner)的程序員開始行動起來。Dropbox的“魔法口袋”——類似于亞馬遜文件存儲系統(tǒng)——仍然在普通機器上運行,下一步就是把它搬到該公司定制的硬件上。特納在學(xué)校讀的是英語專業(yè),后來卻成為了工程師,他曾在多個高科技初創(chuàng)公司的工作過。他與阿加馬合作,確保定制的硬件能夠與軟件良好契合。阿加馬和其他硬件工程師設(shè)計的Diskotech機器可以容納PB級的數(shù)據(jù)。但是這里面有個問題,就是“魔法口袋”和新硬件不太兼容。于是,特納開始用一種完全不同的編程語言重新編寫“魔法口袋”。
可能你會覺得有點奇怪。為什么要把代碼安裝到數(shù)以千計的機器里,然后更改這些代碼,再把它們安裝到數(shù)以千計的其他機器里?但是在規(guī)模巨大的互聯(lián)網(wǎng)數(shù)據(jù)中心,事情就是這樣操作的。機器迅速變得老舊,不斷出現(xiàn)問題,然后你就得替換它們。在大型數(shù)據(jù)中心,升級設(shè)備是一種常態(tài)。所以,Dropbox先確保“魔法口袋”可以在通用的機器上運行,然后定制硬件,然后必須確保“魔法口袋”和新的硬件能夠良好契合。
考林、特納和同事最初是用谷歌的Go語言來編寫“魔法口袋”的。這是因為Dropbox在追隨一種更廣泛的趨勢。Go語言是專門為大規(guī)模分布式在線系統(tǒng)設(shè)計的,蘋果有類似的Swift,Mozilla也推出了自己的Rust,此外還有一種獨立語言叫D。程序員可以用它們快速編寫出可以大規(guī)模跨機器(跨越數(shù)以百計或者數(shù)以千計的機器)快速運行的軟件。
但是對于該公司希望建立的大型儲存系統(tǒng)來說,Go的“內(nèi)存占用”(在運行“魔法口袋”的時候所需要的計算機內(nèi)存量)太大了。 Dropbox需要一種占用內(nèi)存較少的語言,因為有這么多的文件流傳輸?shù)綑C器上,會占用非常多的內(nèi)存。所以在這個長達兩年半的項目的中間,他們改用Rust編寫了Diskotech設(shè)備的軟件。Dropbox的數(shù)據(jù)中心現(xiàn)在采用的就是這樣的軟硬組合。
可能面臨的危險
這是一項非常艱巨的工程。但是,像谷歌、亞馬遜和Dropbox公司做了這樣的事情之后,其他公司就不必再經(jīng)歷這樣的麻煩了。這就是云計算的力量。當(dāng)然,Dropbox不是谷歌,也不是亞馬遜。它不為程序員和企業(yè)提供基本計算能力和基礎(chǔ)設(shè)施,來讓他們建立和運行自己喜歡的任何軟件。但是有了它,個人和企業(yè)確實無需架設(shè)專門的硬件可以共享和存儲文件。Dropbox希望“共享”會成為一個平臺,這就是為什么它創(chuàng)建了一個名為Dropbox Paper的在線文本編輯器和協(xié)作工具的原因:外部開發(fā)人員可以把自己的應(yīng)用放在它的服務(wù)上。
問題是,亞馬遜、谷歌和微軟也在擴張自己的服務(wù),這可能會限制Dropbox的增長。在這樣的情況下,該公司自己建設(shè)的數(shù)據(jù)中心可能反而會成為一種累贅。舊金山的社交游戲公司Zynga在進入高增長階段的時候,就棄用云服務(wù),建立了自己的數(shù)據(jù)中心。但是后來,它的業(yè)務(wù)一落千丈,新建的基礎(chǔ)設(shè)施沒有用上?,F(xiàn)在它又重新回到了亞馬遜云服務(wù)上。
Dropbox的一個優(yōu)勢是,阿加瓦爾、古普塔、威廉姆斯都有過這方面的經(jīng)驗。丹·威廉姆斯說, “如果你已經(jīng)在Facebook或谷歌做過這樣的事情,你對這種高增長可能就會有點上癮的感覺,”威廉姆斯說。“你會很懷念那種感覺。”
這并不說他們做的是花架子,因為數(shù)據(jù)中心確實可能會幫助公司節(jié)省大量成本。但是,就像煙癮酒癮一樣,這種“高增長癮”本身也蘊含著某種程度的威脅。硅谷有一種說法,叫作“NIH綜合征”,指一些公司創(chuàng)建各式各樣的新東西,只是因為它們有這種創(chuàng)建新東西的癖好。
無論這個舉動是否能幫助Dropbox達成預(yù)期的目標,該公司現(xiàn)在都擁有了自己的數(shù)據(jù)中心。這代表著一種態(tài)度,一種從谷歌開始逐漸擴散到整個硅谷的態(tài)度。谷歌之所以獲得巨大成功,不僅僅是因為它創(chuàng)建了一個很出色的互聯(lián)網(wǎng)搜索引擎,也是因為它創(chuàng)建了支持該搜索引擎大規(guī)模運行的底層技術(shù)——以及其他很多服務(wù)。后來Facebook從谷歌招募了很多員工,差不多也是走的這條路。Twitter也是如此?,F(xiàn)在Dropbox也走上了這條路。要成為一個巨人,你可能需要站在別人的肩上。但是,一旦你成為了巨人,你就會覺得,有必要建設(shè)一個適合自己的家園了。