2012年3月31日 星期六

搬出 GAE 的 3 月在 Heroku 玩瘋!

自從 2 月底北上參加 GTUG 辦的,小海大大講的關於如何將應用程式搬出 Google AppEngine 後,整個 3 月就在測試另一個 PaaS - Heroku

去年 Google AppEngine(簡稱 GAE) 調整價格之後,可以免費使用的資源變得相當稀少,對於需要大量運算的服務就會變得綁手綁腳,況且 GAE 的開發環境有點詭異,無法使用豐富的 Python 套件庫 PyPI,所有需要的功能不是使用 GAE 提供的 API 就是要自己重新打造,我不是什麼大大阿,雖然動手寫程式可以提升功力,但這樣動不動就要自己打造所需的功能,最後削減的是開發的熱情。

我只能說,短短的一個月,整個開發速度似乎飛了起來,原來不用 GAE 就好像打通了任督二脈一樣,原來除了 GAE 以外,還有這麼好玩又這麼自由的平台,即使也是需要動手建造,但手邊的工具、零件變多了,愈玩愈起勁!就這樣,我把改寫的 grs 包成蛇蛋,在 Heroku 上建立一個 Demo 網站(實作才知道還缺什麼功能)用 Flask 輕量的框架,學會完成前端瀏覽器的 cache 設定,也找到 Flask 用的 gzip 來壓縮內容傳輸。也試用 NoSQL 的 Redis,發現好用的 requests,找到可以取代 GAE Task 的 celery。也搞懂 virtualenv 環境區隔對開發來說很重要,懶惰還可以丟給 Travis CI 幫忙檢測在不同版本下安裝狀況。以上種種,每每的發現都能帶來不可思議的喜悅,這就是開發過程、好玩的地方!

Heroku 上面有滿多 Add-ons 可以使用,一個禮拜去看一次會發現又有很多新的 Add-ons 冒出來。這裡有個偷吃步的方式,雖然每個 add-ons 安裝後都會專屬的帳戶設定值,但這設定值沒有綁定在 app 上,所以其實多開幾個 app 互相使用。例如 A 是上線網站(web.1),可以用 B 跑 worker.1 幫忙 A 建立 memcache 或是 Task 服務。每個 app 有 750 hrs 免費使用,而唯一的計算單位就只有使用小時,沒有什麼傳輸量計算之類的,有限制大概就是每個 Dyno 的記憶體限定吧!

2 月不知道是怎樣,約每七天我的筆電 SSD 就死掉一次!但很神奇的整整 3 月份的沒出事,直到 3/31 才掛掉,雖然之前參考設定 SSD 的寫入次數,不過這次參考重新掃描一次,希望這次可以凍再久一點!

3 月北上參加 Mozilla Taiwan 入厝活動,和好多人交換意見,最後還是打算要去台北闖闖,要不就是多停留在台北一陣子,手指頭故障的國瑋學長聽說會住到年底,他那裡風景好,又能俯瞰得到大台北真棒!所以我應該會跪求他出租沙發給我睡吧!反正吃、網路都他包(誤)!

沒有留言 :

張貼留言