先用一句話理解
理解 Server、VM、Container、Docker、Kubernetes、DNS、CDN、Git、GitHub、Commit、Branch、CI/CD 與 Rollback。
不要只記縮寫。要能回答:這個技術是什麼類型、負責什麼、與哪些工具相依、出問題時要查哪一層。
部署與維運:基礎名詞與具體例子
| 名詞 | 白話解釋 | 使用情境 |
|---|---|---|
| Server / Linux | 伺服器提供服務;Linux 是常見作業系統。 | Linux 主機提供後端 API。 |
| VM | 虛擬機器,模擬具獨立作業系統的電腦。 | 在雲端 VM 部署服務。 |
| Docker / Container | 用容器封裝應用及依賴,提供較一致的執行環境。 | 封裝 Python API 與相依套件。 |
| Kubernetes | 管理容器化應用的部署、擴縮和復原。 | 在多節點管理容器服務。 |
| Serverless / Edge | 由平台代管底層執行,Edge 可將運算接近使用者。 | 用 Workers 執行 API。 |
| AWS / Azure / GCP | 提供運算、儲存、網路等服務的雲端平台。 | 部署 App 與資料服務。 |
| Cloudflare | 提供 CDN、DNS、安全及 Workers 等網路平台服務。 | 用 DNS 與 Workers 提供網站。 |
| DNS / Domain | 網域是名稱;DNS 負責解析名稱。 | 將域名解析到網站服務。 |
| CDN | 由分散節點加速內容傳遞。 | 圖片由附近節點提供。 |
| Git / GitHub | Git 管理版本;GitHub 提供託管及協作。 | 保留修改記錄、審查程式。 |
| Commit / Branch / Pull Request | 記錄變更、隔離開發與提出合併審查。 | 在功能分支開發後提 PR。 |
| CI/CD | 持續整合與交付/部署的自動化。 | 通過測試才部署新版。 |
| Rollback / Monitoring | 回復版本及監控應用健康。 | 出錯時快速切回穩定版本。 |
常見混淆:它們究竟差在哪?
Docker vs Kubernetes
Docker 是容器相關工具;Kubernetes 是編排平台。
VM vs Container
VM 一般包含獨立客體 OS;容器共享宿主核心的相關能力。
Git vs GitHub Actions
Git 記錄版本;GitHub Actions 可實現自動測試與部署。
實作時的三個檢查點
- 確認網站實際部署在哪個平台、是否有正式與測試環境。
- 為每次部署設定自動測試及可回復的版本。
- 先監控錯誤與成本,再考慮是否需要 Kubernetes。
常見問題 FAQ
每個專案都需要 Docker 嗎?
不需要。靜態網站及部分託管平台可以不直接使用 Docker。
Push 到 GitHub 就自動上線嗎?
只有在事先設定部署工作流程或平台整合時才會自動上線。