跳到主要內容

發表文章

目前顯示的是 3月, 2012的文章

搬出 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 就死掉一...

show