`
tianshibaijia
  • 浏览: 1125925 次
文章分类
社区版块
存档分类
最新评论

使用 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 进行解压:

$ unzipstackato-0.3.13.0.18-linux-glibc2.3-ix86.zip

5: 赋予 它执行的权限:

$ chmod +xstackato-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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics