使用 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: [email protected]
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: [email protected]
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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章