snova——架构中 PaaS 平台上的客户端-服务器模式代理工具

(via https://code.google.com/p/snova/)

关于

  • Snova(Java)是一个插件化的web proxy框架,目前自动集成基于Google AppEngine平台的GAE插件,支持Heroku/CloundFoundry/OpenShift/Dotcloud/Jelastic平台的C4插件,以及增强的PAC插件SPAC。源码在GoogleCode上维护。snova@GoogleCode
  • GSnova(Go)是几乎和snova功能一致的Go语言实现,包括GAE/C4支持,弱化的SPAC实现,以及额外的SSH支持。源码放到了GitHub上维护. gsnova@github

安装部署

  • 安装运行依赖
    • Snova(Java) 依赖JRE 1.6+
    • GSnova(Go)为系统原生可执行文件,无任何依赖
  • GAE
  • 参考GAEInstallation安装配置部署GAE到Google Appengine
  • CloundFoundry(可选)
  • 参考CloudFoundryInstallation安装配置部署C4到CloundFoundry
  • Heroku(可选)
  • 参考HerokuInstallation安装配置部署C4到Heroku上
  • OpenShift可选)
  • 参考OpenShiftInstallation安装配置部署C4到OpenShift
  • Dotcloud(可选)
  • 参考DotcloudInstallation安装配置部署C4到Dotcloud上
  • Jelastic(可选)
  • 参考JelasticInstallation安装配置部署C4到Jelastic上
  • SSH(可选)
  • 仅GSnova(Go)支持,暂无文档参考,请参考配置文件中注释帮助

AppId共享计划

  • 在Snova(Java)的GAE Plugin的GUI中提供有一个共享appid的功能,任何人可以据此共享自己的appid
  • 在Snova(Java)的命令行工具admin.sh/admin.bat中也内置share/unshare命令
  • 当Snova/GSnova的用户由于某些原因(如不知道怎么安装server侧)没有配置自己的appid时,默认情况下,客户端会从服务器上随机获取几个共享appid,然后用匿名用户方式连接<shareappid>.appspot.com
  • GSnova(Go)则提供一个Web接口支持共享appid, 访问http://127.0.0.1:48100

注意

  • Go版本GAE服务端与Java版本GAE服务端功能完全一致,区别在于Go版本的性能较Java版本为好,粗略观察差距大约在30%以上,另外Go实例启动时间很短(<500ms),而Java实例的启动时间较长(>4s)
  • GSnova(Go)无GUI界面,只提供简单的本地Web界面支持。Snova(Java)提供GUI支持。
  • Snova(Java)的GUI以及CLI工具中均有share/unshare appid功能, 你可以分享自己的appid到中心服务器,也可以取消分享;中心服务器则随机分派appid给没有安装自己的snova-gae-server的用户
  • GSnova(Go)也通过本地web界面提供share/unshare appid功能

原文:http://www.atgfw.org/2012/12/snova-paas.html
发表评论