什麼是佈署 (deployment)?
如果你想要把自己的作品用公開網址的形式傳給朋友看看的話,就必須把專案放到網路上專門的機器(如遠端的伺服器主機)執行。而這個從本機(localhost)移動到專門機器的動作,就叫「佈署 (Deploy)」(名詞為 Deployment)。
在實際進行「佈署」時,我們必須在機器內寫入指令,而這個過程原則上都會在不同的電腦上運行,因此「佈署」通常代表了一系列動作,包含在線上環境中架設主機、安裝環境、上傳並啟動專案。
佈署的基礎設施
「架設網站」這個概念通常具備以下基礎設施:
- 與外界交換資訊的網路
- 運算儲存或是其他維持運作所需的硬體
- 主要提供服務的軟體架構
- 廠房、電源等等⋯⋯
架設網站就像是租了一塊地,會有一個特定的地址(IP),建築物蓋起來之後掛一個招牌(Domain),大家就可以找到這家店,甚至還可以找房東租(DNS)房間來用,省了租一整塊地的成本。
什麼是雲端服務?
我們生活在雲端服務當道的 21 世紀,眾多供應商提供了各具特色的雲端伺服器服務。其中,與架設網站比較相關的服務大致可以被區分成三類:
- 提供硬體的 IaaS (Infrastructure as a service)
- 提供硬體與作業平台的 PaaS (Platform as a service)
- 還有連軟體服務也提供的 SaaS (Software as a service)
因此,我們在建設基礎設施時不需要從頭頂到腳趾都把伺服器硬體架設的細節摸透,也不用考慮空間使用以及後續人員維護,只要選定合適的雲端服務,動動手指頭就可以架設出一個功能完善的網站了!
作為一名網站工程師,我們就專注在「開發軟體、提供服務」這兩件事上。因此,最適合我們的雲端服務就是硬體軟體兼具的 PaaS(Platform as a Service,平台即服務)。使用 PaaS,我們只要把寫好的專案「推」到平台上,網站就能開始運作了,從不需要親自設定基礎設施、網路環境和硬體環境,甚至連作業環境也不太需要設定。
知名大公司提供的雲端服務有:
這些雲端服務的功能十分完整,意思是需要投入的學習適應時間會更多,因此實際應用時,企業通常會委任專職的「架構師」來負責操作,甚至會以發包的形式,請專門的公司協助使用這些服務。
相對於這些工具, Heroku 就顯得親切許多。
快速方便的 Heroku
在眾多的 PaaS 服務中,Heroku 應該是最早的服務商之一。它於 2007 年在美國成立,一開始只支援 Ruby 語言。但到了今天,Heroku 已經成為真正的多語言開發平台,支援 Java, Node.js, Scala, Clojure, Python, PHP, 與 Go 語言。
對入門新手而言,Heroku 最令人喜愛的地方,在於它提供了免費的使用額度。雖然免費方案提供的記憶體 (RAM) 只有 512 MB,而且如果應用程式在三十分鐘內沒有任何活動就會被「休眠」,不過對於還在練習階段的新手工程師而言,已非常足夠了!
Heroku 的免費方案
在大部分的情況下,我們都需要透過程式碼,在應用程式裡設定流量限制。但在 Heroku 上,你可以隨時透過它的操作介面,即時調整 dynos (它的資源單位),隨時改變伺服器負載(當然,帳單上的價格也會隨之變動)。
什麼時機適合使用 Heroku?
Heroku 有著親切靈活的介面,當你隨時想要升級流量或記憶體時,就像網購結帳一樣簡單,但就目前市場上的狀況來說,Heroku 的收費其實並不算便宜。
所以,什麼時候最適合使用 Heroku 發揮呢?Heroku 的一大優點就是它提供了免費解決方案,可以拿來當測水溫的工具。因此我們可以先用 Heroku 檢驗看看自己的產品是否能順利上線,然後再評估 Heroku 的運作架構,如服務串接、計價模式等等,看看接下來要如何選擇方案與服務。
在佈署到 Heroku 之前,我們需要完成這三件事:
- 建立 Heroku 帳號
- 在 Heroku 建立應用程式
- 安裝 Heroku CLI
建立你的 Heroku 帳號
就像一般的雲端服務,我們必須先建立帳號才能使用。請你進入 Heroku 平台,完成以下操作步驟:
1. 在官方網站上面點選「註冊 (Sign up)」並填寫個人資料。
「職業 (Role)」可以選擇學生 (student) 或「業餘愛好者 (hobbyist) 」,「主要開發語言 (Primary Development Language)」請選擇 Node.js。
2. 進行 E-mail 驗證;驗證成功的話,會收到如圖中的驗證信:
3. 設定完密碼,就建立好帳號了!
在 Heroku 建立應用程式
1. 進入Dashboard
啟用帳號之後,你會被連接到你的 dashboard (https://dashboard.heroku.com/apps):
圖中的程式語言圖示分別連接到相對應官方說明,有興趣的話可以讀一讀。現在,你只需要點選「Create New App」,就可以開始建立應用程式了!
2. 幫應用程式取一個響亮的名字
接下來請幫你的應用程式取一個名字,這個名稱將會成為網站 URL。如果一時想不到名字的話也沒有關係,Heroku 會自動幫你生成一個有趣的名字!
決定好名字之後,按下「Create App」建立應用程式。
3. 大功告成!
接下來,你會被導入你剛建立的應用程式管理介面,你可以在這個地方執行許多任務。
安裝 Heroku CLI
最後一個步驟,就是要安裝 Heroku CLI。這裡的步驟可能會有變動,所以我們建議你直接參考官方的「下載與安裝 Heroku CLI」文件。如果你是使用 macOS,我們建議用 Homebrew 來安裝。而如果是 Windows 系統,就可以直接點擊 Heroku 提供的下載連結。
完成所有準備事項後就可以開始用Heroku部署你的專案了!