DevOps 沒有取代 SDLC,AI 也不會

🌏 Read this article in English


PR 速度翻倍了,rollback 次數也翻倍

上週的 retrospective,工程主管在白板上貼了兩張圖。

左邊:PR merge 數量,三個月內從每週 32 個跳到 71 個。

右邊:production rollback 次數,從每月 2 次變成 5 次。

「AI 確實讓我們寫得快了。」他說。

「那為什麼 rollback 也跟著翻倍?」一位 Senior 問。

「被 rollback 的 PR,全部都通過了 CI。」

會議室安靜了幾秒。

這不是個別案例。

很多團隊上了 AI 之後,都遇到同樣的反饋落差:

  • 寫程式碼的速度上去了。
  • 但 review、測試、部署這條反饋鏈,還是用三年前的密度。

差距不是工具好不好用,是「流程有沒有跟上工具的速度」。


先說清楚,SDLC 從來沒有過時

很多人聽到「SDLC」(軟體開發生命週期),覺得這是舊時代的遺物。

「現在都 Agile 了,誰還畫甘特圖?」

「DevOps 就是快,SDLC 太慢了。」

先承認一件事:SDLC 從來沒有過時。

它是一個框架

定義了軟體從誕生到死亡的「階段」。

不管你是用 Waterfall、Agile、還是 DevOps,你依然要經歷這些階段:

  1. 需求分析
  2. 設計
  3. 開發
  4. 測試
  5. 部署
  6. 維護

DevOps 沒有取代 SDLC。

DevOps 是改變了執行這些階段的方式。

DevOps 不是工具,是文化。

想像一下蓋房子:

  • SDLC 是建築流程:打地基 → 砌牆 → 裝電 → 粉刷。
  • DevOps 是建築文化:工人和設計師一起開會,而不是各做各的。
  • CI/CD 是自動化機械臂:自動砌牆、自動噴漆。

你不能用機械臂(CI/CD)取代流程(SDLC)。

沒有流程,自動化只會把既有瓶頸放大。

沒有流程,自動化只會把既有瓶頸放大。

這句話值得重複一遍。

因為很多團隊以為買了 Jenkins、設定了 Pipeline,就是 DevOps 了。

但現實是:

  • 測試失敗了,工程師不知道怎麼修。
  • 部署後,Production 環境指標異常。
  • 團隊還是各做各的,Dev 抱怨 Ops 慢,Ops 抱怨 Dev 亂。

這就是「沒有 DevOps 文化的 CI/CD」。

它只是把舊流程自動化了而已。


三層架構:你的地圖

為了讓這篇文章不變成教科書,我們用一個簡單的三層模型來看清楚關係。

第一層:SDLC(定義階段)

SDLC 是「什麼」。

它回答:我們需要做哪些事?

在傳統模式下,這些階段是序列式的。

需求 → 設計 → 開發 → 測試 → 部署 → 維護

在高變動的情境下,這個序列的反饋週期會拉長 — 開發完成後測試才開始,測試通過後部署才動作,使用者收到的反饋常常是幾個月之後。

但在需求穩定的情境下,這套框架依然有效。

它提供了必要的紀律。

第二層:DevOps(改變執行)

DevOps 是「怎麼做」。

它回答:我們如何打破部門牆,讓流程變快?

DevOps 的核心不是工具,是文化

它要求開發和營運從對立走向合作。

在 DevOps 視角下,SDLC 的階段不再是孤立的島嶼,而是迭代式的循環。

需求 ⇄ 設計 ⇄ 開發 ⇄ 測試 ⇄ 部署 ⇄ 維護
          ↑_________________________↓
                 Feedback Loop

這個循環的關鍵,是短週期

一天部署多次,而不是半年一次。

第三層:CI/CD(具體實踐)

CI/CD 是「用什麼做」。

它是 DevOps 文化的具體實現

  • CI:持續整合。每次提交代碼,自動構建和測試。
  • CD:持續交付/部署。測試通過後,自動部署。

CI/CD 橫跨了 SDLC 的開發、測試、部署階段。

但它不是 SDLC 的一個階段。

它是加速器

CI/CD 不會帶來 DevOps,DevOps 才會用好 CI/CD。

很多團隊搞反了順序。

他們先買工具,再談文化。

結果工具成了負擔。


AI 如何介入這三層?

現在,我們談談 AI。

很多人問:「AI 會取代 DevOps 工程師嗎?」

不會。AI 改變的是 DevOps 工程師花時間的地方——從重複勞動轉向架構判斷。

AI 在 SDLC 和 DevOps 中的角色完全不同。

SDLC 視角:AI 優化每個階段

在 SDLC 框架下,AI 是每個階段的「超級助理」。

GitHub Copilot、Cursor、ChatGPT 這幾年的進步,把「程式碼補全」從關鍵字匹配推到語意級別 — 這在 18 個月前還辦不到。下面這張表列出 AI 在 SDLC 各階段的切入點,每個工具都有自己的甜蜜點,重點是判斷你的工作流落在哪一格。

