什麼是 DevOps?

已完成

DevOps 是人員、流程和產品的結合,可持續為客戶提供價值。 但到底是什麼意思? 讓我們加入 Mara 的團隊,了解 DevOps 是什麼、不是什麼,以及什麼讓菁英表現者成功。

Mara 與其團隊成員召開了簡短的會議。 每個人都已現身,但沒有人想待在那裡。 她在桌上放了一盒甜甜圈。

Mara:嗨,謝謝大家。 我想要更深入討論我們的價值流程圖,以及如何讓我們的流程更有效率。

Mara 上次開會後的價值流程圖還留在白板上:

Screenshot of a whiteboard showing the value stream map.

Mara:價值流程圖顯示為終端使用者提供價值時,什麼事做得沒效率。 就像大家一樣,我們可以改進。 我們可以決定先解決哪些方面。

Andy:這樣可讓我們看出問題所在,但還不知如何解決。

Mara:沒錯,這樣練習可以為我們指出正確方向。 至於怎麼解決問題,我想 DevOps 會有用。 在我的前一家公司,我們的部署率持續上升,前置時間變快很多,而且運作很少出狀況。 我們花了一段時間才達成,但很值得。 DevOps 不是快速修正。

Tim:我知道有人剛當上 DevOps 工程師。 我認為這對開發人員很有幫助。 這聽起來好像是你,Andy。

Mara:DevOps 不是職稱。

Amita:是不是有什麼軟體程式可以幫我們,還是範本? 或許有 DevOps 試算表。

Mara:DevOps 不是軟體。

Andy:比較像是方法。

Mara:不完全是。

Andy,Amita,Tim:那到底是什麼?!

Mara:我比較喜歡這樣定義:

DevOps 是人員、程序及產品的結合,以為使用者提供持續性的價值傳遞。

事實上,Microsoft 的雲端提倡者 Abel Wang 有一系列很棒的影片,可以很快回答我們的一些重大問題。 來看看 Abel 如何定義 DevOps:

詢問 Abel

我們的目標是提供客戶他們所喜愛的遊戲。 我們的方式是一起使用一組共用的做法與工具。

Amita:這是什麼意思? 有哪些共用的做法? 有哪些共用的工具?

Mara:所謂的做法就是:

  • 敏捷式規劃:我們會一起建立每個團隊成員和管理階層成員都可看見的工作待處理項目 (backlog)。 我們會排定項目的優先順序,以便知道我們必須先處理的事項。 待處理項目可以包含使用者案例、錯誤 (bug),以及對我們有幫助的任何其他資訊。
  • 持續整合:我們會將建置和測試程式碼的方式自動化。 每次團隊成員將變更認可至版本控制時,我們就會執行該作業。
  • 持續傳遞 (CD):CD 就是我們從建置到 QA 或生產環境的測試、設定及部署方式。
  • 監視:我們將使用遙測來取得應用程式效能和使用模式的相關資訊。 我們可以在逐一查看時使用該資訊進行改善。

Amita:我不了解自動化的測試。 我都是手動測試,Andy 把程式碼交給我之後,我就會測試。 我沒有時間可變更我做每件事的方式。

Tim:我才不會把你們派到前線去。

Andy:這會嚇壞上級。 他們不會去想什麼下一版,一定都是前一天就要。

Mara:我明白您對上級的看法。 我匯集這份講義,說明菁英執行團隊的組成。

菁英執行團隊的組成為何?

以下是 Mara 所準備的講義。 此資訊是以全球技術專業人員所進行的 DevOps 研究報告和調查為基礎。

DevOps 協助公司設法提高客戶採用度和滿意度。 不但可提升組織績效,通常也帶來更高的獲利能力和市場佔有率。

DevOps 使用計量建立四個類別,以比較表現傑出者與表現不佳者。

表現傑出者:

  • 更頻繁地部署

    事實上,有些團隊每天會部署高達數十次。

    像是監視、連續測試、資料庫變更管理,以及在軟體開發過程早期整合安全性,這些做法協助傑出表現者更頻繁部署,帶來更高的可預測性和安全性。

  • 減少從認可到部署的前置時間

    前置時間是將一項功能提供給客戶所需的時間。 藉由較小批次的處理、自動執行手動程序,以及更頻繁地部署,菁英表現者可以在數小時或數天內達成曾經需要數週或甚至數個月時間的工作。

  • 降低變更失敗率

    如果新功能在生產環境中出問題或造成其他功能中斷,使用者可能就不會再給您機會。 隨著高績效小組趨於成熟,變更失敗率也會隨時間而降低。

  • 更快速地從事件中復原

    發生事件時,菁英表現者能夠更快速地復原。 依計量行事有助於表現傑出者更快速復原,也更頻繁部署。

實作雲端基礎結構的方式也很重要。 雲端改善軟體交付效能,接受基本雲端特性的小組較可能成為表現傑出者。

外包可以節省成本並靈活調派人力,但必須用對地方。 績效不佳的小組比高績效小組更可能將整個職務 (像是測試和操作) 外包。

結論

不論是新功能還是改善,許多表現傑出者都有能力比競爭對手更快為客戶實現價值,DevOps 即是關鍵所在。 在這部短片中,Abel 說明為何應該深入了解 DevOps:

詢問 Abel

DevOps 不是什麼

在想 DevOps 是什麼時,也必須了解不是什麼。 DevOps 不是

  • 方法。
  • 特定的軟體。
  • 組織面臨挑戰時的快速解方。
  • 只不過是小組或職稱 (雖然這些稱呼在業界很常見)。