# Google 如何備份 Internet 和數十億字節的其他數據
> 原文: [http://highscalability.com/blog/2014/2/3/how-google-backs-up-the-internet-along-with-exabytes-of-othe.html](http://highscalability.com/blog/2014/2/3/how-google-backs-up-the-internet-along-with-exabytes-of-othe.html)

[Raymond Blum](https://plus.google.com/115038404694487056892/posts?hl=en) 領導了一組站點可靠性工程師,負責對 Google 的數據保密并確保其安全。 當然,Google 永遠不會說這實際上有多少數據,但是從評論看來,它還不是 [約字節](http://en.wikipedia.org/wiki/Yottabyte) ,但很多 [艾字節](http://en.wikipedia.org/wiki/Exabyte) 大小。 僅 GMail 就要處理近幾十億字節的數據。
Blum 先生在視頻中 [Google 如何備份互聯網](http://www.youtube.com/watch?v=eNliOm9NtCM) 解釋了常見的備份策略不適用于 Google 原因:通常他們以容量 擴展規模 **。 如果備份兩倍的數據需要兩倍的工作量(時間,精力,空間等),那么它將無法正常工作,并且無法擴展。 您必須找到效率,以便容量可以比支持該容量所需的努力更快地擴展。 從備份一個 EB 備份到備份兩個 EB 時,需要一個不同的計劃。 談論主要是關于 Google 如何做到這一點。**
演講的一些主要主題:
* **從來沒有數據丟失** 。 即使是臭名昭著的 GMail 中斷也沒有丟失數據,但是故事遠不只是大量的磁帶備份而復雜。 從整個堆棧中檢索數據,這需要在各個層面(包括人員)進行工程設計。
* **備份無用**。 這是您關心的還原。 這是一個還原系統,而不是備份系統。 備份是您為還原的奢侈而支付的一種稅。 將工作轉移到備份上,并根據需要使其變得復雜,以使還原如此簡單,一只貓就可以做到。
* **您無法線性縮放**。 您無法擁有 100 倍的數據或 100 倍的人員或機器資源。 尋找力的乘數。 自動化是提高利用率和效率的主要方法。
* **冗余**。 Google 的東西總是失敗。 廢話 人體細胞死亡的方式相同。 Google 并不夢想事情不會消亡。 它計劃。
* **所有事物的多樣性** 。 如果您擔心站點的位置,請將數據放在多個站點中。 如果您擔心用戶錯誤,請與用戶交互隔離。 如果要防止軟件錯誤,請把它放在其他軟件上。 將東西存儲在不同的供應商設備上,以減少大的供應商錯誤影響。
* **將人類帶出循環** 。 GMail 保留多少電子郵件副本? 這不是人類應該關心的事情。 一些參數是由 GMail 配置的,系統會處理。 這是一個不變的主題。 制定了高級策略,系統也這樣做了。 如果發生超出規范的事情,只會打擾到人。
* **證明** 。 如果您不嘗試,將無法使用。 不斷測試備份和還原,以驗證它們是否有效。
對于任何規模的組織,這里都有很多值得學習的地方。 布拉姆先生的 [演講](http://www.youtube.com/watch?v=eNliOm9NtCM) 具有娛樂性,內容豐富,值得一看。 他似乎確實很喜歡工作中的挑戰。
這是我對這個非常有趣的演講的掩飾,我們從野獸內部學習了許多秘密:
* **數據可用性必須為 100% 。** **從來沒有數據丟失**。
* 從統計上講,如果您從 2GB 的文件中丟失了 200K,這聽起來不錯,但是該文件現在可能已無用,請考慮執行文件或納稅申報單。
* 數據的可用性對訪問的可用性更為重要。 如果系統出現故障,那不是世界末日。 如果數據丟失,那就是。
* Google 保證在所有可能的組合中為您提供以下所有服務:
* 位置隔離
* 與應用層問題的隔離
* 與存儲層問題的隔離
* 與媒體故障隔離
* **考慮可以在** 上移動滑塊的尺寸。 將軟件垂直放置,水平放置。 如果要涵蓋所有內容,則需要在不同位置復制該軟件層。 您可以在不同位置的 VM 上執行此操作。
* **冗余與可恢復性** 不同。
* 多份復印無助于達到無損保證。
* 許多副本對某些類型的中斷有效。 如果小行星撞擊數據中心,并且您的副本很遠,您就會被覆蓋。
* 如果存儲堆棧中有錯誤,則復制到 N 個位置無濟于事,因為該錯誤會損壞所有副本。 以 GMail 中斷為例。
* 小行星的數量不及代碼錯誤,用戶錯誤或緩沖區寫入錯誤。
* 冗余有利于參考位置。 當您希望所有數據引用都盡可能靠近使用數據的位置時,復制就很好。
* **整個系統非常強大,因為其中有很多**。
* **Google 內容始終失敗**。 廢話 人體細胞死亡的方式相同。 我們沒有夢想事情不會消亡。 我們為它計劃。 機器一直死掉。
* **冗余就是答案** 。 總的來說,結果比一臺高質量機器更可靠。 一架機器可以被小行星摧毀。 放置在 50 個不同位置的機器更難銷毀。
* **大規模并行系統有更多的損失機會** 。
* 可以在 30K 臺計算機上運行的 MapReduce 非常棒,直到出現錯誤為止。 您有相同的錯誤等待立即在任何地方運行,從而擴大了影響。
* **本地副本無法防止站點中斷** 。
* 如果服務器機房中有洪災,RAID 將無濟于事。
* 大約一年前,在整個 Google 上使用的 Google 文件系統(GFS)將 RAID 的概念提升了一個檔次。 使用 [編碼技術](http://en.wikipedia.org/wiki/Erasure_code) 一次寫入不同城市中的多個數據中心,因此您只需要 N-1 個片段即可重建數據。 因此,有了三個數據中心,一次就可以消亡,您仍然可以獲得可用的數據。
* **可用性和完整性是組織范圍內的特征** 。
* Google 工程師,BigTable,GFS,Colossus 都知道數據持久性和完整性是第一要務。 有很多系統可以檢查和糾正數據可用性和完整性方面的任何失誤。
* **您想要所有事物的多樣性** 。
* 如果您擔心站點的位置,請將數據放在多個站點中。
* 如果您擔心用戶錯誤,請與用戶交互隔離。
* 如果要防止軟件錯誤,請將其放在其他軟件上。 將東西存儲在不同的供應商設備上,以減少大的供應商錯誤影響。
* **用來備份內容的磁帶確實非常好** 。
* **磁帶很棒,因為它不是磁盤** 。 如果可以的話,他們會使用打孔卡。
* 想象一下您是否在 SATA 磁盤的設備驅動程序中存在錯誤。 磁帶可以幫助您避免麻煩。 因為不同的媒體意味著不同的軟件,所以它增加了您的多樣性。
* 磁帶容量遵循摩爾定律,因此盡管他們正在研究替代方案,但他們對磁帶作為備份介質感到非常滿意,但他們不會說它們是什么。
* 磁帶已加密,這意味著邪惡力量很難從中獲得有用的東西。
* **備份無用。 這是您關心的** 還原。
* 在有人需要數據之前先確定是否存在問題。 當您需要還原時,您確實需要它。
* **運行連續還原** 。 不斷隨機選擇 5%的備份并還原它們以進行比較。 為什么? 在數據丟失之前找出備份是否有效。 抓了很多問題。
* **運行自動比較** 。 由于原件已更改,因此無法與原件進行比較。 因此,對所有內容進行校驗和并比較校驗和。 將其返回到源介質,磁盤或閃存,或它來自何處。 確保數據可以往返。 這一直都在做。
* **出現故障率變化的警報** 。
* **如果有所不同,您可能想了解一下** 。 如果一切正常,請不要告訴我。
* 可能會出現一些故障,但不要針對第一次嘗試后無法還原的文件發出警報。
* 假設第一次嘗試的失敗率通常是 N。第二次嘗試的失敗率是 Y。如果失敗率發生變化,則說明出現了問題。
* **一切都破裂了** 。
* 磁盤一直損壞,但是您知道它發生的時間,因為您正在監視它。
* 使用磁帶之前,您不知道它已損壞,直到嘗試使用它為止。 磁帶可以使用很長時間,但是您需要先對其進行測試。
* 磁帶 上的 **[RAID4](http://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_4) 。**
* 不要只寫一盤磁帶。 它們是墨盒。 機器人可能會掉落它們,或者可能會產生一些磁通量。 不要碰碰運氣
* 寫入磁帶 **時,告訴編寫者保留數據** ,直到可以更改為止。 如果這樣做,您就違反了合同。
* 建立 4 個完整的磁帶,然后通過將所有內容異或來生成第 5 個代碼帶。 您可以丟失 5 盤磁帶中的任何一盤并恢復數據。
* 現在告訴編寫者他們可以更改源數據,因為數據已經將其移到了最終的物理位置,并且現在是冗余的。
* Google 備份的每一位數據都經過此過程。
* 一個月會丟失數百個磁帶,但是由于這個過程,每月不會有數百個數據丟失案例。
* 如果丟失了一條磁帶,則可以使用連續還原檢測到該磁帶,并使用同級磁帶重建另一條磁帶,一切正常。 在極少的情況下,如果兩個磁帶都損壞,則只有在磁帶上的相同兩個點都損壞的情況下,數據才會丟失,因此在磁帶級進行重建。
* 由于這些技術,不會造成數據丟失。 這很昂貴,但這是做生意的成本。
* **備份是您為還原**所支付的奢侈稅。
* **這是一個還原系統,而不是備份系統** 。 恢復是不可屏蔽的中斷。 他們勝過一切。 恢復備份。
* 使備份變得復雜并且需要的時間很長。 使恢復盡可能快和自動。
* 恢復應該是愚蠢的,快速且簡單的。 希望一只貓能夠觸發集中還原。
* 當您休息好或狗累了時,恢復可能會發生。 因此,您不希望人為因素決定還原服務數據副本是否成功。 你壓力很大。 因此,在進行備份的所有時間中,所有工作和思考都要做。
* 大量系統以這種方式工作。
* 數據源可能必須能夠存儲一段時間(也許幾天),然后才能保證已備份數據。 但是一旦備份,便可以快速還原和還原。
* 不再最有效地利用備份上的介質來加快還原速度。 花兩個小時讀磁帶是不好的。 只寫一半的磁帶并并行讀取它們,這樣您就可以在一半的時間內取回數據。
* **秤是一個問題** 。
* 當您有 EB 級數據時,會有現實世界的限制。 如果您必須復制 10 EB,那么每天備份數據可能需要 10 周的時間。
* 在全球的數據中心中,您有幾種選擇。 您是否給每個站點近乎無限的備份能力? 您是否按地區對所有備份進行群集? 運送數據的帶寬呢? 您不需要帶寬來賺錢嗎?
* 查看相關費用。 有妥協。 并非每個站點都具有備份功能。 必須平衡網絡上的可用容量。 您從哪里獲得最大的收益。 例如,備份必須在站點 X 上進行,因為它具有帶寬。
* **您無法線性縮放**。
* 不能只是說您想要更多的網絡帶寬和更多的磁帶驅動器。 驅動器損壞,因此,如果驅動器數量為 10,000,則需要的操作員數量是驅動器數量的 10,000 倍。 您是否有 10,000 倍的裝載臺來放置磁帶驅動器,直到卡車將其撿起。 這些都不是線性的。
* 盡管磁帶庫的數量增加了一個完整的數量級,但涉及的人數卻沒有 10 倍。 還有更多的數字,但遠非線性增長。
* 例子是一個早期的預測,隨著電話數量的增長,美國人口的 30%將被用作電話接線員。 他們看不到的是自動切換。
* **自動化所有** 。
* 調度是自動的。 如果您有一項服務,則說我有一個數據存儲,并且每個 N 都需要一個副本,并且還原必須在 M 中進行。在內部,系統會做到這一點。 計劃備份,運行還原測試以及運行完整性測試等。當檢測到損壞的磁帶時,將自動對其進行處理。
* 您作為人類沒有看到任何這些。 您可能有一天會問平均多少磁帶斷裂。 否則,如果磁帶損壞率從每天 100 條磁帶更改為每天 300 條磁帶,可能會發出警報。 但是在此之前,請不要告訴我每天是否有 100 盤磁帶破損,如果這超出了正常范圍。
* **人體不應參與穩態操作** 。
* 包裝和運輸驅動器仍然是人類的活動。 自動化的界面可以準備運輸標簽,獲取 RMA 編號,檢查包裹是否已外出,獲得收據確認,以及是否發生這種情況,必須由人工干預。
* **庫軟件維護同樣** 。 如果要進行固件更新,則不會有人在每個系統上運行并執行升級。 下載它。 讓它推送到金絲雀圖書館。 讓它進行測試。 讓結果驗證為準確。 然后將其推出。 沒有人參與正常操作。
* **自動處理機器死亡** 。
* 機器每分鐘死兩次。 如果一臺機器在使用 30,000 臺機器的 MapReduce 工作中快要死了,請不要告訴我,只需處理并繼續前進即可。 查找另一臺機器,移動工作,然后重新啟動。
* **如果存在依賴項,則安排等待時間**。 如果您等待太久,請告訴我。 您可以自己安排時間。 這是算法的工作,而不是人類的工作。
* **隨著增長不斷提高效率** 。
* 大大提高了利用率和效率。 不能有 100 倍的數據需要 100 倍的人員或機器資源。
* **2011 年的重大 GMail 中斷和恢復** 。 關于 Google 如何刪除數據并取回數據的故事。
* 在星期日的上午 10:31,他得到了一個頁面,上面寫著“ Holly Crap call xxx-xxxx”。 有關中斷的更多信息 [此處](http://gmailblog.blogspot.com/2011/02/gmail-back-soon-for-everyone.html) 。
* Gmail 的數據量已接近 EB。 磁帶很多。
* 100%恢復。 可用性不是 100%。 在第一天或第二天還沒有全部。 但是到了一段時期的盡頭。
* 在復制發生的層中發生了一系列的錯誤和不幸。 是的,我們有三個相同的文件,但它們都是空的。 即使進行單元測試,系統測試和集成測試,錯誤也可以解決。
* 從磁帶恢復。 大量工作。 這是恢復時間與規模有關的地方。 取回千兆字節可以在幾毫秒到幾秒鐘內完成。 取回 200,000 個各個演出的收件箱將需要一段時間。
* 在歐洲喚醒了幾個同事,因為他們比較新鮮。 分布式勞動力的優勢。
* 已從許多磁帶上還原了數據并進行了驗證。 沒花幾個星期或幾個月,只花了幾天。 他們對此感到滿意。 其他處于類似情況的公司花了一個月的時間才意識到他們無法取回數據。 已采取步驟來確保下一次該過程將更快。
* 一個磁帶機需要 2 個小時才能讀取。 磁帶遍布各處。 否則,任何一個位置都將沒有足夠的能力來讀取還原過程中涉及的所有磁帶。
* 使用壓縮和校驗和,他們實際上不需要讀取 200K 磁帶。
* 從那時起,恢復流程已得到很大改善。
* **優先還原** 。
* 可以在保存更重要的數據(例如當前收件箱和發送的電子郵件)之后恢復已存檔的數據。
* 一個月內沒有被觸摸過的帳戶可以等待,直到更活躍的用戶被首先還原。
* **備用系統被視為巨大的全球生物** 。
* 不想僅在紐約進行 GMail 備份,因為如果該數據中心增長或收縮,則備份需要適當擴展。
* 將備份視為一個巨大的全球跨越系統。 進行備份時,它可能完全位于其他位置。
* 必須在磁帶所在的位置進行磁帶還原。 但是在制作磁帶之前,數據可能在紐約,而備份在俄勒岡州,因為那里有足夠的存儲空間。 位置隔離是自動處理的,不會告訴客戶端其數據備份的位置。
* 容量可以移動。 只要具有全球容量并且網絡可以支持它,磁帶位于何處都沒有關系。
* **您擁有的數據越多,保留它就越重要** 。
* 通常,越大的東西越重要。 Google 過去只是搜索。 現在是 Gmail,存儲在驅動器,文檔等中的東西。它既更大,也越來越重要。
* **擁有良好的基礎架構** 。
* 可以使用通用的瑞士軍刀真的很不錯。 編寫 MapReduce 時,他們可能從未想到過將其用于備份。 但是,如果沒有 MapReduce,就不可能出現將其用于備份的想法。
* **縮放比例確實很重要,您無法擁有任何無法擴展的部分-軟件,基礎架構,硬件,流程-**。
* 您不能說我將在擁有操作人員的情況下部署更多的磁帶機。 如果您要雇用兩倍的人,您有兩倍的停車位嗎? 自助餐廳的房間? 洗手間? 一切都必須擴大規模。 您將遇到一個瓶頸,它將阻止您。
* **證明** 。
* 不要將任何事情視為理所當然。 希望不是戰略。
* 如果不嘗試,將無法使用。 必須進行還原才能驗證備份。 直到最后,您還沒有證明任何東西。 這種態度發現了很多失敗。
* **DRT。 災難恢復測試** 。
* 每 N 個月就會發布一次災難場景。 模擬組織各個級別的響應。
* 在災難不帶走任何損失的情況下,公司將如何生存? 必須學會適應。
* 發現基礎結構和物理安全方面的巨大漏洞。
* 想象一下,一個數據中心有一條通向它的道路,并且有卡車在路上裝載著備用發電機的燃料。 路迷路了怎么辦? 最好有一條道路和另一家柴油燃料供應商。
* 確實有供應鏈冗余策略。
* **在不同時間點在不同位置的不同軟件堆棧中的冗余** 。
* **不要只讓數據在堆棧中遷移** 。 將數據保留在堆棧的不同層中一段特定的駐留時間。 因此,如果您丟失了該數據,則此數據會重疊。 時間,位置和軟件。
* 考慮 GMail 中斷示例。 如果復制損壞了,怎么也不會丟失數據? 這是聽眾提出的問題,他真的不想透露細節。 數據一直在備份。 假設我們有截至 9PM 的數據。 假設損壞發生在晚上 8 點,但尚未錄制到磁帶上。 腐敗被制止了。 軟件已回滾到工作版本。 在堆棧中的某個時刻,所有數據仍然存在。 磁帶上有東西。 有東西正在復制。 前端有東西。 日志中有東西。 所有這些來源都有重疊之處,有可能重建所有數據。 對于這種情況,政策是直到將數據放入另一個堆棧中 N 個小時后,才從一個卡住的數據中取出數據。
* **刪除問題** 。
* 我要刪除它。 不會為了刪除數據而重寫磁帶。 大規模而言太昂貴了。
* 一種方法是對加密密鑰進行智能處理。 他沒有告訴我們 Google 做什么。 也許丟失了有效刪除數據的密鑰?
* **當您信任同事并分擔責任時,一個龐大的組織就可以工作。** 。
* 相信他們了解自己的部分。
* 確保組織和軟件接口定義正確。 在各層之間實施驗證測試。
* **白名單和黑名單**。
* 確保數據位于保證的位置,并保證不在某個位置,這與其余的哲學原理(即位置多樣性和位置獨立性)背道而馳。
* 最初不是堆棧的功能。 必須添加以支持政府要求。
* 在堆棧中將責任降低得越低越好。 填寫正確的個人資料,它就會神奇地發生。
## 相關文章
* [在 Reddit 上](http://www.reddit.com/r/programming/comments/1wzsmk/how_google_backs_up_the_internet_along_with/)
“如果您想對軟件錯誤進行“保護”,那么???
嘿托德,
這是一個令人難以置信的帖子,其中包含許多有用的信息,非常感謝您將其組合在一起!
嘿,
我想知道更多有關 Google 備份的內容。 是完整的檔案備份,以便保存在 google 中創建的每個文件,還是更多的滾動備份,其中刪除了未使用的數據,僅備份了最近的幾周。
另外,是 Google 對數據進行重復數據刪除,還是每個用戶的每個文件等等,都是單獨保存的。
呵呵,所以安全是一個問題。
這是我在網上找到的最佳信息之一,謝謝分享
- 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 內容平臺的經驗教訓