SDLC 階段 傳統痛點 AI 介入方式 具體工具範例
需求分析 需求模糊,開發者誤解 AI 輔助生成 User Story,檢查邏輯漏洞 GitHub Copilot Chat, ChatGPT
設計 架構決策依賴個人經驗 AI 輔助草擬架構圖,提出候選方案 Mermaid AI, Lucidchart AI
開發 重複性代碼,Context Switch AI 生成 Boilerplate,自動補全 Copilot, Cursor, Codeium
測試 測試覆蓋率低,邊界條件漏測 AI 生成測試用例,提出候選修復 Diffblue Cover, Testim
部署 環境配置錯誤,依賴手動 AI 生成 IaC 代碼,自動檢查配置 Terraform + AI, Pulumi
維護 技術債累積,沒人敢動 AI 分析代碼複雜度,建議重構 SonarQube + AI, CodeScene

關鍵洞察:

AI 在 SDLC 的價值,不是『寫完整個系統』,而是『縮短反饋時間』。

在測試規格清楚、程式邊界明確時,反饋時間可從天級縮短到分鐘級草案。

以前,測試團隊要等開發完成後一週才能開始寫測試。

現在,AI 在開發的同時,已經生成了測試用例。

反饋時間從「週」縮短到「分鐘」。

這就是 AI 加速 SDLC 的本質。

DevOps 視角:AI 加速持續交付

在 DevOps 視角下,AI 是整個 Pipeline 的「優化器」。

DevOps 的核心是持續交付

AI 讓這個循環轉得更快、更穩。

CI 階段:AI 輔助整合

傳統 CI:代碼提交 → 觸發 Jenkins → 運行測試 → 報告結果。

AI 增強 CI:

  1. AI 預先檢查代碼風格和潛在 Bug。
  2. AI 建議最佳合併策略。
  3. AI 自動生成 Changelog。

CD 階段:AI 輔助部署

傳統 CD:手動確認部署 → 執行腳本 → 監控日誌。

AI 增強 CD:

  1. AI 預測部署風險(基於歷史數據)。
  2. AI 輔助異常偵測與回滾建議;實際回滾仍需受 SLO、部署策略與人工授權約束。
  3. AI 優化資源配置(根據負載自動伸縮)。

但問題是:

很多團隊以為上了 CI/CD 就是 DevOps。

如果沒有 DevOps 文化,CI/CD 只會變成「自動化的混亂」。


常見混淆:為什麼 CI/CD 沒有發揮預期價值?

你買了 Jenkins,設定了 Pipeline,代碼自動構建、自動測試、自動部署。

看起來很完美。

但現實是:

  • 測試失敗了,工程師不知道怎麼修。
  • 部署後,Production 環境指標異常。
  • 團隊還是各做各的,Dev 抱怨 Ops 慢,Ops 抱怨 Dev 亂。

這就是「沒有 DevOps 文化的 CI/CD」。

它只是把舊流程自動化了而已。

誤解一:CI/CD 是 SDLC 的一個階段

CI/CD 是橫跨多個階段的實踐。

它不是一個階段,而是一個流程

誤解二:DevOps 是開發者的事

DevOps 是整個團隊的事。

如果 Ops 不參與設計,如果 QA 不參與部署,DevOps 的協作效益會受限。

誤解三:AI 會取代 DevOps 工程師

AI 會接手「重複性勞動」。

但 DevOps 的核心是判斷

  • 什麼時候該部署?
  • 哪個 Bug 該優先修?
  • 架構該怎麼調整?

這些判斷,AI 無法獨立完成。

AI 可以提供候選方案與風險訊號,但責任歸屬與取捨仍需要人做最後判斷。


取捨:AI 加速的代價

AI 帶速度,也帶新的判斷成本。

風險一:過度依賴 AI

如果工程師完全依賴 AI 生成代碼,他們的技術能力會退化。

Trade-off:

  • 適合:快速原型、Boilerplate 代碼、學習新語言。
  • 不適合:核心業務邏輯、架構設計、安全敏感模組。

判準:

如果這個代碼出錯,會影響十萬筆用戶資料,不要完全依賴 AI。

如果這個代碼只是內部工具,可以用 AI 加速。

風險二:安全漏洞

AI 生成的代碼可能包含安全漏洞。

根據 OWASP 的 AI Security and Privacy Guide,風險來源於訓練數據中的不安全範例,以及模型對惡意輸入的誤判。

Trade-off:

  • 適合:快速開發,容忍一定風險。
  • 不適合:金融、醫療、政府等高安全要求領域。

判準:

在高安全領域,AI 生成的代碼必須經過嚴格的人工審查

風險三:技術債累積

AI 生成的代碼可能可維護性較低,抽象邊界與一致性需要額外審查。

