Q132284591 发表于 2017-5-2 09:13:11

使用 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 command [<args>]
Try 'stackato help ' or 'stackato help options' for more information.

  7: 使用步骤2 申请的 standbox 密码,登陆Stackato 服务端。
  $ stackato login
Attempting login to
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

  修改 url 之后在进行一次login:
  
$ stackato login
Attempting login to
Email: jiaxiaolei19871112@gmail.com
Password: ****************
  Successfully logged into
  #NOTE: login, target 的使用方法可以通过 stackato help 的方法进行查看.
  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 ? : y
Application Deployed URL :
Application Url: tornado-chat.sandbox.activestate.com
Detected a Python Application, is this correct ? : y
Memory Reservation :
Creating Application : 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 ? : y
Application Deployed URL : jia-tornado-chat.sandbox.activestate.com
Application Url: jia-tornado-chat.sandbox.activestate.com
Detected a Python Application, is this correct ? : y
Memory Reservation :
Creating Application : OK
Creating mongodb Service : OK
Binding Service : OK
Uploading Application :
Checking for available resources: OK
Packing application: OK
Uploading (7K): 100% OK
Push Status: OK
Staging Application :
Staging Application : OK
Starting Application : 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
页: [1]
查看完整版本: 使用 stackato 发布 python-tornado 代码