如今,關於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