学习Mozilla如何扩展网站

标签: 学习 mozilla 扩展 | 发表时间:2013-02-22 20:49 | 作者:
出处:http://pipes.yahoo.com/pipes/pipe.info?_id=10560380f804c7341f042a2b8a03e117

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话题进行时长一小时的讨论。主题包括文化、远程工作与运营工具。

查看英文原文Learning to Scale Websites at Mozilla


感谢 孙镜涛对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至 [email protected]。也欢迎大家通过新浪微博( @InfoQ)或者腾讯微博( @InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

您可能也会喜欢

相关 [学习 mozilla 扩展] 推荐:

学习Mozilla如何扩展网站

- - InfoQ cn
Mozilla的Web运营工程师Brandon Burton透露,通过内部学习的简易扩展模式,Mozilla将网站服务能力的规模从支撑数千用户扩展到支撑数亿用户. 这些学习内容包括缓存、横向扩展Web服务器、异步作业和数据库. 在洛杉矶举行的DevOps集会中, Brandon代表Mozilla对这些主题进行了深入分析.

Mozilla发布社交共享扩展Firefox Share

- hi3w - 实时信息
Mozilla总是喜欢将一些浏览器功能通过扩展的方法来呈现,今天他们发布了有关浏览器社交共享的第二次尝试:Firefox Share. 该扩展已经可以在Mozilla官网上下载,安装后会在浏览器地址栏增加一个纸飞机图像,只要按下它就可以将网站共享到Twitter、Facebook或者Google,这一切都采用加密技术来完成,不会向第三方提供更多的数据.

Mozilla宣布WebAPI

- Amom - Solidot
Mozilla提议标准化HTML5 API,它宣布了WebAPI,致力于在原生应用和Web应用之间架起桥梁. WebAPI将可以工作在任何操作系统和任何浏览器上,Mozilla计划尽快公布规格草案和实现原型,并递交到W3C以成为新的Web标准. WebAPI将提供一致的、基于Web的应用程序接口,可以通过任何支持HTML5的设备尤其是智能手机访问.

Thimble-Mozilla推出的含有大量案例的HTML/CSS在线交互式学习网站

- - 无名小卒
         Firefox 浏览器的开发者非营利性组织Mozilla 推出了一个名为Thimble 的HTML/CSS在线交互式学习网站,这个网站是Mozilla 的Webmaker计划的组成部分,旨在帮助普通用户在线学习编写HTML和CSS.          Thimble是双面板设计,左侧是带语法高亮的代码,右侧可实时预览网页效果,如果用户对效果满意,可通过右上方的蓝色 “Publish” 按钮一键发布,还可通过提供的Twitter 发布按钮与好友分享你的设计成果.

2011 Mozilla Demoparty赏析

- Kavin - cnBeta全文版
Mozilla Demoparty是由Mozilla Labs发起的一项旨在启发人们将艺术与web技术相结合的活动,参与者可以自由提交他们的Demo. 大部分的Demo都是基于HTML5、WebGL和CSS3等新技术构建的,并巧妙的融入了艺术元素,提高了Demo的内涵和观赏度. Demo地址:http://static.britzpetermann.com/experiments/akemi/.

Mozilla、「Firefox 7」をリリース

- 三十不归 - スラッシュドット・ジャパン
cheez 曰く、Mozillaは米国時間27日、Firefoxの最新版「Firefox 7」を正式にリリースした(CNET Japan、マイコミジャーナル、本家/.). このバージョンでは特にメモリ管理の改善が実現されているとのこと. Firefoxのネックであった長時間使用時、多くのタブを同時に開いている時、メモリを多くしようするソフトウェアと同時に使用する時などのパフォーマンスが向上するとされている.

架构-伸缩性-扩展性-高可用的学习

- - 企业架构 - ITeye博客
 1 利用负载均衡做集群并且利用负载均衡进行无状态服务的转移  .  2 session管理:1 session复制  2Session绑定 3 Cookie记录Session 4 Session服务器 .  3、数据备份:数据冷备,数据热备(异步热备和同步热备). 关系型数据库通常热备机制为设置主从数据库.

Mozilla下周发布Firefox 6

- ttfioc - cnBeta.COM
面对Google Chrome的V14,Mozilla在飚版本号的时代走得毫不畏惧,最新路线图显示,Mozilla将在下周公布一个新的大版本:Firefox 6,这离上个一个版本Firefox 5的发布仅2个月时间,而Firefox 4也是在今年的3月21日发布的,三个大版本之间间隔不到半年. 开发的方法变了,用户也需要习惯快速的更新节奏,但对于企业部署来说,如此快速的大版本升级始终会是一个麻烦.

Mozilla正式发布Firefox 5.0

- 王者自由 - cnBeta.COM
Mozilla又可以骗到一个来自IE团队的蛋糕了,今天他们公布了Firefox 5的PC版和Android版,这是Firefox 4发布3个月后的又一个大版本更新,从Chrome、Firefox和IE最近的动向来看,互飚版本号的时代已经到来. 新版Firefox 5带来了CSS动画支持,do-not-track反跟踪技术,Canvas绘图技术和更高的性能.

Mozilla Firefox 7.0 Beta 2 发布

- 洞箫 - cnBeta.COM
全平台全语种的Mozilla Firefox 7.0 Beta 2版本已经在Mozilla FTP出现了,目前官方没有给出该版本的改进信息,但习惯上若一个版本在releases目录出现代表其进入了一个较为稳定的状态,只需要经过候选即可发布,7.0版本带来了性能上的改进,减少了内存消耗号称50%,有兴趣的朋友可以一试.