# 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)
![](https://img.kancloud.cn/99/25/9925c98d11bd3e1536d0289bd150ec40_240x94.png) 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,以执行不同的广告平台。
## 架构
[![](https://img.kancloud.cn/b7/a2/b7a28417721efca457e8c17ea2549183_500x375.png)](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 内容平台的经验教训