虎嗅注:2010年10月,Instagram發(fā)布了第一版。在發(fā)布之初,Instagram僅支持iOS平臺,在2012年4月時推出了Android版本,如今Instagram迎來了自己五歲的生日。Instagram創(chuàng)始人Mike Krieger在Medium上面發(fā)表了如下這篇文章來講述產(chǎn)品的五年之路。本文來自Medium,作者Mike Krieger,虎嗅編譯。
在2010年,Instagram v1版本發(fā)布的前夜,我們聯(lián)合創(chuàng)始人Kevin和我打了個賭,賭在毫無營銷手段的情況下我們發(fā)布首日的下載量會是多少。Kevin賭是2500,而我,極其樂觀地下賭25000。第二天,我都不敢相信下載量居然真的如我下注的那般。
當我們的團隊在過去5年中不斷成長進步,始終堅持把簡潔放在首位,并將它作為我們下一個5年計劃的核心?,F(xiàn)在我想和大家分享一下在過去的5年中,Instagram創(chuàng)下的一些最具里程碑意義的事件,這里有好有壞也有驚喜。我希望這些也可以為你的團隊和公司提供一些值得借鑒之處。
里程碑1:3個月內(nèi)收獲1百萬用戶
里程碑背后:最大的挑戰(zhàn)
我們發(fā)布產(chǎn)品后的第一個月的工作狀態(tài)簡直是一團亂麻——服務器在凌晨3點彈出警告頁面是常態(tài)而非例外。在收獲了我們發(fā)布首日的25000名用戶后,我們很快就將其擴張到了1百萬。
這背后的驅(qū)動力都因為人們實實在在地喜歡使用我們的產(chǎn)品,我們?yōu)榱烁玫貪M足用戶不斷增長的需求,必須進入快速發(fā)展階段。我們項目剛起步的時候,一切運行都僅依靠一臺位于洛杉磯的服務器,運算能力還不如一部Macbook Pro。鑒于產(chǎn)品發(fā)布第一天的戰(zhàn)績,我們馬上向托管提供商請求了另外一臺服務器,但他們要求一個為期4天的周轉(zhuǎn)期,如果我們很急的話,2天也可。但考慮到我們用戶數(shù)的驚人增速,我們最終決定使用亞馬遜的Amazon Web Services云服務。
由于我們團隊沒人有過很深厚的基礎(chǔ)構(gòu)架經(jīng)驗,只能盡可能地汲取所能接觸到的一切知識。我們看了QCon(譯者注:軟件開發(fā)大會)和Velocity的會議視頻,也看了很多發(fā)表在Facebook、Netflix和Twitter等媒體平臺上的優(yōu)秀文章。不僅如此,我們還將這些成長和學習心得寫成了工程日記發(fā)表出來,我認為將產(chǎn)品技術(shù)開放是公司做得最棒的事情之一。
干貨拿走:我們的目標是—— “簡潔至上”,這是在最初幾周到幾個月就確立的。因為當時團隊只有我們兩個人,所以我們面對每個新挑戰(zhàn)時都不得不作出最快最簡的選擇。如果每做一件事都要先證明其可行性的話,我們可能會陷入無事可為的窘境吧。確定下來首要解決的問題,然后再選擇最簡單的解決方案,就這樣我們創(chuàng)造了用戶的指數(shù)級增長。
里程碑2:發(fā)布安卓版
里程碑背后:最受期待的產(chǎn)品發(fā)布
我們發(fā)布Instagram的頭兩年,Kevin和我每次在公眾面前都會被問到同一個問題: “什么時候會有安卓版本???”
我們最初只做iOS版本是因為我們希望產(chǎn)品能夠進行快速的迭代,畢竟我們只有兩名工程師。但進入2012年后,我們認為這是向多平臺擴展的時機了。延續(xù)了Instagram的簡潔行事風格,安卓版app由三名工程師用三個月的時間就搭建完成了。這三名工程師中,Philip曾負責Gowalla安卓版開發(fā),如今領(lǐng)導著Instagram移動端的業(yè)務,另外兩名工程師是安卓開發(fā)新手,師承Philip。
這次,我的角色之一變成了 “專業(yè)的eBay買家”,因為我們想在盡可能多的設(shè)備上測試我們的app,甚至包括什么 “華為M865 Ascend II 2 Touch”之類的。那段時間,我們幾乎都在做開封新手機、安裝app,再為運行效果而驚訝的事情。由于安卓設(shè)備眾多,這為我們帶來了不小的挑戰(zhàn),尤其是當我們搭建Instagram Video的時候。但是當我們看到app可以在不同的設(shè)備上順利運行時還是十分振奮的。
安卓版發(fā)布的頭12個小時,我們就收獲了超過100萬的用戶,完全出乎了我們的意料。照例,當時我也寫了一些搭建基礎(chǔ)構(gòu)架時的心得。,我們的安卓版app不斷完善,更加適應安卓平臺,如今,它已經(jīng)成為安卓平臺上發(fā)展最快、排名最好的app之一。
干貨拿走:始于單平臺發(fā)展讓我們更加專注,迭代更快,因為一切功能不必實現(xiàn)兩遍(在Instagram內(nèi)部我們經(jīng)常說“少做則好”)。當向多平臺發(fā)展那天到來的時候,我們創(chuàng)建了一個由資深安卓開發(fā)師和兩個安卓開發(fā)新人組成的小團隊。一段時間后,我們就有了成熟的安卓團隊,可以讓我們的app與安卓平臺更加契合。
里程碑3號:度過了2012年的維吉尼亞風暴
里程碑背后:最嚴重的停電事故
2012年,當我正在波特蘭享受著我的三天小長假時,手機收到一條消息: “Instagram掛掉了”。我立刻上網(wǎng)確認了這個消息,同時了解到受停電事件波及的不止Instagram,還有Netflix等。然后我火速回到了酒店,打開筆記本,卻在亞馬遜云服務器上得到了一個令人絕望的消息: “此次斷電故障范圍為美國東部”。這是發(fā)生在整個維吉尼亞州的巨型風暴,這場風暴導致了我們半數(shù)的設(shè)備斷電。那之后的36小時,我們開始了對整個基礎(chǔ)框架的瘋狂重建。當時只有下面這張圖能給我一絲力量:
(Instagram掛了,你就口述一下你中午飯就行了。)
那時候,我們整個后端團隊只有我、Shayne(Instagram團隊的首位工程師)和Rick(只加入了Instagram團隊不到一個月)組成。幸好事故沒有造成任何用戶數(shù)據(jù)丟失,但這次停電事件暴露了我們基礎(chǔ)構(gòu)架無法自動化的弱點。
它我們敲響了警鐘,我們需要更可復制的服務器配置過程。在那之后的一年里,我們把服務從脆弱的Shell Scripts轉(zhuǎn)為了Chef系統(tǒng),也有效降低了團隊新成員熟悉我們框架的成本。
同時我們也解決了對存儲在亞馬遜Elastic Block Storage上的數(shù)據(jù)備份的過度依賴,取而代之的是使用WAL-E和Postgre的WAL的復制機制。
干貨拿走:擁有一個可編寫腳本的基礎(chǔ)框架需要很多前期工作,但一旦建成,這對于新工程師們是極其有利的,能夠有效為災難性復原提供幫助。另外,我很慶幸我們雇傭了很優(yōu)秀的工程師團隊,當我們遭遇無法想象的情景時,Shayne和Rick可以立刻圈起袖子為修復系統(tǒng)而全力以赴。
里程碑4:Instagram的服務器遷移
里程碑背后:最雄心壯志的工程項目
Instagram用戶數(shù):
2010年10月5日:0用戶
2010年10月6日:25000名用戶
2010年11月:1百萬用戶
2012年:3000萬用戶
2013年:2億用戶
到2013年,我們已有2億月活躍用戶和超過200億張圖片信息。我們的團隊雖小但在不斷成長,也為Instagram的不斷成長而激動。
一直以來,我們都在尋找與Facebook后端系統(tǒng)整合的可能,比如他們的Site Instegrity(譯者注:Facebook的anti-spam系統(tǒng))系統(tǒng)就有效地幫我們解決了垃圾郵件問題。但這些整合很難在亞馬遜服務器上完成,而且時間越久就越難將Instagram的基礎(chǔ)框架遷移到Facebook上。
干貨拿走:不要白費力氣做重復工作。把Instagram轉(zhuǎn)移到Facebook的服務器上可以使我們的基礎(chǔ)架構(gòu)更加高效,同時也能夠?qū)acebook的工具利用起來,比如那個反垃圾郵件工具等。我們能夠在保持產(chǎn)品精小的同時利用Facebook的資源和心得,使成長更快。
里程碑5:Instagram的趨勢標簽
里程碑背后:產(chǎn)品的下一個大賭注
今年初,我們修整了“搜索與發(fā)現(xiàn)”功能,讓用戶更容易發(fā)現(xiàn)時下發(fā)生在Instagram上最有趣的事情。我們還推出了熱門標簽和地點,并搭建了全新的系統(tǒng)用以用戶識別、排序和推送Instagram上面最優(yōu)質(zhì)的內(nèi)容。
我們推出“趨勢”這一功能最早要追述到2010年Instagram剛發(fā)布時,當時我們做了一個名為“Popular”的頁面。這個算法非常簡單:就是根據(jù)每張照片的點贊數(shù)目進行圖片推薦,發(fā)布4小時之后的照片則會從推薦頁面上撤下來。這個方法在Instagram用戶數(shù)少時非常有效,但久而久之,我們意識到我們需要更加細致的算法去發(fā)現(xiàn)趨勢性照片。
隨著用戶數(shù)擴大,我們在2014年時推出了個性化的“發(fā)現(xiàn)”功能,為每個用戶推送可無限刷新的照片和視頻內(nèi)容。短短幾個月,用戶與內(nèi)容的互動量就有之前非個性推送時的5倍。今年,我們重新關(guān)注了最初的Popular頁面,做成了像是整個Instagram熱門一覽,整合成為“趨勢”產(chǎn)品。隨著排序算法和機器學習專家的加入,我們已經(jīng)能夠使用最先進的趨勢算法去發(fā)現(xiàn)社區(qū)里發(fā)生的事件。
干貨拿走:簡潔為先并不意味著你的解決方案會永遠奏效。我們要開放性地發(fā)展產(chǎn)品,確立明確的團隊目標,快速地發(fā)展用戶群。
過去5年,我們的成長速度像飆車般瘋狂,我很開心能夠在我們生日之際進行這樣的暫停和反思。我相信隨著用戶的不斷增長,產(chǎn)品的不斷發(fā)展,當我在Medium上發(fā)表 “回顧過去的10年”時,我將沒有遺憾?,F(xiàn)在,讓我們邁向下一個五年吧。