目前 LINE 已經可以透過 Webhook 使用前面的 AI 睡眠分析功能,不過前面是使用 ngrok 建立 Public URL,所以 Java Server 實際上還是執行在自己的電腦上。也就是說,只要 Java Server 或 ngrok 關閉,LINE 就沒有辦法繼續連到 Backend。所以今天要進一步了解 Deployment(部署)。
就是將原本在本機開發、測試的程式,從開發環境放到可供使用者存取與執行的環境。以目前的專案來說,就是把原本在自己的電腦上執行的 Java Backend,放到外部 Server 上執行,跟之前最大的差別就是 ngrok 只是讓外部可以連到我的本機,而 Deployment 是讓 Backend 本身就在外部的執行環境中運作。
它是讓程式從開發階段走向實際使用的重要一步。如果程式只執行在自己的電腦上,其他使用者就很難持續使用這項服務。因此當一個應用程式完成開發後,還需要透過部署,讓它可以在實際的環境中提供服務。正式上線後,需要進一步考慮服務的穩定性、安全性以及後續更新。例如 Server 是否能正常運作、API Key 是否安全保存,以及程式更新後能不能正常提供服務。
Development(開發環境) 開發人員在本地或開發伺服器上撰寫和修改程式,進行功能開發和初步測試。
Testing(測試環境) 在正式提供服務前,用來確認不同功能整合後能不能正常運作。
Production(正式環境) 真正提供給使用者使用的環境。
部署時還有一個需要特別注意的地方,就是前面設定的環境變數並不會因為 Java 程式被部署,就自動出現在新的 Server 上,因此需要重新設定。