snova – NodeJsPaaSInstallation.wiki

snova – NodeJsPaaSInstallation.wiki


简要说明

  • 部署过程一般是将C4的服务端NodeJS实现部署到PaaS平台上,这个过程每个PaaS平台都不一样
  • 根据自己的需要任意选择一个PaaS平台部署,部署过程参考下个章节
  • 部署服务端成功后,需要修改snova/gsnova的客户端配置
  • 以下是几个NodeJS PaaS平台的简要部署指南以及snova/gsnova的客户端配置修改指南

部署服务端

Heroku

Step 1: 准备Heroku Client环境

按照Heroku官方的QuickStart注册帐号,安装Heroku Toolbelt(注册较简单,仅需要email)

Step 2: 部署Snova C4的服务端到Heroku

  • 下载snova-c4-nodejs-server-[version].zip, 放在任意地方
  • 在命令行下进入zip解压后所在目录,依次顺序执行以下的命令,每一行单独执行 heroku login git init git add . git commit -m "init" heroku create //此步创建app git push heroku master
  • 留意执行“heroku create”时的输出,一般会显示创建的域名,为 “xx.herokuapp.com”, 记下该域名,为配置Client准备(执行heroku apps可列出所有app)

Openshift

Step 1: 注册OpenShift环境, 安装OpenShift部署工具

到官方链接OpenShift注册注册帐号,参考说明rhc安装安装部署工具

Step 2: 部署服务到OpenShift

  • snova-c4-server-[version].war放到任意的空目录下,然后在命令行下进入该目录,逐个执行下面的命令 “` rhc setup –登录 rhc-create-domain -n –创建主域名, 部署新应用是这一步可不执行 rhc-create-app -a -t nodejs-0.6 –创建app,执行后会在当前目录下创建一个appname的目录名;注意保留此目录用于以后更新

cd unzip snova-c4-nodejs-server-[version].zip –上一步将snova-c4-nodejs-server-[version].zip在创建的目录下解压, windows用户参考说明操作

git add . git commit –m “deploy” git push

“` * 浏览器中输入<appname>-<domainName>.rhcloud.com, 查看是否部署成功,否则检查上述步骤是否执行成功


CloudFoundry

Step 1: 注册CloudFoundry环境,安装CloudFoundry部署工具

  • 到官方链接CloundFoundry注册帐号, 注意,注册不是马上成功,一般第二天才会收到注册成功的邮件,其中包含用户名密码
  • 参考官方说明安装命令行工具vmc,注意安装依赖ruby以及gem的安装。 vmc安装

Step 2: 部署服务到CloudFoundry

  • snova-c4-nodejs-server-[version].zip解压到任意的空目录下,然后在命令行下进入该目录,逐个执行下面的三行命令。注意要求node 0.6以上 “` vmc target api.cloudfoundry.com vmc login vmc push ——执行此处appnamexxx为任意名称,为域名一部分,此命令执行后有类似下面的交互内容,参照下面的输入选择;更新app亦执行此命令。

user@ubuntu:~/snova-deploy$ vmc push appnamexxx Instances> 1

1: node 2: other Framework> node

1: node 2: node06 3: node08 4: other Runtime> 3

1: 64M 2: 128M 3: 256M 4: 512M Memory Limit> 64M

Creating appnamexxx… OK

1: appnamexxx.cloudfoundry.com 2: none URL> appnamexxx.cloudfoundry.com

Updating appnamexxx… OK

Create services for application?> n

Bind other services to application?> n

Save configuration?> n

Uploading appnamexxx… OK Starting appnamexxx… OK Checking appnamexxx… OK

“` * 浏览器中输入<appnamexxx>.cloudfoundry.com, 查看是否部署成功,否则检查上述步骤是否执行成功


Dotcloud

Step 1: 注册Dotcloud帐号,准备Dotcloud Client环境

  • 按照Dotcloud官方的Dotcloud注册帐号,遵循安装说明Installing the CLI安装Dotcloud Client
  • 安装完后,命令行下执行以下命令初始化dotcloud client dotcloud setup

Step 2: 部署Snova C4的服务端到Dotcloud

  • 下载snova-c4-nodejs-server-[version].zip, 解压到任意空目录中
  • 在命令行下进入war文件所在目录,依次顺序执行以下的命令,每一行单独执行 dotcloud create <app_name> --创建app,只需执行一次 dotcloud push --上传app,注意失败后重试一次
  • 如果是更新C4服务端,注意保留上步的目录,替换解压后的文件后执行dotcloud push即可
  • 留意执行“dotcloud push”时的输出,一般会显示创建的域名,为 “xx.dotcloud.com”, 记下该域名,为配置Client准备(执行heroku list可列出所有app)

Appfog

Step 1: 准备Appfog账号以及安装Client环境

  • Appfog注册账号,并按照官方的AF Command Line Tool说明下载安装appfog的命令行工具。
  • 注意:Appfog部署C4后的效果较差,问题不少,愿意研究的可以尝试

Step 2: 部署Snova C4的服务端到Appfog

  • 下载snova-c4-nodejs-server-[version].zip, 解压到任意空目录中
  • 在命令行下进入zip文件解压的目录,依次顺序执行以下的命令,每一行单独执行 af login af push <appname>
  • 执行af push命令后会出现下面输出,参考下面输入选择(注意, 以下实际appname用xxx代替, 内存可选择更高,以提高部署的app性能,下面选择512M仅为示范) Detected a Node.js Application, is this correct? [Yn]: Y 1: AWS US East - Virginia 2: AWS EU West - Ireland 3: AWS Asia SE - Singapore 4: Rackspace AZ 1 - Dallas 5: HP AZ 2 - Las Vegas Select Infrastructure: 3 Application Deployed URL [snova3.ap01.aws.af.cm]: Memory reservation (128M, 256M, 512M, 1G, 2G) [64M]: How many instances? [1]: Create services to bind to 'snova'? [yN]: n Would you like to save this configuration? [yN]: n Creating Application: OK Uploading Application: Checking for available resources: OK Processing resources: OK Packing application: OK Uploading (3K): OK
    Push Status: OK Staging Application 'xxx': OK
    Starting Application 'xxx': OK
  • 留意执行“af push”时的输出,出现 Application Deployed URL的一行中含部署后的app的域名,记住次域名,用于配置C4。例如: Application Deployed URL [xxx.ap01.aws.af.cm]: 其中xxx.ap01.aws.af.cm即为域名

修改客户端配置

客户端可选gsnova(Go)或者snova(Java)

gsnova(Go)

  • 修改gsnova.conf中C4部分,填入之前创建的域名,重启gsnova生效 [C4] #Enable改为1,C4才能生效,默认为0关闭 Enable=1 #修改domain为Step2创建的域名, 可加多个域名 WorkerNode[0]=xyz.herokuapp.com WorkerNode[1]=xyz.cloudfoundry.com
  • 修改gsnova.conf中SPAC下默认的Proxy实现为C4 [SPAC] Enable=1 #默认Proxy实现,初始为GAE Default=C4

    snova(Java)

  • 修改<snova>/conf/snova.conf,修改方法参考以上gsnova部分

    SPAC(可选)

  • gsnova用户参考SPAC的说明SpecialProxyAutoConfigOnGSnova修改json配置打造自己的proxy环境
  • snova用户参考SPAC的说明SpecialProxyAutoConfig修改SelectProxy方法打造自己的proxy环境