学习 Mozilla 如何扩展网站规模

二狗蛋
 二狗蛋
发布于 2013年02月23日
收藏 70

英文原文:Learning to Scale Websites at Mozilla

Mozilla 的 Web 运营工程师 Brandon Burton 透露,通过内部学习的简易扩展模式,Mozilla 将网站服务能力的规模从支撑数千用户扩展到支撑数亿用户。这些学习内容包括缓存、横向扩展 Web 服务器、异步作业和数据库。在洛杉矶举行的 DevOps 集会中,Brandon 代表 Mozilla 对这些主题进行了深入分析。此外,他还分享了 Mozilla 对 DevOps 能力未来的技术规划,包括自服务部署、平台即服务(PaaS)和公有云的使用。以下是 Brandon 的演讲要点:

缓存:使网站能够高效运行的缓存主要有三种:内存数据缓存、本地资源缓存和全局资源缓存。内存数据缓存(例如针对会话状态的 memcache)最适宜于存储那些本身是无状态协议一部分的 HTTP 请求之间的状态。接下来是直接位于网站前方的本地资源缓存/代理,它能够存储图像及其他静态文件,使网络服务器不必处理相关的请求就能够快速检索,此类工具包括 StingrayVarnishSquid。最后是全局资源缓存(例如,内容分发网络,简称 CDN),它的作用和之前介绍的本地资源缓存相似,但它会存储更贴近最终用户的缓存文件。此外,这些全局资源缓存(CDN)会根据每个用户的位置动态选择最佳网络路由。Brandon 介绍说 Mozilla 同时使用 AkamaiEdgeCast 作为他们的 CDN。

横向扩展 Web 服务器:Web 服务器的横向扩展可通过自动化工具释放和配置。所有的 Web 服务器都不会为自己或者其他的 Web 服务器将 HTTP 请求过程中有持久性要求的状态存储在本地,基本上“没有分享任何内容”。Web 服务器通过使用像 memcacheNFSS3这样的技术将它们的状态存储在自己的外部。因此,Web 服务器可以被释放或添加到池中,而不会对其他的 Web 服务器产生负面影响。自动化工具(例如 cfengineOpscode ChefPuppet)为网络服务器约定了一个众所周知的运转状态,可以被添加到待扩展的 Web 服务器池中。这些工具也可以管理全部网络服务器的更新。

异步作业:在使用网站的过程中,用户期待快速响应。异步处理用户的请求能够减少服务器计算资源的竞争,为最终用户的各个请求提供更好的响应。在某些情况下,用户请求了很复杂的任务,为了保持相似的性能,除了异步之外没有其他的合理方式能够处理。Brandon 声称,Mozilla 通过将诸如 CeleryRabbitMQ 等工具协同工作促进了任务的异步处理。

数据库:Mozilla 使用 multi-master MySQL 来提供高可用性,同时该 MySQL 的从属(slaves)用于提供数据的只读访问。此外,从属位于负载均衡器之后,这样读取请求的处理能够被分发到不同的服务器,以免某个服务器过载。Fusion-IOKingston SSD 存储也有助于提升数据库的性能。Brandon 还强调了“优秀的 DBA”对 Mozilla 的重要性,他们维护之前提到的数据库系统。

Brandon 分享了 Mozilla 改进 DevOps 的未来计划。他们将会通过 Jenkins 构建自服务部署。Mozilla 将基于 ActiveState 的 Stackato 技术为其内部开发团队建设 PaaS。同时 Mozilla 也在努力扩展到 AWS 公有云上。

Brandon 将在今年 2 月在洛杉矶举行的 Scale11x 大会上针对这些内容给出更深入的技术分析。他还在帮助推动 hangops,一个每周一度的 Google 聚会,在那里会就 DevOps 话题进行时长一小时的讨论。主题包括文化、远程工作与运营工具。

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:学习 Mozilla 如何扩展网站规模
加载中

最新评论(15

哈哈__哈哈
哈哈__哈哈

引用来自“ldsink”的评论

引用来自“邓攀”的评论

引用来自“ldsink”的评论

我觉得 Firefox 的同步相当安全好用,而且速度快。
只要保存一个秘钥,一直能同步所有的东西。
Chrome 不知道是不是因为被墙的缘故,同步一直有问题。

教我怎么使用mozilla的同步啊?谢谢,不是很会用

Firefox 同步的时候第一次使用某个账户后会生成一个秘钥,例如
y-6d9jk-fi5ai-swt6m-n785q-5yqua
下次在另外的设备上同步时,选择“我已有账户” 和 “该设备不在我身边”,输入用户名、密码和秘钥就可以同步了。
火狐的用户名+密码只用于确定你的身份,不用于解密你的同步数据,如果忘记了秘钥,这个秘钥对应的同步数据是找不回来的,即使你找回了用户名和密码,同步数据(比如收藏夹、扩展)都找不回来,只能新建一个秘钥(这样会删除前一个),重新将用这个秘钥加密的同步数据上传到 mozilla 的服务器进行同步。

谢谢
sztwejtsnpptdccfzyee
sztwejtsnpptdccfzyee

引用来自“邓攀”的评论

引用来自“ldsink”的评论

我觉得 Firefox 的同步相当安全好用,而且速度快。
只要保存一个秘钥,一直能同步所有的东西。
Chrome 不知道是不是因为被墙的缘故,同步一直有问题。

教我怎么使用mozilla的同步啊?谢谢,不是很会用

Firefox 同步的时候第一次使用某个账户后会生成一个秘钥,例如
y-6d9jk-fi5ai-swt6m-n785q-5yqua
下次在另外的设备上同步时,选择“我已有账户” 和 “该设备不在我身边”,输入用户名、密码和秘钥就可以同步了。
火狐的用户名+密码只用于确定你的身份,不用于解密你的同步数据,如果忘记了秘钥,这个秘钥对应的同步数据是找不回来的,即使你找回了用户名和密码,同步数据(比如收藏夹、扩展)都找不回来,只能新建一个秘钥(这样会删除前一个),重新将用这个秘钥加密的同步数据上传到 mozilla 的服务器进行同步。
哈哈__哈哈
哈哈__哈哈

引用来自“ldsink”的评论

我觉得 Firefox 的同步相当安全好用,而且速度快。
只要保存一个秘钥,一直能同步所有的东西。
Chrome 不知道是不是因为被墙的缘故,同步一直有问题。

教我怎么使用mozilla的同步啊?谢谢,不是很会用
sztwejtsnpptdccfzyee
sztwejtsnpptdccfzyee
我觉得 Firefox 的同步相当安全好用,而且速度快。
只要保存一个秘钥,一直能同步所有的东西。
Chrome 不知道是不是因为被墙的缘故,同步一直有问题。
哈哈__哈哈
哈哈__哈哈

引用来自“netstu_”的评论

firefox的同步和chrome比起来根本不是一个等级

的确,但是正是这样才保证firefox的保密性跟安全性比任何浏览器都要好啊。。。像chrome那种连密码都会同步的多少是一个隐患
哈哈__哈哈
哈哈__哈哈

引用来自“Solae”的评论

mozilla如果支持同步服务就可以完爆chrome了

的确,mozilla中的扩展的确是一个个强大的应用程序跟chrome扩展的那种级别不是一个档次的
郑柯
郑柯
从几千到几亿的变更?不用增加硬件?
返回顶部
顶部