如果你是 Dropbox 的五億用戶之一,那么你肯定知道它就是你電腦桌面上的一個文件夾,它可以讓你將文檔存儲在互聯(lián)網(wǎng)上,將文件發(fā)送給其他人,并且可以將文檔在筆記本電腦、手機和平板之間進行同步。當(dāng)你需要的時候,你會使用這個文件夾;當(dāng)你不需要的時候,你就會忘記它的存在。這就是設(shè)計者的初衷;事實上,在這背后,你可以發(fā)現(xiàn)工程學(xué)方面的史詩級壯舉。Dropbox 在機器網(wǎng)絡(luò)上運行,它的演化過程集中體現(xiàn)了在過去十年間使得互聯(lián)網(wǎng)核心發(fā)生改變的力量。今天,這個系統(tǒng)已經(jīng)發(fā)展到了一個新階段。
在 Dropbox 的第一個八年中,超過 5 億用戶在其中儲存了數(shù)十億的文件。但是,這家位于舊金山的初創(chuàng)公司并沒有真正地將文件自己儲存起來,和近些年的很多初創(chuàng)公司一樣,Dropbox 選擇在「亞馬遜云服務(wù)」中進行線上操作。亞馬遜云服務(wù)由目前世界上最大的線上零售商亞馬遜運營。亞馬遜云計算服務(wù)使得任何人都可以開發(fā)或者運行軟件,而不需要設(shè)立自己的硬件系統(tǒng)。換句話說,這數(shù)十億文件實際上是存儲在亞馬遜的設(shè)備中,而不是 Dropbox 的服務(wù)器中。
但是這一切都已經(jīng)成為歷史。經(jīng)過過去的兩年半時間,Dropbox 建立了自己的大型計算機網(wǎng)絡(luò),并且將其服務(wù)轉(zhuǎn)移到了由自己的工程師設(shè)計的機器系統(tǒng)中。該系統(tǒng)完全由自己的程序工程師設(shè)計,依托的也是一種全新的匯編語言。在眾多曾就職于網(wǎng)絡(luò)巨頭(例如 Google、Facebook 和 Twitter)的硅谷老將們的努力下,Dropbox 已經(jīng)成功地將 90% 的文件轉(zhuǎn)移到了新的線上帝國中。當(dāng)然,這是一個非常耀眼的工程壯舉,而且這一舉動的意義已經(jīng)超越了 Dropbox 本身。更重要的是,它顯示出了云計算服務(wù)正快速改變著商業(yè)運作模式。同時,它也揭示出在過去十年間席卷整個硬件市場的巨大變化。
Dan Williams, Dropbox 基礎(chǔ)設(shè)施經(jīng)理
今天,越來越多的公司開始選擇「云服務(wù)」。根據(jù) Forrester 公司預(yù)測,到 2020 年,云計算的市場規(guī)模將達到 1910 億美元,一些互聯(lián)網(wǎng)巨頭,例如 google 和微軟等將會以自己的云服務(wù)來撼動亞馬遜的地位。在去年的第四季度,亞馬遜的網(wǎng)絡(luò)服務(wù)部門只獲得了 24.1 億美元的營收,而年銷售額達到了 96 億美元,對于沒有了 Dropbox 的亞馬遜來說,這已經(jīng)是很大的一筆營收了。
但是一些公司是如此巨大,從而使得建造自己的網(wǎng)絡(luò)就顯得特別緊迫。由于經(jīng)濟規(guī)模較大,從而使得 Google、微軟和亞馬遜可以將云服務(wù)的價格降到很低。但是他們并不是以成本價進行銷售?!笡]有哪一位云服務(wù)供應(yīng)商是在做慈善?!笵ropbox 工程部副總裁 Aditya Agarwal 說。如果你的公司足夠大,通過削減云服務(wù)的開支,你可以省下一大筆錢。而 Dropbox 就是這樣一家不折不扣的大型公司。
然而,建造這樣一個巨大的網(wǎng)絡(luò)非同兒戲,任務(wù)相當(dāng)艱巨,而且這并不適用于所有公司?!刚_的做法是不要自己建造這樣的網(wǎng)絡(luò)?!骨凹又荽髮W(xué)圣芭芭拉分校教授 Urs H?lzle 說。目前他在 Google 工作,主要負責(zé)該公司全球網(wǎng)絡(luò)的建立,幫助運行云計算服務(wù)。
他解釋道,大多數(shù)公司都沒有這樣的規(guī)模以及自己構(gòu)建網(wǎng)絡(luò)系統(tǒng)的必要。如果公司成長停滯,那么這樣的舉動無疑會讓公司雪上加霜。這一點可謂非常適用于 Dropbox 的境遇。最近幾個月,專家和投資者們紛紛開始看衰這家位于舊金山的公司,表示該公司的 100 億美元的估值其實名不副實,并且很難吸引真正的商業(yè)用戶的目光。
但是 H?lzle 承認對于某些公司來說,這樣做還是很有必要的。至少從目前看,Dropbox 就是這樣的一家公司。根據(jù)該公司的首席運營官 Dennis Woodside,該舉動使得公司獲得了「必要的經(jīng)濟價值」。更具有諷刺意味的是,Dropbox 在逃離云服務(wù)的同時,又在不斷強調(diào)云服務(wù)的強大。它在進行這樣的基礎(chǔ)設(shè)施建設(shè),以便讓其他競爭者望塵莫及?;蛟S它也會成為一家云服務(wù)公司。通過在大型網(wǎng)絡(luò)領(lǐng)域邁出的堅實步伐,Dropbox 正在和互聯(lián)網(wǎng)巨頭 Google、微軟和亞馬遜一起為全球硬件市場以及信息技術(shù)指出新的方向。
文檔文件的未來
亞馬遜主導(dǎo)著云計算市場,其主要的競爭對手包括 Google 和微軟。三家公司提供的云服務(wù)使得商業(yè)和獨立程序員可以編寫或者運行任何軟件,而不需要建立自己的硬件設(shè)備。與此同時,這里也存在一個以 Dropbox 為核心的二級市場,其主要競爭對手包括 Box.com、Saleforce.com 和 Workday 等。這些公司相對更加小眾,可以在互聯(lián)網(wǎng)上提供內(nèi)置軟件應(yīng)用。和一些略微大型的公司一樣,它們也可以提供一些商業(yè)和開發(fā)者能夠使用的工具,而免去了建立自己的硬件設(shè)備的苦惱,這一點和云服務(wù)類似?!冈摦a(chǎn)業(yè)的下一個重要時期就是平臺爭奪戰(zhàn)。企業(yè)將會在什么樣的平臺上面建立自己的業(yè)務(wù)就成為了重點?!笲ox.com CEO Aaron Levie 說。
Akhil Gupta, Dropbox 基礎(chǔ)設(shè)施副總裁
Dropbox 希望成為這些平臺中的一個,因此它卯足了勁兒要自己建立一個云服務(wù)平臺。但是這個過程可謂充滿了艱險。隨著該公司在內(nèi)置軟件領(lǐng)域的繼續(xù)擴張,該公司將會不可避免地面臨來自亞馬遜、Google 以及微軟的越來越大的壓力。事實上,這些互聯(lián)網(wǎng)巨頭已經(jīng)準備好開始挑戰(zhàn)那些和 Dropbox、Box 一樣具有文件分享工具的公司。未來文件分享市場的擴張將會明顯下降,而離散式文件(例如照片、視頻和 Word 文檔等)分享將會變得越來越不重要。文件并不是智能手機的核心業(yè)務(wù)。隨著在線聊天工具以及協(xié)作服務(wù)的成熟,文件也將不再是中心筆記本電腦應(yīng)用場景的中心。
Dropbox 對于這一切都了然于胸。其超高的市場估值使得其成為一些專家和投資者詰難「獨角獸」崛起的靶子。近月來,沒有哪家初創(chuàng)公司能搶過 Dropbox 的風(fēng)頭,同時也伴隨著對于其能否和互聯(lián)網(wǎng)巨頭進行抗衡的質(zhì)疑。通過該公司高管的廣泛談話來看,毫無疑問 Dropbox 已經(jīng)意識到了世界正在發(fā)生變化,而問題是 Dropbox 自身的變化(例如花費巨大的時間、金錢和努力將其從亞馬遜轉(zhuǎn)移到自身構(gòu)建的全球性網(wǎng)絡(luò)中)是否能和世界的變化同步。
初見成效
早在 James Cowling 還在 MIT 時,他就知道 Dropbox 的創(chuàng)建者。作為該大學(xué)的一名畢業(yè)生,他更加關(guān)注分布式系統(tǒng),即在成百上千臺設(shè)備上進行運算的系統(tǒng),并且他也曾和 Dropbox 早期的一些雇員一起學(xué)習(xí)過,這也讓他有機會與 Dropbox 的聯(lián)合創(chuàng)始人兼 CEO Drew Houston 相遇。在 Dropbox 的發(fā)展過程中,他們始終保持聯(lián)系,并且他們也討論了 Dropbox 在自己的網(wǎng)絡(luò)系統(tǒng)中運行的可能性和操作性。「可以說,這是一個非常大膽的想法。」Cowling 說。
Cowling 說,2012 年他有幸目睹了 Google 監(jiān)管 Spanner(一個主導(dǎo)了這家互聯(lián)網(wǎng)巨頭很多在線操作的全球數(shù)據(jù)庫)的工程團隊。Spanner 或許是世界上最大的、也是最復(fù)雜的單個數(shù)據(jù)庫,也是分布最廣的分布式系統(tǒng)之一。然而,Cowling 選擇了在 Dropbox 工作?!肝蚁M梢詣?chuàng)造些什么?!笴owling 說。Spanner 已經(jīng)建立了,而 Dropbox 的帝國卻還沒有。
從目前來看,Dropbox 的一部分業(yè)務(wù)在亞馬遜上運行,而另一部分則沒有。如果很多用戶通過 Dropbox 分享文件,那么該公司就會選擇將文件儲存在亞馬遜的簡單存儲服務(wù)中,而這些文件的元數(shù)據(jù)則存儲在自己的服務(wù)器中。
通過和負責(zé)基礎(chǔ)設(shè)施建設(shè)的副總裁 Akhil Gupta 以及其他人一起工作,Cowling 設(shè)計了一種軟件系統(tǒng),該系統(tǒng)允許 Dropbox 存儲數(shù)百 PB 的數(shù)據(jù)——這些數(shù)據(jù)足以填滿數(shù)億個 U 盤,且存儲效率遠遠高于亞馬遜的簡單存儲服務(wù)。他們將這個系統(tǒng)稱為「Magic Pocket」。「Dropbox 被認為是一個你可以放置所有文件的地方,你不用擔(dān)心它會消失,而且你還可以隨時訪問它。這就像是一個充滿魔法的口袋。」Gupta 說。
James Cowling, Dropbox 儲存團隊負責(zé)人
從本質(zhì)上說,他們構(gòu)建了自己的「亞馬遜的簡單存儲服務(wù)」,只是他們根據(jù)自己的技術(shù)問題調(diào)整了軟件而已?!肝覀冞€沒有建造出一個可以替換掉亞馬遜簡單存儲服務(wù)的系統(tǒng),我們只是建立了一個供我們自己使用的系統(tǒng)?!?/p>
甚至當(dāng) Dropbox 仍然在亞馬遜上的時候,亞馬遜就開始表現(xiàn)出會成為 Dropbox 的一個強有力的競爭者——亞馬遜推出了自己的文件分享服務(wù)。盡管亞馬遜推出的這個版本并不是那么適合用戶使用,且缺少 Dropbox 獨特的藍色文件夾那樣的品牌知名度,但是卻著實讓小型公司非常擔(dān)心。但是據(jù) Agarwal 講述,促使 Dropbox 撤離亞馬遜云服務(wù)的主要原因是經(jīng)濟原因而非政治原因。「你需要將這些大型科技公司看做不同的國家,或者友好的鄰居,雖然偶爾會出現(xiàn)一些小沖突。亞馬遜有非常多的業(yè)務(wù),但是我認為亞馬遜的首要任務(wù)不是成為一個像我們一樣的云存儲服務(wù)供應(yīng)商。Dropbox 已經(jīng)建立了為自己服務(wù)的軟件系統(tǒng),而如今他們又往前邁進了一步,他們建立了自己的硬件系統(tǒng)——Dropbox 重新設(shè)計了自己的電腦。
規(guī)?;y題
經(jīng)過數(shù)年的時間,互聯(lián)網(wǎng)巨頭 Google、Facebook、微軟和亞馬遜等都已經(jīng)設(shè)計了自己的數(shù)據(jù)中心硬件系統(tǒng)——計算機服務(wù)器、網(wǎng)絡(luò)交換機以及大數(shù)據(jù)存儲硬件等。這些公司沒有其他選擇,只能是構(gòu)建全部的硬件系統(tǒng):他們的互聯(lián)網(wǎng)帝國太過巨大,從而使得使用傳統(tǒng)方式太過昂貴,也太過困難。他們需要一種新的更便宜、更精簡、且可塑性更強的硬件。因此他們與全球的硬件制造商和供應(yīng)商共同合作建造了云服務(wù)系統(tǒng)。
今天,Google 是世界上建造服務(wù)器最多的公司,而它幾乎不出售服務(wù)器。亞馬遜和微軟也幾乎采用了相同的戰(zhàn)略。由于這些公司也會運行云計算服務(wù),因此許多其他的商業(yè)也會在傳統(tǒng)硬件廠商之外的設(shè)備上運行他們的軟件。當(dāng) Facebook 對其用戶定制服務(wù)進行開源以后這一點變得尤其明顯?,F(xiàn)在大量的供應(yīng)商(包括一些亞洲制造商如 Quanta)開始出售基于 Facebook 硬件的產(chǎn)品。Rami Aljamal 親眼見證了這一發(fā)展過程。如今,他在 Dropbox 中也設(shè)計了這樣的機器。和 Google、亞馬遜、微軟一樣,Dropbox 設(shè)計了這種滿足其獨特需求的設(shè)備。
Dropbox 儲存了大量的數(shù)據(jù),因此它需要適合這項任務(wù)的設(shè)備,而這也正是 Aljamal 及其團隊在該公司的總部——位于舊金山的 Dropbox 總部的實驗室中完成的工作。他們將這臺機器稱為「Diskotech」?!肝覀冏铌P(guān)心的部分是磁盤,這是所有數(shù)據(jù)存儲的地方?!笰ljamal 說。每一個 Diskotech 盒子都儲存有 PB 級的數(shù)據(jù)。50 臺這樣的設(shè)備就可以儲存人類迄今為止所寫的所有數(shù)據(jù)。
更換輪胎
Cowling 及其同事從 2013 年夏天開始研發(fā) Magic Pocket 軟件,花費了大約 6 個月的時間來建立初始代碼。但是這只是開始的很小一步。一旦該系統(tǒng)建立,他們還必須確保系統(tǒng)能正常工作。他們需要將這套系統(tǒng)應(yīng)用于多個數(shù)據(jù)中心的設(shè)備內(nèi)部。他們也需要將軟件應(yīng)用于最新的硬件產(chǎn)品上。不僅如此,他們也需要將所有的數(shù)據(jù)撤離亞馬遜。
Rami Aljamal, Dropbox 工程經(jīng)理
這整個過程持續(xù)了大約兩年的時間。毫不夸張地說,這樣的項目是一個非常大的技術(shù)挑戰(zhàn)。但是這同時也是一個物流挑戰(zhàn)。在互聯(lián)網(wǎng)上轉(zhuǎn)移大量的數(shù)據(jù)是一件事,而將許多設(shè)備轉(zhuǎn)移到數(shù)據(jù)中心又是另一件事,而 Dropbox 必須要完成這兩件事,以便其可以繼續(xù)為數(shù)億人服務(wù)?!高@就像是一輛移動汽車,你希望在更換輪胎的同時汽車仍然在運行?!骨?Facebook 網(wǎng)絡(luò)工程師 Dan Williams 說。換句話說,在進行數(shù)據(jù)轉(zhuǎn)移的時候,Dropbox 并不能停下來。他不能告訴自己的用戶他們的文件暫時不可用。因此,衡量這項工作完成得是否出色的標(biāo)準就是用戶是否有察覺到異樣。
當(dāng) Cowling 及其同事完成了初始代碼的時候,他們在一個標(biāo)準化的硬件網(wǎng)絡(luò)上進行了測試,該硬件是 Dropbox 的縮略版,其中大約 20%的數(shù)據(jù)放置在亞馬遜的服務(wù)器上。他們希望能夠連續(xù)測試 180 天而不發(fā)現(xiàn)大型錯誤,甚至在測試房間的墻上掛上了時鐘。兩個月后,他們發(fā)現(xiàn)了一個程序錯誤——可以看到儲存在錯誤地方的數(shù)據(jù),然后他們重新設(shè)置了時鐘。整個測試持續(xù)了大約 8 個月。
確認該系統(tǒng)可以運行所有的 Dropbox 以后,該團隊進一步將該代碼應(yīng)用在了越來越多的系統(tǒng)上,從而從亞馬遜云服務(wù)器中復(fù)制了越來越多的數(shù)據(jù)。為了順利完成該過程,Dropbox 與亞馬遜的合同延期了 6 個月?!刚麄€過程其實時間非常緊張?!笴owling 說。
事實上,僅僅是將數(shù)據(jù)從亞馬遜遷移出到其他數(shù)據(jù)中心就是一個非常浩大的、堪稱史詩級的任務(wù)。將大小為 PB 級別的數(shù)據(jù)從一臺機器轉(zhuǎn)移到另一臺機器和下載一首歌曲完全不是一個量級。事實證明,轉(zhuǎn)移 4PB 的數(shù)據(jù)需要花費一天的時間?!腹馑倬褪俏覀冝D(zhuǎn)移數(shù)據(jù)的極限速度?!笰garwal 說。
與此同時,電腦也需要轉(zhuǎn)移到數(shù)據(jù)中心,以便接收數(shù)據(jù)。想象一下你的辦公室中的 IT 精英正在努力為新雇員搭建一臺新電腦——但是這個過程是在 Dropbox 這個規(guī)模完成的。所有的這些過程還有時間的限制。如果他們將該系統(tǒng)應(yīng)用到數(shù)據(jù)中心的速度不夠快,那么他們就不能很快地從亞馬遜迅速獲得數(shù)據(jù)。Dropbox 平均每天要搭載 40 至 50 臺機柜,每個機柜大約搭載 8 臺機器。每一天,卡車都將機器從世界各地運送到 Dropbox 的數(shù)據(jù)中心。
為了能夠順利完成數(shù)據(jù)轉(zhuǎn)移任務(wù),Dropbox 設(shè)定了最后的期限。與此同時,由于其歐洲業(yè)務(wù)不斷增長,因此他們選擇了在歐洲繼續(xù)使用亞馬遜云服務(wù),但是該公司 90% 的數(shù)據(jù)已經(jīng)從亞馬遜轉(zhuǎn)移到了 Dropbox 數(shù)據(jù)中心。緊接著,更加緊張的工程開始了。
蓄勢待發(fā)
當(dāng)所有的數(shù)據(jù)都撤離亞馬遜云服務(wù)以后,硬件工程師 Rami Aljamal 相中了程序員 Jamie Turner。Magic Pocket 仍然只是在普通的機器上運行,接下來就是將其轉(zhuǎn)移到客戶定制的硬件上。Aljamal 和 Turner 強強聯(lián)手,以確保該軟件可以在新的硬件上成功運行。Aljamal 和硬件工程師設(shè)計了一種單一機器 Diskotech,可以儲存 1PB 的數(shù)據(jù)。但是其也存在一個問題,即 Magic Pocket 軟件并不能與這種新硬件很好地兼容。因此 Turner 用一種全新的程序語言重新編寫了 Magic Pocket。
Michele Sordal, Dropbox 供應(yīng)鏈經(jīng)理
這看起來或許有些奇怪。為什么將程序置入上千臺機器時,需要改變代碼,然后放置到另外的數(shù)千臺設(shè)備中?但是大型互聯(lián)網(wǎng)數(shù)據(jù)中心的工作方式。機器的老化非??欤偸菚幸恍┎糠衷谑?,然后你需要將這部分替換掉。你總是需要更新你的設(shè)備。首先,Dropbox 需要確保其 Magic Pocket 可以正常運行——這一部分其實已經(jīng)非常困難。然后替換部分硬件,與此同時還需要保證兩者之間可以相互配合得很好。
Crowling、Turner 和其他工程師在建造 Magic Pocket 使用了一種來自 Google 的新程序語言 Go。Dropbox 正在引領(lǐng)一種更大的趨勢,即適用于新型廣泛分布式在線系統(tǒng)的程序語言。Apple 也有一種類似的語言叫做 Swift,Mozilla 則擁有 Rust,而還有另一種獨立的語言叫做 D。所有的這些語言都可以讓程序員可以快速地制作出運行速度很快的軟件。但是對于該公司正在構(gòu)建的海量存儲系統(tǒng)來說,Go 的內(nèi)存占用量太大了。Dropbox 需要一種占用內(nèi)存更少的語言,因為所有的這些內(nèi)存空間都可能被進入的文件所占領(lǐng)。因此,在這項為期兩年半的項目中,他們在 Diskotech 設(shè)備中最終選擇了 Rust。
直面危險
目前來說,像 Google、亞馬遜和 Dropbox 都已經(jīng)經(jīng)歷了很多其他公司并沒有經(jīng)歷的這種極端過程。這就是云計算的力量。事實上,Dropbox 并不是 Google 或者亞馬遜,他并不為程序員和商業(yè)提供原始的計算能力和基礎(chǔ)設(shè)施,但是他為個體和商業(yè)客戶提供了分享和存儲數(shù)據(jù)的服務(wù)。Dropbox 希望分享能夠成為一個平臺,這也是為什么 Dropbox 選擇開發(fā)一個在線文檔編輯和合作工具「Dropbox Paper」。
Jamie Turner, Dropbox 軟件工程師
而 Dropbox 面臨的潛在危險是,隨著亞馬遜、Google 和微軟自身業(yè)務(wù)的擴張,他們勢必會限制 Dropbox 的發(fā)展。在這種情況下,該公司將數(shù)據(jù)轉(zhuǎn)移到自身數(shù)據(jù)中心的舉動或許更像是一個負擔(dān)。眾所周知,舊金山社交游戲公司 Zynga 在達到了超速增長階段時,該公司也選擇了將所有業(yè)務(wù)轉(zhuǎn)移到自身的數(shù)據(jù)中心。但是當(dāng)其業(yè)務(wù)下滑之后,他們發(fā)現(xiàn)他們根本使用不了如此龐大的基礎(chǔ)設(shè)施。而現(xiàn)在這一切落到了亞馬遜身上。
Dropbox 的一大優(yōu)點是,其具有的很多優(yōu)秀工程師,例如 Agarwal、Gupta、Williams 和 Sordal 等都具有非常豐富的經(jīng)驗。Dan Williams 說,「如果你曾經(jīng)在 Facebook 或者 Google 經(jīng)歷過這種超速增長,那么你會非常想念這種感覺?!?/p>
現(xiàn)在,Dropbox 已經(jīng)建立了自己的系統(tǒng),這也代表了目前正在硅谷迅速傳播的的一種態(tài)度。Google 獲得了如此巨大的成功,并不僅僅是因為其建造了非常完善的網(wǎng)絡(luò)搜索引擎業(yè)務(wù),而是其建立了在超大規(guī)模上運行搜索引擎的技術(shù)。Facebook 和 Twitter 也做了相同的事情。現(xiàn)在,則是 Dropbox。為了成為巨人,你必須首先站在別人的肩膀上。但是一旦你自己成長為了巨人,你就會覺得是時候為自己建造一個家了。
文章來源:WIRED. 由 TECH2IPO / 創(chuàng)見 林云簫 編譯,首發(fā)于創(chuàng)見科技(http://tech2ipo.com/),轉(zhuǎn)載請注明出處。