【架構(gòu)】Instagram架構(gòu)揭秘

Instagram是一個在iPhone上基于社交網(wǎng)絡(luò)的圖片分享服務(wù)猫缭,創(chuàng)立之初的一年多時間就吸引了1400萬用戶歼培,目前已經(jīng)用戶達到3000萬毅往。截至到去年八月十艾,Instagram上總共有1.5億張圖片漾稀,所有的數(shù)據(jù)都建立在Amazon stack上模闲。

Instagram的團隊曾經(jīng)撰文《Instagram:數(shù)百的實例 大量的技術(shù)》披露了其架構(gòu)。

Instagram混雜了不同的技術(shù)和策略崭捍。團隊雖然很小围橡,但經(jīng)驗快速增長讓他們趕上了社交和移動互聯(lián)網(wǎng)大潮。他們采用了混合的SQL和NoSQL技術(shù)缕贡,這里有大量的開源項目翁授,并選擇了云服務(wù),Amazon的服務(wù)提供了很高的杠桿率晾咪,這比他們自己建設(shè)要高的多收擦,可靠性完全可用,按時間順序異步的將組件鏈接起來谍倦,系統(tǒng)包含了足夠多的服務(wù)塞赂,包括API和外部服務(wù),這些都不用工程師重新開發(fā)昼蛀。數(shù)據(jù)保存在內(nèi)存中和云端宴猾,多數(shù)代碼為動態(tài)語言,從新開發(fā)的后臺傳輸服務(wù)將所有服務(wù)鏈接在一起叼旋,代碼更新很快并保持簡短仇哆。一個非常現(xiàn)代的架構(gòu)夫植。

我們將Instagram的詳細架構(gòu)列在這里讹剔,總結(jié)很到位,很有價值详民。以下是所有要點:

  • Instagram告訴我們:1)保持簡單 2)利用現(xiàn)成的一切 3)采用被證明穩(wěn)定成熟的技術(shù)

  • 3名工程師(最新的報道稱已經(jīng)增加到13名延欠,這只是暫時的數(shù)據(jù))

  • Amazon商店。他們采用了大量Amazon的服務(wù)沈跨。曾經(jīng)只有3名工程師由捎,你可以想象他們根本沒有時間照看服務(wù)器。

  • 超過100個Amazon EC2實例饿凛,用于各種目的狞玛。

  • Ubuntu Linux 11.04(“敏捷獨角鯨”)邻奠。非常穩(wěn)定,其它版本的Ubuntu也包含在其中为居。

  • Amazon的Elastic Load Balancer路由請求服務(wù)以及背后的3個nginx接口

  • 安全套接層在Elastic Load Balancer終止碌宴,可減少nginx占用的CPU資源

  • DNS采用Amazon Route53

  • 超過25個Django應(yīng)用服務(wù)器,集成在高性能CPU和超大號的機器上

  • 通信對CPU的要求比內(nèi)存的要求高蒙畴,因此高性能CPU的大型機器帶來更好的平衡

  • 網(wǎng)關(guān)接口采用Gunicorn贰镣。Apache調(diào)試更困難而且對CPU要求更高。

  • Fabric用于輸入所有機器控制指令膳凝。部署任務(wù)只需要以秒計碑隆。

  • PostgreSQL(用于存儲用戶信息、圖片說明蹬音,tag以及其它)數(shù)據(jù)庫上煤,運行在12個四重超大內(nèi)存的機器上。

  • 12個PostgreSQL的備份

  • PostgreSQL的主鏡像通過復(fù)制分發(fā)內(nèi)容著淆。Amazon EBS提供快照服務(wù)劫狠,并頻繁的備份。

  • Amazon EBS配置了軟件RAID永部。使用mdadm命令獲得適當?shù)腎/O

  • 所有這些工作存儲在內(nèi)存中独泞。Amazon EBS不能提供足夠高的磁盤尋址服務(wù)。

  • Vmtouch命令(文件系統(tǒng)緩存診斷)用于內(nèi)存中的數(shù)據(jù)苔埋,特別是當數(shù)據(jù)從一臺機器傳輸?shù)搅硪慌_機器失敗的時候

  • 采用XFS文件系統(tǒng)懦砂。保證快照的一致性。

  • Pgbouncer用于連接池鏈接到PostgreSQL

  • 數(shù)TB的圖片存儲在Amazon S3上

  • CDN服務(wù)采用Amazon CloudFront

  • Redis提供feed组橄、進程和其它服務(wù)支持

  • Redis運行在幾個四重超大內(nèi)存機器上荞膘。

  • Redis運行在主鏡像上,副本不斷的存儲在磁盤上玉工。Amazon EBS備份數(shù)據(jù)庫傾倒的信息羽资。在主鏡像上備份十分困難。

  • Apache的Solr提供geo-search的API瓮栗。就像一個JSON的接口削罩。

  • 6個內(nèi)存緩存實例,通過pylibmc和libmemcached鏈接费奸。Amazon Elastic Cache并不便宜。

  • Gearman用于:異步的將圖片分享到Twitter进陡、Facebook及其它網(wǎng)站愿阐;實時的發(fā)布訂閱者的新圖片;

  • 200個Python工作分派任務(wù)進入Gearman的任務(wù)隊列

  • Pyapns(Apple通知服務(wù))控制上十億的通知發(fā)布趾疚,巖石般的穩(wěn)定缨历。

  • Munin繪制系統(tǒng)警報圖表以蕴,開發(fā)了許多定制插件用于Python-Munin繪圖,包括每秒的注冊數(shù)辛孵、每秒圖片發(fā)送數(shù)等等

  • Pingdom用于服務(wù)的外部監(jiān)控

  • PagerDuty控制通知和事件丛肮。

  • Sentry用于Python的錯誤報告

