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