2012年1月2日星期一

关于snova-heroku的一二三

 

大约圣诞节前一天,发现了heroku这个PaaS平台,看了一下wiki以及heroku.com上的介绍,觉得有些意思;后来正好工作上没多少事情,花了半天仔细看了一下这个平台相关技术架构,虽然不甚了了之处仍有不少,不过大致上已经了解到从技术角度而言对于heroku,可以用来做些什么以及不可以做些什么。

heroku本质上是一个分布式环境,但对于开始的免费账户只提供一个dyno(heroku的特有概念,类似Instance),CPU大约是750h/month,带宽没有限制。支持的语言较多,主要是ruby,另外python/java目前也支持。Runtime上限制远比Google的AppEngine为少,以Java为例,从语言角度来看几乎没有任何限制,目前观察到的唯一“限制”就是App的input只能是HTTP请求,当然这是基于Web的PaaS的必要条件,也谈不上限制了。

后来的一天,着手写了一些代码,初步验证开始的想法正确;由于之前一段时间写了一个基于GoogleAppEngine的proxy,而这个proxy有不少Appnegine平台的限制,正好heroku没有这些限制,于是开始着手实现基于heroku的proxy。

实现的过程总体上是顺利的,除了当中偶发奇想用一些P2P技术代替HTTP请求耽搁了几天,最后大约2011.12.30完成所有实现。之后两天主要修改项目上的wiki以及snova项目的其它子项目,在2012到来的第一天正式release。

注:1. 用一些P2P技术代替HTTP请求从原理上任然是可行的,不过相对目前的实现几乎没有任何性能优势;2. 目前的实现通过异步IO+定期轮询绕过了较多的技术限制,但这种技巧在分布式环境中算是一种错误方法,只不过由于免费环境只有一个dyno才得以利用。

 

http://code.google.com/p/snova/wiki/HerokuInstallation

2012.01.02 小恙中记

没有评论:

发表评论