# Uber 如何使用 Mesos 和 Cassandra 跨多個數據中心每秒管理一百萬個寫入
> 原文: [http://highscalability.com/blog/2016/9/28/how-uber-manages-a-million-writes-per-second-using-mesos-and.html](http://highscalability.com/blog/2016/9/28/how-uber-manages-a-million-writes-per-second-using-mesos-and.html)

如果您是 Uber,并且需要存儲駕駛員和駕駛員應用程序每 30 秒發送一次的位置數據,該怎么辦? 大量實時數據需要實時使用。
Uber 的解決方案是全面的。 他們構建了自己的系統,該系統在 Mesos 之上運行 Cassandra。 Uber 的軟件工程師 [Abhishek Verma](https://www.linkedin.com/in/verma7) 在一個很好的演講中都進行了解釋: [Cassandra 在跨多個數據中心的 Mesos 上 Uber](https://www.youtube.com/watch?v=4Ap-1VT2ChU&feature=youtu.be) ( [幻燈片](http://www.slideshare.net/DataStax/cassandra-on-mesos-across-multiple-datacenters-at-uber-abhishek-verma-c-summit-2016) )。
您也應該這樣做嗎? 在聽 Abhishek 的演講時,會想到一個有趣的想法。
這些天來,開發人員有很多艱難的選擇。 我們應該全力以赴嗎? 哪一個? 太貴了嗎? 我們擔心鎖定嗎? 還是我們應該嘗試同時兼顧并打造混合架構? 還是我們應該自己做所有事情,以免由于未達到 [50%](http://firstround.com/review/the-three-infrastructure-mistakes-your-company-must-not-make/) 毛利率而被董事會蒙羞?
Uber 決定建立自己的公司。 或者更確切地說,他們決定將兩個功能強大的開源組件融合在一起,從而將自己的系統焊接在一起。 所需要的是一種使 Cassandra 和 Mesos 協同工作的方法,而這正是 Uber 的基礎。
對于 Uber 的決定并不那么困難。 他們資金充裕,可以訪問創建,維護和更新這類復雜系統所需的頂尖人才和資源。
由于 Uber 的目標是使所有人在任何地方的運輸都具有 99.99%的可用性,因此在擴展到無限遠及更高水平時,希望能夠控制您的成本確實很有意義。
但是,當您聽演講時,您會意識到制作此類系統所付出的巨大努力。 這真的是您的普通商店可以做的事情嗎? 不,不是。 如果您是那些希望每個人都在裸露的金屬之上構建自己的所有代碼的云專家之一,請記住這一點。
以金錢換時間通常很劃算。 通常,以技能交易金錢是絕對必要的。
鑒于 Uber 的可靠性目標,即 10,000 個請求中只有一個可能失敗,因此他們需要在多個數據中心中用完。 由于事實證明 Cassandra 可以處理巨大的負載并且可以跨數據中心工作,因此將其作為數據庫選擇是有意義的。
如果您想使所有人,任何地方的運輸都可靠,則需要有效地利用您的資源。 這就是使用像 Mesos 這樣的數據中心操作系統的想法。 通過在同一臺計算機上統計復用服務,您需要的計算機數量減少了 30%,從而節省了資金。 之所以選擇 Mesos,是因為當時 Mesos 是經證明可與數以萬計的計算機集群大小一起工作的唯一產品,這是 Uber 的要求。 優步的工作量很大。
有哪些更有趣的發現?
* 您可以在容器中運行有狀態服務。 Uber 發現,在裸機上運行 Cassandra 與在 Mesos 管理的容器中運行 Cassandra 之間幾乎沒有任何區別,開銷為 5-10%。
* 性能良好:平均讀取延遲:13 毫秒,寫入延遲:25 毫秒,P99 看起來不錯。
* 對于最大的群集,他們能夠支持超過一百萬次寫入/秒和約 10 萬次讀取/秒。
* 敏捷性比性能更重要。 通過這種架構,Uber 獲得的就是敏捷性。 跨集群創建和運行工作負載非常容易。
這是我的演講要點:
## 開頭
* 跨不同服務的靜態分區機器。
* 50 臺機器可能專用于 API,50 臺機器專用于存儲,等等,并且它們沒有重疊。
## 即時
* 希望在 [Mesos](http://mesos.apache.org/) 上運行所有內容,包括諸如 Cassandra 和 Kafka 之類的有狀態服務。
* Mesos 是數據中心操作系統,可讓您像單一資源池一樣針對數據中心進行編程。
* 當時,事實證明 Mesos 可以在成千上萬的計算機上運行,??這是 Uber 的要求之一,因此這就是他們選擇 Mesos 的原因。 今天,Kubernetes 可能也可以工作。
* Uber 在 MySQL 之上構建了自己的分片數據庫,稱為 [Schemaless](https://eng.uber.com/schemaless-part-one/) 。 這個想法是 Cassandra 和 Schemaless 將成為 Uber 中的兩個數據存儲選項。 現有的 Riak 裝置將移至 Cassandra。
* 一臺機器可以運行各種服務。
* 同一臺機器上的統計復用服務可能會導致 的機器數量減少 30% 。 這是 Google 在 Borg 上運行的 [實驗](http://research.google.com/pubs/pub43438.html) 的發現。
* 例如,如果一項服務使用大量 CPU,并且與使用大量存儲或內存的服務非常匹配,那么這兩項服務可以在同一服務器上有效運行。 機器利用率上升。
* Uber 現在有大約 20 個 Cassandra 集群,并計劃在將來有 100 個。
* 敏捷性比性能更重要。 您需要能夠管理這些集群并以平滑的方式對其執行不同的操作。
* **為什么在容器中而不是在整個機器上運行 Cassandra?**
* 您想存儲數百 GB 的數據,但您還希望將其復制到多臺計算機上以及跨數據中心。
* 您還希望跨不同群集進行資源隔離和性能隔離。
* 很難在一個共享群集中獲得所有這些。 例如,如果您制作了一個 1000 節點的 Cassandra 群集,它將無法擴展,或者跨不同群集也會產生性能干擾。
## 量產中
* 在兩個數據中心(西海岸和東海岸)中復制約 20 個群集
* 最初有 4 個集群,包括中國,但由于與滴滴合并,這些集群被關閉了。
* 跨兩個數據中心的 300 臺機器
* 最大的 2 個集群:每秒超過 100 萬次寫入和每秒 10 萬次讀取
* 群集之一正在存儲駕駛員和騎乘者應用程序每 30 秒發送一次的位置。
* 平均讀取延遲:13 毫秒,寫入延遲:25 毫秒
* 通常使用 [LOCAL_QUORUM](https://docs.datastax.com/en/cassandra/2.0/cassandra/dml/dml_config_consistency_c.html) 一致性級別(表示強一致性)
## 月背景資料
* Mesos 將 CPU,內存和存儲從計算機中分離出來。
* 您不是在查看單個計算機,而是在查看資源并對其進行編程。
* 線性可伸縮性。 可以在數以萬計的計算機上運行。
* 高度可用。 Zookeeper 用于在可配置數量的副本中進行領導者選舉。
* 可以啟動 Docker 容器或 Mesos 容器。
* 可插拔資源隔離。 用于 Linux 的 Cgroups 內存和 CPU 隔離器。 有一個 Posix 隔離器。 不同的操作系統有不同的隔離機制。
* 兩級調度程序。 來自 Mesos 代理的資源被提供給不同的框架。 框架在這些提議的基礎上安排自己的任務。
## Apache Cassandra Backgrounder
* Cassandra 非常適合 Uber 的用例。
* 水平可擴展。 隨著新節點的添加,讀寫規模呈線性增長。
* 高度可用。 具有可調一致性級別的容錯能力。
* 低延遲。 在同一數據中心內獲得亞毫秒級的延遲。
* 操作簡單。 這是同質的簇。 沒有主人。 集群中沒有特殊的節點。
* 足夠豐富的數據模型。 它具有列,組合鍵,計數器,二級索引等
* 與開源軟件的良好集成。 Hadoop,Spark,Hive 都具有與 Cassandra 進行通信的連接器。
## 中層+ Uber + Cassandra = dcos-cassandra-service
* Uber 與 Mesosphere 合作生產了 [mesosphere / dcos-cassandra-service](https://github.com/mesosphere/dcos-cassandra-service) -一種自動化服務,可輕松在 Mesosphere DC /上進行部署和管理 操作系統。

* 頂部是 Web 界面或 Control Plane API。 您指定所需的節點數; 您想要多少個 CPU; 指定 Cassandra 配置; 然后將其提交給 Control Plane API。
* 使用 Uber 的部署系統,它在 [Aurora](http://aurora.apache.org/) 之上啟動,用于運行無狀態服務,用于引導 dcos-cassandra 服務框架。
* 在示例 dcos-cassandra-service 框架中有兩個與 Mesos 主服務器通信的集群。 Uber 在其系統中使用了五個 Mesos 母版。 Zookeeper 用于領導者選舉。
* Zookeeper 還用于存儲框架元數據:正在運行的任務,Cassandra 配置,集群的運行狀況等。
* Mesos 代理在群集中的每臺計算機上運行。 代理將資源提供給 Mesos 主服務器,主服務器以離散報價分發它們。 報價可以被框架接受或拒絕。 多個 Cassandra 節點可以在同一臺計算機上運行。
* 使用 Mesos 容器,而不是 Docker。
* 覆蓋配置中的 5 個端口(storage_port,ssl_storage_port,native_transport_port,rpcs_port,jmx_port),因此可以在同一臺計算機上運行多個容器。
* 使用永久卷,因此數據存儲在沙箱目錄外部。 萬一 Cassandra 失敗,數據仍將保留在持久卷中,如果崩潰并重新啟動,則將數據提供給同一任務。
* 動態預留用于確保資源可用于重新啟動失敗的任務。
* Cassandra 服務操作
* Cassandra 有一個 [種子節點](https://www.quora.com/What-is-a-seed-node-in-Apache-Cassandra) 的想法,它為加入集群的新節點引導八卦過程。 創建了自定義 [種子提供程序](https://mesosphere.github.io/cassandra-mesos/docs/configuration-and-state.html) 來啟動 Cassandra 節點,該節點允許 Cassandra 節點自動在 Mesos 群集中推出。
* 可以使用 REST 請求增加 Cassandra 群集中的節點數。 它將啟動其他節點,為其提供種子節點,并引導其他 Cassandra 守護程序。
* 可以更改所有 Cassandra 配置參數。
* 使用 API??可以替換死節點。
* 需要修復才能跨副本同步數據。 維修在每個節點的主鍵范圍內進行。 這種方法不會影響性能。
* 清除將刪除不需要的數據。 如果已添加節點,則數據將被移動到新節點,因此需要清理才能刪除移動的數據。
* 可以通過框架配置多數據中心復制。
* 多數據中心支持
* 在每個數據中心中獨立安裝 Mesos。
* 在每個數據中心中設置框架的獨立實例。
* 框架互相交談并定期交換種子。
* 這就是 Cassandra 所需要的。 通過引導其他數據中心的種子,節點可以八卦拓撲并找出節點是什么。
* 數據中心之間的往返 ping 延遲為 77.8 ms。
* P50 的異步復制延遲:44.69 毫秒; P95:46.38ms; P99:47.44 毫秒;
* 計劃程序執行
* 調度程序的執行被抽象為計劃,階段和塊。 調度計劃具有不同的階段,一個階段具有多個塊。
* 調度程序啟動時要經過的第一階段是協調。 它將發送給 Mesos 并找出已經在運行的內容。
* 有一個部署階段,檢查集群中是否已存在配置中的節點數,并在必要時進行部署。
* 塊似乎是 Cassandra 節點規范。
* 還有其他階段:備份,還原,清理和修復,具體取決于命中的 REST 端點。
* 集群可以每分鐘一個新節點的速率啟動。
* 希望每個節點的啟動時間達到 30 /秒。
* 在 Cassandra 中不能同時啟動多個節點。
* 通常給每個 Mesos 節點 2TB 的磁盤空間和 128GB 的 RAM。 每個容器分配 100GB,每個 Cassandra 進程分配 32GB 堆。 (注意:目前尚不清楚,因此可能有錯誤的細節)
* 使用 G1 垃圾收集器代替 CMS,它具有更好的 99.9%延遲(16x)和性能,無需任何調整。
## 裸機 vs Mesos 托管群集
* 使用容器的性能開銷是多少? 裸機意味著 Cassandra 不在容器中運行。
* 讀取延遲。 幾乎沒有什么區別:5-10%的開銷。
* 在裸機上平均為 0.38 ms,而在 Mesos 上為.44 ms。
* 在 P99 上,裸機為.91 毫秒,在 Mesos 上,P99 為.98 毫秒。
* 讀取吞吐量。 差別很小。
* 寫入延遲。
* 在裸機上平均為 0.43 ms,而在 Mesos 上為.48 ms。
* 在 P99 上,裸機為 1.05 毫秒,在 Mesos 上,P99 為 1.26 毫秒。
* 寫入吞吐量。 差別很小。
## 相關文章
* [關于 HackerNews](https://news.ycombinator.com/item?id=12600298)
* [使用 Borg 在 Google 進行大規模集群管理](http://research.google.com/pubs/pub43438.html)
* [Google 的三個時代-批處理,倉庫,即時](http://highscalability.com/blog/2011/8/29/the-three-ages-of-google-batch-warehouse-instant.html)
* [Google 延遲容忍系統:將不可預測的部分做成可預測的整體](http://highscalability.com/blog/2012/6/18/google-on-latency-tolerant-systems-making-a-predictable-whol.html)
* [Google:馴服長時間延遲的尾巴-當更多機器等于更差的結果時](http://highscalability.com/blog/2012/3/12/google-taming-the-long-latency-tail-when-more-machines-equal.html)
* [Google 從單一數據中心到故障轉移再到本地多宿主體系結構的過渡](http://highscalability.com/blog/2016/2/23/googles-transition-from-single-datacenter-to-failover-to-a-n.html)
* [Uber 如何擴展其實時市場平臺](http://highscalability.com/blog/2015/9/14/how-uber-scales-their-real-time-market-platform.html)
* [Uber 變得與眾不同:使用駕駛員電話作為備份數據中心](http://highscalability.com/blog/2015/9/21/uber-goes-unconventional-using-driver-phones-as-a-backup-dat.html)
* [為在現代時代構建可擴展的有狀態服務提供依據](http://highscalability.com/blog/2015/10/12/making-the-case-for-building-scalable-stateful-services-in-t.html)
* [我也想運行有狀態容器](https://techcrunch.com/2015/11/21/i-want-to-run-stateful-containers-too/)
* [Uber 工程技術堆棧,第一部分:基礎](https://eng.uber.com/tech-stack-part-one/)
* [Uber,Twitter,PayPal 和 Hubspot 使用 Apache Mesos 的 4 種獨特方式](https://www.linux.com/news/4-unique-ways-uber-twitter-paypal-and-hubspot-use-apache-mesos)
鏈接到代碼:https://github.com/mesosphere/dcos-cassandra-service
順便說一句,在文章中有一個鏈接。
有趣。 我想知道他們如何處理每秒 1M 個事件的日志記錄。
我認為 ELK 不能跟上步伐。
@bob。 Uber 確實使用 ELK 進行記錄。 它具有最大的 ELK 日志搜索安裝之一。
我想知道他們是否正在使用 Mesos 卷進行持久數據存儲。
是的,我們正在使用持久卷(https://mesos.apache.org/documentation/latest/persistent-volume/)進行數據存儲。
你好
您能否闡明查詢的性質?
聚合或聯接或基于緯度的查詢?
是否想知道 solr 是否可以根據您的用例進行選擇?
> >有趣。 我想知道他們如何處理每秒 1M 個事件的日志記錄。
如今,許多人用來實現此目的的模式是使用 kafka 日志記錄庫,該庫掛接到其微服務中,并使用 spark 等將來自 Kafka 的日志消耗到 elasticsearch 中。 我們在一個很小的?8 節點 ES 集群上每秒處理數十萬個事件。
-SRE @ Orchard 平臺
您能否分享 DC 之間的延遲時間?
Uber 使用 DC / OS 很有意思,但選擇使用 Aurora 而非馬拉松。 我上次查看極光時(大約 18 到 24 個月前),它的發展程度不及馬拉松。 我想知道何時做出決定? Aurora 文檔得到了很大的改進。
很棒的帖子! 使用 Mesos 代替 Hadoop YARN 是否有任何特殊原因? Mesos 是否更適合您的需求?
YARN 只能運行 Hadoop 工作負載 Mesos 允許您運行任何類型的工作負載。
謝謝您,先生,非常有信息。
Mesos 可以在沒有 docker 容器安裝 Cassandra 的情況下運行嗎?
我們可以使用 Mesos 默認容器安裝 cassandra 嗎?
很棒的翔實文章。 做得好!
怎么可能有 100 萬次寫入但每秒 10 萬次讀取? 支持多于讀比寫有意義嗎?
- 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 內容平臺的經驗教訓