部署的意思就是把程式從開發環境變更到使用者能使用的正式環境。而部署的環境有分三種:
開發環境:當在開發程式時做測試使用的。
測試環境:模擬真實的環境,給測試團隊來做驗證。
正式環境:實際上線後,使用者能正常使用使用的環境。
首先當然需要建置好程式碼,再來講他們分為前後和端做打包,前端打包成 HTML、 CSS、 JAVASCRIPT或者是圖檔等靜態檔案,後端則打包成映像檔,而映像檔的意思是指無論在哪個不同的作業系統,都能跑出相同檔案,使得程式較為一致。
第二點需要準備一個伺服器和一個 database,可以自己簡單架設一個 AMP 伺服器,把東西打包好就能直接安裝啟動。
再來就是把程式放到伺服器上 可以用 Apache當 web server來管理,需要測試程式能正常運作,前端介面和 API也不能出現異常才算完成。
最後就是要持續進行 CPU和記憶體的監控,以便能定期偵測狀況並進行修復和系統更新。
1.單機部署
所有的結構都進行在同一個伺服器上,容易部署,建構簡單,缺點是不適合大量資料出入,有可能會無法負荷導致崩潰,較適合小型專案的運算。
2.分離部署
前後端獨立打包在不同的 Server,分開的好處是前端可以直接進行快取,增加效能、減少消耗,而後端可以專注在 API的管理,一但出問題可以較容易的進行維護。
3.多層部署
將系統分成多層,像是前端、 web層、應用層、資料庫層,相較分離部署來分工的更加清楚,整體的安全性和維護性也大大提升。
4.容器部署
採用映像打包將程式一體化,透過 kubernetes來管理部署,自動擴展,是適合大規模的雲端原生服務。
5.無伺服器部署
使用拆成 Functions,像 AWS Lambda,主要由雲端平台自動管理,好處是沒有伺服器需要維修,但有啟動延遲,比較適合驅動程式的應用。