# 《 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) 中找到卢克的回应。*
![](https://img.kancloud.cn/6f/a3/6fa3dbfd98f3598503b6b3a0dbea336e_240x182.png)如果像 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 内容平台的经验教训