前言
Heroku 是一個平台即服務(PaaS),可自行在Heroku平台開發和佈署各種網站,好處是減少維護管理系統底層的成本,也透過簡單的介面來調整需要的硬體設備等級及資源,選擇適合自己的等級做升級。
以往開發測試的時候需要用到PaaS平台,而眾多的PaaS平台支援度與流量的使用都會收取費用,操作上也較為複雜,例如:AWS、阿里雲、京東、Azure和小米雲…等等,但以展示與測試方面來看網路流量較小,那Heroku平台就是不錯的選擇。Heroku操作相當簡單,可以讓開發者初期專心的開發程式,而不用煩惱管理機器或硬體維護。若網路流量變高,那Heroku就不太適合,必須改用其他的PaaS平台。
什麼是 PaaS?
平台即服務(Platform as a Service, PaaS)是提供運算平台與解決方案服務。以目前最常使用的即是Heroku ,Heroku 在2010年被Salesforce.com收購,目前Heroku 提供了大家一個以 Debian為基礎的平台架設管理,並支援Rudy、Java、Node.js、Scala、Clojure及Python等程式語言。
PaaS提供使用者將雲端基礎設施部署與建立至用戶端,或者藉此獲得使用程式語言、程式庫與服務。使用者不需要管理與控制雲端基礎設施(包含網路、伺服器、作業系統或儲存),但需要控制上層的應用程式部署與應用代管的環境。
PaaS將軟體研發的平台做為一種服務,以軟體即服務(Software as a Service, SaaS)模式交付給用戶,所以PaaS也是SaaS模式的一種應用,但PaaS的出現可以加快SaaS的發展,尤其是加快SaaS應用的開發速度。
PaaS 的服務也可透過簡單的介面來調整所需使用的硬體設備等級,可無縫地擴充處理突如其來的龐大瀏覽量,因此不需要關注底層的部分。
HeroKu 免費
- Dyno是運行和響應請求的應用程序的實例,欲執行網站就至少要一個Dyno,Dyno 有550小時/月的免費時數,若通過信用卡驗證,額外贈送450小時/月,總共免費時數為1,000小時/月,若多個Dyno執行則可分攤掉時數
- Dyno在30分鐘內沒有任何流量,系統自動進入睡眠狀態,睡眠狀態下則不消耗時數
- 睡眠狀態下Dyno收到請求,等喚醒約20秒啟動系統
- 儲存空間為512MB
Heroku 安裝
Heroku 申請一個帳號:目前申請Heroku 帳號是免費的,填寫一些基本資料即可申請,網址:https://www.heroku.com/
安裝Heroku CLI
Heroku CLI是一個用來管理、創建、提交等命令的工具,工具程式可在多平台上安裝,請找到自己適合的平台安裝。
Heroku CLI 安裝教學網站:https://devcenter.heroku.com/articles/heroku-cli
Heroku 使用教學
教學部分都使用MacOS的系統,在終端機下執行:
heroku: Enter your login credentials
Email: me@example.com
Password: ***************
Two-factor code: ********
Logged in as me@example.com
這樣之後在git push 部分就不用再輸入帳號密碼。
我們要在Heroku上建立一個應用程式可以使用網頁去新增,也能透過指令:
$heroku create name
name為你的應用程式名稱,亦可不指定,Heroku 會隨機幫你搭配,我的範例沒有命名所以系統幫我產生「stormy-retreat-68246」。
建立資料夾存放Git程式碼
請到你要執行的地方建立資料夾,將你的程式碼放入這個資料夾內,並且在終端機內導入在你新增的資料夾底下:
“stormy-retreat-68246”請更改成自己的APP應用名稱
部署 Heroku
接下來開始部署專案到平台上,請執行下面指令:
執行後可以看到以下畫面,我上傳Node.js的檔案
看到 remote: Verifying deploy.... done. 字樣,代表上傳成功;若上傳失敗,就必須自己找問題出在哪裡了,如果上傳成功可以在網頁右上角Open app開啟你的網站,或是直接輸入網址https://Your App Name.herokuapp.com/ ,以我的為例 https://stormy-retreat-68246.herokuapp.com/
重新部署
若專案有任何修改,就照以下流程操作:
- git add .
- git commit -am "make it better" 將目前的進度註記
- git push heroku master 上傳到平台
查看日誌(log)
檢查程式有沒有正常執行或查看錯誤,可以使用指令觀看Logs:
$heroku logs --tail --app stormy-retreat-68246
「stormy-retreat-68246」請更改成自己的APP應用名稱,也可以從網站上直接查看,功能在「More功能選項」底下第一個選項「View logs」
小結
你只是開發測試與Demo的話,HeroKu是不錯的平台,因為免費,550小時/月加上信用卡認證送的450小時/月,總共有1,000小時/月做使用,且可以在平台做很多應用,例如:掛載WordPress建立自己專屬網頁、使用App跟後端Node.js與資料庫溝通、透過Node.js轉發MQTT、Line Bot設定Webhook …等等,都是不錯的應用。若你的平台使用流量變高,免費時數被用完,就會停止你的程式,需要提升等級增加可用時數;在眾多雲平台中,HeroKu費用絕對不是最便宜,若要商用的話,請評估其他雲平台做轉換使用。
參考網站:
平台即服務 https://zh.wikipedia.org/wiki/%E5%B9%B3%E5%8F%B0%E5%8D%B3%E6%9C%8D%E5%8A%A1
維基百科Heroku https://zh.wikipedia.org/wiki/Heroku
評論