Android 台灣中文網
標題:
Instagram成功背後的工程技術秘密
[打印本頁]
作者:
游幃翔
時間:
2012-7-15 12:07
標題:
Instagram成功背後的工程技術秘密
登錄/註冊後可看大圖
ti (3).jpg
(10.6 KB, 下載次數: 0)
下載附件
保存到相冊
2012-7-15 12:07 上傳
作者:annie Instagram是許多創業公司的楷模,十幾個人的公司,從剛開始的默默無聞到最後被Facebook重金收購。這麼一家公司,從最開始的操作系統選擇,服務器到數據庫選擇,消息推送,都是如何進行的?
本文編譯自Instagram工程博客,告訴你Instagram的技術“秘密”。在選擇一個系統的時候,我們的核心原則就是:盡量簡單;不做重複工作;盡量採用經過驗證的靠譜的技術。
操作系統/託管
因為當時我們只有三個人,而且需求也不是很多,還沒有到自己建立服務器的地步,所以考慮託管,採用的是Amazon EC2上的Ubuntu Linux 11.04 (Natty Narwhal )系統,以前版本的Ubuntu在EC2上面跑的時候如果遇到高流量會莫名其妙地死機,但是Natty(Ubuntu的一個版本代號)就沒問題,可能隨著應用發展以及使用的增加,我們會建立自己的服務器。
負載平衡
每個發送到Insagram的請求都要通過負載平衡器,當時我們用2台nginx服務器以及DNS輪叫調度承載前端請求,這種方法的負面影響就是,如果一台機器癱瘓,DNS就得花時間進行更新,於是最近我們使用亞馬遜的彈性負載均衡器(Elastic Load Balancer),我們也在ELB曾停掉了SSL,減小NGINX上CPU壓力,DNS服務則使用亞馬遜的Route53,最近AWS提供了非常不錯的GUI工具。
應用服務器
接下來就是請求的處理,啟用的是亞馬遜High-CPU Extra-Large中的Django框架,隨著使用的增加,Diango數量從最開始的幾個增加到超過25個。同時我們採用
http://gunicorn.org/
作為WSGI服務器,通常我們都習慣使用mod_wsgi和Apache,後來發現Gunicorn更容易配置,而且是CPU密集型,如果要同時運行多個實例指令,我們就採用Fabric (最近增添了幾個有用的平行模式)。
數據儲存
我們的大多數數據(用戶信息,照,標籤等等)都存在PostgreSQL中,我們曾寫過關於如何在不同Postgres實例之間共享,我們的主要共享集群包含12個Quadruple Extra-Large內存實例。 我們發現亞馬遜的網絡磁盤系統(EBS)的每秒尋道能力不足,所以就將數據盡量保存到內存中,為了達到合理的IO性能,我們在使用Mdadm工具的RAID軟件中啟用EBS驅動。
後來發現vmtouch這種內存數據管理軟件很好用,尤其是在將故障從一台設備轉到另一台機器時候,表現很不錯,這是我們我們對vmtouch運行的分析腳本,以及為了與現在的內存狀態相匹配而對應的vmtouch輸出指令, 為了將數據庫與我們的應用服務器相連,我們採用Pgbouncer,照片本身會直接分享到亞馬遜的S3,利用亞馬遜的CloudFront作為我們的CDN以節省圖片載入時間。
另外,我們還使用Redis,但由於所有Redis數據都需要與內存匹配,所以我們就停止運行一些Quadruple Extra-Large Memory案例,只在一些特定的子系統中分享一些Redis實例。對於我們的geo-search API,已經使用PostgreSQL幾個月了,不過如果分享了媒體入口,就會使用Apache Solr,我們這個API還有一個非常簡單的JSON接口,對於我們的應用來說,這相當於另一個API。
最後,和任何現代Web服務一樣,我們使用Memcached來進行緩存,現在我們有6個Memcached實例,然後用pylibmc & libmemcached進行連接(亞馬遜最近還推出了一個Elastic Cache)。 任務隊列/消息推送 當有用戶將Insagram圖片分享到Twitter或者Facebook的時候,或者當我們想要知道用戶何時上傳圖片的時候,我們就用Danga開發的任務隊列系統German來處理,這樣一來,不用同時處理任務隊列,上傳媒體文件就非常快。 關於消息推送,我們找到的最節約成本的方案就是
https://github.com/samuraisam/pyapns
,這是一個開源服務,能為我們處理幾十億消息推送,絕對靠譜。
監控
前面的服務器實例加起來差不多有100多個,所以有效監控實例非常重要,我們用Munin監控我們整個系統,系統任何異常就及時提醒我們。我們也基於Python-Munin寫了不少定制插件來檢測一些非系統及的特徵(比如每秒註冊數量,每秒圖片上傳數量等),同時利用Pingdom作為服務器外部監控工具,並利用PagerDuty作為消息通知以及突發事件處理工具。 對於Python錯誤報告,使用開源的DIango應用Sentry來處理,可以在任何時候登陸並實時查看系統中出現了哪些錯誤。
轉自:雷鋒網
來源 香港新浪科技
*****其他-福利
2012-7-11 :
贈送每人碎鑽 40 粒,送完為止,共 8000 個碎鑽
2012-7-9 :
贈送每人碎鑽 50 粒,送完為止,共 4500 個碎鑽
*****其它小分享"最推薦"(軟體類)
Applnstaller (將"內建軟體"轉成apk檔程式) v1.0.4
*****其它小分享(手機類)
HTC Desire VC 開箱+內建導覽 (Android 4.0.3 + Sense 4.0) v.s HTC Desire V
Sense 2.0 vs Sense 3.0 vs Sense 3.6 vs Sense 4"介面"的不同
Sense 2.0 vs Sense 3.0 vs Sense 3.6 vs Sense 4"相機"的不同
Sony Ericsson Xperia neo V內建導覽 (Android 4.0.4)
HTC EVO 4G 內建導覽 (Android 2.3.5 + Sense 2.0)
Sony Ericsson Xperia neo V內建導覽 (Android 2.3.4)
HTC Desire V 開箱+內建導覽 (Android 4.0.3 + Sense 4.0)
HTC Velocity 4G(Raider 4G) Android 4.0.3+Sense 3.6 (官方內建軟體導覽)
Samsung Galaxy Note Android 4.0.3
Samsung Galaxy Note Android 2.3.6
HTC Desire HD (Android 2.3.5 + Sense 3.0)
Android 2.3.4 / 4.0.3 與 Sense 3.0 / 3.6 "圖片/相機/主介面 "的不同
HTC Sensation 官方更新( Android4.0.3 + Sense 3.6 )
*****其它小分享(軟體類)
Photo Timeline v1.05.0 ( 照片時間軸相簿 ) 回憶照片的另一種樂趣
行動備份器 v2.5.0 (可被份及還原 簡訊/聯絡人/通話記錄/日曆)
可爱的照片编辑程序DECOPIC v2.0.6 (正妹的必備軟體之一)
最新版本 AndroMoney v2.2.8 (記帳本)
MobileHome 行動備份器(通話紀錄 簡訊 聯絡人 日曆)-v2.4.8
LINE camera v2.0.0
美圖秀秀 v1.5.3 (正妹的必備軟體之二)
LINE Card v1.1.0 ( 卡片/電子賀卡/生日卡片/母親節賀卡....)
ProCapture Free 專業照片拍攝(免費版+已付費版) v1.38
AndroMoney v2.2.7
文件管理器 v1.12.10
AndroMoney v2.2.6
可爱的照片编辑程序DECOPIC v2.0.4
yurumoji相機 v1.4.1
CoPic v2.8.1
AndroMoney v2.2.4
農行相機 v1.3.1
yurumoji相機2 v1.1.1 (非yurumoji相機 v1.4或是v1.3.5 ....)
AndroMoney v2.2.3
kiradeco picture v1.5
美白照相機Beauty Camera v1.47
快圖瀏覽(QuickPic) v2.2.3
Lovely Camera ( 可愛的相框 ) v1.0.1
PicsArt - 影樓 v2.6.1
モザイクカメラ ( 馬賽克相機 ) v1.0.5
可爱的照片编辑程序DECOPIC v2.0.2
yurumoji相機 v1.3.5
大頭貼軟體 : DecoPetit[デコプティ] v1.02 (女生必備-2)
相格 v3.1.1 (相片添加文字/邊框/底紋/版式/拼圖.....)
pick v2.4.2 (女生必備-1)
GeoDiary 2 v0.3.7 (非常簡潔的日記本)
パラダイススナップ (搶購樂園) v1.0 (拍照編輯程式)
程式助理 v2.0 (非舊版應用助手 v1.3)
SeamanPlayer v1.0.1.3 (可看 avi / rmvb / rm.....等格式影片)
奇摩即時通 v1.7.0 (Yahoo!即時通(Yahoo! Messenger)
Funny Camera v1.0.2 (非常有趣的相機軟件/惡搞照片)
LINE Card v1.0.4
各式少女時代照相機+Super Junior+AKB48(如:大島優子照相機 v1.8)
愛相機 Love Camera 1.0.3
相片組合 Photo Grid v 3.81
斑點水印裝飾拍照 PICTO 2.1.8
Pixlr-o-matic照片處理 2.1.2
Instagram 1.0.6
AndroMoney v2.2.1
MobileHome 行動備份器 II (通話紀錄 簡訊 聯絡人 日曆)-v2.4.7
**以上報告完畢**
如果可以的話,幫我評個分數或是送一多花給我^^
謝謝~
歡迎光臨 Android 台灣中文網 (https://apk.tw/)
Powered by Discuz! X3.1