# 新的文物建筑-每天收集 20 亿多个指标
> 原文: [http://highscalability.com/blog/2011/7/18/new-relic-architecture-collecting-20-billion-metrics-a-day.html](http://highscalability.com/blog/2011/7/18/new-relic-architecture-collecting-20-billion-metrics-a-day.html)
![](https://img.kancloud.cn/42/f4/42f4b5fa76f9b6f07620e8315469b138_192x155.png)
*这是 New Relic 应用性能工程师 [Brian Doll](/cdn-cgi/l/email-protection#0e6c7c676f604e606b797c6b62676d206d6163) 的来宾帖子。*
New Relic 的多租户 SaaS Web 应用程序监视服务持续不断地每秒收集并保存超过 100,000 个指标,同时仍提供 1.5 秒的平均页面加载时间。 我们相信,良好的体系结构和良好的工具可以帮助您处理大量数据,同时仍然提供非常快速的服务。 在这里,我们将向您展示我们如何做到的。
* 新遗物是应用程序性能管理(APM)即服务
* 应用内代理检测(字节码检测等)
* 支持 5 种编程语言(Ruby,Java,PHP,.NET,Python)
* 全球监控超过 175,000 个应用程序进程
* 10,000+客户
## 统计资料
* 每天收集超过 20 亿个应用程序指标
* 每周收集超过 1.7 亿个网页指标
* 每个“时间片”指标约为 250 个字节
* 每秒插入 10 万个时间片记录
* 每天有 70 亿条新数据行
* 由 9 个分片的 MySQL 服务器处理的数据收集
## 架构概述
* 语言特定的代理(Ruby,Java,PHP..NET,Python)每分钟一次将应用程序指标发送回 New Relic
* “收集器”服务提取应用程序指标并将其保存在正确的 MySQL 分片中
* 实时用户监控 javascript 代码段针对每个页面浏览将前端性能数据发送到“信标”服务
* 客户登录 http://rpm.newrelic.com/查看其性能仪表板
* 我们每天收集的数据量惊人。 最初,每个指标均以全分辨率捕获所有数据。 随着时间的流逝,我们会对数据进行定期处理,从每分钟到每小时,再到每天平均。 对于我们的专业帐户,我们会无限期地存储每日指标数据,因此客户可以看到他们在长期内的改进情况。
* 我们的数据策略针对读取进行了优化,因为我们的核心应用一直需要按时间序列访问指标数据。 为了使数据保持最佳状态以实现更快的读取速度,更容易在写操作上付出代价,以确保我们的客户可以在一天中的任何时间快速访问其性能数据。 通过将客户分布在多台服务器上,可以对数据库进行分片。 在每个服务器中,每个客户都有单独的表,以使客户数据在磁盘上保持紧密并保持每个表的总行数减少。
* New Relic 管理用于监视系统的多种警报。 客户可以设置其 APDEX 分数和错误率的阈值。 New Relic 还具有可用性监视功能,因此客户可以在短短 30 秒内收到停机事件的警报。 我们主要发送电子邮件警报,使用我们的 PagerDuty.com 集成向多个客户发送电子邮件,并通过 SMS 集成进行更复杂的通话轮换。
* 让我们从客户请求一直到 New Relic 堆栈进行一次 Web 交易。
1. 最终用户查看 Example.com 上的页面,该页面使用 New Relic 监视其应用程序性能
2. 运行 Example.com 的应用程序运行时已安装了 New Relic 代理(适用于 Ruby,Java,PHP,.NET 或 Python)
3. 为每个事务捕获详细的性能指标,包括每个组件花费的时间,数据库查询,外部 API 调用等
4. 这些后端指标在客户的 New Relic 代理中保留最多一分钟,然后将其发送回 New Relic 数据收集服务。
5. 同时,嵌入在网页中的是新的 Relic 真实用户监控 JavaScript 代码,该代码可跟踪这种单一客户体验的性能
6. 在客户的浏览器中完全呈现页面后,New Relic 信标会收到一个请求,其中提供了有关后端,网络,DOM 处理和页面呈现时间的性能指标。
7. 在 Example.com 上工作的工程师登录到 New Relic,并查看了最新的应用程序性能指标以及每位客户的最终用户体验,包括浏览器和地理信息。
## 平台
### 网页界面
* Ruby on Rails
* Nginx 的
* 的 Linux
* 2 个@ 12 核心 Intel Nehalem CPU 带 48Gb RAM
### 数据收集器和 Web 信标服务
* 爪哇
* 码头上的 Servlet
* 应用指标收集器:每分钟 180k +请求,在 3 毫秒内响应
* Web 指标信标服务:每分钟 200k +请求,在 0.15 毫秒内响应
* 使用 Percona 构建的 MySQL 分片
* 的 Linux
* 9 @ 24 核 Intel Nehalem,带 48GB RAM,SAS 附加 RAID 5
* 裸机(无虚拟化)
### 有趣的 MySQL 统计资料:
* New Relic 每小时为每个帐户创建一个数据库表以保存度量标准数据。
* 该表策略针对读取和写入进行了优化
* 始终需要在特定的时间窗口内基于特定帐户的一个或多个指标来绘制图表
* 指标(指标,代理,时间戳)的主键允许来自特定代理的特定指标的数据一起位于磁盘上
* 随着时间的推移,当创建新表时,这会在 innodb 中创建更多页面拆分,并且 I / O 操作会在一小时内增加
* 新帐户将以循环方式分配给特定的分片。 由于某些帐户比其他帐户大,因此有时会将分片从分配队列中拉出,以更均匀地分配负载。
* 由于表中包含如此多的数据,因此无法进行模式迁移。 而是使用“模板”表,从中创建新的时间片表。 新表使用新定义,而最终从系统中清除旧表。 应用程序代码需要注意多个表定义可能一次处于活动状态。
## 挑战性
* 数据清除:汇总指标和清除粒度指标数据是一个昂贵且几乎连续的过程
* 确定哪些指标可以预先汇总
* 大帐户:一些客户拥有许多应用程序,而另一些客户拥有数量惊人的服务器
* MySQL 优化和调整,包括操作系统和文件系统
* I / O 性能:裸机数据库服务器,每个帐户表与大型表的读取性能
* 负载均衡碎片:大帐户,小帐户,高利用率帐户
## 得到教训
* New Relic 使用 New Relic 监视自己的服务(临时监视生产)
* 旨在随时提高运营效率和简化操作
* 保持苗条。 New Relic 拥有约 30 名工程师,为 1 万名客户提供支持
* 时髦!=可靠:高性能系统有许多重要但无聊的方面,但并不是所有时髦的解决方案都可以解决。
* 使用合适的技术来完成工作。 New Relic 主要 Web 应用程序始终是 Rails 应用程序。 数据收集层最初是用 Ruby 编写的,但最终被移植到 Java。 导致此更改的主要因素是性能。 该层目前每分钟支持超过 18 万个请求,并在大约 2.5 毫秒内做出响应,并具有足够的扩展空间。
## 相关文章
* [如何在仅 9 台服务器上构建具有类似 Twitter 吞吐量的 SaaS 应用程序](http://www.slideshare.net/newrelic/how-to-build-a-saas-app-with-twitterlike-throughput-on-just-9-servers)作者:Lew Cirne
> >为每个事务捕获详细的性能指标,包括在每个组件中花费的时间,数据库查询,外部 API 调用等
这种仪器的开销是多少? 就延迟而言?
感谢您的详细帖子
几个问题
1.你做后写吗? 有关的任何细节。 哪种工具/技术
2.有关“负载平衡分片”的更多详细信息将有所帮助
3.为什么选择 Java 而不是 Rails ...特定的性能原因。
谢谢。
> 在每个服务器中,每个客户都有单独的表,以使客户数据在磁盘上保持紧密并保持每个表的总行数减少。
也许他们不知道文件系统如何工作? 除非您预分配了该块,否则它将像其他所有文件一样随文件的增长而随机写入磁盘。 他们似乎认为,通过使用“ innodb_file_per_table”选项将其放入自己的表中并不保证文件会在磁盘上聚集。
@Hrish:“这种检测的开销是多少?就延迟而言?”
我们不断监控仪器的开销,并确保其开销尽可能低。 开销因应用程序而异,但通常在 5%的范围内。 与不了解生产系统的机会成本相比,这种开销显得微不足道。 我已经看到许多公司在使用 New Relic 的短短几天内就大大缩短了他们的响应时间,因此开销远远超过了其本身。
@Subhash:
1.您是否在后面写? 有关的任何细节。 哪种工具/技术
不,我们不做后写。
2.有关“负载平衡分片”的更多详细信息将有所帮助
我们采用经典的分片模式,因为客户指标对他们来说是唯一的,并且我们不需要在各个帐户之间引用指标。 理想情况下,我们希望将负载分配到每个分片上。 在这种情况下,负载既指数据量(在给定时间段内每个分片接收多少数据),也指查询量(那些客户访问其指标的积极程度)。 我们每个帐户允许无限数量的用户,因此某些帐户有许多用户一次访问其性能数据。 我们一起研究这些指标以及诸如 CPU 和内存之类的系统指标,以确定负载在整个分片上的分布情况。
我们以循环方式将新帐户分配给特定的分片。 这听起来非常简单,而且确实如此。 这里的过早优化可能需要付出很大的努力才能进行管理,而带来的好处却很小。 您只是无法确定注册新帐户后的忙碌程度。 我们会不时注意到特定的分片比其他分片更忙。 这可能是由于新帐户非常庞大,或者是由于现有帐户利用率提高。 为了帮助平衡分片,我们只从分配队列中删除该分片,因此暂时不会获得任何新帐户。 由于我们一直在注册新帐户,因此其余的碎片将赶上来,我们将其重新添加。
我已经与几个为具有类似数据需求的公司在生产中运行分片的人交谈过,看来这种方法相当普遍。 正如他们所说,做最简单的事情就可以了:)
3.为什么选择 Java 而不是 Rails ...特定的性能原因。
用于数据收集的服务端点已从 Ruby 移植到 Java。 这些服务非常强大,并且不会经常更改。 他们需要从成千上万个应用程序实例中获取指标数据,并将其放入正确的分片中的正确的数据库表中。 除了耐用性,这些保养的最重要特征是原始速度。 使用当前的 ruby 实现,根本不可能与 Java servlet 竞争速度和效率。 我们的 Real User Monitoring 信标服务(作为 Java Servlet 部署)的响应时间为 0.15 毫秒。 十五分之一毫秒! 这是每分钟 280k +请求。
您特别强调数据库服务器是裸机。 这是否意味着其他内容已虚拟化?
我很惊讶您确实运行自己的服务器。 我一直以为您是那些早期的云采用者之一。 :)
您是否在单个数据中心中运行? 您如何处理高可用性?
“ [开销]通常在 5%的范围内”
除非有人指出执行的检测程度和检测到的主要组件的等待时间,即一个非常慢的 Rails 应用程序甚至更慢的数据库访问,否则这毫无意义。
与其他产品的单位成本相比,NewRelic 的速度要慢近 10,000-100,000 倍。
http://williamlouth.wordpress.com/2011/03/17/which-ruby-vm-consider-monitoring/
顺便说一句,我想知道如何将 NewRelic 下面的屏幕截图中的多个 SQL 语句打包成 250 个字节。
http://williamlouth.wordpress.com/2010/03/02/does-transaction-tracing-scale-analysis/
我认为您还应该指出,考虑到发送之前在 1 分钟的示例窗口中对高级度量聚合进行了批处理,因此所测量的页面数与对服务的入站调用数不同。
如果您打算从事 APM 业务,那么您至少可以尝试对数字的实际含义和关联性进行准确和更加透明的了解。
您是否曾经考虑过使用 Mysql Cluster? NDB? 无需分片即可立即获得巨大的读取/写入可扩展性。
我们一直在使用 Galera 群集来处理 1440K 更新,每分钟有足够的净空。
顺便说一句,恭喜并感谢您分享非常有用的信息。
- 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 内容平台的经验教训