敏捷與安全不可兼得嗎?看完這篇文章後,我想說:未必!
摘要:敏捷與安全似乎矛盾,但如何共存?本文將為你解讀從「應用敏捷」到「應用敏捷+安全」的實現路徑。
起初,企業以傳統的瀑布式研發模式把軟體開發過程劃分為需求、分析、設計、開發、測試等不同的流程。這些流程有著嚴格的先後次序之分,只有當前面的流程結束之後,下一個流程才能開始運轉。這種開發方式好似瀑布的下落,由此命名為瀑布模型。
但隨著業務的發展,研發模式也在發生了不斷的演進,傳統基於階段的瀑布研發過程,導致當開發對於迅速變化的業務響應嚴重滯後,為此業界倡導通過敏捷的方式,快速迭代,小步快跑,持續集成,主動擁抱變化。
敏捷開發以用戶的需求進化為核心,採用迭代、循序漸進的方法進行軟體開發。把一個大項目分為多個相互聯繫,但也可獨立運行的小項目,並分別完成,在此過程中軟體一直處於可使用狀態。
如今,隨著移動互聯網的迅速發展,應用從需求到上線的TTM(Time to market)越來越短,普遍存在的開發和運維的「混亂之牆」成為了斷裂點,為此業界開始提倡DevOps的協作模式,敏捷精益的理念進一步延伸到運維側。同時,隨著雲原生基礎設施的建立和CICD技術的發展,DevOps已廣泛得應用到各個企業。
從「應用敏捷」到「應用敏捷+安全」
但是隨著數字化席捲各行各業,應用進入了我們生活的方方面面:人與人的互聯、物與物的互聯、人與物的互聯正在成為現實,應用對於人和社會的安全威脅也逐日提升。由於應用的安全防護和安全意識還普遍滯後,為此以Built-In Security和自動化為基本理念的DevSecOps開始得到重視。DevSecOps的理念在將安全融入敏捷過程中,即通過設計一系列可集成的控制措施,增大監測、跟蹤和分析的力度,優化安全實踐,集成到開發和運營的各項工作中,並將安全能力賦給各個團隊,同時保持「敏捷」和 「協作」的初衷。在這一理念中,企業的整個IT團隊目標統一,即在保障敏捷開發的基礎上,共同背負起安全的責任。
DevSecOps引入自動化安全
DevSecOps實際上是DevOps的延續和演進。雲原生技術加持下的DevOps使得應用開發和上線周期越來越短,傳統的安全團隊上線前介入的模式已經嚴重滯後,不僅不能有效的進行系統的安全防護,而且也會影響應用的交付速度。DevSecOps的最關鍵理念就是強調在應用的全生命周期都內嵌安全,同時提出安全的檢測和防護做到儘可能的自動化,將自動化融入安全,實現了品質、安全和速度的最佳平衡。安全應儘可能做到全場景,從基礎設施、程式碼、鏡像、到架構,同時需要做到覆蓋應用的全生命周期,從開發態、運行態直至運維態。
DevSecOps需要安全工具自動化以及平台化
在傳統的研發過程中,研發與安全割裂,主要是因為安全影響研發效率,但自動化的安全工具可以適用當前的敏捷開發需求。基於安全與DevSecOps的強烈訴求,華為雲正在逐步的將華為20年來深耕安全的能力通過雲服務的形式外溢,讓更多的企業能共享華為對於安全的先進理念和技術實踐,華為雲通過讓在DevOps的每個環節都通過規範、方法論和自動化的安全服務,來實現DevSecOps的理念,如在創建應用階段安全框架和編碼規範,嵌入IDE插件的程式碼檢查等。下面我們詳細逐一來看華為雲所實現的安全工具自動化以及平台化。
平台化:全流程雲原生DevSecOps平台
華為雲提供雲原生DevOps平台:華為雲DevCloud軟體開發平台。華為雲DevCloud在業界具有較高的影響力,得到了專業諮詢機構和客戶的官方認可,在全流程、支援的技術棧與安全可信角度有較強的競爭力,華為雲DevCloud為客戶提供了從需求/規划到運維的多個服務。
自動化工具與安全無縫連接
程式碼託管服務是DevCloud為客戶提供的穩定、安全的程式碼管理服務,該服務同時也支援了華為內部1100億行的程式碼管理,多個安全可信的措施,多倉協同和高並發。程式碼分析和程式碼檢查服務,也是華為自主研發的程式碼靜態檢查服務,沉澱了華為多年的高品質程式碼檢查規則集,支援的語言多,標準多,同時提供了自動化輔助缺陷修復的特性。
程式碼構建服務,為客戶提供了配置及程式碼的構建服務,支援豐富的構建語言和框架,同時通過多種技術實現10倍+的構建加速,並提供封閉的構建環境,保證構建階段的可信安全。雲測服務,為客戶大規模,高並發,全流程的智慧測試服務,提供測試管理,性能測試,API測試,移動測試等多種專業測試服務,並通過測試設計的智慧化,測試執行的智慧化和測試分析的智慧化,提升測試的效率和攔截問題的比例
同時,華為雲在DevOps的基礎上,陸續增加安全設計,安全合規,安全檢查,和安全防護的專業服務,通過服務化的介面和華為雲DevCloud進行深度集成。同時,在已有的運行、運維安全的基礎上,進一步全方面的加強網路安全、數據安全、應用安全與資料庫安全,讓雲原生的應用生得安全,活得安全。
而對於企業如何更好的實施DevSecOps,我們有以下幾個實踐:
- 安全可信應該是每個人的責任,而不僅僅只是安全團隊關心的事情。
- 重視架構解耦,架構解耦,低依賴,安全風險和影響範圍更可控。
- 重視自動化和知識協同,不斷提升效率,通過知識分享,組織和個人持續改進。
- 努力打造全功能團隊,團隊自治,破除部門牆,對商業和用戶負責。
安全可信+高效敏捷
從概念提出到現在,雲原生所帶來的敏捷、開放、標準化、輕量、松耦合與靈活的優勢是企業數字化轉型升級的基礎必選項。面對日益嚴峻的安全威脅和安全影響,雲原生加持下的DevSecOps 理念和實踐,將安全自動化內嵌到應用的全生命周期,在保證安全可信的同時,也依然能夠發揮雲原生所帶來的高效與敏捷。