第二十一章 實戰案例 - DevOps

版本說明

本章範例中使用的映象版本遵循以下原則:

  • GitHub Actions (actions/checkout@v6 等) 採用大版本標籤,代表最新的功能版本與穩定性的平衡
  • 程式語言映象 (golang:1.26-alpinerust:1.95-alpine 等) 採用次版本標籤,確保 API 穩定性同時獲得安全更新
  • 資料庫映象 (postgres:16-alpineredis:8-alpine 等) 採用大版本標籤,便於獲得修復和改進
  • 基礎映象 (alpine:3.21debian:12 等) 採用大版本或次版本標籤,避免 latest 以確保可再現性
  • 實際專案中應根據需求調整版本,生產環境建議定期更新以獲取安全補丁

DevOps 背景介紹

DevOps 是一種重要的開發和運維文化,強調開發團隊和運維團隊之間的協作和自動化。它致力於透過自動化和流程最佳化,加快軟體交付速度,同時提高系統的穩定性和可靠性。Docker 作為容器化技術的領導者,已成為現代 DevOps 工作流中不可或缺的工具。透過容器化應用,開發團隊可以確保『一次建立,處處執行』,消除開發、測試和生產環境的差異,大大簡化了部署流程。

Docker 在 DevOps 中的角色

Docker 在 DevOps 工作流中承擔多個關鍵角色。首先,它標準化了應用的開發和部署環境,使得團隊成員在相同的 Docker 容器中工作,避免了『在我的機器上可以執行』的問題。其次,Docker 與 CI/CD 流程無縫整合,透過自動化的映象建立、測試和部署,實現快速的迭代週期。此外,Docker 還支援微服務架構和容器編排,使團隊能夠更靈活地擴充套件應用和管理基礎設施。

CI/CD 通道的重要性

持續整合與持續部署 (CI/CD) 是現代 DevOps 的核心。透過自動化的程式碼檢測、測試、建立和部署流程,團隊可以更加頻繁地發布新版本,同時保持系統的穩定性和可靠性。Docker 在 CI/CD 中扮演了重要角色:

  • 標準化建立環境 - Docker 確保開發、測試和生產環境完全一致,消除了環境差異帶來的問題
  • 加速流水線 - 容器的快速啟動和輕量級屬性,大幅加快了 CI/CD 流程的執行效率
  • 靈活的測試框架 - 可以輕鬆建立短生命週期的測試容器,並行執行多個測試
  • 自動化映象發布 - CI/CD 工具可以自動建立、掃描、標記和推送 Docker 映象到倉庫
  • 藍綠部署和金絲雀發布 - 利用容器的隔離性和可重複性,實現高階發布策略

本章將透過介紹 GitHub Actions、Drone 等流行的 CI/CD 工具,展示如何在實際專案中建立完整的自動化流水線。我們還將示範如何在本地開發環境中整合 Docker,使用 IDE 的容器開發外掛,加快本地迭代週期。

本章學習目標

透過學習本章內容,你將能夠:

  • 理解 DevOps 文化、CI/CD 流程和容器化的緊密關係
  • 掌握完整的 Docker 工作流,從程式碼送出到線上部署的每一個環節
  • 學習如何使用 GitHub Actions 實現自動化 CI/CD,以及工作流的編寫和最佳化
  • 瞭解 Drone 等第三方 CI/CD 工具的架構、部署和設定方式
  • 學會在本地 IDE (VS Code) 中整合 Docker,利用容器開發工具提升開發效率
  • 掌握實戰中常見的 DevOps 場景、最佳實踐和故障排查方法

章節內容導向

第 166 页,共 196 页
使用 mdPress 构建