IronWorker - 雲端批次程式平台

IronWorker是Iron.io這間新創公司所提供的雲端服務,Iron.io兩週前才剛完成A輪投資

IronWork提供批次程式執行的雲端平台,供Python、Node.js、PHP、Java、Ruby、Go、.Net等語言使用。程式佈署上去後,可以從網頁介面去設定排程,也可以查看每次執行的紀錄。可是免費版一個月只有10個運算小時 (批次程式的執行時間),較適用於批次需求量不大的人,月付49美金則可每個月有500個運算小時。

更新:
IronWorker 現在可以使用 Docker 來佈署(本文原佈署方式仍可使用),其運作方式是,將需安裝的套件事先安裝在 Docker 上,在開發者本地端測試無誤後,將 Docker 上傳到 Docker Hub。IronWorker 在執行時,會直接到 Docker Hub 下載相應的 Image 檔來執行。這樣,可以解決以往 IronWorker 佈署之後,程式環境不一致,導致執行失敗的問題。

佈署步驟
IronWorker Docker Image 範本


註冊

首先從http://iron.io註冊帳號,登入後會看到Dashboard,左邊顯示你帳號目前的使用額度,右邊則列出Project清單,若要新增Project,可按畫面上方New Project按鈕。
專案新增之後,可按下中間的Worker按鈕,會出現教學,教導你如何佈署程式,以下根據官方教學,逐步說明如何將程式佈署到IronWorker雲端環境。

程式設定與佈署

步驟一,要先下載iron.json檔案到你的專案資料夾根目錄下,iron.json是一個設定檔,內有Project ID和Project Token。然後要安裝用戶端的開發環境,要先安裝Ruby,然後用gem安裝iron_worker_ng這個套件。

步驟二,主要是要新增.worker這個檔案,這個檔案是專案設定檔,一樣放在專案資料夾的根目錄下。以node.js為例,如果你的主程式名稱是server.js,則worker檔要命名為server.worker。
以下是worker檔的內容(一樣以node.js為例),這裡是要告訴IronWorker,當程式佈署之後,需要如何安裝相關套件。
以下是Node.JS的worker檔範例
runtime "node"
stack "node-0.10"
exec "server.js"
file "package.json"
build "npm config set strict-ssl false; npm install --production"
full_remote_build true

以下是Python的worker檔範例
runtime "python"
stack "python-2.7"
pip "geocoded" #欲使用pip安裝的package
exec "server.py"
full_remote_build true

當程式和設定檔都就緒之後,最後是執行佈署的動作,可以用以下指令完成佈署。指令中的server為專案名稱。
iron_worker upload server


步驟三,是告訴你如何使用指令或程式做批次排程,如果沒有特殊需求,這個步驟可忽略,因為可以直接透過網頁去設定。

設定批次時間

程式佈署成功之後,再來要設定排程時間,從Scheduled Task頁簽進入後,點選右邊的行事曆圖示。

這裡可以設定排程時間,最小間隔可以設定到一秒跑一次。

查詢執行結果

從Tasks頁簽可以查看程式過去的執行狀況,程式執行成功或失敗的紀錄,這裡的資料只會保留一個月。
點選數字可查看明細,這裡會列出程式執行的起訖時間和總執行時間,點選最右邊的圖示,則會列出詳細的Log,以node.js來說,只要程式裡用到console.log印出debug結果,都會顯示在這裡。
如果程式執行過程出問題,IronWorker還會主動將錯誤Log寄給你。

結語

如果有少量批次需求的話,使用IronWorker是非常不錯的選擇。它的穩定度和服務也都不錯,使用一陣子之後,我還收到CEO來信詢問狀況,雖然想也知道不會是CEO本人的來信,但用戶收到CEO的來信,滿意度還是大加分啊。

從DevOps的角度來看,IronWorker可以隨時修改批次設定,也能隨時查詢批次程式的執行狀況,這一切只要透過網頁就能做到,對工程師來說相當方便。也就是說,只要能連上網路,隨時都能修改批次設定和看Log,只差在不能佈署程式。





相關文章

如何將電腦畫面經由 Chromecast 投放到電視螢幕上

Chrome 的檔案續傳功能

Mac與Android裝置傳輸檔案的方法

使用 Vysor 在電腦上控制 Android 裝置