為什麼企業 DevOps 實踐總是失敗?

2019-09-06 03:14:39

作者 | Pieter Danhieux
譯者 | 劉雅夢
與“區塊鏈”和“大資料”相似,“DevOps”這個術語目前是大型組織 IT 部門中的另一個流行語。

很人已經認識到需要更快的軟體開發生命週期;需要符合業務目標的更精確的過程,以及允許開發團隊和運營團隊之間更清晰的工作流和協作。DevOps 本質上是敏捷的、成熟的,並隨時準備接受不斷創新和快速部署的現代業務需求。

對於安全專業人員來說,這是一個非常好的創新方案:我們可以更早地將安全性注入到過程中,從而降低 bug 修復成本,並能避免潛在的故障。

問題是,很少有公司能夠真正成功地實現 DevOps。如果沒有在企業範圍內提供恰當的支援、培訓並獲得理解,它很快就會變成一個“累贅”。

那麼,實踐 DevOps 的問題在哪裡呢?目前 DevOps 的實踐方案有好幾種,但是一個有效的方案不僅僅是花哨的新工具、標題和團隊會議,DevOps 並不是一件容易的事情,從長遠來看,花時間來修復一個有問題的策略(或者從一開始就以正確的方式來實施它),就會減少一點痛苦。最終,它將帶來質量更高也更安全的軟體。

掙脫敏捷的束縛  

有一種誤解認為,一個組織必須在敏捷或 DevOps 之間二選一,選擇一條路徑,一條路走到黑。

但事實上,如果我們同時考慮兩者,並將兩者作為一個整體實現時,開發過程會達得最好效果。DevOps 不是敏捷開發的一個再造,而是它的一個擴充套件。如果期望過程完全是敏捷開發,或者完全不是敏捷開發,往往會把事情搞砸了。

敏捷開發支援跨職能團隊的原則,它從一開始就將設計人員、測試人員和開發人員聚集在一起,並致力於在整個專案過程中開啟溝通通道。它的目標是禁止孤立的交付並減少雙重處理,這兩者也是 DevOps 過程中的優勢。然而,DevOps 更進一步,它將系統、安全性和操作也引入其中,以提供一個健壯的、端到端的技能集,最終目標是向客戶交付完整的、功能強大的軟體。

在轉向更多以 DevOps 為中心的過程中,一個不可避免的痛點是孤立開發的風險可能會再次出現。通常,我們可以讓最初的敏捷團隊在一起工作,額外新增安全性和操作,但是這樣做的難點是沒有人非常確定該怎樣引入它們,引入它們應該做什麼以及它們的總體目標是什麼。

如果沒有明確的目標、跨職能的管理和與各方的直接溝通,DevOps 就無法工作,企業需要給一段適應期,需要謹慎的變更管理,如果所有團隊成員都深刻理解了 DevOps,那就成功了一半。

DevOps 越來越重視將安全最佳實踐作為過程的一部分,它揭開了該步驟的神祕面紗,並彌合了安全團隊與其他人之間的差距。如前所述,讓開發人員從一開始就能夠安全地進行編碼, 我們仍然還有很長的路要走,但是 DevOps 方法論的成功實施是在開發團隊中構建安全技能的良好基礎。

自動化不是萬能的,也不是最安全的  

DevOps 方法論的另一個特點是,它在一定程度上實現了軟體開發過程的自動化。這個概念的基石是持續整合和持續交付(CI/CD)原則,正如你所想的那樣,它們非常依賴於工具。

工具確實很棒。它們可以為軟體交付過程帶來前所未有的速度,且能以相對無縫的方式輕鬆地管理程式碼庫、測試、運維和儲存等。

然而,儘管有一天機器人可能會搶走我們所有的工作,並禁錮我們,當然現在這種情況肯定還沒有出現,但是對工具和自動化的嚴重依賴,可能會在未來為這種情況埋下禍根。掃描和測試可能無法發現所有的問題,程式碼可能未檢查,這會帶來巨大的質量問題,更不用說過程中的安全性問題了。攻擊者只需要一個後門就可以利用它來竊取資料,在質量和安全控制中放棄人為操作可能會造成災難性的後果。

折衷的辦法是確保人和工具的平衡。工具應該作為值得我們團隊信任的助手,幫忙我們實現專案目標。我們應該做到如下幾點:

  • 分配足夠的時間來讓大家熟悉所選擇的 DevOps 工具鏈。

  • 專注於有效的協作(以及工具是如何支援協作的)。

  • 處理過程中的任何隔閡,無論它們是基於技能 / 知識的還是基於工具的。

簡而言之,不要只依賴工具並做最好的打算。

DevOps 不是一個流行語,是一種文化  

即使是在最理想的情況下,變更管理也是困難的。對未知的恐懼甚至可以阻止最優秀的團隊成員提高他們的技能和擴充套件他們的視野。

僅僅喊口號“我們在做 DevOps”,或者是移動運營團隊的辦公地點,並不能真正實現成功的開發過程,同時也會讓很多人感到困惑,甚至是不滿。DevOps 不僅是一種開發方法論,也是一種文化運動,一個團隊應該有跨職能協作的心態。

一種偉大的 DevOps 文化是什麼樣子的呢?

  • 授權個人在開發過程中運用他們的專業知識,而不是僅授權領導者。

  • 團隊之間建立開放、誠實、相互尊重的溝通機制。

  • 在開發過程中,每個人都要對實現開發過程中構建質量和安全性的總體目標負責。

  • 每個人應該對業務中 DevOps 的定義、路線圖以及每個人角色的方式 / 內容 / 原因都有相同的理解。

多年以來,我一直強調在開發團隊中構建積極的安全文化的重要性,DevOps 也不例外。

正確的工具、知識及支援對於實現安全最佳實踐是至關重要的,我們可以看到發現的漏洞正在減少,並且團隊開始認識到保護資料的重要性。對於 DevOps,我們必須積極地為變革奠定文化基礎:確保每個人都瞭解自己的角色、價值和期望、以及開發過程中的整個專案目標和步驟。

原文連結:

https://devops.com/why-devops-implementation-is-often-unsuccessful-and-how-to-fix-it/


活動推薦

微服務落地涉及到以運維為首,包含IT架構、應用架構、組織架構等多個方面,這是一個循序漸進的階段性過程,而在每一個階段都會遇到運維、部署、安全等問題,包括組織協作上的問題。運維團隊如何在微服務架構採取有效的實施過程,請【掃碼】或點選【閱讀原文】瞭解詳細資訊。ArchSummit全球架構師峰會,7折限時直降2640元!瞭解詳情請聯絡票務經理灰灰:15600537884 ,微信同號。

已同步到看一看



熱點新聞