使用 stackato 发布 python-tornado 代码

如今,关于PaaS 的信息很多,关于云服务的信息也很多。

相信很多人对 google app 和 sina app 都有所耳闻,对于其中的服务托管也有理解。

今天,我这里要说的是 使用 stackato 进行服务托管。 简单的来说,通过它,你可以将一个自己的服务(或者应用,app)放到互联网上,只要是有网络的地方都可以使用。

part 1: 先看几个使用 stackato 发布的服务!

# 一个网友发布的服务,首页有比较全面的 stackato 的使用。

http://www.bigfastblog.com/deploy-the-tornado-chat-demo-on-the-stackato-paas-sandbox

# 自己的一个使用stack 源码中提供的tornado-chat-mono 发布的服务。下文的安装也都是基于这个服务

http://jia-tornado-chat.sandbox.activestate.com/

part 2: stackato 介绍

简单来说, stackato 是ActiveState 发布的 PaaS(Platform-as-a-Service).

# stackato 的官方网址: 

http://community.activestate.com/stackato

# stackato 的安装文档

http://docs.stackato.com/quick-start.html

# ActiveState 的官网

http://community.activestate.com/

part 3: 安装步骤

stackato 本身提供完整的 server 端和 client 端。本文只介绍 client 的使用,server 端使用 官方提供的公共server.

1: 在 ActiveState “http://community.activestate.com/” 上通过邮箱申请一个账号

2: 进行步骤1之后, 就可以在 ActiveState 上自由访问。 这时,在 “http://community.activestate.com/stackato” 上申请一个 Stackato Sandbox 账号。

       密码申请成功后,在ActiveState 中的账号信息”https://account.activestate.com/“中可以看到。

3: 在 “ http://community.activestate.com/stackato/download” 上下载一个 Stackato Client 版本。我的服务器是 Ubuntu 10.0.4  LTS, 我选择了 ”Linux i686“ 下载。

4: 下载 “stackato-0.3.13.0.18-linux-glibc2.3-ix86.zip” 之后, unzip 进行解压:

$ unzip stackato-0.3.13.0.18-linux-glibc2.3-ix86.zip

5: 赋予 它执行的权限:

$ chmod +x stackato-0.3.13.0.18-linux-glibc2.3-ix86

6: 将该文件修改名字,并移动到 bin目录下。

$ mv   stackato-0.3.13.0.18-linux-glibc2.3-ix86  /usr/local/bin/stackato

这时,在命令行输入  stackato, 如果出现如下信息,说明stackato 安装成功:

$ stackato

        Usage: stackato [options] command [<args>] [command_options]
        Try 'stackato help [command]' or 'stackato help options' for more information.

7: 使用步骤2 申请的 standbox 密码,登陆Stackato 服务端。

$ stackato login
Attempting login to [https://api.stackato.local]
Email: jiaxiaolei19871112@gmail.com
Password: ****************
Cannot access target (couldn't open socket: host is unreachable (Name or service not known))

这里默认连接的server 端时本地服务,所以如果我们连接 ActiveState 公共sandbox, 需要主动修改一下 url.,操作如下:

$ stackato target  https://api.sandbox.activestate.com
Successfully targeted to [https://api.sandbox.activestate.com]

修改 url 之后再进行一次login:

$ stackato login
Attempting login to [https://api.sandbox.activestate.com]
Email: jiaxiaolei19871112@gmail.com
Password: ****************

Successfully logged into [https://api.sandbox.activestate.com]

#NOTE: login, target 的使用方法可以通过 stackato help [command] 的方法进行查看.

8: 登录到 server 端之后,我们可以发布一个demo 进行测试。

在本地目录建立一个 src 文件夹,当然了,你也可以使用别的目录。

$ mkdir ~/src

在 src 目录下, 从 github 上下载一份demos

$  cd ~/src

$ git clone https://github.com/ActiveState/stackato-samples

$ cd stackato-samples/

$ ls
clojure  java  node  perl  php  python  README.md  ruby

$ cd python/tornado-chat-mongo/

$ ls
app.py  README.md  README.txt  requirements.pip  requirements.txt  stackato.yml  static  templates

#NOTE: 试着将项目执行一下: 

$ python app.py --port=6304

此时,通过 6304 端口就可以访问这个服务了。

9: 将这个服务发布到Stackato。

第一次测试,可以使用默认的选项。直接按回车就可以。

$ stackato push tornado-chat

Would you like to deploy from the current directory ?  [Yn]: y
Application Deployed URL [tornado-chat.sandbox.activestate.com]:
Application Url: tornado-chat.sandbox.activestate.com
Detected a Python Application, is this correct ?  [Yn]: y
Memory Reservation [64M]:
Creating Application [tornado-chat]: Error 701: The URI: 'tornado-chat.sandbox.activestate.com' has already b
een taken or reserved

这里提示 Deployed URL不可用。我们该用一个未被使用的url

$ stackato push tornado-chat

Would you like to deploy from the current directory ?  [Yn]: y
Application Deployed URL [tornado-chat.sandbox.activestate.com]: jia-tornado-chat.sandbox.activestate.com
Application Url: jia-tornado-chat.sandbox.activestate.com
Detected a Python Application, is this correct ?  [Yn]: y
Memory Reservation [64M]:
Creating Application [tornado-chat]: OK
Creating mongodb Service [mongo-chat]: OK
Binding Service [mongo-chat]: OK
Uploading Application [tornado-chat]:
  Checking for available resources: OK
  Packing application: OK
  Uploading (7K): 100% OK
Push Status: OK
Staging Application [tornado-chat]:
Staging Application [tornado-chat]: OK
Starting Application [tornado-chat]: OK

查看 服务的状态:

$ stackato apps

+--------------+---+---------+------------------------------------------+------------+
| Application  | # | Health  | URLS                                     | Services   |
+--------------+---+---------+------------------------------------------+------------+
| tornado-chat | 1 | RUNNING | jia-tornado-chat.sandbox.activestate.com | mongo-chat |
+--------------+---+---------+------------------------------------------+------------+

10: 在浏览器中输入 ”http://jia-tornado-chat.sandbox.activestate.com“ 就可以访问服务了。


扩展阅读:

云平台服务一览:

http://www.ruanyifeng.com/blog/2011/08/list_of_cloud_platforms.html

http://blog.csdn.net/bpy/article/details/6705391


#NOTE: 如果对于stackato 的安装有任何疑问,欢迎交流!

#  这里只是用 python -tornado 举例,当然了,你可以发布别的代码。 如果发布成功或失败,都可以给我回复。:D

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值