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 的優勢與實踐重點
優勢:
-
快速交付產品與功能(開發週期大幅縮短)
-
提升軟體品質(透過自動測試與監控)
-
降低風險(小步快跑、持續部署)
-
團隊合作更加順暢(開發與運維協作無縫)
-
回應市場變化更迅速
實踐重點:
-
導入版本控制(如 Git)
-
建立 CI/CD 自動化流程
-
落實基礎建設即程式碼(IaC)
-
採用容器化與雲端部署(如 Docker + K8s)
-
強化自動化測試與監控機制
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
三、實作流程:
-
Push 程式碼到 GitLab。
-
.gitlab-ci.yml
被偵測並執行。 -
GitLab Runner 會自動依據階段執行指令:
- 測試 → 建置 → 部署