成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Instagram成功背后的工程技術(shù)秘密

系統(tǒng)
Instagram是許多創(chuàng)業(yè)公司的楷模,十幾個(gè)人的公司,從剛開始的默默無聞到最后被Facebook重金收購(gòu)。這么一家公司,從最開始的操作系統(tǒng)選擇,服務(wù)器到數(shù)據(jù)庫選擇,消息推送,都是如何進(jìn)行的?本文編譯自Instagram工程博客,告訴你Instagram的技術(shù)“秘密”。 在選擇一個(gè)系統(tǒng)的時(shí)候,我們的核心原則就是:盡量簡(jiǎn)單;不做重復(fù)工作;盡量采用經(jīng)過驗(yàn)證的靠譜的技術(shù)。

Instagram是許多創(chuàng)業(yè)公司的楷模,十幾個(gè)人的公司,從剛開始的默默無聞到***被Facebook重金收購(gòu)。這么一家公司,從最開始的操作系統(tǒng)選擇,服務(wù)器到數(shù)據(jù)庫選擇,消息推送,都是如何進(jìn)行的?本文編譯自Instagram工程博客,告訴你Instagram的技術(shù)“秘密”。 在選擇一個(gè)系統(tǒng)的時(shí)候,我們的核心原則就是:盡量簡(jiǎn)單;不做重復(fù)工作;盡量采用經(jīng)過驗(yàn)證的靠譜的技術(shù)。

 

操作系統(tǒng)/托管

因?yàn)楫?dāng)時(shí)我們只有三個(gè)人,而且需求也不是很多,還沒有到自己建立服務(wù)器的地步,所以考慮托管,采用的是 Amazon EC2上的Ubuntu Linux 11.04 (Natty Narwhal )系統(tǒng),以前版本的Ubuntu在EC2上面跑的時(shí)候如果遇到高流量會(huì)莫名其妙地死機(jī),但是Natty(Ubuntu的一個(gè)版本代號(hào))就沒問題,可能隨著應(yīng)用發(fā)展以及使用的增加,我們會(huì)建立自己的服務(wù)器。

負(fù)載平衡

每個(gè)發(fā)送到Insagram的請(qǐng)求都要通過負(fù)載平衡器,當(dāng)時(shí)我們用2臺(tái) nginx服務(wù)器以及DNS輪叫調(diào)度承載前端請(qǐng)求,這種方法的負(fù)面影響就是,如果一臺(tái)機(jī)器癱瘓,DNS就得花時(shí)間進(jìn)行更新,于是最近我們使用亞馬遜的彈性負(fù)載均衡器(Elastic Load Balancer),我們也在ELB曾停掉了SSL,減小NGINX上CPU壓力,DNS服務(wù)則使用亞馬遜的Route53,最近AWS提供了非常不錯(cuò)的GUI工具。

應(yīng)用服務(wù)器

接下來就是請(qǐng)求的處理,啟用的是亞馬遜 High-CPU Extra-Large 中的Django框架,隨著使用的增加,Diango數(shù)量從最開始的幾個(gè)增加到超過25個(gè)。同時(shí)我們采用 http://gunicorn.org/ 作為WSGI服務(wù)器,通常我們都習(xí)慣使用 mod_wsgi 和Apache,后來發(fā)現(xiàn)Gunicorn更容易配置,而且是CPU密集型,如果要同時(shí)運(yùn)行多個(gè)實(shí)例指令,我們就采用 Fabric(最近增添了幾個(gè)有用的平行模式)。

數(shù)據(jù)儲(chǔ)存

我們的大多數(shù)數(shù)據(jù)(用戶信息,照,標(biāo)簽等等)都存在 PostgreSQL中,我們?cè)鴮戇^關(guān)于如何在不同 Postgres實(shí)例之間共享,我們的主要共享集群包含12個(gè) Quadruple Extra-Large內(nèi)存實(shí)例。

我們發(fā)現(xiàn)亞馬遜的網(wǎng)絡(luò)磁盤系統(tǒng)(EBS)的每秒尋道能力不足,所以就將數(shù)據(jù)盡量保存到內(nèi)存中,為了達(dá)到合理的IO性能,我們?cè)谑褂肕dadm工具的RAID軟件中啟用EBS驅(qū)動(dòng)。

后來發(fā)現(xiàn) vmtouch這種內(nèi)存數(shù)據(jù)管理軟件很好用,尤其是在將故障從一臺(tái)設(shè)備轉(zhuǎn)到另一臺(tái)機(jī)器時(shí)候,表現(xiàn)很不錯(cuò),這是我們我們對(duì)vmtouch運(yùn)行的分析腳本,以及為了與現(xiàn)在的內(nèi)存狀態(tài)相匹配而對(duì)應(yīng)的vmtouch輸出指令,

為了將數(shù)據(jù)庫與我們的應(yīng)用服務(wù)器相連,我們采用 Pgbouncer,照片本身會(huì)直接分享到亞馬遜的S3,利用亞馬遜的CloudFront 作為我們的CDN以節(jié)省圖片載入時(shí)間。

另外,我們還使用Redis,但由于所有Redis數(shù)據(jù)都需要與內(nèi)存匹配,所以我們就停止運(yùn)行一些Quadruple Extra-Large Memory案例,只在一些特定的子系統(tǒng)中分享一些Redis實(shí)例。

