甚麼是CI/CD?為什麼我們要重視這個呢?
在現代網站開發中,導入 CI/CD 流程已成為提升網站效能與部署效率的關鍵。透過 Jenkins,我們可以建立自動化測試機制,讓每次更新都先通過檢查後才進入部署流程。只有測試通過的程式,才會被安全地部署到 production server,避免錯誤上線。這樣的自動化流程,已是現代開發團隊不可或缺的一環。
為什麼開發流程要「自動化」?
在傳統的網站或應用程式開發中,工程師開發完功能後,還要手動:
- 把程式打包成可執行檔
- 傳到伺服器(Deploy)
- 重啟服務或測試功能是否正常
這些動作如果每次都靠人手處理,容易發生什麼事?
- 出錯(例如上錯版本、漏傳檔案)
- 花時間(每次部署都要等)
- 彼此協作困難(你改了,我要等你部署)
這就是為什麼現在絕大多數團隊都導入了「CI/CD 流程」,來讓整個開發 → 測試 →
部署的過程自動化、標準化、系統化。
CI/CD 是什麼意思?
CI/CD 是兩個英文縮寫的組合:
CI:Continuous Integration(持續整合)
簡單來說,工程師只要把程式碼推上 GitHub(或 GitLab),系統就會自動檢查與整合。 它做了什麼事情?
- 自動編譯程式碼
- 執行測試(單元測試、功能測試)
- 確認是否有錯誤
其中一個重要的步驟就是執行 單元測試(unit test),也就是自動檢查程式中最小功能單位是否正常運作,例如:
- 一個電商網站的折扣函式,輸入價格 100 和折扣率 20%,應回傳 80,單元測試會自動驗證這一點。
- 一個按鈕點下去是否真的會觸發預期事件?
這些 unit test 會在程式每次更新後立刻被執行,提早發現錯誤,避免 Bug 上線,大大提升了程式的可靠性。
提前發現問題,避免壞程式被併入主線上線。
CD:Continuous Delivery / Deployment(持續交付 / 部署)
這是 CI 的下一步。
一旦測試通過,就會:
- 自動把程式打包好
- 自動部署到伺服器(或 staging/測試環境)
- 完整替你更新上線版本
讓程式可以隨時穩定上線,不再靠人工操作。
只有在跑完所有自動化測試、確認系統功能都正常後,才會讓程式上 production server(用戶實際在使用的環境)。
這個流程確保了:
- Bug 不會跟著上線
- 開發與部署不再靠人手操作
- 整個流程可重複、可追蹤、穩定可靠
Jenkins 是誰?它為什麼這麼重要?
在實現 CI/CD 的流程中,Jenkins 是目前最知名、最多公司使用的工具之一。
它是一個開源的自動化工具,就像是「開發流程的管家」,幫我們串接所有動作,例如:
- 一旦程式 push 上 Git,就自動觸發 Jenkins 的流程
- Jenkins 執行測試、打包、部署等指令
- 成功後發送通知、更新網站,甚至發 Slack 給團隊
Jenkins 的好處:
- 可以彈性客製各種流程(支援 script、plugin)
- 社群活躍、文件完整
- 支援各種語言與平台(Node.js、Java、Python、Docker、K8s 等)
為什麼我們要重視 CI/CD?
導入 CI/CD,不只是工程上的「炫技」,它實際上會為整個團隊帶來效率與品質的根本性提升:
好處 | 說明 |
✅ 開發更快速 | 不用再等「資深工程師」部署,Junior 也能 push → 自動測試 |
✅ 降低錯誤率 | 每次修改都經過測試,減少人為失誤 |
✅ 回溯容易 | 出問題可馬上 rollback 或知道是哪次 commit 出錯 |
✅ 協作更順暢 | 團隊開發彼此不干擾,流程一致不怕踩雷 |
✅ 有助於 DevOps | CI/CD 是 DevOps 實踐的核心基石 |
CI/CD 是現代開發的基本功
一個好的產品,不只要寫得快,更要交付得穩。
導入 CI/CD,讓我們能:
- 更快速回應需求
- 更穩定推出版本
- 更安心維運線上服務
如果你還沒開始實踐 CI/CD,那現在就是最好的時機。
讓「寫完就能部署」成為日常。
鯊客科技全面使用Jenkins CI/CD 流程部屬更新專案,歡迎與鯊客科技洽詢更多相關訊息!