# Viddler Architecture-每天嵌入 700 萬個和 1500 Req / Sec 高峰
> 原文: [http://highscalability.com/blog/2011/5/10/viddler-architecture-7-million-embeds-a-day-and-1500-reqsec.html](http://highscalability.com/blog/2011/5/10/viddler-architecture-7-million-embeds-a-day-and-1500-reqsec.html)
 Viddler 從事高質量視頻即服務業務,該業務面向想要支付固定成本,使用它完成并付諸實施的客戶。 與 Blip 和 Ooyala 相似,比 YouTube 更側重于業務。 他們為成千上萬的商業客戶提供服務,包括 FailBlog,Engadget 和 Gawker 等高流量網站。
Viddler 是一個很好的案例,因為它們是一家小型公司,試圖在擁擠的領域中提供具有挑戰性的服務。 我們正抓住他們,就像他們從一家以 YouTube 競爭者起步的初創公司過渡到一家規模稍大的公司(專注于為企業客戶付費)過渡一樣。
過渡是 Viddler 的關鍵詞:從免費的 YouTube 克隆過渡到高質量的付費服務。 從效果不佳的一些 Colo 站點過渡到新的更高質量的數據中心。 從典型的啟動架構過渡到具有冗余,高可用性和自動化功能的架構。 從大量實驗過渡到弄清楚他們想如何做并實現這一目標。 過渡到一種架構,在該架構中,功能使用不同的技術棧在地理上分散的團隊中分散,以明確定義角色。
換句話說,Viddler 就像其他所有即將成熟的初創公司一樣,值得一看。 Viddler 的系統架構師 Todd Troxell 非常友好地接受了我們的采訪,并分享了有關 Viddler 架構的詳細信息。 它是不同技術,組和流程的有趣組合,但似乎可以正常工作。 之所以行之有效,是因為所有活動部件的背后都是一個主意:讓客戶滿意并給予他們想要的東西,無論如何。 這并不總是很漂亮,但是確實可以取得結果。
網站: [Viddler.com](http://viddler.com)
## 統計資料
1. 每天大約有 700 萬個嵌入視圖。
2. 每天大約上傳 3000 個視頻。
3. 最高 1500 req / sec。
4. 高峰期約有 130 人按下播放按鈕。
5. 2 月份投放了 1PB 視頻
6. 80T 倉儲
7. 最近 30 天內花在視頻編碼上的 CPU 時間為 45,160 小時
8. 整天的使用量相對平穩,谷底和高峰之間只有?33%的差異,這表明它們在全球范圍內得到了大量使用。 [圖形](http://farm3.static.flickr.com/2704/5705121724_845db30833_o.png)。
## 該平臺
### 軟件
1. Debian Linux
2. Rails 2.x-儀表板,根頁面,競賽管理器,各種子功能
3. PHP-使用我們內部 API 的各種舊式子網站
4. Python / ffmpeg / mencoder / x264lib-視頻轉碼
5. Java 1.6 / Spring / Hibernate / ehcache- API 和核心后端
6. MySQL 5.0-主數據庫
7. Munin,Nagios,接站-監控
8. Python,Perl 和 ruby-許多*許多*監視器,腳本
9. Erlang - ftp.viddler.com
10. Apache 2 / mod_jk-后端 Java 應用程序的核心頭端
11. Apache / mod_dav-視頻存儲
12. Amazon S3-視頻存儲
13. Amazon EC2-上傳和編碼
14. KVM-臨時環境的虛擬化
15. Hadoop HDFS-分布式視頻源存儲
16. Nginx / Keepalived-所有網絡流量的負載均衡器
17. Wowza-RTMP 視頻錄制服務器
18. Mediainfo-報告視頻元數據
19. Yamdi-Flash 視頻的元數據注入器
20. 人偶-配置管理
21. Git / Github https://github.com/viddler/
22. Logcheck-日志掃描
23. 重復性-備份
24. Trac-錯誤跟蹤
25. Monit-進程狀態監視/重啟
26. iptables-用于防火墻-無需硬件防火墻-還可處理內部網絡的 NAT。
27. maatkit,mtop,xtrabackup-數據庫管理和備份
28. [預引導執行環境](http://en.wikipedia.org/wiki/Preboot_Execution_Environment)-計算機的網絡引導。
29. 考慮將 OpenStack 的 [Swift](http://swift.openstack.org/) 作為替代文件存儲。
30. [FFmpeg](http://www.ffmpeg.org/) -完整的跨平臺解決方案,用于記錄,轉換和流傳輸音頻和視頻。
31. 阿帕奇雄貓
32. [MEncoder](http://en.wikipedia.org/wiki/MEncoder) -一個免費的命令行視頻解碼,編碼和過濾工具。
33. [EdgeCast](http://www.edgecast.com/) -CDN
### 硬件
1. 他們的 colo 中總共有 20 多個節點:
1. 2 個 Nginx 負載平衡器。
2. 2 個 Apache 服務器。
3. 8 個 Java 服務器運行該 API。
4. 2 個 PHP / Rails 服務器運行在前端。
5. 3 臺 HDFS 服務器
6. 1 監控服務器。
7. 1 個本地編碼服務器。
8. 2 個存儲服務器。
9. 2 個 MySQL 數據庫服務器以主從配置運行,計劃遷移到 6 個服務器。
10. 1 個登臺服務器。
2. Amazon 服務器用于視頻編碼。
## 產品
注冊一個 Viddler 帳戶,他們會將您的視頻轉換為所需的任何格式,并將其顯示在任何設備上。 它們提供了嵌入代碼,儀表板和分析。 他們的目標是在一個簡單的界面后面解決視頻問題,使人們可以購買該服務而忘了它,它可以正常工作并完成您需要做的一切。 作為內容提供商,您可以出售視圖并將廣告添加到內容中。 他們將所有廣告網絡作為一種元界面引入 Viddler,以執行不同的廣告平臺。
## 架構
[](http://farm3.static.flickr.com/2375/5704553989_0e42783c8f_o.png)
1. 當前時代
1. 他們目前的系統運行在美國西部某個地方的可樂中的裸機上。 他們正在搬到紐約的 Internap。
2. 1 gbps 鏈接將它們連接到 Internet。 CDN 提供視頻,并將視頻直接加載到 Amazon 中進行處理,因此對于他們的主要站點,他們不需要的網絡就更多。
3. 該系統由 2 個 Nginix 負載平衡器所控制,一個是主動的,另一個是使用 keepalived 的被動的。 選擇 Nginix 是因為它是基于 Linux 的開放源代碼,并且可以正常工作。
4. EdgeCast 用作分發內容的 CDN。 客戶將視頻直接上傳到 Amazon,然后將視頻處理并上傳到 CDN。
5. Nginx 可以故障轉移到兩個 Apache 服務器。 Apache 服務器可以故障轉移到運行 Tomcat 的后端服務器之一。
6. 他們的部分架構在 Amazon 中運行:存儲以及它們的上載和編碼服務。
7. 在 Cassandra 中進行了實驗,以存儲儀表板位置。 非常可靠,但將來可能會遷移到 MySQL。
8. Linode 上的兩個圖像縮放節點,用于為視頻創建任意縮略圖。 將來將移至紐約。
2. Internap 的很快時代
1. 該網站最初的想法是免費的視頻網站 YouTube,但更好。 然后,他們轉向提供更高質量的服務,這表明需要更好,更可靠的基礎架構。
2. 他們正在遷移到 Internap,因此尚未解決所有問題。 他們先前的數據中心中的一些問題促使此舉:
1. 網絡問題,某些 [BGP](http://en.wikipedia.org/wiki/Border_Gateway_Protocol) (邊界網關協議)提供程序將停止工作,不會自動進行對等,并且最終將死站點一個小時,并且必須真正推動手動建立數據中心 刪除對等體。
2. 他們被轉租給了一家提供商,后者將他們踢出局,這意味著他們不得不在很少的交貨時間內移動兩個機架的服務器。
3. Internap 以其良好的網絡而聞名,它是一種更好的工具,并且更可靠。
3. 一個主要目標是在其體系結構中具有**完全冗余**。 將 RTMP 服務器,專用錯誤記錄系統的數量加倍,將監視服務器的數量加倍,將 PHP 和 Rails 服務器分開,添加專用圖像縮放服務器,并將編碼服務器的數量加倍。
4. 另一個主要目標是**完全自動化**。 他們將通過網絡對計算機進行啟動,以獲取操作系統,并從 CVS 配置軟件包。 目前,他們的系統不可復制,他們想對此進行更改。
5. 試用 HDFS 作為視頻的文件存儲。 他們將其視頻的 10%(約 20TB)存儲在 3 個 HDFS 節點上,而且從未停機。
6. 當前的目標是使一切移交,整個系統要自動構建,并且在版本控制中,確保雇用了操作人員并制定了時間表。
7. 觀察到他們與亞馬遜的業務相似,因為在視頻世界中自己完成所有工作要便宜得多,但隨后您必須自己完成所有事情。
8. 沒有計劃使用服務體系結構。 它們具有內部 API 和外部 API。 兩者都用于創建站點。 與轉換為服務方法相比,要實現更高的獎勵功能。
3. 自動化將改變一切。
1. 便攜式 VM 將允許他們重現構建環境和實時環境。 目前這些是不可復制的。 每個人都使用不同版本的軟件包在自己的操作系統上進行開發。
2. 將允許他們在體系結構上進行迭代。 只需下載要運行的新 VM,即可嘗試新的存儲等。
3. 簡化向 OpenStack 的過渡。 同時考慮 VMware。
4. 當您上載到 Viddler 時,端點位于運行 Tomcat 的節點上的 Amazon EC2 上。
1. 該文件在本地緩存并發送到 S3。
2. 該文件從 S3 下拉以進行編碼。
3. 編碼過程在稱為 Viddler Core 的模塊中擁有自己的隊列。
4. 他們將在 colo 站點中運行的代碼與在 Amazon 中運行的代碼分開。 在 Amazon 中運行的代碼不會保持狀態。 生成的節點可能會死亡,因為所有狀態都保留在 S3 或 Viddler Core 中。
5. Python 編碼守護程序使工作脫離隊列:
1. 運行 FFmpeg,MEncoder 和其他編碼器。
2. 關于檢查 iPhone 視頻是否需要在編碼和其他測試之前進行旋轉,有很多時髦的東西。
3. 每個編碼節點都在 Amazon 8 核心實例上運行。 一次運行四種編碼。 他們還沒有嘗試優化它。
4. 作業按優先級順序運行。 有人要立即查看的實時上傳內容將在批量處理(例如說在其編碼中添加 iPhone 支持)之前得到處理。
5. Python 守護程序是運行時間很長的守護程序,它們沒有看到任何有關內存碎片的問題或其他問題。
5. 探索實時轉碼。
1. 在實時編碼中,節點實例像多部分表單一樣被饋送,通過 FFmpeg 進行流傳輸,然后再次進行流傳輸。 這可能是其 CDN 的一部分。
2. 這種體系結構的最大優點是無需等待。 客戶上傳視頻后,該視頻即會直播。
3. 這意味著僅需要存儲文件的一種視頻格式。 它可以按需轉碼到 CDN。 這樣可以為客戶節省大量的存儲成本。
6. 儲存費用:
1. CDN 和存儲是他們最大的成本。 存儲大約占其成本的 30%。
2. 希望他們的視頻在所有內容上播放的人的平均情況是四種格式。 HTTP 流將是另一種格式。 因此,存儲成本是客戶的主要支出。
7. 團隊設置:
1. 本地程序員在 PHP / Rails 中進行前端操作。 他們正在嘗試將所有前端移至該堆棧,盡管其中一些當前在 Java 中。
2. 核心 Tomcat / Java / Spring / Hibernate 由波蘭的一個團隊編寫。 Java 團隊的目標是實現 API 和后端邏輯。
3. 為 PHP / Rails 團隊計劃有一個單獨的數據庫,因為它們的移動速度比 Java 團隊快得多,并且他們希望盡可能地使團隊脫鉤,以使其彼此不依賴。
8. 進行可靠性調查,發現大多數故障是由于:
1. 網絡連接問題。 他們正在遷移到新的數據中心來解決此問題。
2. 數據庫過載。 要解決此問題:
1. 該數據庫包含約 100 個表。 用戶表大約有 100 個參數,其中包括諸如編碼首選項之類的信息。 從在 Word Perfect 上托管站點以來,該架構仍然具有舊結構。
2. 三倍的數據庫容量。
3. 使用速度更快且具有更多內存的服務器。
4. 使用雙主設備設置和 4 個讀取從設備。
5. 兩個讀取從站將具有較低的交互式通信查詢超時。
6. 兩個從屬將專用于報告,并且查詢超時時間較長。 慢速報告查詢不會使這種方法使網站癱瘓。 他們的熱門查詢正在處理具有 1000 萬行的表,因此計算熱門視頻所需的時間比以前要長得多,因為它開始創建臨時表。 可能導致系統停機 5 秒鐘。
9. 他們正在研究在自己的 colos 中使用 Squid 運行自己的 CDN。
1. 也許使用西海岸和東海岸的科魯斯在地理上分布同伴。
2. 對于他們的客戶,他們預計他們在美國需要 4 個站點,在歐洲需要 1 個站點。
3. EdgeCast 為他們提供了很多優惠,并為他們提供了有用的功能,例如每個 CNAME 的統計數據,但以盈利為基礎,構建自己的 CDN 值得開發。 CDN 成本是其成本結構的重要組成部分,隨著時間的流逝,值得一試。
10. **未來的**:長期目標是看退出 Amazon,在本地運行存儲,運行 OpenStack 并運行自己的 CDN 可以節省多少錢。 這將節省 80%的與人無關的運營支出。 根據他們自己的計算,他們可以做到比亞馬遜便宜。
## 得到教訓
1. **混搭**。 他們正在使用來自不同提供商的節點的組合。 CDN 處理內容。 Amazon 用于無狀態操作,例如編碼和存儲。 colo 中的節點用于其他所有內容。 在幾個不同的位置使用功能可能會有些混亂,但是除非有令人信服的業務原因或易用性更改的原因,否則它們會堅持可行的方法。 將所有東西轉移到亞馬遜也許是有道理的,但是這也會使他們脫離他們的優先事項,這會帶來風險,并且會花費更多。
2. **注意表增長**。 一旦站點變大,過去需要花費相當長的時間的查詢便會突然使其崩潰。 使用報告實例可以從交互式流量中分擔報告流量。 而且不要寫令人討厭的查詢。
3. **查看成本**。 平衡成本是他們決策過程的重要組成部分。 他們更喜歡通過新功能實現增長,而不是整合現有功能。 這是一項艱難的平衡行為,但是有意識地將其作為一項戰略要務可以幫助每個人都知道自己的發展方向。 從長遠來看,他們正在考慮如何在利用自己的 colo 較低成本結構的同時獲得云運營模型的好處。
4. **實驗**。 Viddler 喜歡實驗。 他們將嘗試不同的技術以查看有效的方法,然后在生產中實際使用它們。 這使他們有機會了解新技術是否可以幫助他們降低成本并提供新的客戶功能。
5. **按技術堆棧細分團隊,并發布靈活性**。 擁有分散的團隊可能是一個問題。 在不同的技術堆棧和根本不同的發布周期上部署分布式團隊是一個大問題。 擁有具有強大依賴性和跨職能職責的分布式團隊是一個巨大的問題。 如果您必須處于這種情況下,那么遷移到組之間具有較少依賴關系的模型是一個很好的折衷方案。
6. **從中斷中學習**。 對您的網站為何崩潰進行調查,并查看可以解決的主要問題。 似乎很明顯,但是還不夠。
7. **將免費用戶用作豚鼠**。 免費用戶對 SLA 的期望較低,因此他們是新基礎設施實驗的候選人。 擁有免費套餐對于此目的非常有用,可以在不造成重大損害的情況下試用新功能。
8. **為頂級托管**支付更多費用。 他們遇到的最大問題是選擇好的數據中心。 他們的第一個和第二個數據中心有問題。 作為一家蓬勃發展的創業公司,他們尋找可以找到的最便宜但質量最高的數據中心。 事實證明,數據中心質量很難判斷。 他們選擇了一家名牌設施,并獲得了高昂的價格。 這工作了好幾個月,然后開始出現問題。 停電,網絡中斷,他們最終被迫轉移到另一家提供商,因為與他們在一起的一家提供商退出了該設施。 如今,任何時間都無法宕機是不可接受的,對于這樣一個小組,冗余站點將是很多努力。 從長遠來看,為更高質量的數據中心支付更多費用將降低成本。
9. **最終重要的是用戶看到的內容,而不是體系結構**。 迭代并著重于客戶體驗之上。 客戶服務的價值甚至超過理智或可維護的體系結構。 只構建所需的內容。 如果不運行超級草率的業務,他們就無法啟動這家維持 100%員工所有權的公司。 他們現在采用的是在草率階段學到的知識,并在頂級設施中構建非常靈活的多站點架構。 他們的系統并不是最有效或最漂亮的系統,他們采取的方式是客戶需要某種東西,因此他們構建了它。 他們追求客戶的需求。 他們選擇硬件和構建軟件(重點是完成工作)的方式就是建立公司的基礎。
10. **自動化**。 盡管所有試驗和解決客戶問題的直接方法都很好,但是您仍然需要一個自動化的環境,以便可以復制構建,測試軟件并提供一致且穩定的開發環境。 從一開始就自動化。
我真的很感謝 Todd Troxell 花時間參加這次采訪。
記住孩子們,如果您正在尋找工作,Viddler 也在為您尋找[。](http://www.indeed.com/q-Viddler-jobs.html)
## 相關文章
1. [我們可以處理您的交通!](http://blog.viddler.com/cdevroe/traffic/) ,作者 Colin Devroe
很高興閱讀...
我很想了解您不轉用云服務的原因,因為從今天起您需要管理和開發許多不同的技術... 大量的金錢和精力?
- 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 內容平臺的經驗教訓