重點摘要#

  • 應用程式生命週期中超過 80% 的時間花在維護階段
  • 開發和維運需要不同的技能組合,架構師設計時必須考慮維運人員的需求
  • 盡早將維運負責人納入專案團隊
  • 可追蹤性、審計和日誌對維運至關重要

詳細內容#

應用程式的支援和維護絕對不應該是事後才想到的事。超過 80% 的應用程式生命週期都花在維護上,因此在設計時就應該高度關注支援和維護的問題。如果忽視這一點,你的應用程式將從架構師的夢想變成一頭可怕的野獸。

開發與維運的差異#

大多數架構師設計應用程式時只想到開發者——有 IDE 和除錯器。但不幸的是,開發者和維運人員擁有不同的技能組合,開發/測試環境和生產環境也有不同的用途。

維運人員面臨的挑戰#

  • 無法重新提交請求來重現問題
  • 不能對「線上」資料庫重新執行金融交易來查看問題
  • 修復 bug 的壓力來自客戶和高層,而非專案經理和測試團隊
  • 生產環境中沒有除錯器
  • 部署需要排程和協調,不能隨意停機測試
  • 生產環境的日誌等級遠低於開發環境

忽視維運的症狀#

  • 大多數問題都需要開發者介入
  • 開發團隊和維運團隊關係緊張
  • 維運團隊討厭新應用程式
  • 應用程式經常被重啟來「解決」問題
  • 管理員沒時間調校系統,因為一直在救火

建議做法#

  • 理解開發和維運需要不同的技能組合
  • 盡早讓維運負責人加入專案
  • 讓維運負責人成為核心團隊成員
  • 讓維運負責人參與應用程式支援的規劃

設計時確保維運人員的學習曲線盡可能平緩。可追蹤性、審計和日誌至關重要。當管理員開心時,所有人都開心——特別是你的老闆。

— By Mncedisi Mawabo Kasper