DevOps

採用一組自動化建構、測試和部署工作模式來統合開發和操作團隊,加快軟體交付速度。

什麼是 DevOps ?有什麼重要性?

DevOps 是一組最佳工作模式和工具,能加快軟體交付速度。採用這項功能後,您將能享有可重複的結構化流程,用於建構、測試、發行和監控軟體版本的功能與效能,不必再進行冗長又容易出錯的部署作業。DevOps 工作模式可套用到軟體應用程式、工程系統或汽車等產品的內建軟體,以更快的速度、更高的效率及更優良的可靠性,為客戶提供價值。

overlaycontent

DevOps 如何運作?

DevOps 是一種敏捷延伸功能,著重於加快較低價值單元的交付速度,能提供共用流程和工具組,以便規劃、管理和監控軟體交付。只要採用這項功能,就不必再不定期發行軟體正式版本,而是改為透過持續整合/持續交付 (CI/CD) 流程為客戶提供價值,並適用於內建產品軟體。嵌入式 DevOps 模型能每隔一段固定時間提供軟體更新,其他軟體則透過無線 (OTA) 方式更頻繁地提供更新。

DevOps 的好處

速度

更常透過自動化方式發佈軟體更新,加快為客戶提供價值的速度。

更常透過自動化方式發佈軟體更新,加快為客戶提供價值的速度。

降低成本

充分提高效率和自動化程度,同時降低發行軟體的總成本。

充分提高效率和自動化程度,同時降低發行軟體的總成本。

提高品質

透過一致的自動化測試和效能監測,改善使用者經驗的品質。

透過一致的自動化測試和效能監測,改善使用者經驗的品質。

改善協同合作

協同合作,建構與分享共同的客戶價值願景。

協同合作,建構與分享共同的客戶價值願景。

提高客戶滿意度

縮短從要求到交付的週期,並長期保有競爭優勢。

縮短從要求到交付的週期,並長期保有競爭優勢。

延長產品生命週期

經常發佈軟體更新,以延長產品可用生命。

經常發佈軟體更新,以延長產品可用生命。

開發操作生命週期

由於 DevOps 具備持續性,因此從業者會利用無線迴圈,展示 DevOps 生命週期中各階段彼此之間的關係。雖然這個迴圈看起來是依序向前行進,但也象徵在整段生命週期中對常態性協同合作與漸進式改善的需求。

開發操作生命週期包含八個階段,分別代表開發 (迴圈左側) 與操作 (迴圈右側) 所需的流程、功能和工具。在每個階段中,各個團隊都要協同合作並彼此溝通,以維持一致性、速度和品質。

overlaycontent

開發操作最佳工作模式

開發操作流程彼此之間可能不盡相同,但大部分都包含下列階段:

協同合作

DevOps 能打破將開發、操作與測試團隊分開的障礙,讓這些團隊得以合併在一起,或單純朝共同的目標努力。

全方位的軟體發行規劃

連結程式碼變更與瑕疵、需求和測試案例。全方位的軟體發行規劃可讓團隊找出問題、執行回復、排定要求的處理順序,以及視需求同步處理硬體和電子交付物。

持續整合

開發人員可將程式碼變更合併到定期 (有時每天一次) 自動執行整合、編譯和測試的共用存放庫中,以降低整合成本。

持續交付

程式碼變更會定期 (有時每天一次) 進行回溯測試,並交付到生產環境中,以加快為客戶提供價值的速度。

無線 (OTA) 更新

透過無線方式提供要內建於產品中的新軟體。在多數情況下,更新會經過謹慎控管,以避免使用中產品發生不穩定的情況。

監控與分析

追蹤、分析和回報開發操作流程運作情形,並以更透明的方式管理問題提報程序。監控流程,並為團隊提供可瀏覽多專案開發操作價值資料流的單一檢視畫面。

DevOps 工具:Codebeamer

Codebeamer 是需求、風險和測試管理解決方案,可加快為客戶提供價值的速度,並協助團隊採用 DevOps 工作模式。您能夠以全方位的視角深入了解需求、程式碼和測試資料,妥善管理 CI/CD 流程,以及優先處理客戶要求、做出明智的回復決策,並享有可供稽核的可追溯性。您可以改用整合開發人員與測試工具 (例如 GitLab、Jenkins 和 Mattermost) 的集中式DevOps 中心,用來取代分散式的工具鏈。此外,您也可以簡化及管理工程系統和嵌入式軟體發行版本。

overlaycontent

DevOps 常見問題

採用 DevOps 面臨那些挑戰?

採用 DevOps 工作模式常見的挑戰包括:

孤立的團隊:如果團隊沒有共同的流程和目標,很可能會將不同的任務列為優先處理事項,不但拖延軟體交付進度又容易出錯,因此許多組織會將開發、測試及操作工程師合併成一個開發操作團隊。各團隊還是可以維持目前的組織結構,只是多了享有共同流程與目標的好處。只要所有團隊都能檢視一個共同的儀表板,就能團結合作,朝定義相同的成功目標邁進。

缺少自動化功能:如果希望經常推出軟體更新,就需要使用自動化功能推動建構、測試與部署的週期,否則團隊將耗費許多心力手動處理相關作業。經過整合的工具鏈能加快交付速度,同時提升開發操作品質。

缺少可追溯性:生命週期可追溯性可協助組織透過精準且容易掌控的方式,採用開發操作工作模式。無論是為客戶要求排定處理順序、回復造成效能問題的功能,或者為不同客戶/地區提供不同功能,都必須精細控管開發作業和發行週期。而只有整合開發操作與其他生命週期流程,才能使發行控管作業達到這樣的精細度。

DevOps 對於嵌入式軟體有何不同?

DevOps 工作模式可擴展到汽車、手機和醫療設備等產品中的嵌入式軟體,但有一些關鍵差異:

交付時間:智慧產品通常需要採用更容易掌控、更細微的交付工作模式,包括定時和分批的汽車軟體更新,以配合汽車定期保養時程。交付時間通常是盡量避免服務中斷並確保安全性。

安全和保全:許多智慧產品極度注重安全,因此所採用的開發操作工作模式中必須納入法規監管流程。這類產品必須符合可追溯性與稽核標準,也必須保障軟體更新稽核記錄的安全性。

交付方式:嵌入式軟體可以透過無線 (OTA)、傳統網路、CD 或其他有線交付方式提供更新。

異質環境:團隊可以在傳統開發操作環境中高度控管運算環境,指定要納入或排除特定軟體,並確保妥善處理所有軟體維護作業,而不是像操作團隊一樣沒有實體硬體裝置。內建軟體更新通常需要針對假設組態進行更複雜的測試,以確保更新在實際條件和組態之下能夠運作。