現(xiàn)在,你終于知道了10億美元買到了什么......

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末魄缚,一起剝皮案震驚了整個濱河市宝与,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌冶匹,老刑警劉巖习劫,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異嚼隘,居然都是意外死亡诽里,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門飞蛹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來谤狡,“玉大人,你說我怎么就攤上這事卧檐⊥慊悖” “怎么了?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵泄隔,是天一觀的道長拒贱。 經(jīng)常有香客問我,道長逻澳,這世上最難降的妖魔是什么斜做? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任霸旗,我火速辦了婚禮诱告,結(jié)果婚禮上锄禽,老公的妹妹穿的比我還像新娘沃但。我一直安慰自己宵晚,他們只是感情好,可當我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布唁影。 她就那樣靜靜地躺著哟沫,像睡著了一般嗜诀。 火紅的嫁衣襯著肌膚如雪崔慧。 梳的紋絲不亂的頭發(fā)上惶室,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天鹅士,我揣著相機與錄音也拜,去河邊找鬼慢哈。 笑死,一個胖子當著我的面吹牛永票,可吹牛的內(nèi)容都是我干的卵贱。 我是一名探鬼主播,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼侣集,長吁一口氣:“原來是場噩夢啊……” “哼键俱!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起世分,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤编振,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后臭埋,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體踪央,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年瓢阴,在試婚紗的時候發(fā)現(xiàn)自己被綠了畅蹂。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡荣恐,死狀恐怖液斜,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情叠穆,我是刑警寧澤少漆,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站痹束,受9級特大地震影響检疫,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜祷嘶,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一屎媳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧论巍,春花似錦烛谊、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春双泪,著一層夾襖步出監(jiān)牢的瞬間持搜,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工焙矛, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留葫盼,地道東北人。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓村斟,卻偏偏與公主長得像贫导,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蟆盹,可洞房花燭夜當晚...
    茶點故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 復(fù)盤原來其實是圍棋術(shù)語逾滥,說的就是下完棋之后峰档,對下過的棋進行研究,切磋的過程匣距,包括每一步是否還有另外的選擇面哥,每種選擇...
    追宇閱讀 378評論 0 2
  • 爸,今天很晚才睡毅待。要按平常尚卫。你都睡了一覺上廁所后,會對我說:你還不睡呢尸红?我就說睡呀吱涉,爸。其實我可怕你看到我沒睡了外里,...
    李彎彎閱讀 150評論 0 0
  • 明天就過春節(jié)了怎爵,下午爸爸媽媽和我早早吃完飯,然后一起大掃除盅蝗。爸爸付責家里地面衛(wèi)生鳖链,媽媽付責所有房間的整...
    Guanhaolei閱讀 166評論 0 0