如果團隊不重視代碼品質,技術債會快速累積。

Trade-off:

  • 適合:短期專案、MVP。
  • 不適合:長期維護的系統。

判準:

如果這個系統要維護三年以上,必須有 Code Review 機制。

AI 可以生成代碼,但不能保證代碼品質。

若缺少審查與練習機制,團隊可能降低對底層設計的敏感度。

這不是危言聳聽。

我見過幾個團隊,用了 AI 後,代碼量翻倍,但技術債也翻倍。

因為沒有人願意花時間去理解 AI 生成的代碼。


決策框架:可以從哪裡切入?

較穩妥的做法是先釐清成熟度。

用這個框架決定你的 AI 導入策略。

第一步:評估你的成熟度

成熟度 特徵 建議
初級 手動部署,無測試 先建立 CI/CD,再考慮 AI
中級 有 CI/CD,但手動測試 用 AI 輔助測試生成
高級 自動化測試,頻繁部署 用 AI 優化 Pipeline 和架構
專家級 全自動化,AIOps 用 AI 預測和自癒

第二步:選擇你的切入點

可以從單一痛點試點。

選一個痛點,用 AI 解決。

例如:

  • 痛點:測試覆蓋率低。
  • 解法:用 AI 生成測試用例。
  • 預期結果:測試覆蓋率從 40% 提升到 70%。

第三步:建立反饋循環

AI 不是設定完就結束。

你需要持續監控 AI 的效果。

  • AI 生成的代碼,Bug 率是多少?
  • AI 輔助的開發速度,提升了多少?
  • 團隊對 AI 的接受度如何?

關鍵洞察:

工具是放大器。放大的是你本來就有的能力。

如果你本來就沒有測試文化,AI 只會幫你生成更多低價值的測試。

如果你本來就沒有 Code Review 文化,AI 只會幫你生成更多缺少審查的程式碼。


三個低風險切入點

若要降低導入風險,可以先從以下三個工作流開始試點。

1. 建立 AI 輔助的 Code Review 流程

不要依賴 AI 自動 Merge。

讓 AI 生成 Review 建議,但由人類做最終決定。

具體步驟:

  1. 在 GitHub Actions 中加入 AI Review 步驟。
  2. AI 生成 Review 評論。
  3. 工程師審閱 AI 的評論。
  4. 工程師決定是否接受。

關於 Code Review 的實作細節:

我建議用 Copilot 或 CodeRabbit 這類工具。

但要注意幾件事:

  • 權限控制:確保 AI 不會讀取敏感資料。
  • 資料外流:確認公司政策是否允許將代碼發送到外部 API。
  • 誤報審查:AI 可能會提出不合理的建議,工程師必須具備判斷力。

2. 用 AI 優化你的 CI/CD Pipeline

檢查你的 Pipeline,找出瓶頸。

  • 哪個步驟最慢?
  • 哪個步驟最容易失敗?

用 AI 優化這些步驟。

具體步驟:

  1. 用 AI 分析 Pipeline 日誌。
  2. AI 建議優化方案(例如:平行執行、快取策略)。
  3. 實施優化。

3. 建立 AI 使用的團隊規範

不要讓每個人都隨意使用 AI。

建立規範,確保品質和安全。

具體步驟:

  1. 定義哪些模組可以用 AI。
  2. 定義哪些模組不能用 AI。
  3. 定期審查 AI 生成的代碼。

AI 時代,工程師的價值正在從「寫程式」轉向「判斷」。

AI 能加速寫程式碼,但判斷『該不該寫、寫得對不對』的能力,還是人的。

SDLC、DevOps、CI/CD,這三層架構不是對立的。

它們是層層遞進的。

  • SDLC 是基礎。
  • DevOps 是文化。
  • CI/CD 是實踐。
  • AI 是加速器。

加速器會優先放大既有流程的優點與缺口。

你的反饋循環,現在是天還是分鐘?


給主管的話術範例

如果你需要說服團隊或主管接受這個改變,可以試試看這些話術:

情境一:解釋為什麼要用 AI

「我們把重複性工作交給 AI,讓人把時間放在架構判斷與責任承擔。」

情境二:節奏與承諾

「這不是一次性的大改造。我們先做一個可逆試點,兩週後我給你數據。如果沒效果,隨時停。」

情境三:處理安全疑慮

「AI 生成的代碼,我會當作 Junior 的 PR 來 review。加上一份 checklist,確保沒有敏感資訊外流。如果出問題,責任在我,不在 AI。」

情境四:解釋成本與效益

「AI 在快速原型和 Boilerplate 上效率最高,這部分讓它接手。核心業務邏輯這條線,還是走資深工程師的判斷。」


Sources


DevOps 沒有取代 SDLC。DevOps 是讓 SDLC 的階段從「接力賽」變成「橄欖球賽」。

AI 加速的是「反饋循環」,不是「決策過程」。

Leave a Comment