<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # Instagram 架構:1400 萬用戶,1 TB 的照片,數百個實例,數十種技術 > 原文: [http://highscalability.com/blog/2011/12/6/instagram-architecture-14-million-users-terabytes-of-photos.html](http://highscalability.com/blog/2011/12/6/instagram-architecture-14-million-users-terabytes-of-photos.html) ![](https://img.kancloud.cn/d8/c5/d8c54b434528a1efcfacb4dc79703933_200x204.png) [Instagram](http://instagr.am/) 是為您的 iPhone 提供的免費照片共享和社交網絡服務,已獲得[即時成功](http://techcrunch.com/2011/08/03/instagram-150-million/)。 在短短一年內增長到 [1400 萬用戶](http://instagram-engineering.tumblr.com/post/13649370142/what-powers-instagram-hundreds-of-instances-dozens-of)的情況下,他們在 8 月達到了 1.5 億張照片,同時積累了數 TB 的照片,而他們僅用了 3 個 Instaneers 做到了,所有這些都存儲在 Amazon 堆棧中。 Instagram 團隊已經撰寫了可以被視為該時代早期創業公司的典型描述:[推動 Instagram 運轉的因素:數百個實例,數十種技術](http://instagram-engineering.tumblr.com/post/13649370142/what-powers-instagram-hundreds-of-instances-dozens-of)。 Instagram 使用不同技術和策略的模仿。 團隊雖小,但經歷了快速的增長,擺脫了不斷上升的社交和移動浪潮的影響,它使用 SQL 和 NoSQL 的混合體,使用了大量的開源項目,他們選擇了基于云的云服務,亞馬遜的服務得到了充分利用 可靠性不是通過構建它們自己的,而是通過可用性區域,異步工作計劃將組件鏈接在一起,系統由盡可能多的服務公開,這些服務公開了不需要構建的 API 和外部服務,數據存儲在內存中, 在云中,大多數代碼都是動態語言,對自定義位進行了編碼以將所有內容鏈接在一起,并且它們運行得很快并且體積很小。 非常現代的建筑。 我們只是在這里博士文章,它寫得很好并且很切題。 絕對值得一讀。 這里是要領: * 獲得的經驗教訓:1)保持簡單 2)不要重新發明輪子 3)盡可能使用成熟可靠的技術。 * 3 名工程師。 * 亞馬遜商店。 他們使用許多亞馬遜的服務。 僅有 3 位工程師,因此沒有時間研究自我托管。 * 出于各種目的,總共有 100 多個 EC2 實例。 * Ubuntu Linux 11.04(“ Natty Narwhal”)。 穩定,其他 Ubuntu 版本凍結了。 * 亞馬遜的 Elastic Load Balancer 路由請求,并且 3 個 nginx 實例位于 ELB 的后面。 * SSL 在 ELB 處終止,這減輕了 nginx 上的 CPU 負載。 * 亞馬遜的 DNS 的 Route53。 * 高 CPU 超大型計算機上的 25 多個 Django 應用程序服務器。 * 流量是受 CPU 限制的,而不是受內存限制的,因此,高 CPU 超大型計算機是內存和 CPU 的良好平衡。 * [Gunicorn](http://gunicorn.org/) 作為其 WSGI 服務器。 Apache 較難配置且占用更多 CPU。 * [結構](http://fabric.readthedocs.org/en/1.3.3/index.html)用于在所有計算機上并行執行命令。 部署僅需幾秒鐘。 * PostgreSQL(用戶,照片元數據,標簽等)在 12 個四倍超大內存實例上運行。 * 十二個 PostgreSQL 副本在不同的可用性區域中運行。 * PostgreSQL 實例使用[流復制](https://github.com/greg2ndQuadrant/repmgr)在主副本設置中運行。 EBS 用于快照,以進行頻繁備份。 * EBS 部署在軟件 RAID 配置中。 使用 [mdadm](http://en.wikipedia.org/wiki/Mdadm) 獲得不錯的 IO。 * 它們的所有工作集都存儲在內存中。 EBS 不支持每秒足夠的磁盤搜尋。 * [Vmtouch](http://hoytech.com/vmtouch/vmtouch.c) (便攜式文件系統緩存診斷)用于管理內存中的數據,尤其是當[將](https://gist.github.com/1424540)從一臺機器故障轉移到另一臺機器時,尚無活動內存配置文件。 * XFS 作為文件系統。 用于在快照時通過凍結和解凍 RAID 陣列來獲取一致的快照。 * [Pgbouncer](http://pgfoundry.org/projects/pgbouncer/) 用于[池連接](http://thebuild.com/blog/)到 PostgreSQL。 * 幾 TB 的照片存儲在 Amazon S3 上。 * 將 Amazon CloudFront 作為 CDN。 * Redis 支持其主要供稿,活動供稿,會話系統以及[其他服務](http://instagram-engineering.tumblr.com/post/12202313862/storing-hundreds-of-millions-of-simple-key-value-pairs)。 * Redis 在多個四倍超大內存實例上運行。 有時跨實例進行分片。 * Redis 在主副本設置中運行。 副本不斷地保存到磁盤。 EBS 快照備份數據庫轉儲。 在主數據庫上的 DB 上轉儲太費力了。 * Apache [Solr]為[地理搜索 API](http://instagram.com/developer/endpoints/media/#get_media_search) 提供了支持。 就像簡單的 JSON 接口一樣。 * 6 個用于緩存的 memcached 實例。 使用 pylibmc & libmemcached 連接。 Amazon Elastic Cache 服務再便宜不過了。 * [Gearman](http://gearman.org/) 用于:將照片異步分享到 Twitter,Facebook 等; 通知實時訂戶新發布的照片??; 送紙扇出。 * 200 名 Python 工作者從 Gearman 任務隊列中消耗任務。 * [Pyapns](https://github.com/samuraisam/pyapns) (Apple 推送通知服務)處理超過十億個推送通知。 堅如磐石。 * [Munin](http://munin-monitoring.org/) 可以繪制整個系統的指標圖并警告問題。 使用 [Python-Munin](http://samuelks.com/python-munin/) 編寫許多自定義插件,以圖形化顯示,每分鐘注冊數,每秒發布的照片??等。 * [Pingdom](http://pingdom.com/) 用于服務的外部監視。 * [PagerDuty](http://pagerduty.com/) 用于處理通知和事件。 * [Sentry](http://pypi.python.org/pypi/django-sentry) 用于 Python 錯誤報告。 ## 相關文章 * [在 Redis 中存儲數億個簡單鍵值對](http://instagram-engineering.tumblr.com/post/12651721845/instagram-engineering-challenge-the-unshredder) * [簡化 EC2 SSH 連接](http://instagram-engineering.tumblr.com/post/11399488246/simplifying-ec2-ssh-connections) * [在 Instagram 上拆分& ID](http://instagram-engineering.tumblr.com/post/10853187575/sharding-ids-at-instagram) * [EC2 或 Amazon ElastiCache 上的 Membase 群集?](http://nosql.mypopescu.com/post/13820225002/membase-cluster-on-ec2-or-amazon-elasticache) 來自 Alex Popescu 嘿托德, 來自 Instagram 的 Mike。 感謝您的撰寫。隨著我們不斷發展的基礎架構,高可伸縮性一直是我們的絕佳資源,感謝您編譯的所有出色信息! 邁克,我很高興。 我真的很感謝你們的開放程度。 好東西。 謝謝。 @Mike(instagram) 我讀到您使用 solr 進行地理搜索。 您能解釋一下您的解決方案嗎? 您將 solr 3.1 與 geofilt 一起使用還是開發了一些特殊的東西? 這個多少錢? 只是有一個想法。 親愛的邁克, 您是否掌握有關 Instagram 服務器基本硬件數據的信息? 我們必須在大學的“信息管理”講座中找到 CPU,RAM,固定磁盤存儲和處理器等數據。 如果您能幫助我們,我們將非常高興。 非常感謝! J,J 和 L CDN 需要內容可以公開閱讀。 然后,Instagram 如何處理僅應與少數人共享的圖像 您可以在 S3 上擁有一個私有存儲桶項目,盡管直到在 S3 中生成簽名密鑰,該私有桶項目才可以通過 CDN 路由。 每個被授予權限的用戶都可以收到一個簽名的密鑰。 我不知道這是否是他們具體的做法。 相關文章中“在 Redis 中存儲數億個簡單鍵/值對”的鏈接不正確。 它重定向到其他一些中等職位。 實際鏈接是 https://instagram-engineering.com/storing-hundreds-of-millions-of-simple-key-value-pairs-in-redis-1091ae80f74c
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看