iT邦幫忙

2025 iThome 鐵人賽

DAY 29
0

有了 Dockerfile 之後,就可以準備把 To-do List API 部署到雲端上了!今天一樣會先分享一些雲端部署的內容,明天就會讓 To-do List 走上雲端了~
/images/emoticon/emoticon02.gif

雲端部署是現在開發中很重要的一環,了解雲端部署的概念和做法,對之後不管是個人要做 side project 或是工作技能提升,都很有幫助!

今日大綱:

  1. 什麼是雲端部署
  2. 三種雲端部署的方式
  3. 雲端部署注意事項
  4. 明日部署前的準備

1. 什麼是雲端部署

「 雲端部署 」就是把原本在本地端開發好的應用程式或服務,放到雲端主機/平台上執行,其他人只要知道你的網址,都可以使用你的服務。(全世界都能訪問

它把本地開發環境轉成公開可存取、可監控、可伸縮的線上服務了。
也就是說,要把原本的網址:

http://localhost:8080

變成:

https://your-domain.com

為什麼要部署雲端上呢?

主要是可以讓我們開發的服務/產品:

  • 公開:不用在本機開 server,只要有網址就可以使用!
  • 穩定:雲端平台提供自動重啟、監控、附載平衡等功能。
  • 可擴展:若服務流量增加,可以橫向擴展。
  • 減少維運負擔:PaaS 型平台可協助處理系統管理、網路、SSL 等功能。
  • 自動化部署(CI/CD):從 git commit 到自動上線,提升開發效率。

2. 三種雲端部署的方式

目前雲端開發有幾種比較裳見的方式:

類型 範例平台 特點
PaaS (平台即服務) Render、Railway、Fly.io、Heroku 部署簡單、不用管理伺服器
IaaS (基礎設施即服務) AWS EC2、GCP Compute Engine、Azure VM 彈性高、可自訂環境,但維護成本高
容器化平台 AWS ECS / EKS、GCP Cloud Run、Docker Hub + Render 適合微服務架構,支援 CI/CD
Kubernetes GKE、EKS、AKS 或自架 k8s 企業級多服務管理、彈性、管理能力強

上述的類型學習曲線為 PaaS 最容易;Kubernetes 較高。

而 To-do List 專案選擇的部署方式就是 PaaS 服務裡的 Render,可以快速部署,了解雲端上線的過程,對於小專案來說很夠用~
大家可以依照自己的開發需求來選擇對應的雲端服務,讓效益最大化。


3. 雲端部署注意事項

把專案部署到雲端也有一些要注意的地方,畢竟雲端平台是一個讓我們放服務的地方,所以除了基本的機敏資料不要上傳之外,也會有一些雲端平台本身的維運成本或是開發上要留意的地方。

以下會列出幾個注意項目:

【 開發上 】

  • .env 檔案不要打包進 Docker image:這部分在 Docker 章節也有強調過,所以真的是非常重要!
    → 改用雲端的環境變數設定或是使用 -env-file 在 run 時掛載。
  • 資料庫選擇:需要有備份機制。所以如果服務是長期使用的話,不要使用 SQLite!(SQLite 多用於測試或是 demo)
    → 改用 PostgreSQL 或是 MySQL。
  • 明確指定 Port :可在 Dockerfile EXPOSE 或是環境變數中指定,而且要記得與平台的設定一致!
  • Log 日誌監控:讓服務把 log 輸出,讓雲端平台收集,不要寫死到檔案。有些雲平台會有介面可以看。
  • 應用程式 / 服務安全性:使用 TLS(平台通常自動提供)、限制 CORS、API Key / Authentication。

【 雲平台上 】

  • 成本估算:需了解免費額度的限制,並預估流量與資源使用,避免一不小心就超額。

4. 明日部署前的準備

把最新的 To-do List 專案先上傳到 Github 上做準備。
然後先到 Render 官網註冊帳號,明天就可以直接開始我們的部署流程。
Render 官網:https://render.com/

另外,附上一篇介紹 Render 的詳細文章給大家參考:https://ithelp.ithome.com.tw/articles/10255630
大家有興趣可以看看~


上一篇
Day28 - Docker 部署:讓 To-do List 跑在任何地方
下一篇
Day30 - 雲端部署:讓 To-do List 漫步在雲端
系列文
Go,一起成為全端吧!—— 給前端工程師的 Golang 後端學習筆記30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言