日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【转载】Instagram架构分析笔记

發布時間:2024/4/17 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【转载】Instagram架构分析笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文地址:http://chengxu.org/p/401.html

?

Instagram 架構分析筆記 全部 技術博客Instagram團隊上個月才迎來第 7 名員工,是的,7個人的團隊。作為 iPhone 上最火爆的圖片類工具,instagram 用戶數量已經超過 1400 萬,圖片數量超過 1.5 億張。不得不說,這真他媽是個業界奇跡。幾天前,只有三個人的 Instagram 工程師團隊發布了一篇文章:What Powers Instagram: Hundreds of Instances, Dozens of Technologies,披露了 Instagram 架構的一些信息,足夠勾起大多數人的好奇心。讀罷做點筆記,各種線索還是有一定參考價值的。能打開原文的建議直接讀原文。Instagram 開發團隊奉行的三個核心原則: Keep it very simple (極簡主義) Don’t re-invent the wheel (不重復發明輪子) Go with proven and solid technologies when you can(能用就用靠譜的技術) OS/主機操作系統的選擇,在Amazon EC2上跑 Ubuntu Linux 11.04 (Natty Narwhal) ,這個版本經過驗證在 EC2 上夠穩定。因為只有三名工程師,只有三名工程師,所以自己部署機器到IDC是不靠譜的事情。幸好有亞馬遜。負載均衡此前曾用過兩臺 Nginx 做DNS輪詢承載前端請求,這樣做會有副作用,現在已經遷移到Amazon的ELB(Elastic Load Balancer),起了三個 Nginx 實例,在 ELB 層停掉了SSL, 以緩解CPU壓力。DNS 服務使用 Amazon Route53 服務。應用服務器啟用了 25 個 Django 實例,運行在 High-CPUExtra-Large 類型的服務器實例上,之所以用 High-CPUExtra-Large 實例是因為應用請求是CPU密集型而非IO密集型。使用Gunicorn作為 WSGI 服務器。過去曾用過 Apache 下的 mod_wsgi 模塊,不過發現 Gunicorn 更容易配置并且節省CPU資源。使用Fabric加速部署。數據存儲用戶信息、圖片元數據、標簽等大部分數據存儲在 PostgreSQL 中。主要的 Shard 數據庫集群有 12個節點。實踐中發現 Amazon 的網絡磁盤系統單位時間內尋道能力不行,所以有必要將數據盡量放到內存中。創建了軟RAID以提升IO能力,使用的Mdadm工具進行RAID管理。管理內存中的數據,vmtouch這個小工具值得推薦。PostgreSQL 設置為 Master-Replica 方式,流復制模式。利用 EBS 的快照進行數據庫備份。使用 XFS 文件系統,以便和快照服務充分配合。 使用repmgr這個小工具做 PostgreSQL 復制管理器器。連接池管理,用了Pgbouncer。Christophe Pettus的文章包含了不少PostgreSQL數據庫的信息。TB 級別的海量圖片存儲在 Amazon S3 上,CDN 采用的也是 Amazon 的服務,CloudFront。Instagram 也是 Redis 的重度用戶,Feed 以及 Session 信息都用 Redis 處理,Redis 也是以 Master-Replica 方式部署。在 Replica 節點上進行數據備份。使用了 Apache Solr 承擔 Geo-searchAPI的工作,Solr 簡單的 JSON 接口也不錯。緩存使用了 6 個 Memcached 實例,庫使用 pylibmc 和 libmemcached。亞馬遜也提供緩存服務-Elastic Cache service ,Instagram 也有嘗試,不過不便宜。任務隊列/發布通知隊列服務使用Gearman,通知系統則使用pyapns來實現。監控前面提及的服務器實例數量加起來,的確有100多個,有效的監控是相當有必要的。使用 Munin 作為主要監控工具 , 也寫了不少定制插件,外部監控用Pingdom的服務。通知服務使用PagerDuty。對于 Python 的錯誤報告,使用 Disqus 團隊開源的Sentry來處理。幾個感想0)輕裝上陣說起來容易,做起來非常難。這也是 Instagram 團隊目前最令人著迷的地方;1)Python 社區已經足夠成熟,各個環節上都已經有不錯的解決方案了。2)如果要問我最大的一個感慨,我要說:Amazon 真是一家偉大的公司,甚至比 Google 還偉大。轉自草根網:原文地址: http://www.20ju.com/content/V189855.htm

?

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的【转载】Instagram架构分析笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。