# Google 架構
> 原文: [http://highscalability.com/blog/2008/11/22/google-architecture.html](http://highscalability.com/blog/2008/11/22/google-architecture.html)
**更新 2:** [使用 MapReduce](http://googleblog.blogspot.com/2008/11/sorting-1pb-with-mapreduce.html) 對 1 PB 進行排序。 PB 并非拼寫錯誤的花生醬和果凍。 它是 1 PB 或 1000 TB 或 1,000,000 GB。 *在 4,000 臺計算機上對 1PB(10 萬億條 100 字節的記錄)進行分類花費了六個小時又兩分鐘,并且在 48,000 個磁盤上將結果復制了三次。
**更新:** [Greg Linden](http://glinden.blogspot.com/2008/01/mapreducing-20-petabytes-per-day.html) 指向 Google 的新文章 [MapReduce:簡化了大型集群上的數據處理](http://labs.google.com/papers/mapreduce-osdi04.pdf)。 一些有趣的統計數據:每天執行 10 萬個 MapReduce 作業; 每天處理超過 20 PB 的數據; 已經實施了超過 1 萬個 MapReduce 程序; 機器是具有千兆位以太網和 4-8 GB 內存的雙處理器。
Google 是可擴展性之王。 每個人都知道 Google 的龐大,精巧和快速的搜索功能,但他們不僅在搜索中脫穎而出。 他們構建可擴展應用程序的平臺方法使他們能夠以驚人的高競爭率推出互聯網規模的應用程序。 他們的目標始終是建立性能更高,規模更大的基礎架構來支持其產品。 他們是如何做到的?*
## 信息來源
1. [視頻:在 Google 構建大型系統](http://video.google.com/videoplay?docid=-5699448884004201579)
2. [Google 實驗室:Google 文件系統](http://labs.google.com/papers/gfs.html)
3. [Google 實驗室:MapReduce:大型集群上的簡化數據處理](http://labs.google.com/papers/mapreduce.html)
4. [Google 實驗室:BigTable](http://labs.google.com/papers/bigtable.html) 。
5. [視頻:BigTable:一種分布式結構化存儲系統](http://video.google.com/videoplay?docid=7278544055668715642)。
6. [Google 實驗室:適用于松耦合分布式系統](http://labs.google.com/papers/chubby.html)的胖鎖服務。
7. [Google 的運作方式[Baseline Magazine]的 David Carr 撰寫的](http://www.baselinemag.com/article2/0,1540,1985514,00.asp)。
8. [Google 實驗室:解釋數據:使用 Sawzall](http://labs.google.com/papers/sawzall.html) 進行并行分析。
9. [Dare Obasonjo 關于可伸縮性會議的說明。](http://www.25hoursaday.com/weblog/2007/06/25/GoogleScalabilityConferenceTripReportMapReduceBigTableAndOtherDistributedSystemAbstractionsForHandlingLargeDatasets.aspx)
## 平臺
1. 的 Linux
2. 多種語言:Python,Java,C ++
## 里面有什么?
### 統計資料
1. 2006 年估計有 450,000 臺低成本商品服務器
2. 在 2005 年,Google 索引了 80 億個網頁。 現在,誰知道呢?
3. 目前,Google 有 200 多個 GFS 集群。 一個集群可以具有 1000 甚至 5000 臺計算機。 數萬臺計算機的池從運行高達 5 PB 的 GFS 群集中檢索數據。 整個群集的總讀/寫吞吐量可以高達 40 GB /秒。
4. 目前,Google 有 6000 個 MapReduce 應用程序,每個月都會編寫數百個新應用程序。
5. BigTable 可擴展以存儲數十億個 URL,數百 TB 的衛星圖像以及成千上萬用戶的首選項。
### 堆棧
Google 將其基礎架構可視化為三層堆棧:
1. 產品:搜索,廣告,電子郵件,地圖,視頻,聊天,博客
2. 分布式系統基礎架構:GFS,MapReduce 和 BigTable。
3. 計算平臺:一堆不同數據中心中的機器
4. 確保公司人員易于以較低的成本進行部署。
5. 查看每個應用程序的價格性能數據。 花更多的錢在硬件上不會丟失日志數據,而花更少的錢在其他類型的數據上。 話雖如此,他們不會丟失數據。
### 可靠的 GFS 存儲機制(Google 文件系統)
1. 可靠的可擴展存儲是任何應用程序的核心需求。 GFS 是他們的核心存儲平臺。
2. Google 文件系統-大型的分布式日志結構化文件系統,在其中可以放入大量數據。
3. 為什么要構建它而不使用現成的東西? 因為它們控制著一切,而正是平臺才使它們與其他人區分開。 他們需要:
-跨數據中心的高可靠性
-可擴展到數千個網絡節點
-巨大的讀/寫帶寬要求
-支持大小為千兆字節的大數據塊。
-跨節點高效分配操作以減少瓶頸
4. 系統具有主服務器和塊服務器。
-主服務器將元數據保留在各種數據文件中。 數據以 64MB 的塊存儲在文件系統中。 客戶端與主服務器對話,以對文件執行元數據操作,并在磁盤上找到包含其所需需求的塊服務器。
-塊服務器將實際數據存儲在磁盤上。 每個塊都在三個不同的塊服務器之間復制,以在服務器崩潰的情況下創建冗余。 一旦由主服務器指示,客戶端應用程序將直接從塊服務器檢索文件。
5. 即將上線的新應用程序可以使用現有的 GFS 集群,也可以使用自己的集群。 了解他們在整個數據中心使用的配置過程將很有趣。
6. 關鍵在于足夠的基礎架構,以確保人們可以選擇其應用程序。 可以調整 GFS 以適合單個應用程序的需求。
### 使用 MapReduce 處理數據
1. 既然您擁有一個良好的存儲系統,那么如何處理如此多的數據呢? 假設您在 1000 臺計算機上存儲了許多 TB 的數據。 數據庫無法擴展或無法有效地擴展到這些級別。 那就是 MapReduce 出現的地方。
2. MapReduce 是用于處理和生成大型數據集的編程模型以及相關的實現。 用戶指定一個處理鍵/值對以生成一組中間鍵/值對的映射函數,以及一個歸約函數,該歸約函數合并與同一中間鍵關聯的所有中間值。 在此模型中,許多現實世界的任務都是可以表達的。 以這種功能風格編寫的程序會自動并行化,并在大型商用機器集群上執行。 運行時系統負責劃分輸入數據,在一組機器上調度程序的執行,處理機器故障以及管理所需的機器間通信的細節。 這使沒有并行和分布式系統經驗的程序員可以輕松利用大型分布式系統的資源。
3. 為什么要使用 MapReduce?
-在許多機器之間分區任務的好方法。
-處理機器故障。
-適用于不同的應用程序類型,例如搜索和廣告。 幾乎每個應用程序都有 map reduce 類型的操作。 您可以預先計算有用的數據,查找字數,對數據 TB 進行排序等。
-計算可以自動移近 IO 源。
4. MapReduce 系統具有三種不同類型的服務器。
-主服務器分配用戶任務以映射和簡化服務器。 它還跟蹤任務的狀態。
-地圖服務器接受用戶輸入并對其進行地圖操作。 結果將寫入中間文件
-Reduce 服務器接受地圖服務器生成的中間文件,并對它們執行 reduce 操作。
5. 例如,您要計算所有網頁中的單詞數。 您將把存儲在 GFS 上的所有頁面送入 MapReduce。 這將同時在數千臺計算機上發生,并且所有協調,作業調度,故障處理和數據傳輸將自動完成。
-步驟如下:GFS->映射->隨機播放->縮減->將結果存儲回 GFS。
-在 MapReduce 中,地圖將一個數據視圖映射到另一個數據視圖,生成一個鍵值對,在我們的示例中為單詞和計數。
-改組聚合密鑰類型。
-減少量匯總所有鍵值對并產生最終答案。
6. Google 索引編制管道具有約 20 種不同的簡化地圖。 管道使用一堆記錄和聚合鍵來查看數據。 第二個 map-reduce 耗時較長,會得到該結果并執行其他操作。 等等。
7. 程序可能很小。 最少 20 到 50 行代碼。
8. 一個問題是流浪漢。 散亂的人是比其他人慢的計算。 由于 IO 速度慢(例如控制器故障)或 CPU 暫時出現峰值,可能會導致流浪漢。 解決方案是運行多個相同的計算,并在完成一個計算后殺死所有其余計算。
9. 在 map 和 reduce 服務器之間傳輸的數據已壓縮。 這個想法是因為服務器不受 CPU 的限制,因此有必要花數據壓縮和解壓縮以節省帶寬和 I / O。
### 在 BigTable 中存儲結構化數據
1. BigTable 是一個大型的,容錯的,自我管理的系統,其中包括 TB 級的內存和 PB 級的存儲。 它每秒可以處理數百萬次讀/寫。
2. BigTable 是建立在 GFS 之上的分布式哈希機制。 它不是關系數據庫。 它不支持聯接或 SQL 類型查詢。
3. 它提供了按鍵訪問結構化數據的查找機制。 GFS 存儲不透明的數據,許多應用程序需要具有結構的數據。
4. 商業數據庫根本無法擴展到該級別,并且無法在 1000 臺計算機上使用。
5. 通過控制自己的低級存儲系統,Google 可以獲得更多的控制權和杠桿作用來改進其系統。 例如,如果他們想要使跨數據中心操作更容易的功能,則可以將其內置。
6. 可以在系統運行時添加和刪除計算機,并且整個系統都可以正常運行。
7. 每個數據項都存儲在一個單元格中,可以使用行鍵,列鍵或時間戳對其進行訪問。
8. 每行存儲在一個或多個平板電腦中。 數位板是一系列 64KB 的塊,其數據格式為 SSTable。
9. BigTable 具有三種不同類型的服務器:
-主服務器將平板電腦分配給平板電腦服務器。 他們跟蹤平板電腦的位置,并根據需要重新分配任務。
-平板電腦服務器處理對平板電腦的讀/寫請求。 當超出尺寸限制(通常為 100MB-200MB)時,他們會拆分平板電腦。 當平板電腦服務器出現故障時,每臺 100 臺平板電腦服務器將拾取 1 臺新平板電腦,然后系統將恢復。
-鎖定服務器形成分布式鎖定服務。 打開平板電腦進行書寫,主控權和訪問控制檢查之類的操作需要相互排斥。
10. 位置組可用于將數據的相關位物理存儲在一起,以實現更好的參考位置。
11. 平板電腦盡可能多地緩存在 RAM 中。
### 硬件
1. 當您有很多機器時,如何構建它們以使其具有成本效益并高效使用電源?
2. 在頂部使用超廉價的商品硬件和內置軟件來應對其死亡。
3. 如果您使用容易發生故障的基礎架構,而不是基于高度可靠的組件構建的基礎架構,則可以將計算機功耗提高 1000 倍,而成本卻降低了 33 倍。 為了使此策略有效,您必須在不可靠性的基礎上建立可靠性。
4. Linux,內部機架設計,PC 類主板,低端存儲。
5. 基于性能的每瓦價格并沒有改善。 有巨大的電源和散熱問題。
6. 混合使用搭配使用自己的數據中心。
### 雜項
1. 快速推出更改,而不必等待質量檢查。
2. 圖書館是構建程序的主要方式。
3. 有些應用程序是作為服務提供的,例如爬網。
4. 基礎結構可處理應用程序的版本控制,因此可以發布它們而不必擔心發生問題。
### Google 的未來發展方向
1. 支持地理分布式集群。
2. 為所有數據創建一個全局名稱空間。 當前,數據按群集進行隔離。
3. 更好,更好的數據和計算自動化遷移。
4. 解決將廣域復制與網絡分區結合使用時發生的一致性問題(例如,即使群集因維護而脫機或由于某種故障而保持服務正常運行)。
## 得到教訓
1. **基礎設施可以成為競爭優勢**。 當然是給 Google 的。 他們可以更快,更便宜地推出新的互聯網服務,而且在其他競爭者中還可以大規模地推出。 許多公司采用完全不同的方法。 許多公司將基礎設施視為支出。 每個小組將使用完全不同的技術,并且幾乎沒有計劃和如何構建系統的共性。 Google 視自己為一家系統工程公司,這是研究構建軟件的一種非常新穎的方式。
2. **跨多個數據中心仍然是一個尚未解決的問題**。 大多數網站位于一個和最多兩個數據中心。 我們應該說,如何在一組數據中心之間完全分配網站是很棘手的。
3. **如果您沒有時間自己重新構建所有這些基礎架構,請看一下 Hadoop **。 Hadoop 是此處介紹的許多相同想法的開源實現。****
4. **平臺方法的一個令人贊賞的優勢**是初級開發人員可以在平臺之上快速而自信地創建健壯的應用程序。 如果每個項目都需要創建相同的分布式基礎架構輪子,您會遇到困難,因為知道如何做到這一點的人相對很少。
5. **協同作用并不總是胡扯**。 通過使系統的所有部分協同工作,一項改進可以幫助他們。 改進文件系統,每個人都可以立即透明地受益。 如果每個項目使用不同的文件系統,那么整個堆棧就不會有持續的改進。
6. **構建無需運行系統即可運行的自我管理系統**。 這使您可以更輕松地在服務器之間重新平衡資源,動態添加更多容量,使計算機脫機并妥善處理升級。
7. **創建達爾文式基礎結構**。 并行執行耗時的操作并贏得優勝者。
8. **不要忽略學院**。 學術界有很多好的想法,這些想法無法轉化為生產環境。 Google 所做的大部分工作都是現有技術,而不是大規模部署。
9. **考慮壓縮**。 當您有大量的 CPU 可供使用且 IO 有限時,壓縮是一個不錯的選擇。
好文章。 真的很好。 真的非常好文章。 真的真的真的真的好文章。
亞馬遜擁有“云計算”功能,可以在此規模上為您提供更好的性價比。
真的很好.. / SG
我喜歡這篇文章...天哪,你知道你的東西。 最好的部分是,由 Google 制作的這些視頻是您的參考框架。 我強烈建議您甚至進一步簡化它。 我喜歡這些內容,您真的應該在 Scalability 2.0 下將這些內容添加到 iMarketingGuru 中。我將放置有關這些類型的可伸縮性的文章鏈接,您可以隨時給自己很多鏈接愛,并繼續進行下去。 維基。 我喜歡這個東西= o)
感謝您分享這些信息。
真是胡扯。
Google 只會進行搜索和搜索,它們不會在 gmail,google talk,SDK,電子表格,Checout 或任何其他服務中發揮作用。
遲早您會弄清楚-當人們變得更聰明并停止按 Google 廣告上的鏈接時-Google 奶牛將停止現金流...
內容豐富,但缺乏細節。 我確實同意上面的那個家伙,他們只是在搜索中大放異彩,他們需要在其他領域大力推廣牛奶:)
很棒的內容。 真的很有用。 干杯!
感謝您分享此信息,它非常有用
很棒的帖子!
我想 Google 會以某種方式創建 Google 操作系統。
它只是存在于云中并且可以使用的服務器和集群的集合。 :-)
作為對您的文章的深入研究的副作用,我將其翻譯為德語: [http://habacht.blogspot.com/2007/10/google-architecture.html](http://habacht.blogspot.com/2007/10/google-architecture.html)
Google 負擔得起所有這種結構^)
我將不得不保存并稍后重新閱讀。 這里有很多細節可以幫助解釋 G 的一些怪癖。 僅僅考慮其背后的龐大體系結構,只會讓我的思想融化。
Google 以前已經丟失了其電子郵件客戶的數據。 不要對谷歌如此信服。 谷歌是一家擁有其他類似缺陷的公司。 他們還不像微軟那么糟糕,但是給它一點時間,他們就會到達那里。 如果您想保護自己的數據安全,請自己做,并確保 99.9999%的時間都可以正常工作。
非常有趣且內容豐富的文章!
我發現它是我正在研究的某些項目的體系結構的重要參考。
真的很好!
完美的文章,謝謝。 Google 變得比搜索引擎更重要
優秀文章
哪里描述 Google LAB:GWS-Google Web Server?
Google 只是搜索者中的第一個! 例如, [http://loadingvault.com](http://loadingvault.com) 或 [http://loadingvault.com](<a rel=) “ > quickshare search 和 google.com 之間的區別?這兩個網站都在搜索 正確的信息!廣告管理是一件非常好的事!
好。 謝謝。 :)
Quite informative but lacks the nity grity details. I do agree to the fellow above that they only shine in search they need to pitch hard in other areas to milk :)
我曾經閱讀過有關 MapReduce 體系結構的最佳文章。
知道像 Google 這樣的大公司如何運作總是很有趣的。
謝謝..
給“什么廢話”的人。 多么透明。 如果我們從主流中脫穎而出,就好像我們對某個主題有一些內在的,高超的知識,我們會顯得聰明嗎? 本文并不將 Google 定位為最終的所有軟件公司。 他們是搜索引擎,而且做得很好。 這是關于他們如何做好的。 真是的 如果它們“不如微軟那么糟糕”-??? Microsoft 在 200 個國家/地區擁有 60,000 名員工。 您雇用多少人? 我對這些消極,無知的人感到厭煩,這些人試圖以犧牲別人的工作成果為代價看起來很聰明……
多數民眾贊成在一個頁面上收集的很好的信息收集。
- 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 內容平臺的經驗教訓