創始人告訴你,Instagram 成功的 5 個經驗

作者 | 發布日期 2015 年 10 月 31 日 12:00 | 分類 社群 , 網路 follow us in feedly

本文作者為 Instagram 創始人 Mike Krieger。他在本文中講述了 Instagram 這 5 年來的 5 件里程碑事件和從中得到的經驗教訓。



2010 年,我們推出 Instagram 第一版的前一夜,聯合創始人 Kevin 和我打賭,在沒有任何推廣的情況下,第一天會有多少人下載我們的 App。Kevin 猜是 2,500 人,而在那個特別樂觀的瞬間,我決定把數目定高,猜測會有 25,000 人。結果第二天,我都不敢相信,下載量恰好就是我所估計的數目。

如今,在我們第 5 個生日之際,Instagram 在全球已經擁有 4 億用戶,他們每天上傳 8,000 萬張圖片或影片。往回看,我們在最初的產品上就實現了簡潔與精細的平衡,而在上一年,搜尋和發現功能得到更新,Instagram Direct 上線了全新介面,並且有創意小工具不斷推出,比如 Layout。

在我們團隊發展的這 5 年中,我們一直忠於我們的原則:先做簡單的事。而在我們的下一個 5 年,也會把它繼續做為核心。下面是我們在過去 5 年創立 Instagram 過程中的一些大的里程碑——有好的、不好的、還有令人驚喜的。我希望其中會有你可以帶走的經驗,幫助你去發展你自己的團隊和公司。

 

里程碑 #1:3 個月內擁有 100 萬用戶

總結:最大的挑戰

在 Instagram 推出後的第一個月,情況幾乎是混沌的—— 凌晨 3 點伺服器警告頁面的出現是常態而不是例外。在第一天激增至 25,000 名用戶後,我們的用戶數繼續快速增長,直到達到 100 萬。沒有什麼刺激比人們真的想用我們的產品更強烈的了,於是我們換到了「高速檔」,確保我們可以支撐增長的需求。當我們剛開始的時候,Instagram 只在洛杉磯的一個伺服器上運行,它的運算能力比一部 MacBook Pro 還要差。在遭遇到第一天快速增長之後,我跟主機服務提供商打電話,要求增加一台伺服器,他們說需要 4 天才能實現——如果我們很急的話可以縮短到 48 小時。考慮到我們的增長看起來那麼不可預測,我們決定轉移到 AWS(亞馬遜網路服務)。

考慮到我們在基礎架構上都沒有太多的經驗,我們不得不快速地盡量吸收知識。QCon 和 Velocity 上有非常好的會議影片,Facebook、NEtflix、Twitter 還有其他網站上也有很多相關文章。共享技術性想法的這種開放文化是我們這個行業最好的東西之一,也是促使我們更新技術部落格的主要因素。

可借鑑的經驗:我們的原則——「先做簡單的事」在最開始的時候已經成型了。因為當時我們只有兩個人,因此,每一次面對新挑戰的時候,我們都需要確定一個最快速,最簡單的解決辦法。如果當時我們對一切事情都做長遠考慮,那麼我們可能會因為什麼也做不了而癱瘓。選擇最重要的問題去解決,選擇最簡單的解決方法,這樣才能支撐起我們指數式的增長。

 

里程碑 #2:登陸 Android

總結:最令人期待的發表

在 Instagram 的最初幾年,每一次我和 Kevin 上台時都會遇到同樣的一個問題:「Android 版本什麼時候推出?」

我們剛開始只發布了 iOS 版本,這是因為我們希望可以快速迭代我們的產品——要知道我們當時只有兩個工程師。但進入 2012 年,拓展到更多平台上的時機已經到來。在典型的 Instagram 風格下,我們的 Android App 在 3 個工程師的 3 個月努力下搭建起來。團隊裡除了有兩位為完成這個項目而學習 Android 的工程師外,還有從 Gowalla(一家基於位置服務的社交網路公司,在 2012 年關閉) 的 Android 部門過來的 Philip,他領導 Instagram 的行動業務直到現在。

