建立Instagram的5年

本文翻譯自Medium,原作者是Mike Krieger,原文地址


在2010年,在我們發布Instagram第一個版本之前的那個晚上,我和我的合伙人Kevin打賭第一天會有多少野生用戶。Kevin猜是2500,在特別樂觀的情況下,我猜了25000這么多。第二天,務實的我難以相信我猜對了。

現在,在我們的第5個生日,Instagram在全球有400萬用戶,一天會上傳8千萬照片和視頻?;仡^看,我們在我們最初的產品里保持了簡潔和工匠的平衡,就在去年,翻新了搜索和發現,發布了嶄新的Instagram Direct,并且繼續發布創造性的工具例如Layout。在過去5年里,我們的團隊已經成長(謝天謝地)和進化,我們保持了我們“先做最簡單的事”的圣歌,并且一直把它作為我們如何在接下來的5年繼續規模化的核心。這是我們在過去5年里創建Instagram的一些重要里程碑——好的、壞的和意想不到的。我希望這能像一個外賣一樣幫助你創建和培育你自己的團隊和公司。

里程碑1號:3個月1百萬用戶

下方文件:最大的挑戰

發布后的第一個月實在是一片模糊——凌晨3點服務器警報頁是常態而不是例外。在第一天爆炸到25000名用戶之后,我們繼續快速增長直到1百萬。沒有比人們真的想要用產品更強的動機了,我們一直在高速檔來確保我們能提供一直增長的需求。在我們開始的時候,我們在一個洛杉磯的獨立服務器上運行,它的計算能力還不如一臺Macbook Pro。當我因為我們第一天的增長而聯系主機提供商想要另一臺服務器,他們給了我一個為期四天的周轉——48小時如果我們沖擊它。由于我們的增長看起來是那么不可預測,我們打算移動到亞馬遜網絡服務云上。

由于我們中沒有一個人對于基礎設施有很多經驗,我們只能浸泡在盡可能多的知識里。QConVelocity上有很棒的研討視頻,還有Facebook、Netflix、Twitter和其它網站的文章。分享科技見解的開放文化是我們這一行最棒的事情之一,最主要的促動者就在我們的工程博客背后。

外賣:我們的圣歌,“先做最簡單的事情”在最開始的幾周和幾個月里成形。雖然我們只有兩個人,但我們要最快速地做決定,每當遇到新挑戰都要最簡單的搞定。如果我們試圖證明我們所做的一切,我們可能會因不作為而陷于癱瘓。通過確定要解決的最重要的問題,然后選擇最簡單的解決方式,我們才能夠支持我們呈幾何級數的增長。

里程碑2號:發布安卓版

下方文件:最受期望的發布
Instagram剛開始的幾年里,我和Kevin每次在舞臺上都會被問一個問題:“安卓版什么時候發布!?”

我們只從iOS開始,因為我們希望能夠快速迭代——我們只是兩個工程師。當我們進入2012年,是時候擴展到多平臺了。用典型的Instagram方式,我們的安卓App在三個月里由3名工程師創建,其中2名和Philip一起學習安卓來完成項目,Philip從創建Gowalla的安卓App中加入我們,引領了Instagram的移動貢獻直到今天。

當時我的角色之一是成為“專業eBay賣家”,因為我們希望能夠在盡可能多的設備上測試我們的App,包括叫做“M865 Ascend II 2 Touch”的什么鬼。我們經常在我們的辦公室里取出一個剛到的新手機,加載我們的半成品App,為能夠在上面運行如何而保持驚訝。安卓設備的豐富度給我們造成了一些挑戰——特別是創造我們的Instagram視頻產品的時候——但用最少自定義需要來發布到這么多種類的設備上是非常神奇的。

在我們發布的頭12個小時里超過100萬新用戶加入了Instagram——難以置信的反應。在當時,我也寫了一些我們的學習基礎設施的課程。隨著時間的過去,我們的安卓App在平臺上進化的更原生化,今天它是最快速、最受好評的安卓App之一。

外賣:從一個單獨的平臺開始允許我們聚焦和快速迭代,而不用把所有事都做兩遍(在Instagram中我們經常說“少做更好”)。當擴展到多平臺的世紀來到時,我們建立了一個小團隊,組合了資深安卓專家和這個平臺的新手天才工程師。隨著時間過去,建立一個完全合格的安卓團隊允許我們調整我們的App和其它平臺更接近。

里程碑3號:2012弗吉尼亞州風暴

下方文件:最糟糕的運行中斷
當時是2012年,我在波特蘭度3天短假,我的手機嗡嗡作響:“Instagram.com掛了”。我去網上速查了一下,顯示不只是Instagram——Netfix和其它網站也在經歷同樣的問題。我跑回我們的酒店,打開我的筆記本,看到亞馬遜網絡服務狀態頁上可怕的消息:“美國東部的電力問題”。一個巨大風暴席卷了弗吉尼亞州,我們幾乎一半的實例都沒電了。接下來的36小時會在我們整個技術設施進行殘酷的重建。一線希望是它生成了這樣的模因圖片:

在當時,包括我在內的我們整個后端團隊,我們的首席工程師Shayne和Rick,他們在不到一個月前剛在Instagram開始工作。沒有丟失用戶數據,但這個運行中斷暴露了我們還有很多工作去做,讓我們的基礎設施全自動化。

