首發於 Jenkins 中文社群
Helen Beal 曾經在一次討論什麼是 DevSecOps 工程師的會議上發言。令她驚訝的是,在與會人員中,許多人都沒有將安全機制引入 DevOps。在與人們討論之後,她將大家的問題總結為三類:安全機制會製造額外的隔閡;組織中的人很難理解 DevOps,因此安全機制可能會造成更多困惑;可能沒有為安全機制預留空間。
當然,Helen 不同意這些觀點。她在技術領域從業近20年,專注於軟體開發生命週期,對於 DevOps 和DevSecOps 有一些自己的理解。她自稱為 Ranger4 的 「DevOpsologist」,因為她幫助那裡的組織實現 DevOps。她在世界各地分享知識,並且她將參加我們在 2018 年的 Nexus User Conference ,討論工具倉庫及其在 DevSecOps 工具鏈中的角色。
從高層次來看,Helen 為 DevSecOps 提出了一些重要建議:
- 確保安全是每一個人的職責
- 認識到安全人員的匹配限制。平均而言,人員比例為 100 名開發人員 : 10 名運維人員 : 1名安全人員
- 儘早移交產品進行測試和驗證。缺乏足夠的安全人員會造成一定的約束,移交併自動執行任務可以減少瓶頸並提前解決問題。
- 積極主動地降低風險
- 培養安全文化
Helen 花了一些時間闡述如何培養安全文化,組織在維護系統和人員行為安全時可以採用的一些關鍵原則和行動。
行為安全使個人和團隊能夠以安全的方式行事。為了培養行為安全,她建議:
- 讓人們意識到,失敗是一個學習機會
- 確保團隊之間有共同的責任和目標
- 不要吝嗇花時間做實驗
- 使用可協作的平臺來分享學習經驗和最佳實踐
- 對實驗的過程進行回顧,並確保有後續
她提到了幾個真實的例子,例如 Esty,LEGO 還有 P&G 的「失敗獎勵」以及 Spotify 用來展示和追蹤失敗的「失敗牆」。
系統安全能夠保障你的基礎設施安全,她關於培養系統安全的建議包括:
- 用持續整合進行構建
- 使用部署自動化來驅動一致性和可審計性,並允許即時重新部署上一個已知的可用版本
- 用 ChatOps 來歸類問題和事件
- 使用應用程式效能管理以提早發現問題並警告
- 降低出現問題波及範圍,例如使用功能開關,金絲雀測試,藍/綠環境和微服務
- 將產品需求與服務檯相結合
- 養成使用混沌工程來找到失敗原因的習慣
在講述 DevSecOps 案例並說明如何灌輸安全文化後,她將話題轉向如何使用製品倉庫。 畢竟,這是一個 Nexus 會議,製品倉庫是 Nexus 的特色。
她引用了 Manfred Moser 的話:「開發軟體中沒有製品倉庫和製造業中沒有倉庫是一樣的。」你不會奢望在沒有倉庫的情況下開辦工廠,軟體開發也一樣。製品倉庫儲存了你每次構建的結果,並且確保你擁有可用的構建。
製品倉庫位於 DevOps 工具鏈的整合階段,儘管其在構思階段可被用來表示你想使用的工具是可用狀態。
如果沒有開源策略,你就不應該使用製品倉庫。製品倉庫會自動執行你的開源策略,這樣就不會像 35% 的組織一樣有開源策略但忽略它。
Helen 利用 Nexus Lifecycle 來告訴開發人員如何更好地使用製品,降低風險,並協助運維和安全部門確保使用了正確的軟體。
最重要的是,如果你還沒有用上 DevSecOps ,那你應該儘早啟用。這是未來的趨勢,它已經渡過了發展期成為了一個成熟的概念,也有成熟的工具來幫助你。這會花一些時間,但一定是值得的。
如果對 Helen 的整篇演講感興趣,可以在 此處 免費觀看。
譯者:李煜東