# 《 FarmVille》如何擴展以每月收獲 7500 萬玩家
> 原文: [http://highscalability.com/blog/2010/2/8/how-farmville-scales-to-harvest-75-million-players-a-month.html](http://highscalability.com/blog/2010/2/8/how-farmville-scales-to-harvest-75-million-players-a-month.html)
*一些讀者對本文有后續問題。 可以在[《 FarmVille 如何縮放-后續行動》](http://highscalability.com/blog/2010/3/10/how-farmville-scales-the-follow-up.html) 中找到盧克的回應。*
如果像 Zynga 的大熱門《 Farmville 》中的真實耕種一樣令人振奮,那么我的家人可能永遠不會離開北達科他州那些嚴酷的冬天。 我的祖母過去講的關于農業的可怕的睡前故事,在 FarmVille 中都不是真的。 [農民](http://w.good.is/post/What-Does-Farmville-Mean-for-Farmers/)賺錢,植物生長,動物從不拜訪[紅色谷倉](http://www.youtube.com/watch?v=eUJz3137EQ8)。 我想僅僅是因為保持鞋子干凈整潔的魅力,才使得 FarmVille 在如此短的時間內成為“世界上最大的游戲”。
FarmVille 如何擴展 Web 應用程序以每月處理 7500 萬玩家? 幸運的是,FarmVille 的盧克·拉吉里奇(Luke Rajlich)同意讓我們了解他們的一些挑戰和秘密。 這是盧克必須說的...
采訪的形式是,我向盧克發送了一些一般性問題,他回答了以下答復:
> FarmVille 具有一組獨特的擴展挑戰,這是應用程序所特有的。 游戲必須迅速擴展。 該游戲在 4 天后每天有 100 萬玩家,在 60 天后每天有 1000 萬玩家。 在發布時,最大的社交游戲是每天 500 萬玩家。 目前,《 FarmVille》推出后 9 個月的每日玩家有 2800 萬,每月玩家有 7500 萬。 這使得 FarmVille 的每月玩家人數超過了法國的全部人口。 FarmVille 有兩個基本特征,這是獨特的擴展挑戰:它是世界上最大的游戲,并且是 Web 平臺上最大的應用程序。 這兩個方面都帶來了 FarmVille 必須克服的一系列獨特的擴展挑戰。 在技??術投資方面,FarmVille 主要利用開源組件,并且其核心是基于 LAMP 堆棧構建的。
>
> 為了使 FarmVille 可擴展為游戲,我們必須適應游戲的工作量要求。 用戶狀態包含大量具有微妙而復雜的關系的數據。 例如,在服務器場中,對象無法相互碰撞,因此,如果用戶在其服務器場上放置房屋,則后端需要檢查該用戶服務器場中是否沒有其他對象占用重疊空間。 與大多數主要網站(如 Google 或 Facebook)讀取量大不同,FarmVille 的寫入工作量非常大。 數據讀取與寫入的比率為 3:1,這是令人難以置信的高寫入速率。 到達 FarmVille 后端的大部分請求都以某種方式修改了玩游戲的用戶的狀態。 為了使其具有可擴展性,我們努力使我們的應用程序主要與緩存組件進行交互。 此外,由于我們正在有效地擴展游戲,因此發布新內容和功能往往會導致使用量激增。 新功能發布之日,負載峰值可能高達 50%。 我們必須能夠容納這種高峰流量。
>
> 另一個方面使 FarmVille 規模成為 Web 平臺上最大的應用程序,并且與世界上一些最大的網站一樣大。 由于該游戲在 Facebook 平臺內運行,因此我們對平臺的延遲和性能差異非常敏感。 結果,我們做了很多工作來減輕延遲差異:我們大量緩存 Facebook 數據,并在性能下降時優雅地提高了平臺的使用率。 FarmVille 已為 Facebook 平臺部署了整個緩存服務器集群。 FarmVille 和 Facebook 平臺之間的流量巨大:高峰時,FarmVille 和 Facebook 之間的流量大約為 3 Gigabit / sec,而我們的緩存群集又為應用程序提供了 1.5 Gigabit / sec。 此外,由于性能可以變化,因此應用程序可以動態關閉對平臺的任何調用。 我們有一個可以調整的撥號盤,可以逐漸關閉返回平臺的更多呼叫。 我們還努力使所有調用都返回平臺,以避免阻塞應用程序本身的加載。 這里的想法是,如果其他所有方法都失敗了,則玩家至少可以繼續玩游戲。
>
> 對于任何 Web 應用程序,高延遲都會殺死您的應用程序,而高度可變的延遲最終會殺死您的應用程序。 為了解決高延遲問題,FarmVille 致力于在高延遲組件之前放置大量緩存。 高度可變的延遲是另一個挑戰,因為它需要重新考慮應用程序如何依賴其體系結構中通常具有可接受的延遲的部分。 幾乎每個組件都容易受到這種可變延遲的影響,其中一些比其他組件更容易受到影響。 由于 FarmVille 的性質(工作量非常大且事務繁重),與傳統的 Web 應用程序相比,延遲的變化對用戶體驗的影響更大。 FarmVille 處理這些情況的方式是通過將每個組件都視為可降級的服務來考慮。 Memcache,數據庫,REST Apis 等都被視為可降解服務。 服務降級的方式是為該服務的錯誤限制率并實施服務使用限制。 關鍵思想是通過使用錯誤和超時限制來隔離故障和高延遲的服務,以免在其他地方引起延遲和性能問題,并在需要時使用打開/關閉開關和基于功能的調節器禁用應用程序中的功能。
>
> 為了幫助管理和監視 FarmVille 的 Web 場,我們利用了許多開源的監視和管理工具。 我們使用 nagios 進行警報,使用 munin 進行監視,并使用 puppet 進行配置。 我們大量利用內部統計系統來跟蹤應用程序使用的服務(例如 Facebook,DB 和 Memcache)的性能。 此外,當我們發現性能下降時,我們會以采樣為基礎來分析請求的 IO 事件。
## 得到教訓
關于某些事情,我沒有那么多的細節,但是我認為人們仍然可以從中學習很多有趣的觀點:
1. **交互式游戲寫得很重**。 典型的 Web 應用程序讀取的內容多于編寫的內容,因此許多常見的架構可能還不夠。 讀取繁重的應用程序通常可以通過單個數據庫前面的緩存層來解決。 寫繁重的應用程序需要分區,以便寫操作可以分散和/或使用內存架構。
2. **將每個組件設計為可降解服務**。 隔離組件,以使一個區域中的延遲增加不會破壞另一個區域。 節氣門使用有助于緩解問題。 必要時關閉功能。
3. **緩存 Facebook 數據**。 當您非常依賴外部組件時,請考慮緩存該組件的數據以提高延遲。
4. **提前計劃新的與發布有關的使用峰值**。
5. **樣本**。 在分析大型數據流時,例如查找問題,并不是每個數據都需要處理。 采樣數據可以產生相同的結果,從而減少工作量。
我要感謝 Zynga 和 Luke Rajlich 抽出寶貴的時間進行這次采訪。 如果其他人有他們想要的架構,請告訴我,我們會進行設置。
## 相關文章
1. [建立大型社交游戲](http://www.slideshare.net/amittmahajan/building-big-social-games)-討論 FarmVille 背后的游戲機制。
2. [BuddyPoke 如何使用 Google App Engine 在 Facebook 上擴展](http://highscalability.com/blog/2010/1/22/how-buddypoke-scales-on-facebook-using-google-app-engine.html)
3. [策略:減少數據集的樣本](http://highscalability.com/blog/2008/4/29/strategy-sample-to-reduce-data-set.html)
4. HighScalability 發布了[緩存](http://highscalability.com/blog/category/caching)和[內存緩存](http://highscalability.com/blog/category/memcached)的信息。
5. HighScalability 發布了[分片](http://highscalability.com/blog/category/sharding)。
6. 高擴展性發布在[內存網格](http://highscalability.com/blog/category/memory-grid)上。
7. [如何在不進行實際嘗試的情況下成功完成容量規劃:Flickr 的 John Allspaw 專訪他的新書](../../blog/2009/6/29/how-to-succeed-at-capacity-planning-without-really-trying-an.html)
8. [縮放 FarmVille](http://perspectives.mvdirona.com/2010/02/13/ScalingFarmVille.aspx) ,作者是 James Hamilton
哇! Farville 只是從“最煩人的網絡事物”發展為“技術挑戰的最酷示例。在我的個人詞典中,那是:)
我要做的最后一件事是貶低 Zynga 的優秀人才所取得的成就,但是這里存在一個巨大的疏忽錯誤……Zynga 運行著一個 200 節點的 Vertica 集群。 數據存儲的可伸縮性非常重要,不是嗎? 同事:
“運行 Vertica 的 200 個節點...如果您無法進行橫向擴展,則應該改用 7-11 計數器工作”
披露:我不為 Vertica 工作,呵呵。
@森林
有趣。 我認為 200 個節點運行起來不是很昂貴嗎? 否則,似乎值得指出的是開發自己開發的產品還是購買現成產品的決定。
令人失望的是,太籠統的:(
會令人著迷,以至于它們實際上沒有讀懂一些細節。
他們使用的是云服務器還是專用服務器?有多少服務器?什么數據庫?LAMP 中的哪個“ P”(php,perl,python, 等)?降低服務質量的示例?
多肉,少起毛.. :)
至少與先前 CNBC 文章中詳述的內容相同。
我懷疑游戲是否觸及了 Verica 集群。 那是一個離線處理系統
本文并未明確說明使用哪個數據存儲來保存每個數據庫及其服務器場。 是 MySQL 嗎? MySQL 集群? 其他一些 NoSQL DB?
這是一個很好的簡介。
但與往常一樣,細節中還是“惡魔”。
我們在哪里可以獲得有關實際應用程序堆棧/硬件的更多指標,從而可以很好地了解可擴展性和可擴展性?
顯然,它在 Amazon EC2 上運行。 只需在上面放一個嗅探器,您就會看到詳細信息。
因此,他們的 Web 2.0 策略是盡可能利用用戶的驅動器和資源并減少凈流量。
哇。 我永遠不會認為它是 2.0,因為所有 0.1 游戲都在本地運行并且 MMRPG 相對較新,但是我知道什么。
在其他新聞中,顯然有 7500 萬人需要工作。 我嘗試了幾種網絡應用程序游戲,發現它們乏味,有限且普遍乏味。 我也鄙視 facebook 上不可避免的重復性和不可避免的通知,以至于我不再使用它,而不是每月一次向遠處的朋友簽入。
令人驚訝的是,一個設計欠佳的博客引擎如何將新聞發布為 myspace,以及大量廣告如何將數百萬個廣告吸引到了 Facebook。 我仍然收到不存在者的 Facebook 邀請。 僅在過去的兩年中,我就已經擁有了一百多個。 似乎沒人對此多說。
商業道德規則 1:
如果一家公司必須撒謊,欺騙或竊取才能開展業務,那么您會盡力避免這種情況。 除非,當然,除非您喜歡與它們進行比較,并與 yahoo(啟用垃圾郵件的公司),Friendfinder(曾經是世界上最大的垃圾郵件發送者)進行比較。 這些公司通過幾乎不提供任何服務來為自己做得很好。
歡迎來到炒作無所不在的美國。
@paul 我想你錯過了一些事情。 這些游戲絕對可以打到 Vertica 集群。 Vertica 的一些最大客戶是高頻交易者,他們使用它來處理實時數據流。 您為什么認為這是一個“離線處理系統”? 有了這樣大小的集群,我相信 Zynga 可以很好地匯總其 3TB 的每日 Farmville 數據。
這是一篇帶有更多參考數字的文章:
http://tdwi.org/Blogs/WayneEckerson/2010/02/Zynga.aspx
我相信他們正在使用 [Wink Streaming 的 CDN](http://www.winkstreaming.com) 來執行此操作。 我想這都是關于負載分配的。
麥克風
7500 萬聽上去很酷,但請想象一下中國網站面臨的挑戰。 我的未婚夫是中國人,他們玩的農業游戲擁有數億活躍玩家。 尊重該游戲的編碼團隊:)
我認為這是一個非常有趣的領域(高流量在線游戲)
謝謝
我喜歡這篇文章,但是我想了解更多有關如何實現的信息。 使用了什么“膠水”的高層次視圖來將所有抽象片段組合在一起? LAMP 堆棧是一個不錯的開始,但是主要零件的快速飛越(使用的設備可獲得加分)將非常酷。
無論哪種方式,Farmville 絕對是可擴展性的令人印象深刻的示例。 我喜歡它!
> 它是網絡平臺上最大的應用程序
嗯...聞起來像是胡說八道!
實際上,他沒有辦法知道這一點。 即使無法證明,也可以確保“聽起來不錯”。
可降解服務的概念看起來非常不錯。 有誰知道其他案例研究已經解釋了嗎? 我當然想了解更多。
@Robert Schultz
僅在沒有最大定義的意義上才是 BS。 即使定義了它,也可能是值得商 bat 的指標。
這是故事的另一面:
http://techcrunch.com/2009/10/31/scamville-the-social-gaming-ecosystem-of-hell/
Spyder,
關于技術緊縮的文章充斥著錯誤的信息。 不良報價在被發現后立即被取消。 制定了一個流程來確保它不再發生。
有趣的文章,但是對他們正在使用的 LAMP 標度的技術方面有更多的了解將是很棒的。 他們正在使用 MySql 群集嗎? MySQL 復制? 他們如何管理故障轉移? 顯然他們也使用 EC2。
這對我們所有人來說都是一個很好的例子。
我真的很喜歡一個網站每天最多可擴展到 2800 萬用戶的事實,這在游戲界確實是一個龐大的數字,而且寫工作量很大。
- 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 內容平臺的經驗教訓