在那段時間裡我部份的工作是成為一個「專業的 eBay 購物者」,因為我們希望在盡可能多的裝置上測試我們的 App,包括一個叫「M865 Ascend II 2 Touch」的手機。通常的流程是,拆開送來我們辦公室的新手機,安裝我們的測試版 App,然後讚歎 App 在上面的良好表現。Android 裝置的廣泛給我們帶來了一些挑戰——特別當我們開發 Instagram 影片產品的時候。但是,在很小的改動後,我們的應用就能適應如此多裝置,這讓我們非常興奮。

Instagram_Android_ifanr1030

當 Android 版本發表後的 12 個小時,有超過 100 萬新用戶加入 Instagram——這是一個非常難以置信的結果。在那個時候,我還寫了一些在基礎架構上學到的東西。隨著時間的推移,我們的 Android 版本不斷更新,越來越像平台上的原生應用程式了。到了今天,它已經成為增長最快、評分最高的 Android 應用程式之一。

可借鑑的經驗:從一個平台上起步,這使得我們可以專注其中,並且,我們可以快速迭代而不需要任何東西都重複實現兩次(在 Instagram 內部我們經常說「把更少的事情做好」)。當到了需要拓展到更多平台的時間,我們搭建了一個小團隊,裡面包括 Android 的專家和一些對這個平台不熟悉但有才華的工程師。組建一支成熟的 Android 團隊讓我們的 App 可以逐漸適應那個平台。

 

里程碑 #3:2012 年維吉尼亞州風暴

總結:最糟糕的斷電

當時,我正在波特蘭享受 3 天的長週末,電話響了:「Instagram.com 當機了」。我立刻上網看,發現除了 Instagram 之外,Netflix 和其他網站也出現了同樣的問題。我跑回旅館,打開筆電,看到 AWS(亞馬遜網路服務)的狀態頁面上有一條讓人驚慌的消息:「us-east 可用區(位於美國東部)出現電力問題」。一場大風暴席捲了維吉尼亞州,我們的虛擬伺服器幾乎一半都失去了電力。接下來的 36 個小時裡,我們艱難地重建了幾乎全部的基礎設施。可以苦中作樂的是,由於此事,出現了下面這幅搞笑圖片:

Instagram3_ifanr1030

▲ Instagram 當機了,跟我說說你中午吃了什麼。

當時,我們全部的後端技術團隊只包括我自己、首位工程師 Shayne 和 Rick——他加入 Instagram 的時間不到一個月。用戶數據未遭受任何損失,但是,此次斷電揭露出了我們在自動化運維上的缺點。

這次斷電倒逼我們採用重用性更高的伺服器配置過程。在之後的一年中,我們將所有配置從一大堆容易出問題的 shell 腳本遷移到了 chef (一個開源的配置管理以及自動化運維工具),這大幅降低了新團隊上手的門檻。

除此之外,我們還使用了開源項目 WAL-E 和 Postgres 內置的 WAL (預寫日誌)替代了依賴於 Amazon ELB (Amazon AWS 提供的塊存儲方案) 的資料庫備份方案,並實現了資料庫同步 (replication)。除此之外,我們也成立了一個可靠性工作組,這個工作組使 Instagram 擁有了運行在物理分布式的數據中心上的能力。

可借鑑的經驗:儘管構建一個基礎構架需要不少前期工作,但是在基礎設施運維組有新成員加入時以及在災難恢復工作進行時,這些前期工作將得到回報。除此之外,我也很高興的看到,我們招募的工程師非常優秀——當遇到狀況外的糟糕狀況時,Shayne 和 Rick 都緊張的投入了工作,讓我們重新恢復了服務。一次解決一個問題,像 Mark Watney(電影《絕地救援》的太空人)那樣。

 

里程碑 #4:Instagram 式的融合

總結:最具野心的工程項目