對(duì)于我們的 geo-search API,已經(jīng)使用PostgreSQL 幾個(gè)月了,不過如果分享了媒體入口,就會(huì)使用 Apache Solr,我們這個(gè)API還有一個(gè)非常簡(jiǎn)單的JSON接口,對(duì)于我們的應(yīng)用來說,這相當(dāng)于另一個(gè)API。

***,和任何現(xiàn)代Web服務(wù)一樣,我們使用 Memcached 來進(jìn)行緩存,現(xiàn)在我們有6個(gè) Memcached實(shí)例,然后用pylibmc & libmemcached進(jìn)行連接(亞馬遜最近還推出了一個(gè)Elastic Cache)。

任務(wù)隊(duì)列/消息推送

當(dāng)有用戶將Insagram圖片分享到Twitter或者Facebook的時(shí)候,或者當(dāng)我們想要知道用戶何時(shí)上傳圖片的時(shí)候,我們就用Danga開發(fā)的任務(wù)隊(duì)列系統(tǒng)German來處理,這樣一來,不用同時(shí)處理任務(wù)隊(duì)列,上傳媒體文件就非??臁?/p>

關(guān)于消息推送,我們找到的最節(jié)約成本的方案就是https://github.com/samuraisam/pyapns,這是一個(gè)開源服務(wù),能為我們處理幾十億消息推送,絕對(duì)靠譜。

監(jiān)控

前面的服務(wù)器實(shí)例加起來差不多有100多個(gè),所以有效監(jiān)控實(shí)例非常重要,我們用 Munin監(jiān)控我們整個(gè)系統(tǒng),系統(tǒng)任何異常就及時(shí)提醒我們。我們也基于Python-Munin寫了不少定制插件來檢測(cè)一些非系統(tǒng)及的特征(比如每秒注冊(cè)數(shù)量,每秒圖片上傳數(shù)量等),同時(shí)利用Pingdom 作為服務(wù)器外部監(jiān)控工具,并利用PagerDuty作為消息通知以及突發(fā)事件處理工具。

對(duì)于Python錯(cuò)誤報(bào)告,使用開源的DIango應(yīng)用Sentry來處理,可以在任何時(shí)候登陸并實(shí)時(shí)查看系統(tǒng)中出現(xiàn)了哪些錯(cuò)誤。

 

【編輯推薦】

  1. 了解Instagram背后的技術(shù)
  2. 為了夢(mèng)想我拒絕了Instagram的Offer
  3. 背后支持著Instagram的開源技術(shù)

 

責(zé)任編輯:張浩 來源: 雷鋒網(wǎng)
相關(guān)推薦

2012-05-11 14:10:21

Instagram技術(shù)

2010-02-04 10:47:29

Dalvik移植技術(shù)

2020-04-15 13:55:28

Kubernetes容器

2012-04-18 11:07:44

FacebookInstagram開源

2012-02-23 16:09:59

Webkit豌豆莢

2010-08-10 11:16:03

IPV4IPV6

2022-09-22 09:54:56

技術(shù)選型

2022-12-29 08:00:00

Transforme架構(gòu)深度學(xué)習(xí)

2009-09-18 12:32:28

Rasmus LerdPHP

2021-11-16 10:12:03

無秘密技術(shù)密碼網(wǎng)絡(luò)安全

2018-07-23 15:35:17

機(jī)器學(xué)習(xí)特征工程技能數(shù)據(jù)科學(xué)

2010-10-25 10:13:16

ibmdwWebSphere

2013-03-01 10:45:36

Nike大數(shù)據(jù)

2012-05-21 21:53:05

2010-11-25 09:54:14

云計(jì)算MapReduce

2010-11-29 10:28:32

云計(jì)算BigTable

2010-11-25 10:05:51

云計(jì)算GFS

2017-09-18 08:52:34

2010-12-06 14:28:56

云計(jì)算Chubby

2010-05-24 18:22:56

SNMP協(xié)議
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产成人精品一区二区三区四区 | 亚洲 中文 欧美 日韩 在线观看 | 精品一区二区三区免费毛片 | 日日噜噜噜夜夜爽爽狠狠视频, | 精品国产乱码久久久久久88av | 精品视频一二区 | 欧美日韩福利视频 | 国产免费麻豆视频 | 午夜爽爽爽男女免费观看 | 免费观看av网站 | 国产激情免费视频 | 日韩视频国产 | 中文字幕一区二区三区在线乱码 | 91精品国产综合久久婷婷香蕉 | 高清国产一区二区 | 亚洲精品大全 | 日韩免费看视频 | 国产午夜精品一区二区三区 | 日韩精品无码一区二区三区 | 天天操天天拍 | 精品欧美乱码久久久久久1区2区 | 国产精品一区二区av | 久久一区二区三区四区 | 欧美日韩综合 | 高清免费在线 | 毛片在线免费 | 国产成人福利在线观看 | 草草视频在线免费观看 | 在线看亚洲 | 精品国产99 | 国产四区| 亚洲国产欧美在线人成 | 国产精品久久久久久亚洲调教 | 精品国产欧美一区二区三区成人 | 精品亚洲国产成av人片传媒 | 国产日产欧产精品精品推荐蛮挑 | 精品国产乱码久久久久久丨区2区 | 成人欧美一区二区三区白人 | 久久精品国产一区 | 成人免费观看男女羞羞视频 | 亚洲一区电影 |