摘要:敏捷與安全似乎矛盾,但如何共存?本文將為你解讀從“應用敏捷”到“應用敏捷+安全”的實現路徑。
起初,企業以傳統的瀑布式研發模式把軟體開發過程劃分為需求、分析、設計、開發、測試等不同的流程。這些流程有著嚴格的先後次序之分,只有當前面的流程結束之後,下一個流程才能開始運轉。這種開發方式好似瀑布的下落,由此命名為瀑布模型。
但隨著業務的發展,研發模式也在發生了不斷的演進,傳統基於階段的瀑布研發過程,導致當開發對於迅速變化的業務響應嚴重滯後,為此業界倡導通過敏捷的方式,快速迭代,小步快跑,持續整合,主動擁抱變化。
敏捷開發以使用者的需求進化為核心,採用迭代、循序漸進的方法進行軟體開發。把一個大專案分為多個相互聯絡,但也可獨立執行的小專案,並分別完成,在此過程中軟體一直處於可使用狀態。
如今,隨著移動網際網路的迅速發展,應用從需求到上線的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 理念和實踐,將安全自動化內嵌到應用的全生命週期,在保證安全可信的同時,也依然能夠發揮雲原生所帶來的高效與敏捷。