這個運行中斷打了我們的屁股,我們需要移動到一個更可重復的服務器配置過程。在接下來的一年里,我們移動了我們所有的供給,從易碎的殼腳本到完整Chef系統,并大大降低了新團隊成員和基礎設施合作的門檻。

我們也移除了對于亞馬遜彈性塊存儲數據庫備份的依賴,改用了WAL-E和Postgres’WAL重復運輸。我們還啟動了一個可靠性的倡議,靠跨數據中心的努力,讓Instagram運行在地理分布式數據中心。

外賣:腳本化的基礎設施需要前期工作,但可以給新工程師到基礎設施團隊帶來巨大的紅利,也有助于災難恢復方案。我也很高興我們雇傭了正確的工程師——面臨無法想象的壞情況時,Shayne和Rick卷起了袖子挽回備份,一個時間一個問題,Mark-Watney風格。

里程碑4號:整合

下方文件:最有志向的工程項目
2010年10月5日:0用戶 ??
2010年10月6日:25000用戶??
2010年11月:100萬用戶??
2012年:3000萬用戶??
2013年:2億用戶??

到2013年每個月有2億用戶使用Instagram,超過200億圖片被存儲。我們的團隊在成長但是很小,并且我們為Instagram團體的持續增長而極度興奮。隨著時間發展,我們持續尋找我們想要和Facebook已經存在的后端系統的新整合——例如,他們的站點完整性系統對于幫助我們鑒別垃圾郵件是有幫助的。但做這些整合很難,當我們在亞馬遜網絡服務的時候,我們等待越久,轉移我們日益增長(和日益昂貴)的基礎設施就越難。

很明顯我們應該轉移到Facebook的基礎設施,但我們在轉移數百萬用戶和數十億照片的時候不想中斷服務。所以開始整合,或者我喜歡叫做在一輛車100邁每小時的時候把所有零件換掉。一個8名Instagram和Facebook工程師組成的小團隊首先建立了一個公用網絡來移動Instagram從EC2到亞馬遜虛擬私有云(VPC),用一個我們家用自制的工具叫做Neti。然后我們周密地轉移我們的系統和工具,包括建立一個“ig”命令行工具,建立了從我們的工程師熟悉的AWS到新的FB數據中心環境的模式橋梁。最終的結果是用最少的中斷完成了巨大的轉移。

外賣:不要重新發明輪子。移動到Facebook服務器讓我們的基礎設施更快、更高效,充分利用Facebook的其它工具例如打擊垃圾郵件等等。我們能吃保持小型,也能利用Facebook的資源和經驗,并且更快的移動。

里程碑5號:Instagram的趨勢

下方文件:下一個大賭博
今年早期,我們翻新了搜索和探索,擴展了在Instagram上輕易發現世界上正在發生的有趣的時刻的能力。我們介紹了趨勢標簽和位置,并且建立了全新的基礎設施來支持辨認、排名和顯示Instagram上最好的內容。

2010我們第一次采用趨勢,是我們的“流行”頁,在Instagram發布的時候就可用。算法非常簡單:用每個圖片的喜歡個數,照片的年齡每大4個小時就衰減一次。在我們的社區很小的時候這很有效,但過了一段時間我們意識到我們需要一個更細微的方式。

考慮到我們巨大的社區,在2014年我們開發了針對個人的探索,帶有無限可滾動的照片和視頻頁面,為每個人而定制。在幾個月內,我們的用戶在用5倍于非個人定制的探索的速度瀏覽內容。今年,我們帶回了初始流行頁的意圖——Instagram格式塔的一瞥——作為我們的趨勢產品。帶有排名,機器學習了加入我們的團隊的專家,我們能夠采用知名趨勢算法來計算Instagram社區的細微差別。

外賣:先做簡單的事不意味著你的解決方式會永遠奏效。我們學習去開放來進化我們的產品,旋轉目標建立團隊就像我們的數據團隊,來適應我們快速規?;纳鐓^。


近五年來,對我們許多人來說,都是一次瘋狂的旅程,在我們的生日之際,暫停和反思是很好的。我確信在我們社區繼續增長的時候,我們產品會繼續進化,在我的“過去10年”的Medium帖子里不會缺少談資。為了接下來的5年!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,565評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,115評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,577評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,514評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,234評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,621評論 1 326
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,641評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,822評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,380評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,128評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,319評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,879評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,548評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,970評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,229評論 1 291
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,048評論 3 397
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,285評論 2 376

推薦閱讀更多精彩內容

  • 最近打球覺得進步不大,貌似到瓶頸期了,需要突破一下,所以想花點時間看看羽毛球教學視頻,提高一下自己的球技,于是在網...
    songleo閱讀 707評論 0 2
  • 第一眼看到這個標題,你是否心存疑惑?我想我必須得聲明,首先,我不是標題黨,其次,這個標題也不是我的首創。它來自于紀...
    馬克叮叮閱讀 128評論 0 0
  • 我總有那么多感慨快畢業了,也許是第一次也許是最后一次,望著天花板白色的模樣,不禁回憶起往事,回憶起我有記憶...
    婷世閱讀 156評論 0 0
  • 小A從高中的籃球聯賽上遇到了在球場上奔騰的易櫟,就這樣再也移不開眼,莫名的想到‘王子’這兩個字。 那時小A根本就不...
    搖曳未生姿閱讀 671評論 0 0