# YouTube 架構
> 原文: [http://highscalability.com/blog/2008/3/12/youtube-architecture.html](http://highscalability.com/blog/2008/3/12/youtube-architecture.html)
**更新 3:** [在 30 分鐘內進行 7 年的 YouTube 可擴展性課程](http://highscalability.com/blog/2012/3/26/7-years-of-youtube-scalability-lessons-in-30-minutes.html)和 [YouTube 策略:添加抖動不是一個錯誤](http://highscalability.com/blog/2012/4/17/youtube-strategy-adding-jitter-isnt-a-bug.html)
[](http://highscalability.com/blog/2012/4/17/youtube-strategy-adding-jitter-isnt-a-bug.html)**更新 2:** [YouTube 每天達到 10 億觀看](http://mashable.com/2009/10/09/youtube-billion-views/)。 *即每秒至少 11574 次觀看,每分鐘 694444 次觀看和每小時 41666666667 次觀看。*
**更新:** [YouTube:平臺](http://www.techcrunch.com/2008/03/12/youtube-the-platform/)。 YouTube 添加了一組豐富的新 API,以免費成為您的視頻平臺領導者。 在您自己的網站上上傳,編輯,觀看,搜索和評論視頻,而無需訪問 YouTube。 通過 API 在內部組成您的網站,因為無論如何以后您都需要公開它們。
YouTube 的增長速度非常快,每天的視頻觀看次數超過 1 億,只有少數人負責網站的擴展。 他們如何設法將所有視頻交付給所有這些用戶? 自從 Google 收購以來,它們又如何發展?
## 信息來源
1. [Google 視頻](https://www.youtube.com/watch?v=w5WVu624fY8)
## 平臺
1. 阿帕奇
2. 蟒蛇
3. Linux(SuSe)
4. 的 MySQL
5. psyco,動態 python- > C 編譯器
6. 用于視頻而不是 Apache 的 lighttpd
## 里面有什么?
### 統計資料
1. 支持每天交付超過 1 億個視頻。
2. 成立于 2/2005
3. 3/2006 每天 3000 萬次視頻觀看
4. 7/2006 每天有 1 億次視頻觀看
5. 2 位系統管理員,2 位可擴展軟件架構師
6. 2 位功能開發人員,2 位網絡工程師,1 位 DBA
### 處理快速增長的配方
`while (true)
{
identify_and_fix_bottlenecks();
drink();
sleep();
notice_new_bottleneck();
}`
該循環每天運行多次。
### 網絡服務器
1. NetScalar 用于負載平衡和緩存靜態內容。
2. 使用 mod_fast_cgi 運行 Apache。
3. 請求被路由以由 Python 應用服務器處理。
4. 應用服務器與各種數據庫和其他信息源進行對話,以獲取所有數據并格式化 html 頁面。
5. 通常可以通過添加更多計算機來擴展 Web 層。
6. Python Web 代碼通常不是瓶頸,它大部分時間都花在了 RPC 上。
7. Python 允許快速靈活的開發和部署。 考慮到他們面臨的競爭,這至關重要。
8. 通常少于 100 毫秒的頁面服務時間。
9. 使用 psyco,這是一種動態 python- > C 編譯器,它使用 JIT 編譯器方法來優化內部循環。
10. 對于諸如加密之類的占用大量 CPU 資源的活動,它們使用 C 擴展名。
11. 一些預生成的緩存 HTML,用于渲染塊很昂貴。
12. 數據庫中的行級緩存。
13. 完整格式的 Python 對象將被緩存。
14. 計算一些數據并將其發送到每個應用程序,以便將這些值緩存在本地內存中。 這是一個未被充分利用的策略。 最快的緩存位于您的應用程序服務器中,不需要花費很多時間就可以將預先計算的數據發送到所有服務器。 只需要一個代理來監視更改,預先計算和發送即可。
### 影片投放
* 成本包括帶寬,硬件和功耗。* 每個視頻由一個迷你集群托管。 每個視頻由一臺以上的機器提供。* 使用群集意味著:
-提供內容的更多磁盤意味著更高的速度。
-凈空。 如果機器故障,其他人可以接管。
-有在線備份。* 服務器將 lighttpd Web 服務器用于視頻:
-Apache 的開銷太大。
-使用 epoll 等待多個 fds。
-從單進程配置切換到多進程配置以處理更多連接。* 最受歡迎的內容已移至 CDN(內容交付網絡):
-CDN 在多個位置復制內容。 更有可能使內容更接近用戶,跳數更少,并且內容將在更友好的網絡上運行。
-CDN 機器主要用于內存不足,因為內容是如此受歡迎,幾乎沒有內容在內存中跳動的情況。* 不太受歡迎的內容(每天 1-20 次觀看)在各種 colo 網站中使用 YouTube 服務器。
-有長尾巴效果。 視頻可能有一些播放,但是正在播放很多視頻。 正在訪問隨機磁盤塊。
-在這種情況下,緩存沒有太大的用處,因此花錢購買更多的緩存可能沒有意義。 這是非常有趣的一點。 如果您的產品尾部很長,那么緩存并不總是您的性能救星。
-調整 RAID 控制器,并注意其他較低級別的問題以提供幫助。
-調整每臺機器上的內存,所以不要太多也不要太少。
### 提供視頻關鍵點
1. 保持簡單和便宜。
2. 保持簡單的網絡路徑。 內容和用戶之間沒有太多設備。 路由器,交換機和其他設備可能無法承受如此多的負載。
3. 使用商品硬件。 硬件越昂貴,其他所有東西(支持合同)也就越昂??貴。 您也不太可能在網上找到幫助。
4. 使用簡單的通用工具。 他們使用大多數內置在 Linux 中的工具,并在這些工具之上。
5. 處理隨機尋優(SATA,調整)。
### 服務縮圖
* 出人意料的是,很難高效地進行。* 每個視頻都有大約 4 個縮略圖,因此縮略圖比視頻要多得多。* 縮略圖僅托管在幾臺計算機上。* 看到了與服務許多小對象相關的問題:
-大量磁盤搜索以及操作系統級別的 inode 高速緩存和頁面高速緩存出現問題。
-進入每個目錄文件的限制。 特別是 Ext3。 轉移到更分層的結構。 2.6 內核的最新改進可以將 Ext3 大目錄處理提高到[的 100 倍](http://ext2.sourceforge.net/2005-ols/paper-html/node3.html),但是在文件系統中存儲大量文件仍然不是一個好主意。
-大量請求/秒,因為網頁可以在頁面上顯示 60 個縮略圖。
-在如此高的負載下,Apache 的表現很差。
-在 Apache 前面使用過的魷魚(反向代理)。 這工作了一段時間,但是隨著負載的增加,性能最終下降了。 從 300 請求/秒增加到 20。
-使用 lighttpd 嘗試過,但是只有一個線程使它停頓了。 在多進程模式下會遇到問題,因為它們每個都會保留一個單獨的緩存。
-設置了如此多的圖像后,一臺新機器花費了 24 小時。
-重新啟動計算機需要 6 到 10 個小時才能將緩存預熱,以使其不進入磁盤。* 為了解決他們所有的問題,他們開始使用 Google 的 BigTable(分布式數據存儲):
-避免小文件問題,因為它將文件聚集在一起。
-快速,容錯。 假定它在不可靠的網絡上工作。
-較低的延遲,因為它使用了分布式多級緩存。 此緩存可在不同的并置站點上工作。
-有關 BigTable 的更多信息,請查看 [Google 架構](http://highscalability.com/google-architecture), [GoogleTalk 架構](http://highscalability.com/googletalk-architecture)和 [BigTable](http://highscalability.com/tags/bigtable) 。
### 資料庫
1. 早期
-使用 MySQL 存儲元數據,例如用戶,標簽和說明。
-從具有 10 個磁盤的單片 RAID 10 卷中提供數據。
-以信用卡為生,因此可以租用硬件。 當他們需要更多硬件來處理負載時,花了幾天時間訂購并交付。
-他們經歷了一個共同的演變:單個服務器,轉到具有多個讀取從屬的單個主機,然后對數據庫進行分區,然后決定采用分片方法。
-出現復制延遲。 主機是多線程的,可在大型計算機上運行,??因此它可以處理大量工作。 從站是單線程的,通常在較小的計算機上運行,??并且復制是異步的,因此從站可能會大大落后于主站。
-更新導致高速緩存未命中,而高速緩存 I / O 導致復制緩慢的磁盤丟失。
-使用復制體系結構,您需要花費大量金錢來增加寫入性能。
-他們的解決方案之一是通過將數據分為兩個集群來優先處理流量:視頻觀看池和通用集群。 這個想法是人們希望觀看視頻,以便該功能應獲得最多的資源。 YouTube 的社交功能不太重要,因此可以將其路由到功能較弱的群集中。
2. 后來的幾年:
-進行數據庫分區。
-分為多個分片,用戶分配了不同的分片。
-傳播寫入和讀取。
-更好的緩存位置,意味著更少的 IO。
-導致硬件減少 30%。
-復制副本延遲減少到 0。
-現在幾乎可以任意擴展數據庫了。
### 數據中心策略
1. 首先使用[管理托管](http://www.webhostingsearch.com/managed-web-hosting.php)提供程序。 以信用卡為生,所以這是唯一的方法。
2. 托管托管無法隨您擴展。 您無法控制硬件或達成有利的網絡協議。
3. 所以他們去了一個代管安排。 現在,他們可以自定義所有內容并協商自己的合同。
4. 使用 5 或 6 個數據中心以及 CDN。
5. 視頻來自任何數據中心。 沒有最接近的匹配或任何內容。 如果視頻足夠受歡迎,它將移入 CDN。
6. 與視頻帶寬有關,而與延遲無關。 可以來自任何 colo。
7. 對于圖像延遲很重要,尤其是當頁面上有 60 張圖像時。
8. 使用 BigTable 將圖像復制到不同的數據中心。 代碼
查看不同的指標以了解誰最接近。
## 得到教訓
1. **停頓時間**。 當您制定長期解決方案時,富有創意和冒險性的技巧可以幫助您在短期內應對。
2. **確定**的優先級。 知道什么對您的服務至關重要,并根據這些優先級確定資源和工作的優先級。
3. **選擇戰斗**。 不要害怕外包一些基本服務。 YouTube 使用 CDN 分發其最受歡迎的內容。 創建自己的網絡將花費很長時間并且花費太多。 您的系統中可能會有類似的機會。 查看[軟件即服務](http://highscalability.com/tags/saas),了解更多想法。
4. **保持簡單!** 簡單性使您可以更快地重新構造,以便可以對問題進行響應。 確實沒有人真正知道簡單性是什么,但是如果您不害怕進行更改,那么這表明簡單性正在發生。
5. **分片**。 分片有助于隔離和限制存儲,CPU,內存和 IO。 這不僅僅是要獲得更多的寫入性能。
6. **瓶頸上的不斷迭代**:
-軟件:數據庫,緩存
-操作系統:磁盤 I / O
-硬件:內存,RAID
7. **您作為一個團隊**成功。 擁有一支優秀的跨學科團隊,了解整個系統以及系統的底層內容。 可以設置打印機,機器,安裝網絡等的人員。 一個好的團隊,一切皆有可能。
[在[reduce]](http://www.reddit.com/r/programming/comments/2yfab3/the_youtube_architecture_2008/) 上。
很棒的文章。
非常感謝。
Dimitry。
真正的目的是跳過兩行:將受歡迎的內容保留在 CDN 上。 換句話說,向 Akamai 扔錢,讓 Akamai 擔心。
當然,這是正確的答案,但是無論您使用的是 Python 還是無關緊要的。 如果沒有 Akamai 的服務,鑒于上述基礎架構,YouTube 將永遠無法滿足需求。
*-以信用卡為生,因此可以租用硬件。 當他們需要更多硬件來處理負載時,花了幾天時間訂購并交付。*
這到底是如何工作的? 當我們調查這個問題時,發現由于我們是一家新成立的初創公司,我們沒有信譽(我想沒有“發現”的意思,這很明顯),因此硬件租賃公司只有在我們中一個人親自支持貸款的情況下才會向我們出租。 。 鑒于啟動風險高且費用高昂,我們最終購買了硬件并將其安裝在各種低端 APR CC 等產品上。所有大型硬件供應商都表示“除非我們能看到您最近 N 年 納稅申報表等,我們不會向您出租。” 使得租賃似乎不是“靠信用卡生存”創業公司的真正選擇。
哇,那是一篇很棒的文章,沒想到 CDN:P
一定要接受紅杉資本的私人風險投資,紅杉資本也是 Google 的最大股東,并控制著其董事會。 紅杉資本利用其影響力迫使 Google 大量為 Youtube 多付錢,紅杉資本合作伙伴立即獲利 5 億美元。
這篇文章和視頻對我正在從事的一些項目非常有希望。 謝謝!
完全令人驚嘆; 100%值得一讀。
哇,真瘋狂。
一篇很好的文章,但我還沒有學到任何新知識。 當前的 YouTube 體系結構已被應用于我們的類似 youtube 用戶的羅馬尼亞網站之一,該網站稱為 [http://www.trilulilu.ro/](http://www.trilulilu.ro/) 。 我們的客戶尚未實現的唯一一件事就是數據庫分片,現在不需要了,因為 MySQL 數據庫總數不到 250MB,而 MySQL 服務器處理的速度至少為 650 qps。
那是一篇很棒的文章。
我認為有趣的是,他們使用了 mod_fastcgi。 我的意思是,我之所以使用它,是因為我被迫使用共享主機,但是在嘗試進行大規模擴展時,我總是聽說過很多問題(即使那是它的設計目標)。 我想,如果做得對,FastCGI 對于服務器場可能是一筆寶貴的財富。
這是一篇很棒的文章,非常有趣!
很想聽聽更多這樣的故事,例如 Flickr,Twitter,MySpace,Meebo ...客戶仍然被大型企業參與者洗腦,認為他們需要 BEA Portal Server 或類似的東西來實現強大,可擴展的企業解決方案。 要說服他們不要將錢花在昂貴的事情上,要花費大量時間來部署和花費巨額財富(并且要花費大量時間)以使其從用戶體驗的角度來做自己想做的事情,這是一場戰斗。 我一直在說:“ MySpace 每天注冊 350,000 個用戶,他們沒有使用 Aqualogic-讓我們為一些殺手級的 AJAX UI,小部件和一個實際上有用的 API 節省額外的現金。
您靠個人信用卡為生,這是正確的...肯定也可以追溯到早期的 YouTube ...
謝謝你的好文章
在 LAMP(Linux,Apache,MySQL,PHP)上組織 [http://anton.shevchuk.name/php/php-cookbook-myphptubecom/'](<a rel="nofollow" href="http://anton.shevchuk.name/php/php-cookbook-myphptubecom/) > MyPHPTube.com(YouTube 克隆)
這是一本很棒的書,很好地證明了 Python 并不是它的慢速教練。 在任何語言中,最大的挫折將永遠是程序員的技能。
很棒的文章。 !
是否有人知道在提升過程中必須使用的服務器數量的演變。 ?
他們以多少開始,每臺服務器具有哪種配置。
還有他們正在使用哪個主機的任何想法。 ?
謝謝
謝謝!
好的,那是有趣的信息,但是讓我們停止將大量無序項目符號點稱為“文章”吧? 一篇文章有??句子。 可能分為幾段。
這是制作 Web 2.0 的一個很好的例子。 記住那些在甲骨文,SUN 或其他大型公司上花費數百萬美元來啟動初創公司的邪惡舊時光,僅僅是為了使基本程序運行。 現在,誰需要他們。
有誰知道 Youtube 或 tinyURL 如何生成唯一 ID? 他們在使用某種哈希函數嗎? 如果 URL 相同,tinyURL 不會生成唯一 ID。 例如,對于 www.google.com,它總是生成 [http://tinyurl.com/1c2。](http://tinyurl.com/1c2.) 他們如何編碼/解碼 URL?
我想我一直以為它們是預先分配的,所以它們總是最小且不可預測的,但是我找不到權威的答案。 不過,這是一個有趣的問題。
TinyURL 需要一個代碼映射-> URL,因此,當您鍵入 www.google.com 時,它將在其數據庫中搜索該 URL,并為您提供先前生成的代碼。
是否有人知道在提升過程中必須使用的服務器數量的演變。 ?
他們以多少開始,每臺服務器具有哪種配置。
Also any idea which host they were using. ?
謝謝
- LiveJournal 體系結構
- mixi.jp 體系結構
- 友誼建筑
- FeedBurner 體系結構
- GoogleTalk 架構
- ThemBid 架構
- 使用 Amazon 服務以 100 美元的價格構建無限可擴展的基礎架構
- TypePad 建筑
- 維基媒體架構
- Joost 網絡架構
- 亞馬遜建筑
- Fotolog 擴展成功的秘訣
- 普恩斯的教訓-早期
- 論文:Wikipedia 的站點內部,配置,代碼示例和管理問題
- 擴大早期創業規模
- Feedblendr 架構-使用 EC2 進行擴展
- Slashdot Architecture-互聯網的老人如何學會擴展
- Flickr 架構
- Tailrank 架構-了解如何在整個徽標范圍內跟蹤模因
- Ruby on Rails 如何在 550k 網頁瀏覽中幸存
- Mailinator 架構
- Rackspace 現在如何使用 MapReduce 和 Hadoop 查詢 TB 的數據
- Yandex 架構
- YouTube 架構
- Skype 計劃 PostgreSQL 擴展到 10 億用戶
- 易趣建筑
- FaceStat 的禍根與智慧贏得了勝利
- Flickr 的聯合會:每天進行數十億次查詢
- EVE 在線架構
- Notify.me 體系結構-同步性
- Google 架構
- 第二人生架構-網格
- MySpace 體系結構
- 擴展 Digg 和其他 Web 應用程序
- Digg 建筑
- 在 Amazon EC2 中部署大規模基礎架構的六個經驗教訓
- Wolfram | Alpha 建筑
- 為什么 Facebook,Digg 和 Twitter 很難擴展?
- 全球范圍擴展的 10 個 eBay 秘密
- BuddyPoke 如何使用 Google App Engine 在 Facebook 上擴展
- 《 FarmVille》如何擴展以每月收獲 7500 萬玩家
- Twitter 計劃分析 1000 億條推文
- MySpace 如何與 100 萬個并發用戶一起測試其實時站點
- FarmVille 如何擴展-后續
- Justin.tv 的實時視頻廣播架構
- 策略:緩存 404 在服務器時間上節省了洋蔥 66%
- Poppen.de 建筑
- MocoSpace Architecture-一個月有 30 億個移動頁面瀏覽量
- Sify.com 體系結構-每秒 3900 個請求的門戶
- 每月將 Reddit 打造為 2.7 億頁面瀏覽量時汲取的 7 個教訓
- Playfish 的社交游戲架構-每月有 5000 萬用戶并且不斷增長
- 擴展 BBC iPlayer 的 6 種策略
- Facebook 的新實時消息系統:HBase 每月可存儲 135 億條消息
- Pinboard.in Architecture-付費玩以保持系統小巧
- BankSimple 迷你架構-使用下一代工具鏈
- Riak 的 Bitcask-用于快速鍵/值數據的日志結構哈希表
- Mollom 體系結構-每秒以 100 個請求殺死超過 3.73 億個垃圾郵件
- Wordnik-MongoDB 和 Scala 上每天有 1000 萬個 API 請求
- Node.js 成為堆棧的一部分了嗎? SimpleGeo 說是的。
- 堆棧溢出體系結構更新-現在每月有 9500 萬頁面瀏覽量
- Medialets 體系結構-擊敗艱巨的移動設備數據
- Facebook 的新實時分析系統:HBase 每天處理 200 億個事件
- Microsoft Stack 是否殺死了 MySpace?
- Viddler Architecture-每天嵌入 700 萬個和 1500 Req / Sec 高峰
- Facebook:用于擴展數十億條消息的示例規范架構
- Evernote Architecture-每天有 900 萬用戶和 1.5 億個請求
- TripAdvisor 的短
- TripAdvisor 架構-4,000 萬訪客,200M 動態頁面瀏覽,30TB 數據
- ATMCash 利用虛擬化實現安全性-不變性和還原
- Google+是使用您也可以使用的工具構建的:閉包,Java Servlet,JavaScript,BigTable,Colossus,快速周轉
- 新的文物建筑-每天收集 20 億多個指標
- Peecho Architecture-鞋帶上的可擴展性
- 標記式架構-擴展到 1 億用戶,1000 臺服務器和 50 億個頁面視圖
- 論文:Akamai 網絡-70 個國家/地區的 61,000 臺服務器,1,000 個網絡
- 策略:在 S3 或 GitHub 上運行可擴展,可用且廉價的靜態站點
- Pud 是反堆棧-Windows,CFML,Dropbox,Xeround,JungleDisk,ELB
- 用于擴展 Turntable.fm 和 Labmeeting 的數百萬用戶的 17 種技術
- StackExchange 體系結構更新-平穩運行,Amazon 4x 更昂貴
- DataSift 體系結構:每秒進行 120,000 條推文的實時數據挖掘
- Instagram 架構:1400 萬用戶,1 TB 的照片,數百個實例,數十種技術
- PlentyOfFish 更新-每月 60 億次瀏覽量和 320 億張圖片
- Etsy Saga:從筒倉到開心到一個月的瀏覽量達到數十億
- 數據范圍項目-6PB 存儲,500GBytes / sec 順序 IO,20M IOPS,130TFlops
- 99designs 的設計-數以千萬計的綜合瀏覽量
- Tumblr Architecture-150 億頁面瀏覽量一個月,比 Twitter 更難擴展
- Berkeley DB 體系結構-NoSQL 很酷之前的 NoSQL
- Pixable Architecture-每天對 2000 萬張照片進行爬網,分析和排名
- LinkedIn:使用 Databus 創建低延遲更改數據捕獲系統
- 在 30 分鐘內進行 7 年的 YouTube 可擴展性課程
- YouPorn-每天定位 2 億次觀看
- Instagram 架構更新:Instagram 有何新功能?
- 搜索技術剖析:blekko 的 NoSQL 數據庫
- Pinterest 體系結構更新-1800 萬訪問者,增長 10 倍,擁有 12 名員工,410 TB 數據
- 搜索技術剖析:使用組合器爬行
- iDoneThis-從頭開始擴展基于電子郵件的應用程序
- StubHub 體系結構:全球最大的票務市場背后的驚人復雜性
- FictionPress:在網絡上發布 600 萬本小說
- Cinchcast 體系結構-每天產生 1,500 小時的音頻
- 棱柱架構-使用社交網絡上的機器學習來弄清您應該在網絡上閱讀的內容
- 棱鏡更新:基于文檔和用戶的機器學習
- Zoosk-實時通信背后的工程
- WordPress.com 使用 NGINX 服務 70,000 req / sec 和超過 15 Gbit / sec 的流量
- 史詩般的 TripAdvisor 更新:為什么不在云上運行? 盛大的實驗
- UltraDNS 如何處理數十萬個區域和數千萬條記錄
- 更簡單,更便宜,更快:Playtomic 從.NET 遷移到 Node 和 Heroku
- Spanner-關于程序員使用 NoSQL 規模的 SQL 語義構建應用程序
- BigData 使用 Erlang,C 和 Lisp 對抗移動數據海嘯
- 分析數十億筆信用卡交易并在云中提供低延遲的見解
- MongoDB 和 GridFS 用于內部和內部數據中心數據復制
- 每天處理 1 億個像素-少量競爭會導致大規模問題
- DuckDuckGo 體系結構-每天進行 100 萬次深度搜索并不斷增長
- SongPop 在 GAE 上可擴展至 100 萬活躍用戶,表明 PaaS 未通過
- Iron.io 從 Ruby 遷移到 Go:減少了 28 臺服務器并避免了巨大的 Clusterf ** ks
- 可汗學院支票簿每月在 GAE 上擴展至 600 萬用戶
- 在破壞之前先檢查自己-鱷梨的建筑演進的 5 個早期階段
- 縮放 Pinterest-兩年內每月從 0 到十億的頁面瀏覽量
- Facebook 的網絡秘密
- 神話:埃里克·布魯爾(Eric Brewer)談銀行為什么不是堿-可用性就是收入
- 一千萬個并發連接的秘密-內核是問題,而不是解決方案
- GOV.UK-不是你父親的書庫
- 縮放郵箱-在 6 周內從 0 到 100 萬用戶,每天 1 億條消息
- 在 Yelp 上利用云計算-每月訪問量為 1.02 億,評論量為 3900 萬
- 每臺服務器將 PHP 擴展到 30,000 個并發用戶的 5 條 Rockin'Tips
- Twitter 的架構用于在 5 秒內處理 1.5 億活躍用戶,300K QPS,22 MB / S Firehose 以及發送推文
- Salesforce Architecture-他們每天如何處理 13 億筆交易
- 擴大流量的設計決策
- ESPN 的架構規模-每秒以 100,000 Duh Nuh Nuhs 運行
- 如何制作無限可擴展的關系數據庫管理系統(RDBMS)
- Bazaarvoice 的架構每月發展到 500M 唯一用戶
- HipChat 如何使用 ElasticSearch 和 Redis 存儲和索引數十億條消息
- NYTimes 架構:無頭,無主控,無單點故障
- 接下來的大型聲音如何使用 Hadoop 數據版本控制系統跟蹤萬億首歌曲的播放,喜歡和更多內容
- Google 如何備份 Internet 和數十億字節的其他數據
- 從 HackerEarth 用 Apache 擴展 Python 和 Django 的 13 個簡單技巧
- AOL.com 體系結構如何發展到 99.999%的可用性,每天 800 萬的訪問者和每秒 200,000 個請求
- Facebook 以 190 億美元的價格收購了 WhatsApp 體系結構
- 使用 AWS,Scala,Akka,Play,MongoDB 和 Elasticsearch 構建社交音樂服務
- 大,小,熱還是冷-條帶,Tapad,Etsy 和 Square 的健壯數據管道示例
- WhatsApp 如何每秒吸引近 5 億用戶,11,000 內核和 7,000 萬條消息
- Disqus 如何以每秒 165K 的消息和小于 0.2 秒的延遲進行實時處理
- 關于 Disqus 的更新:它仍然是實時的,但是 Go 摧毀了 Python
- 關于 Wayback 機器如何在銀河系中存儲比明星更多的頁面的簡短說明
- 在 PagerDuty 遷移到 EC2 中的 XtraDB 群集
- 擴展世界杯-Gambify 如何與 2 人組成的團隊一起運行大型移動投注應用程序
- 一點點:建立一個可處理每月 60 億次點擊的分布式系統的經驗教訓
- StackOverflow 更新:一個月有 5.6 億次網頁瀏覽,25 臺服務器,而這一切都與性能有關
- Tumblr:哈希處理每秒 23,000 個博客請求的方式
- 使用 HAProxy,PHP,Redis 和 MySQL 處理 10 億個請求的簡便方法來構建成長型啟動架構
- MixRadio 體系結構-兼顧各種服務
- Twitter 如何使用 Redis 進行擴展-105TB RAM,39MM QPS,10,000 多個實例
- 正確處理事情:通過即時重放查看集中式系統與分散式系統
- Instagram 提高了其應用程序的性能。 這是如何做。
- Clay.io 如何使用 AWS,Docker,HAProxy 和 Lots 建立其 10 倍架構
- 英雄聯盟如何將聊天擴大到 7000 萬玩家-需要很多小兵。
- Wix 的 Nifty Architecture 技巧-大規模構建發布平臺
- Aeron:我們真的需要另一個消息傳遞系統嗎?
- 機器:惠普基于憶阻器的新型數據中心規模計算機-一切仍在變化
- AWS 的驚人規模及其對云的未來意味著什么
- Vinted 體系結構:每天部署數百次,以保持繁忙的門戶穩定
- 將 Kim Kardashian 擴展到 1 億個頁面
- HappyPancake:建立簡單可擴展基金會的回顧
- 阿爾及利亞分布式搜索網絡的體系結構
- AppLovin:通過每天處理 300 億個請求向全球移動消費者進行營銷
- Swiftype 如何以及為何從 EC2 遷移到真實硬件
- 我們如何擴展 VividCortex 的后端系統
- Appknox 架構-從 AWS 切換到 Google Cloud
- 阿爾及利亞通往全球 API 的憤怒之路
- 阿爾及利亞通往全球 API 步驟的憤怒之路第 2 部分
- 為社交產品設計后端
- 阿爾及利亞通往全球 API 第 3 部分的憤怒之路
- Google 如何創造只有他們才能創造的驚人的數據中心網絡
- Autodesk 如何在 Mesos 上實施可擴展事件
- 構建全球分布式,關鍵任務應用程序:Trenches 部分的經驗教訓 1
- 構建全球分布式,關鍵任務應用程序:Trenches 第 2 部分的經驗教訓
- 需要物聯網嗎? 這是美國一家主要公用事業公司從 550 萬米以上收集電力數據的方式
- Uber 如何擴展其實時市場平臺
- 優步變得非常規:使用司機電話作為備份數據中心
- 在不到五分鐘的時間里,Facebook 如何告訴您的朋友您在災難中很安全
- Zappos 的網站與 Amazon 集成后凍結了兩年
- 為在現代時代構建可擴展的有狀態服務提供依據
- 細分:使用 Docker,ECS 和 Terraform 重建基礎架構
- 十年 IT 失敗的五個教訓
- Shopify 如何擴展以處理來自 Kanye West 和 Superbowl 的 Flash 銷售
- 整個 Netflix 堆棧的 360 度視圖
- Wistia 如何每小時處理數百萬個請求并處理豐富的視頻分析
- Google 和 eBay 關于構建微服務生態系統的深刻教訓
- 無服務器啟動-服務器崩潰!
- 在 Amazon AWS 上擴展至 1100 萬以上用戶的入門指南
- 為 David Guetta 建立無限可擴展的在線錄制活動
- Tinder:最大的推薦引擎之一如何決定您接下來會看到誰?
- 如何使用微服務建立財產管理系統集成
- Egnyte 體系結構:構建和擴展多 PB 分布式系統的經驗教訓
- Zapier 如何自動化數十億個工作流自動化任務的旅程
- Jeff Dean 在 Google 進行大規模深度學習
- 如今 Etsy 的架構是什么樣的?
- 我們如何在 Mail.Ru Cloud 中實現視頻播放器
- Twitter 如何每秒處理 3,000 張圖像
- 每天可處理數百萬個請求的圖像優化技術
- Facebook 如何向 80 萬同時觀看者直播
- Google 如何針對行星級基礎設施進行行星級工程設計?
- 為 Mail.Ru Group 的電子郵件服務實施反垃圾郵件的貓捉老鼠的故事,以及 Tarantool 與此相關的內容
- The Dollar Shave Club Architecture Unilever 以 10 億美元的價格被收購
- Uber 如何使用 Mesos 和 Cassandra 跨多個數據中心每秒管理一百萬個寫入
- 從將 Uber 擴展到 2000 名工程師,1000 個服務和 8000 個 Git 存儲庫獲得的經驗教訓
- QuickBooks 平臺
- 美國大選期間城市飛艇如何擴展到 25 億個通知
- Probot 的體系結構-我的 Slack 和 Messenger Bot 用于回答問題
- AdStage 從 Heroku 遷移到 AWS
- 為何將 Morningstar 遷移到云端:降低 97%的成本
- ButterCMS 體系結構:關鍵任務 API 每月可處理數百萬個請求
- Netflix:按下 Play 會發生什么?
- ipdata 如何以每月 150 美元的價格為來自 10 個無限擴展的全球端點的 2500 萬個 API 調用提供服務
- 每天為 1000 億個事件賦予意義-Teads 的 Analytics(分析)管道
- Auth0 體系結構:在多個云提供商和地區中運行
- 從裸機到 Kubernetes
- Egnyte Architecture:構建和擴展多 PB 內容平臺的經驗教訓
- 縮放原理
- TripleLift 如何建立 Adtech 數據管道每天處理數十億個事件
- Tinder:最大的推薦引擎之一如何決定您接下來會看到誰?
- 如何使用微服務建立財產管理系統集成
- Egnyte 體系結構:構建和擴展多 PB 分布式系統的經驗教訓
- Zapier 如何自動化數十億個工作流自動化任務的旅程
- Jeff Dean 在 Google 進行大規模深度學習
- 如今 Etsy 的架構是什么樣的?
- 我們如何在 Mail.Ru Cloud 中實現視頻播放器
- Twitter 如何每秒處理 3,000 張圖像
- 每天可處理數百萬個請求的圖像優化技術
- Facebook 如何向 80 萬同時觀看者直播
- Google 如何針對行星級基礎設施進行行星級工程設計?
- 為 Mail.Ru Group 的電子郵件服務實施反垃圾郵件的貓捉老鼠的故事,以及 Tarantool 與此相關的內容
- The Dollar Shave Club Architecture Unilever 以 10 億美元的價格被收購
- Uber 如何使用 Mesos 和 Cassandra 跨多個數據中心每秒管理一百萬個寫入
- 從將 Uber 擴展到 2000 名工程師,1000 個服務和 8000 個 Git 存儲庫獲得的經驗教訓
- QuickBooks 平臺
- 美國大選期間城市飛艇如何擴展到 25 億條通知
- Probot 的體系結構-我的 Slack 和 Messenger Bot 用于回答問題
- AdStage 從 Heroku 遷移到 AWS
- 為何將 Morningstar 遷移到云端:降低 97%的成本
- ButterCMS 體系結構:關鍵任務 API 每月可處理數百萬個請求
- Netflix:按下 Play 會發生什么?
- ipdata 如何以每月 150 美元的價格為來自 10 個無限擴展的全球端點的 2500 萬個 API 調用提供服務
- 每天為 1000 億個事件賦予意義-Teads 的 Analytics(分析)管道
- Auth0 體系結構:在多個云提供商和地區中運行
- 從裸機到 Kubernetes
- Egnyte Architecture:構建和擴展多 PB 內容平臺的經驗教訓