Skip to main content

DevOps 介紹

什麼是 DevOps?

DevOps 是 Development(開發)與 Operations(運維)的結合,
是一種文化、一套流程,以及一系列技術實踐,目的在於加速軟體交付提升部署品質,並促進開發與運維的合作

DevOps 的核心理念:

  • 自動化一切:從程式碼提交、測試、建置、部署到監控。

  • 跨部門協作:打破開發與運維的隔閡。

  • 持續交付價值:快速回應市場、快速推出新功能與修復。


DevOps 階段與活動

DevOps 的工作流程可依據軟體生命週期分為以下幾個階段,每個階段都可以導入自動化工具:

階段活動內容工具範例
計劃 Plan需求討論、任務分配、版本規劃Jira、Trello、GitLab Issues
開發 Develop編碼、版本控制、程式碼審查Git、GitLab、VS Code
建置 Build編譯、打包、建構程式與依賴Webpack、Gradle、npm
測試 Test單元測試、自動化測試、安全測試Jest、Selenium、SonarQube
部署 Release發布到測試環境或正式環境Docker、Kubernetes、GitLab CI
運行 Operate系統監控、日誌紀錄、維運Prometheus、Grafana、ELK
監控 Monitor監控效能、錯誤、使用者回饋Sentry、New Relic、Datadog

DevOps 的優勢與實踐重點

優勢:

  • 快速交付產品與功能(開發週期大幅縮短)

  • 提升軟體品質(透過自動測試與監控)

  • 降低風險(小步快跑、持續部署)

  • 團隊合作更加順暢(開發與運維協作無縫)

  • 回應市場變化更迅速

實踐重點:

  1. 導入版本控制(如 Git)

  2. 建立 CI/CD 自動化流程

  3. 落實基礎建設即程式碼(IaC)

  4. 採用容器化與雲端部署(如 Docker + K8s)

  5. 強化自動化測試與監控機制


CI / CD(持續整合 / 持續交付)

CI(Continuous Integration)

  • 程式碼每次提交都會觸發自動建置與測試。

  • 目的:及早發現錯誤,讓程式始終處於可運行狀態。

CD(Continuous Delivery / Deployment)

  • Delivery:自動將程式發佈至預備環境。

  • Deployment:自動部署至正式環境。

  • 目的:快速、安全地將新版本送到用戶手中。

CI/CD 工具範例:

  • GitLab CI/CD

  • GitHub Actions

  • Jenkins

  • CircleCI

  • Travis CI


GitLab 實作:CI/CD 簡單範例

一、專案架構簡述:

my-app/
├── .gitlab-ci.yml ← GitLab CI 的設定檔
├── index.js
└── package.json

二、.gitlab-ci.yml 範例:

stages:
- test
- build
- deploy
test:
stage: test
script:
- echo "執行測試階段"
- npm install
- npm run test
build:
stage: build
script:
- echo "執行建置階段"
- npm run build
artifacts:
paths:
- dist/
deploy:
stage: deploy
script:
- echo "部署到伺服器"
- scp -r dist/* user@server:/var/www/html/
only:
- main

三、實作流程:

  1. Push 程式碼到 GitLab。

  2. .gitlab-ci.yml 被偵測並執行。

  3. GitLab Runner 會自動依據階段執行指令:

    • 測試 → 建置 → 部署