《TO》導讀:Instagram 自 2010 上線以來,截至目前全球已經超過 4 億個有效用戶;每天,全球有 8000 萬張的照片從手機上傳至 Instagram,照片按讚數突破 35 億次,這還不足以描述 Instagram 火紅程度,近日更傳出有越來越多的父母,竟然開始用 Instagram 上濾鏡的名稱來給自己的孩子取名,不是真心喜愛,還真的難以解釋。
Instagram 如何走到今天?讓創辦人之一的 Mike Krieger,細說從頭,分享他創業成功的 5 個智慧:
還記得,在 2010 年 Instagram 初版正式啟用前,合夥人 Kevin 跟我打賭,在首發當天到底會有多少人下載這個 App。當時他說的是 2500 人,而我不知道從哪兒冒出的自信,竟說出了25,000 這個數字。然而,隔天出爐的結果,簡直讓我不敢相信:下載量正是我們預估的數字。
此刻,正逢 Instagram 五歲生日,Instagram 在全球已經擁有了 4 億個用戶,每天有 8000 萬張照片和影片上傳。回頭看了看,我們也已把原本產品中的特質發揮得淋漓盡致,在複雜與簡單中取得了極佳的平衡 ;在去年,我們不僅重新設計了「搜尋」跟「探索」的功能,也推出了全新的「Direct」選項,更研發了創意組圖軟體「Layout」。
在過去五年,Instagram 團隊秉持著「簡單的事情先做」的精神,不斷地成長茁壯。而下一個 5 年,我們也將以這個一貫精神持續下去。
我想和大家分享 Instagram 這五年以來所歷經的重大里程碑。當然,其中好壞皆有,當然也更有令人驚喜的!希望我所分享經驗,能夠為你,或你所屬的團隊跟公司幫上一些忙。
- 里程碑 1:三個月內突破一百萬用戶
你能想像嗎?IG 正式啟用後的幾個月內,一切的都還在兵荒馬亂之中。凌晨三點鐘伺服器警報嗡嗡作響,大家已經習以為常。從首發的第一天就突破了的 2 萬 5000 名用戶,爆炸性成長到後來 1 百萬名。我覺得,再也沒有什麼事情能夠比「有人願意使用自己的產品」還要使人振奮的了。
我們卯足全力地去支撐日漸提升的用戶需求。我還記得,當時我們是用一個比一台 Macbook Pro 還不如的伺服器在洛杉磯運作,可想而知,一時面對這樣龐大的用戶量,我們還實在是有點措手不及。於是,我打了一通電話給我們的供應商,說明我們需要更多的伺服器來因應更多的用戶。
不過他們表示,需要約 2~4 天的時間來周轉,也就是說我們最快要在 48 小時後才能有新的伺服器。在首發用戶爆炸性成長的震撼下,我們因而決定了使用亞馬遜雲端運算服務 (AWS; Amazon Web Services Cloud) 。
不過,因為我們對基礎架構的瞭解都還不夠深入,經驗不足,所以我們只能竭盡所能地吸收相關的知識。QCon 跟 Velocity 上有很多很棒的演講,Facebook、Netflix、 Twitter和其他地方也有許多不錯的文章。在這個產業裡面,分享技術和新知形成了一種非常棒的「開放文化(open culture)」,這也是為什麼我們有工程師部落格(engineering blog)。
智慧錦囊:我們有一個口頭禪「簡單的事情先做」,這句話就是在這兵荒馬亂的頭幾週中誕生的,因為當時只有我們兩個人在處理所有的事情,所以遇到問題時,必須選擇一個最快最簡單的方法去做。假使我們當時做的每一件事都要顧及未來有沒有戲唱,那我們很可能早就玩完了。
Instagram 之所以能夠撐起不斷增長的使用量,都要歸功於團隊首先選定最迫切需要處理的問題,然後用最簡單的方式去做。
- 里程碑 2:新增 Andriod 版本
Instagram 啟用的前幾年,我跟 Kevin 在公開場合總是會被問到一個問題:你們什麼時候要出 Android 版本啊?
我們之所以一開始只想在 iOS 上發表,是因為想要提升效率,畢竟工程師也就只有我們兩個人。不過,在邁向 2012 年時,我們覺得是時候該開拓多元的新平台了。這次我們靠著三個工程師秉持著 Instagram 一貫的風格,在三個月內完成了 Instagram Andrioid 版本,其中兩個工程師是去學了 Andriod 之後才跟 Philip 一起完成這個任務的。說到我們每個人的角色,Philip 是我們從 Gowalla 請來的工程師,多虧有了他,IG 才有今天的光景。
而我在這當中的角色,就變成了「專業的 eBay 買家」,因為我們想要讓我們的 App 能在任何行動裝置上順暢運作。我記得那時我還買了一台叫做「M865 Ascend II 2 Touch」的東西。很多時候,我們會在辦公室裡開箱,然後把我們還在開發中的 App 裝上去,隨後大讚:「傑克這真是太神奇了!」不過,搭載 Android 系統的行動裝置之多,常使我們面臨挑戰,特別是我們要提供 Instagram 「影片」功能的時候。不過能夠與這麼多型號的裝置相容,極少需要額外設定,我們也不禁讚嘆。
在 Instagram 上架的 12 小時內,有超過 100 萬人加入,反應熱烈。當時,我也發布了我們在基礎架構上學到的東西到網誌上。經過一段時間之後,我們的 Instagram 也在 Android 中更加的遊刃有餘,而且榮登 Android 評價最高、速度最快的 App 之一。
智慧錦囊:從單一的作業系統起家,讓我們更能聚焦在這個 App 上,快速的反覆琢磨(iterate),而不用花時間到另一個作業系統上再做一次同樣的事情(我們常在 Instagram 上說:「做事情就是三個字:少而好」)。
當我們拓展到更多的平台上面的時候,我們成立了一個小團隊。其中,包含了多位資深的 Android 專家和首次接觸 Android 但卻天賦異稟的工程師。經過一段時間之後,這個團隊就成為了讓我們的 App 更貼近作業系統的專業團隊了。
- 里程碑 3:2012 維吉尼亞颶風來襲,網站斷線
危機總在不預期時來臨,話說當時我正在波特蘭度三天的短假,電話聲響起,我一接起來就聽到「Instagram 斷線了!」這四個字。我火速上網搜尋,發現好在我們不是唯一斷線的網站,其他像是 Netflix 的公司也出現了相同的問題。
初步確認了之後,我飛奔回下塌的飯店拿我的筆電,然後就看到了亞馬遜雲端運算服務(AWS)狀態頁面上驚悚的標題「美東電力異常」,冷汗直流。內容大概是說,颶風席捲了我們維吉尼亞州的廠房,幾乎一半以上的設備都陷入了斷電的狀態;接下來的 36 個小時是一個艱鉅的重建過程,因為我們幾乎一半的基礎設施都受到影響。所幸,我們在這張圖片彷彿看見了一道希望的曙光:
當時,我們整個後勤團隊加上我、首席工程師 Shayne 還有一個月前剛來的 Rick,只有三個人。雖然,沒有用戶資料在這當中損失,但這次的斷電事件顯示出我們以前在基礎架構自動化(infrastructure automating)上到底還有多少事情沒有去做。這一次,我們獲得了慘痛的教訓,這個事情告訴我們應該要用優先採用更容易重置的伺服器配置。
隔年,我們就把所有配置從 shell scripts 換成了 chef system,大幅度地減低新進夥伴們操作基礎架構的門檻。同時,我們也捨棄了原本亞馬遜 AWS 裡面的 Elastic Block Storage 系統備份,改使用 WAL-E 和 Postgres’ WAL來達成資料庫同步(replication)。多虧於我們的「跨資料庫運算中心」,我們不僅啟用了信度檢驗措施,更讓 Instagram 能在不同地區的資料庫間進行演算。
智慧錦囊:基礎架構編碼(scripting infrastructure)需要付諸大量的心力,但卻能讓新進團隊成員快速上手,更能在災害中成為強力的後盾。此外,我非常幸運也很榮幸能夠擁有對的工作夥伴。Shayne 跟 Rick 在面臨到始料未及的狀況時,不疾不徐的把問題一個一個的娓娓道來,彷彿泰山崩於前而面不改色。
- 里程碑 4:整合(Integration)+Instagram= Instagration
2010/10/05 使用者:0😬
2010/10/06 使用者:25,000😜
2010/11 使用者:1,000,000 😅
2012 使用者:30,ooo,ooo😆
2013 使用者:200,000,000😵
轉眼間,我們在 2013 年已經擁有每個月 2 億的使用者和 200 億張的照片了。IG 團隊雖小仍然持續成長茁壯,現在看見社群如此壯大,我們都樂極了。一直以來我們也都持續在找尋跟其他平台整合的機會,像是 Facebook 現有的備份系統「Site Integrity」對我們來說就很重要,因為它能幫我們解決垃圾訊息的問題。
不過,整合這件事情來說,可能會非常困難,因為,第一我們還是在亞馬遜(AWS)伺服架構下;第二,基礎架構和金費不斷增加,等的越久的等於錢花越多,移轉越困難。
我們其實非常清楚,絕對有必要移轉到 Facebook 的基礎架構上,但我們不希望因此犧牲我們既有服務的品質,畢竟這關係到上億的使用者和照片。在這兩難的狀況下,整合(instagration)對我來說就好比要把一台在時速 161 公里奔馳的跑車,拆解到只剩零件一樣困難。
Instagram 的八人小團隊與 Facebook 工程師們首先用一起開發的工具 Neti,建立了一個共通的網絡,然後再把 Instagram 從 EC2 移到亞馬遜的 Virtual Private Cloud 中,最後再把我們的系統跟工具整合起來,當中即包含了一個「ig」指令,銜接我們開發人員熟悉的 AWS 跟 Facebook 的資料中心,成為溝通的橋樑。我們兩組人馬就這樣實現了用「最小的犧牲」達成「最大移轉量」的大工程。
智慧錦囊:不要重新去發明已經有的東西。我們之所以能夠提供 IG 基礎架構一個更快更有效率的空間和擁有許多諸如垃圾訊息阻擋的工具,都透過移動到 Facebook 的伺服器辦到的。我們就是因為運用 Facebook 所提供的資源與經驗,才能夠在維持小團隊編制的情況下還能達到大大的成果。
- 里程碑 5:Instagram 上的「熱門」分頁
今年初,IG 重新設計了「搜尋」功能,讓使用者能夠更容易的在 Instagram 上發現更多有趣的事情。我們推出「標籤(hashtag)」跟「地標」的功能,並且設置了一套全新的基礎架構來篩選、排序、呈現 Instagram 上最佳的內容。
回想我們第一次嘗試做「熱門」分頁是 2010 年的事情了,當時它叫做「流行(popular)」頁面,也就是 Instagram 剛開啟時出現的那個頁面。它的計算公式非常簡單,依照每張照片的 Like 數量,然後從 4 小時候開始越舊的就越快沈下去。當時這個計算方法非常有效,因為我們的社群人數不多。不過,當我們人數隨著時間增加的時候,我們開始意識到需要新的演算法了。
2014 年時,我們時開始在這個逐漸擴大的社群中提供個人化搜尋,讓使用者有滑也滑不完的照片和影片,全都是量身定做。不出幾個月,使用者跟我們的個人化內容互動的頻率多出了五倍。在今年,我們決定讓原來的「流行」頁面回歸,讓使用者一瞥 Instagram 最初的風貌,有了排序和人工智慧的專家們的加入,我們的團隊已經能夠在 Instagram 新興的社群中,充分的運用各種廣為人知的演算法了。
智慧錦囊:永遠先做最簡單的事情,不代表同樣的方法永遠有效。我們學會如何接納各方意見去改良我們的產品,成立像 Datagram 這樣的目標導向團隊,目的就是為了要去因應迅速成長的社群。
最近的五年,對我們來說是充滿了刺激的冒險,在 Instagram 5 歲生日的此刻,能夠慢下腳步,靜靜的回想,感到格外的美好。我相信,我們的社群能夠持續成長,然後我們的產品會持續的進化。當我再次回到 Medium 出 10 年回顧啟示錄的時候,我將再次侃侃而談。
一起向下一個五年邁進吧!
COMMENT