大规模视频网站的计费与流量管理
本次分享将会就大规模视频网站的计费与流量管理这个话题,从操作层面细细进行讲解和分析,为系统工程师们揭示平日里我们没有关心的另一些内容。同时也希望本次分享能揭示行业中的一些“潜规则”,让互联网行业的流量与带宽管理更为开放与简洁。
本次演讲视频录制于QCon杭州2011。
该内容已经被标记书签!
标记书签错误,请重试!
作者 Mirko Stocker 译者 贾晓楠 发布于 2008年10月29日
RubyEncoder通过编译和加密来保护Ruby和Ruby on Rails文件。经过加密的脚本由RubyEncoder的加载器来运行。RubyEncoder是由Inovica Ltd开发的。他们还为PHP做了一个类似的东西:SourceGuardian。
RubyEncoder还能保护工程的一部分,允许明文的Ruby代码和配置文件的存在;还可以把程序限制在特定主域上,或设定一个期限来创建试用版(详见RubyEncoder FAQ部分)。
InfoQ采访了RubyEncoder的领衔开发者Alexander Belonosov,从技术的角度来谈谈该项目。
InfoQ:编码和加载/运行是如何进行的?
首先把Ruby源代码编译成内部的中间格式,然后进行加密。一旦编码之后,源代码就不在被保护的脚本里了。你需要安装 RubyEncoder加载器来运行被保护的脚本。加载器实际上是一个Ruby扩展,用来解码和运行被保护的脚本。被保护的脚本是与平台无关的,这点很重 要,你可以在所有支持的平台上运行它。不同的操作系统和平台的加载器是不同的。我们支持以下平台:OSX、Linux、FreeBSD,以及我们最近才开 始支持的Solaris x86。我们还打算近期加入对Windows和其他UNIX的支持。
InfoQ:源代码会被转换为一种中间格式。你们有没有自己的解释器来运行它,还是需要还原成原始的Ruby代码?
原始的Ruby代码是不可能还原出来的。我们使用内部的中间格式。[..] 它是内部的、二进制的、可执行的,并且绝不可能还原出原始代码。
InfoQ:要是你们有自己的解释器,它如何支持元编程(metaprogramming)以及Ruby的其他动态特性?或者说,难道没有什么限制吗?
目 前,加载器会把代码的内部表示返回给Ruby来执行。这让我们拥有最大的兼容性,并保持Ruby代码的动态本质。但是,我们仍在寻找其他办法,在产品的下 一个版本来改变或者实现一个新的方案。不管怎样,使用RubyEncoder来保护产品将会对终端用户是透明的,而且Ruby开发者会得到更高级的、更高 效的编码器。
InfoQ:我们可以使用ParseTree gem包访问一个类或一个方法的解析树。RubyEncoder会影响到它吗?
ParseTree 是个很棒的扩展,可以用来研究Ruby内部以及代码优化等。如果你是想问我们是否限制使用ParseTree,那么答案是不会。当你使用 ParseTree之类的工具时,你必须知道需要把什么从Ruby内部提取出来,以及如何发现它。我认为你还必须思考其原因,消耗的时间,以及最终的结果 是什么:-)
InfoQ:你们是否打算支持其他Ruby实现版本,比如JRuby?有没有可能把加载器移植到Java上来运行JRuby代码?
目前我们仅支持标准Ruby。JRuby是个很棒的项目,并且在日益成长。不过针对的市场会有一点不同。
InfoQ:使用JRuby和编译过的Ruby源码,ByteCode混淆器是不是也能达到跟RubyEncoder同样的效果?
使用JRuby和经过编译的Ruby源码也许能得到很高的保护等级。但是它面对的是Java环境。而我们的初衷是保护本地Ruby和Ruby on Rails工程,将来也许会决定加强或者扩展我们的产品。
InfoQ:RubyEncoder是用什么语言写的?用Ruby,然后自己加密自己?
不是,我并不是说Ruby元编程不好 :-) 但RubyEncoder和加载器是用C写的。
RubyEncoder是一个商用产品,这里提供一个30天试用版。
你曾使用过这样的代码保护工具吗?有没有什么经验来分享?
查看英文原文:RubyEncoder: Obfuscation and Code Protection for Ruby
本次分享将会就大规模视频网站的计费与流量管理这个话题,从操作层面细细进行讲解和分析,为系统工程师们揭示平日里我们没有关心的另一些内容。同时也希望本次分享能揭示行业中的一些“潜规则”,让互联网行业的流量与带宽管理更为开放与简洁。
本次演讲视频录制于QCon杭州2011。
Jeffery Richter以其多本Windows核心技术的经典著作而闻名,同时,他深入掌握微软的.NET等一系列核心技术,2012年1月,Jeffery 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。
本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。
没有回复
关注此讨论 回复