# 策略:在 S3 或 GitHub 上运行可扩展,可用且廉价的静态站点
> 原文: [http://highscalability.com/blog/2011/8/22/strategy-run-a-scalable-available-and-cheap-static-site-on-s.html](http://highscalability.com/blog/2011/8/22/strategy-run-a-scalable-available-and-cheap-static-site-on-s.html)
我曾经从事过的最好的项目之一是创建一个几乎完全静态的大规模网站发布系统。 一支由非常有才华的创意团队组成的庞大团队进行了艺术创作,作者撰写了内容,设计师生成了模板。 所有资产均由数据库控制。 然后,在应用了许多不同的过滤器之后,所有内容都被提取到了一个静态站点,该站点通过 ftp 上传到了数十个 Web 服务器。 效果很好。 可靠,快速,便宜且简单。 更新有些麻烦,因为它需要将大量文件推送到许多服务器,这需要时间,但要有一个可靠的系统。
A,这个优雅的系统被替换为一个新的基于动态数据库的动态系统。 内容是使用动态语言生成的前端从数据库中提取的。 借助 Amazon 的沃纳·沃格斯(Werner Vogels)的最新系列文章,记载了他利用 S3 的网页服务能力将他的 [All Things Distributed](http://www.allthingsdistributed.com/) 博客转换为静态站点的经验,我很高兴 问:我们又回到静态网站了吗?
提出这个问题很高兴,因为在许多方面,完全静态的站点是内容繁重站点的圣杯。 静态站点是其中文件(html,图像,声音,电影等)位于文件系统中的站点,并且 Web 服务器直接将 URL 转换为文件,然后直接从文件系统读取文件并将其吐出到 浏览器通过 HTTP 请求。 **在此路径中,**不会出错。 没有太多的错误是一种美德。 这意味着您无需担心任何事情。 它将正常工作。 而且它会随着时间的推移继续工作,产生一些误点,并为繁重的站点提供服务,而静态站点则要困难得多。
这是 Werner 使网站静态的方式:
* S3-存储文件并为网站提供服务,创建没有服务器的网站。 S3 不是您唯一的选择,但对他而言显然是一个选择。 我们还将讨论更多有关使用 Github 和 Google App Engine 的信息。
* [Disqus](http://disqus.com/) -以获得评论。
* 必应-[网站搜索](http://www.orangetreeweb.com/articles/installing-bing-site-search.html)。 Google 希望网站搜索功能每年收费 100 美元。 我记得 Google 免费的时候...
* [DropBox](http://www.google.com/url?sa=t&source=web&cd=1&ved=0CCcQFjAA&url=http%3A%2F%2Fwww.dropbox.com%2F&ei=CfBRTvHINLDUiALTrdiHAQ&usg=AFQjCNGLRmWLy_c8ebbz09BgsukcLpmnwQ&sig2=m9cVWrbTNKXcHuxN6HRXoQ) -用于将网站文件同步到他所在的任何计算机上,以便可以在本地对其进行编辑。 然后,在文件上运行静态站点生成器。 然后将文件复制到 S3,这使它们可以使用 S3 在 Internet 上使用。
* [Jekyll](http://jekyllrb.com/) -静态网站生成器。 用 Ruby 编写,并使用 [YAML](http://yaml.org/) 进行元数据管理,并使用 [Liquid 模板引擎](http://www.liquidmarkup.org/)处理内容。
* [s3cmd](http://s3tools.org/s3tools) -将文件推送到 S3。
* [http://wwwizer.com](http://wwwizer.com) -免费服务,可满足 S3 要求您的网站在域名中包含 www 的要求。 该服务会将一个裸域名重定向到 www.domain,因此一切正常。 [Joseph Barillari](http://jbarillari.blogspot.com/2011/02/why-you-cant-run-your-website-from.html) 对此问题进行了很好的讨论。
描述他的旅程的文章包括: [AWS 的新功能:从 Amazon S3](http://www.allthingsdistributed.com/2011/02/website_amazon_s3.html) 运行您的网站,[最后免费-在 Amazon S3](http://www.allthingsdistributed.com/2011/02/weblog_in_amazon_s3.html) 中运行的完全自我维持的博客,以及[否 服务器必需-Jekyll & Amazon S3](http://www.allthingsdistributed.com/2011/08/Jekyll-amazon-s3.html) 。
对我来说,使用 DropBox 是一个聪明的地方。 DropBox 可以使文件跟随您,因此您可以在任何计算机上对其进行编辑。 这也是该方法的缺点。 您需要具有完整工具集的本地计算机,这很麻烦。 具有讽刺意味的是,这就是为什么我更喜欢基于云的方法。 我想从任何支持 Web 的设备(例如 iPhone 或 iPad)上运行博客,我不想弄乱程序。
静态站点是**可伸缩**站点。 Web 服务器或 OS 可以轻松地将受欢迎的页面缓存在内存中,并像肯塔基州德比的薄荷糖一样为它们提供服务。 如果单个服务器不堪重负,则可以轻松地从 CDN 中为静态站点提供服务,也可以将其复制到负载平衡的配置中。 因此,静态站点是**快速**。 如果您在下面使用分布式文件系统,那么甚至可以避免磁盘缓慢成为热点的问题。
您可以使用**最喜欢的文本编辑器**编辑内容。 Nice 和**简单**。
文件系统倾向于**可靠**。 使用 S3 更可靠,**也便宜。 如果出现故障,您可以使用一个简单的命令重新发布或还原您的站点。 数据库往往会增加内存容量,填满表,查询速度慢以及其他许多烦人的故障模式。 在静态站点中可以跳过的所有操作。 超越简单文件服务的 Web 服务器也可以发挥作用。**
静态站点的问题在于它们是静态的。 一旦互联网完全静止,当然还有眨眼标记和动画 gif。 然后,CGI 改变了这一切,此后网络从未停滞不前。
因此,我们要做的是将**所有**动态位外包给服务,并使内容保持静态。 评论可以由 Disqus 之类的服务处理。 搜索可以由 Bing 处理。 广告投放已经是一项服务。 就像按钮一样,都是无用的 javascript 代码。 并且,将**安全性**的担忧(黑客,SQL 注入等)最小化。 这是混搭文化。
而且大多数情况下都有效。 当我不得不将 HighScalability 移出共享托管时,我认真考虑了这种方法。
缺点:
* .htaccess 不能做很多事情。 如果您有很多安全检查和 URL 映射魔术,那么您无法使用 S3 做到这一点。
* 没有 PHP 或任何其他语言使用 Web 服务器调用的语言引起的动态性。 您当然可以完全自由地创建服务并将其混入您的站点。 Google App Engine 仍然是此类迷你服务层的绝佳平台。
对我来说最大的缺点是:
* **不是多用户**。 这种限制影响了网站的各个方面。 我希望多个人能够向 HighScalability 添加内容。 我想给用户特殊的特权。 我想分配角色。 我想控制某些用户可以看到的内容。 SquareSpace 与其他内容管理系统一样具有此功能。 静态站点生成器生成的站点不具备这些功能。
* **加入**。 这些工具可让用户与您的网站互动,因此希望他们能坚持更长的时间。 诸如历史上最热门的帖子,文章的阅读次数,最新的帖子列表,标签云等功能。 使用静态生成器更难做到这些。
* **获利者**。 这些功能可以帮助您赚钱。 它们通常包括参与者,但可以包括诸如电子邮件列表注册,相关内容推荐,白皮书匹配,注册咨询服务,赞助商文本链接等功能。 难以在静态系统上实现。 一个显而易见的解决方案是拥有一个通用的 CMS 元数据服务,所有混搭服务都可以使用该服务,但是这种服务可能不会实现。
对于构建静态网站,S3 并非唯一的游戏。 Github 也可以用来托管静态网站。 可以通过简单的 git push 生成和更新博客。 这样可以将所需的已安装程序集减少到更易于管理的级别。 现在您甚至不需要 git。 您可以使用文件的网络界面直接编辑文件。 它的工作方式是 Github 每次将更改推送到存储库时都会自动构建您的网站。 此处有更多详细信息: [GitHub Pages](http://pages.github.com/) ,[发布带有 GitHub Pages 和 Jekyll](http://blog.envylabs.com/2009/08/publishing-a-blog-with-github-pages-and-jekyll/) 和 [Github 作为 CDN](http://code.lancepollard.com/posts/github-as-a-cdn/) 的博客。
Google App Engine 还是静态网站的替代方案。 更多详细信息,请访问: [DryDrop,使用 GAE 和 Github](http://openalexandria.com/2010/08/drydrop-manage-static-web-site-with-gae-and-github/) 管理静态网站。
现在有些推动将博客移至**社交网络**网站,例如 Google+。 优点是您拥有一个内置的机制来吸引更多的读者,强大的讨论功能,增加参与的可能性,无需花费,设备可用性出色且无需维护。 对于不需要获利的博客,这是一个很好的选择。 尽管我确实担心当您想跳到下一个流行的社交网络时发生的情况,而所有旧内容仅仅是灰尘。
包起来:
* 如果您的博客严格讲内容,那么静态网站方法是可伸缩,快速,廉价,灵活和可靠的。 我们现在拥有丰富的工具集,可以使静态网站成为现实。
* 如果您的博客不在网上,那么请把时间花在社交网络(包括 StackExchage,Quora 等)上而不是博客上。
* 如果要提高用户参与度或通过其他方式创造性地通过博客获利,则 CMS 是更好的选择。
* 如果您想在博客上拥有多个用户和内容创建者,那么 CMS 是一个更好的选择。
因此,有关创建静态网站的更多链接:
* [由 Jean-Michel Lacroix 在 CloudFront](http://jmlacroix.com/archives/cloudfront-hosting.html) 上托管静态网站
* [在 Jean-Michel Lacroix 上在 CloudFront](http://jmlacroix.com/archives/cloudfront-publishing.html) 上发布静态网站
* [ponyHost-已死的简单 s3 网站](http://ponyho.st/)
* [Hyde](http://ringce.com/hyde) -Hyde 是由 Python 支持的静态网站生成器& Django
* [Nanoc](http://nanoc.stoneship.org/) -是一种 Ruby 网络发布系统,可在您的本地计算机上运行,并将以 Markdown,Textile,Haml 等格式编写的文档编译到由简单 HTML 文件组成的静态网站中,随时可以上传到任何网站 网络服务器。
* [博客工具](http://joshua.schachter.org/2009/12/blogging-tools.html),作者:joshua schachter
* [仙人掌](https://github.com/koenbok/Cactus)-静态网站生成器。
* [jekyll vs. hyde-两个静态网站生成器的比较](http://www.reddit.com/r/programming/comments/hcxvc/jekyll_vs_hyde_a_comparison_of_two_static_site/)
* [jekyll-s3]( https://github.com/versapay/jekyll-s3) -将您的 Jekyll 博客推送到 Amazon S3!
嗨,托德,很高兴写出来。 我绝对同意你提到的缺点。 对我来说,这确实是一种锻炼,它使我可以做无服务器工作。 并了解我们可以在 AWS 方面做得更好。
具有静态插件生成器 Jekyll 或 Cactus 的功能完备的多用户 CMS 和 Wordpress 等丰富的插件生态系统仅领先几年。 但是自从我上一篇文章发表以来,人们一直在向我发送其他静态生成器的参考,并且工具的发展也多种多样。 毫无疑问,Jekyll 确实是“像黑客一样博客”,因此具有您所期望的所有粗糙边缘。 例如,一个拥有很多帖子(例如您的帖子)的网站将需要进行认真的组织以使其在 Jekyll 中易于管理。
我确实喜欢这种设置的分散性。 我可以从任何地方写信并更新网站。 鉴于我是唯一的作家,所以自然缺乏并发:-)但是能够在您可能没有本地安装 jekyll 的地方写文章也是我当然也想做的事情。 我喜欢 Ted Kulp 在[《自动化 Jekyll 构建](http://tedkulp.com/2011/05/22/automating-jekyll-builds/)》中所做的工作,他基本上在服务器上有一个进程在监视保管箱文件夹。 当他在其中发布帖子时,网站将重新生成并推送到 S3。 它仍然需要在某个地方的服务器,但是我很确定我可以将其外包给 Heroku,而不必自己运行某些东西。 我只是很开心地看到我可以把它推多远...
这就是我对您的文章 Werner 所喜欢的,显然,您可以从整体上解决问题。 一起骑很有趣!
我做了一点测试,浏览了浏览器历史记录的最后一周,并尝试进行反向工程,以通过静态生成器(比 Werner 的更高级的生成器,可以用我的想象力)来提供多少内容,一旦获得 过去搜索引擎的搜索结果,并排除了我的个人网站(电子邮件,Twitter,Facebook 等),基本上所有页面都可以设置(我编造了这个词,需要简短说明)。
在规模化或系统简化的对话中,几乎从未提及过标准化。 一旦对网站进行了注册,则在提供服务的方式上就根本不同:将 PHP-mysql 堆栈提供的页面与 S3 存储桶或 Akamai 边缘服务器提供的页面进行比较,大约等于 1。 系统资源方面的差异为 10K FOLD(如今,可以通过单核完成 c10K)。
身份认证可以应用于很多网页(不仅是博客),但是 AFAIK 并没有很好的食谱(任何人都知道吗?),并且它似乎并不是大多数开发人员常用的工具(或者也许是 只是不够性感而无法获得大量媒体报道)。
就我个人而言,我非常乐于将任何和所有功能(出于某种原因)推到尽可能远地远离后端(即数据库)和尽可能远地进入前端(即浏览器)的位置,这是扩展和尊重数据的关键 本地化,因此感谢你们俩提醒人们使用此技术:多动脑筋意味着多用户 CMS 静态生成器就近了,所以我可以更快地得到我的网页:)。
Bing 网站搜索小部件已于 2011 年 2 月撤消。
http://www.bing.com/community/site_blogs/b/webmaster/archive/2011/04/19/bing-com-siteowner-shut-down-options-for-search-results.aspx
关于允许用户向 HighScalability 添加/编辑内容的方式:如果将静态站点文件保存在{git,hg,bzr}存储库中,则可以允许用户克隆本地存储库,进行更改然后推送 它们返回给您,您可以在此处查看并推送到 S3。 这样做甚至可能会为您的 Dropbox 节省一些空间,因为您可以在 Dropbox 上保留一个裸{git,hg,bzr}仓库,然后将其推送并拉到本地计算机上。 我对很多代码都这样做,而且即使我没有互联网连接(因此无法推送到 github),我也很喜欢,我可以做一个`git push dropbox master`并知道下一次我 连接后,我的存储库将备份到我的 Dropbox。
关于@Jonathon Prior 的声明,我前不久在 HN 上看到了这一点:http://jeffkreeftmeijer.com/2011/introducing-tapir-simple-search-for-static-sites/
保罗,那是硬核,但很有趣。 我的第一个念头是那种方法会使人吓跑,但也许不会。 我没有得到我想要的贡献,也许 git 方法会更有吸引力?
乔纳森,谢谢你。 当我可以在 Bing 的网站上找到搜索时,我以为是我。 ir 看起来很有趣。
在我看来,最好的方法仍然是在需要时静态使用 AJAX。 IOW,以静态方式提供 html / css / javascript 文件,然后让 javascript 为您创建“动态”页面。 由于客户端计算机正在执行 GUI 处理工作,而不是服务器,因此这有助于扩展。
当然,仍然需要“动态” REST 端点等。这种分离对于轻松开发基于同一数据源的多个用户界面也非常有用。
我猜这完全符合您提到的“混搭”文化。 :)
这是一篇很棒的文章,强调了主要提供静态内容的优势。 现实情况是,大多数站点只能以最少的动态内容获得成功,而且很多站点实际上还是静态的。 使用 Bricolage 在 www.groupcomplete.com 上发布我们的网站已经取得了巨大的成功。 Bricolage 并不是新手或花哨的东西,但是在将内容与模板分离,将最终结果内容推送到我们的服务器方面做得非常出色,确实消除了担心动态 CMS 是否崩溃或遭受最新安全漏洞的麻烦。 。
“ ... Web 服务器或 OS 可以轻松地将流行的页面缓存在内存中,并像肯塔基州德比的薄荷糖一样为它们提供服务...”
那接近文学。 做得好。
有趣的是,大型企业维护的大多数公司网站都依赖这种方法,而大多数企业级 CMS 实际上是“离线”的。 在 IT 运营和安全性方面,这种方法有很多好处。 但是,主要原因是这些 CMS 具有早期 Web 时代的传统,而动态网站是异国情调的。 这样事情就转了一圈了。
您是否可以在某个地方使用私人 CMS 来编辑和维护页面文本(必须通过 Jekyll 或所需的任何生成器来维护授予的 CSS)-这样,如果您在 CMS 中编辑了页面,则可以通过以下方式轻松地更新静态网站: 只是从数据库中实时再生?
这可能允许 wordpress 安装在您的桌面安装上变为私有-然后将 static 推送到 S3。 两全其美-在 CMS 中易于使用的编辑-快速的网站服务以及消除了互联网使用的数据库调用?
准系统 CMS 是生成 CMS 的静态文件。 内置缓存足以满足大多数用途,但是如果您将 nginx 之类的服务器放在前面,并使用一些特殊规则查找缓存文件,则只需提供直接生成的缓存内容,从而完全绕过 PHP。 这样,除了硬件可以提供静态内容的速度有多快之外,您显然对系统性能没有任何限制。 它尚未完全可以用作博客,但将 Barebones CMS 变成一个似乎并不困难。
高可扩展性! 同类中最好的。
进入静态站点-博客引擎 MovableType 支持静态发布-http://www.movabletype.org/documentation/administrator/publishing/static-and-dynamic-publishing.html 用于高流量博客。 如果我们通过 javascript 处理动态内容,则静态发布会非常有用。
谢谢
甚至以慢而着称的 CMS 都会吃掉几乎所有可能的早餐负载,除非您在体系结构上不满意,例如,将 Apache KeepAlive 保留下来。
我想看一个像 jekyll 这样的博客生成器,但是像 frontpage 这样的 gui(显然,生成更好的代码)
- 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 内容平台的经验教训