大规模视频网站的计费与流量管理
本次分享将会就大规模视频网站的计费与流量管理这个话题,从操作层面细细进行讲解和分析,为系统工程师们揭示平日里我们没有关心的另一些内容。同时也希望本次分享能揭示行业中的一些“潜规则”,让互联网行业的流量与带宽管理更为开放与简洁。
本次演讲视频录制于QCon杭州2011。
该内容已经被标记书签!
标记书签错误,请重试!
作者 Abel Avram 译者 王瑜珩 发布于 2009年7月2日
由Hellen J.Wang带领的一个微软研发团队提出了浏览器上的操作系统Gazelle(PDF),目的是加强网上冲浪的安全性。
Gazelle并不是一个新的Windows,而是一种新型的浏览器,它的内核会像操作系统那样,为不同的网站(web site principals)分配资源并对这些资源提供访问保护。Security principal被定义为“一个可以被计算机系统或网络验证的实体。检查和确认这个实体标识的过程被称为验证”。微软研究院的Janie Chang定义了browser principal,并解释了为什么安全如此重要::
在浏览器中,principal一般就等价于一个网站。对于计算机来说,通常在同一时刻只有一个用户在使用,系统资源是被不同的应用程序所共享的;而对网 页来说,每个页面可能包含了来自不同网站的内容,计算资源是被这些不同网站的内容所共享的。因此浏览器自然而然就成为为这些网站调配资源的平台。
一个网页可能包含来自其它网站的内容,比如广告和新闻。所有这些来源不同的内容都共存在浏览器的同一进程或保护域(protection domain)中。含有恶意代码或问题代码的广告会阻塞网络、降低性能、锁死整个页面甚至让浏览器崩溃。而在浏览器操作系统中,有问题的网站(内容)并不 会影响到其它网站(的内容)、浏览器本身或者计算机。
Wang等人将principal定义为“由网站来源(协议、域名、端口)标识的同源策略(SOP)下”的网站。为了加强对principal的保护,在网站和操作系统之间引入了浏览器内核(browser kernel),如图1:
浏览器内核运行在独立的保护域中,存在于网站和传统的操作系统之间。内核协调网站对系统资源的访问,并在浏览器上执行安全策略。本质上,浏览器内核就是网 站的操作系统,负责管理和保护系统资源。此外浏览器内核还管理着浏览器的外观,例如地址栏和菜单。内核接收所有来自底层操作系统的事件,包括鼠标点击或键 盘操作这样的用户事件,这些事件将被分发到正确的网站运行实例(principal instance)。当用户点击指向另一个来源的超链接时,浏览器内核会为这个URL指向的网站实例创建一个新的保护域(如果还不存在的话)来渲染页面, 销毁包含这个链接的页面所在的保护域,并将窗口重新初始化以显示URL指向的网站实例。
Wang等人比较了Google Chrome和Gazelle在安全方面的实现。Google Chrome使用了如下的进程模型: 单进程、每浏览实例一进程(process-per-browsing-instance)、每网站实例一进程(process-per-site- instance)和每网站一进程(process-per-site)。浏览实例由所有互相关联的窗口、框架和子框架构成,而网站实例由所有来自同一网 站的网页构成,并存在于浏览实例中。根据Wang等人所说,网站被定义为“一组共享注册域名的SOP来源。如 attackerAd.socialnet.com,alice.profiles.socialnet.com和socialnet.com就共享了注 册域名socialnet.com,因此被Chrome当成是同一个网站”。
Chrome的默认模型是每网站一进程(process-per-site-instance)。除此之外……目前的Chrome实现在每网站实例 一进程(process-per-site-instance)和每网站一进程(process-per-site)中不支持严格的网站隔离:含有不同网 站内容的iframe等内嵌内容会和页面(上的其它内容)放在一个进程中。Chrome的单进程和每浏览实例一进程(process-per- browsing-instance) 模型都不提供在不同网站之间对内存和其它资源进行隔离保护。每网站一进程(process-per-site)模型不会在网站实例之间提供错误保护。 Chrome的每网站实例一进程(process-per-site-instance)模型与Gazelle的每网站实例两进程(two processes-per principal- instance)模型最为相似,但是有几个重大的区别:1. Chrome的principal就是网站,而Gazelle的principal是SOP principal;2. Chrome中网站自己的内容与内嵌的内容共存于同一进程中,而Gazelle将它们放在不同的保护域中,为此我们还需要研究如跨网站显示保护这样的新东 西;3. Chrome中不同网站的插件都运行在同一个进程中,而Gazelle将它们放在各自的保护域中;4. Chrome在渲染进程中对不同的网站执行SOP。这些区别显示,Chrome中的跨网站隔离保护发生在渲染和插件进程中,而不是浏览器内核。相 反,Gazelle的浏览器内核则像一个操作系统,管理着资源的跨网站隔离,也包括内容显示。
Wang等人还提到了Gazelle和IE8的不同
IE8使用操作系统进程来隔离不同的tab,这种方式效率并不高,因为用户可能会在同一个tab中同时浏览安全和不安全的内容,而同一个页面也可能包含有来自不安全站点的iframe(如广告)。
T研发团队的结论是:
基本上,Chrome和IE8的目标与Gazelle并不相同。他们对多进程的使用是为了在不同浏览进程之间控制错误,而不是为了安全。他们的安全目标是 通过使用沙箱进程来保护操作系统。Chrome和IE8已经在浏览器架构设计中迈出了坚实的一步。今后,越来越多的数据和功能会被塞到web中,浏览器会 成为最重要的应用程序平台,将浏览器当成操作系统来将不同的网站以及计算机本身隔离起来,是浏览器设计者急需考虑的问题。而这就是Gazelle的目标。
通过使用IE7的向后兼容解析、DOM管理和Javascript引擎,一个Gazelle原型已经被构造出来。据称它的性能与IE8和Google Chrome在同一数量级上。跨网站脚本隔离使用了图2的架构。原理是使用沙箱运行插件代码以隔离恶意代码,这样在插件出现问题的情况下,浏览器仍然可以 运行。
这个项目对那些担心微软还没有放弃将浏览器完全合并到操作系统中的人来说是一个惊喜。虽然微软保证他们只是为了加强安全性,但对于很多厂商来说是这 一个重大的推动,因为浏览器将要成为桌面上最重要的应用程序平台。目前Gazelle仍只是一个研究项目,时间会证明它是否能够成为一个产品,或者至少会 集成在IE、其它浏览器或Windows上的在线应用程序中。
查看英文原文:Microsoft Researches a Browser-based OS, Code Name Gazelle
译者 王瑜珩 InfoQ中文站编辑,ThoughtWorks咨询师,关注企业级Web开发、敏捷实践以及项目管理。
本次分享将会就大规模视频网站的计费与流量管理这个话题,从操作层面细细进行讲解和分析,为系统工程师们揭示平日里我们没有关心的另一些内容。同时也希望本次分享能揭示行业中的一些“潜规则”,让互联网行业的流量与带宽管理更为开放与简洁。
本次演讲视频录制于QCon杭州2011。
Jeffrey Richter以其多本Windows核心技术的经典著作而闻名,同时,他深入掌握微软的.NET等一系列核心技术,2012年1月,Jeffrey Richter在北京接受了InfoQ中文站的专访,谈到Windows 8和WinRT编程,并就异步编程、Windows编程中的可扩展性、性能和安全性方面给出自己的建议。
云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。
淘宝高度重视Java平台的健康发展,组建了一个团队专注于Java平台的底层部分的性能、功能与稳定性改进;工作主要基于OpenJDK中的HotSpot VM开展,其中一些通用的功能随后也会逐渐反馈给OpenJDK社区。希望能与使用Java平台开发应用的大家交流经验。
本次演讲视频录制于QCon杭州2011。
2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。
12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
本次演讲视频录制于QCon杭州2011。
篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
本次演讲视频录制于QCon杭州2011。
本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。
3 条回复
关注此讨论 回复