對話企業家陶利——做企業靠 19年前,他是一個程序員,初出茅廬,經驗不足,憑借一己之力闖世界;
省市領導蒞臨億恩科技推進電 12月22日上午,由河南省商務廳,鄭州市商務局有關領導蒞臨河南省億
怎樣選擇服務器托管商?如何 互聯網開展至今,服務器方面的受到越來越多人的注重,假如要停止服務器
當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用戶增長,您有什么看法,可以在以下評論欄里留言。