2010 年 10 月 5 日:0 用戶
2010 年 10 月 6 日:25,000 用戶
2010 年 11 月:100 萬用戶
2012 年 :3,000 萬用戶
2013 年:2 億用戶

到了 2013 年,Instagram 的每月使用人數達到 2 億,儲存照片達到 200 億張。儘管團隊在擴張,整個團隊仍然是個小團隊,而且,我們激動地看到了 Instagram 社群的持續成長。

隨著時間推移,我們不斷思考如何與 Facebook 的現有後端系統進行整合。例如,Site Integrity(站點完整性)系統可以對抗垃圾訊息。但是,因為基礎設施運行在在 AWS 上,這種整合就很難進行。而且,我們等待時間越長,不斷擴張(而且愈加昂貴)的基礎架構就越不容易遷移。

很顯然,我們需要遷移到 Facebook 的基礎設施上面,但是,當我們遷移上億用戶和數十億圖片時,我們不想影響自己的服務。於是,Instagration(這是作者創造的符合詞,instagram+intergration,Instagram 式的整合)開始了。對於這件事,我比較喜歡的一個比方是汽車在 100 英里時速的行駛中更換所有的零件。一個包括 Instagram 員工與 Facebook 工程師的 8 人小團隊接受了這個挑戰。首先,他們開發了一個叫做 Neti 的工具,把實例從 AWS EC2 經典網路遷移到了 VPC 上。接下來,他們構建了一個叫做 「ig」 的命令行工具,在 Facebook 的數據中心中模擬了 AWS 的設計模式以及使用習慣。在這一切的周密安排下, Instagram 在做到最小的影響下完成了一次最大的遷移。

可借鑑的經驗:不要重新發明輪子。轉向 Facebook 的伺服器後,我們的基礎設施變得更快速、更高效。同時,我們還可以利用 Facebook 的其他工具,比如反垃圾工具等。我們仍然維持了小團隊,但是,我們利用了 Facebook 的資源和經驗,實現了更快的迭代。

 

里程碑 #5:Instagram 的「熱門」功能

總結:下一個大賭注

今年早期,我們重新設計了「搜尋和探索」功能,使用戶能夠更方便地尋找 Instagram 上的有趣時刻——當它們發生的時候。我們推出了熱門標籤和地點功能,並且構建了全新的基礎架構,能夠對 Instagram 上最好的內容進行辨識、排序和展現。

我們對熱門趨勢的首次展現是 2010 年的「流行」頁面。這是 Instagram 發表時就有的功能。算法非常簡單:用每張照片實際擁有的讚數來排列,而 4 小時之後照片就會逐漸消失。當我們的社群很小時,這是不錯的做法,但是,隨著時間的推移,我們意識到,我們需要一種更為精細的方法。

考慮到我們已經擴大的社區,2014 年,我們開始了「探索」功能的個性化,為每個人帶來了可無盡滑動的圖片和影片頁面。在幾個月裡,我們的用戶與內容的互動次數達到了「探索」未個性化前的 5 倍。今年,我們讓原來的「流行」頁面回歸——讓你一覽 Instagram 的全貌——它就是我們的「熱門」功能。隨著排序和機器學習專家加入我們的團隊,我們能夠使廣為人知的熱門趨勢算法適應 Instagram 社群的各種需求。

可借鑑的經驗:先做簡單的事並不意味著你的方案永遠合適。我們學會了以開放態度對待產品的進化,以及為實現特定目標而組建團隊,比如 Datagram 團隊。這使得我們可以適應快速擴大的社群。

對於我們之中的大多數人來說,過去的 5 年是一段狂野的旅程。在生日之際,停下來反思,這是一件不錯的事情。我相信,我們的社區會繼續成長,而我們的產品也會不斷改進。當我今後在 Medium 寫下「回顧 10 年」的時候,肯定還有聊不完的話題。向接下來的 5 年邁進!

(本文由 愛范兒 授權轉載) 

關鍵字: , , , ,

發表迴響