DevOps與DevSecOps有何區(qū)別?

2022-10-07    分類: 網(wǎng)站建設(shè)

DevOps、DevSecOps、左移、安全態(tài)勢(shì)、云原生……說(shuō)起現(xiàn)代應(yīng)用程序的開發(fā)生命周期,大家總會(huì)聽(tīng)到上面這些詞。它們作為解釋復(fù)雜流程的框架時(shí),作用積極,誤用或?yàn)E用則反而有害。無(wú)論是刻意為之還是無(wú)意間的誤用,用戶在面對(duì)這些流行詞時(shí)往往都無(wú)法準(zhǔn)確理解其背后代表的真正含義。

DevOps與DevSecOps有何區(qū)別?

DevOps與DevSecOps就是濫用與誤用之下造成不少負(fù)面影響的典型案例。自2009年被首次提出以來(lái),DevOps所涵蓋的內(nèi)容已經(jīng)發(fā)生過(guò)多次迭代,其中的負(fù)面含義往往源自交流背景中種種不切實(shí)際的烏托邦元素、以及難以真正落地的理想假設(shè)。盡管不少組織堅(jiān)稱自己以DevOps為中心,但卻幾乎沒(méi)多少人能真正準(zhǔn)確地做出定義。沒(méi)有正確實(shí)踐作為前提,DevOps向團(tuán)隊(duì)及企業(yè)做出的承諾也將無(wú)從談起。

DEVOPS與DEVSECOPS之間有何區(qū)別?

DevOps的實(shí)現(xiàn)依賴于五大核心組件: 敏捷框架、 一次構(gòu)建/隨處運(yùn)行的開發(fā)方法、一切即代碼、自動(dòng)化、溝通與協(xié)作。

在全面普及之后,DevOps能夠加快部署速度、降低故障率并增強(qiáng)恢復(fù)能力。而這一切都將幫助團(tuán)隊(duì)乃至企業(yè)打造出周期更短、適應(yīng)性更強(qiáng)、質(zhì)量更好的產(chǎn)品。但這也給我們提出了新的問(wèn)題——如何把安全考量融入進(jìn)去?DevSecOps的重點(diǎn),正在于以符合安全要求的方式擴(kuò)展DevOps核心原則。

理解DevSecOps的一種重要方法,在于拆分DevOps核心組件并審視適合在哪里插入安全要素。

(1) 敏捷框架——敏捷方法仍然是當(dāng)今軟件開發(fā)生命周期(SDLC)的主要內(nèi)容。與瀑布式開發(fā)方法相反,敏捷開發(fā)更強(qiáng)調(diào)短周期加小變化的組合,確保組織能夠針對(duì)客戶反饋?zhàn)龀隹焖俜磻?yīng)。

然而,敏捷框架面臨著安全隱患。運(yùn)營(yíng)反饋從何而來(lái)?是否符合安全要求?這類框架在加快開發(fā)周期方面確實(shí)表現(xiàn)不錯(cuò),但卻又常常受制于運(yùn)營(yíng)與安全要求。開發(fā)人員希望將運(yùn)營(yíng)與安全工作交給支持性工具負(fù)責(zé),自己則快速行動(dòng)、一路奮勇向前。

總而言之,敏捷專注于提升開發(fā)人員的行動(dòng)速度,也取得了不錯(cuò)的效果;但其中的重點(diǎn)只有開發(fā)本身,一切運(yùn)營(yíng)與安全元素都成為事后才考慮的元素。

(2) 一次構(gòu)建、隨處運(yùn)行——容器技術(shù)讓SDLC更上一層樓。作為一項(xiàng)真正具有顛覆性的技術(shù),容器使得開發(fā)人員能夠獨(dú)立于運(yùn)營(yíng)資源之外進(jìn)行編碼、構(gòu)建、運(yùn)行以及測(cè)試。如今,由于開發(fā)人員不必分神設(shè)置運(yùn)營(yíng)環(huán)境,他們可以將更多精力集中在測(cè)試、安全與擴(kuò)展方面。利用容器技術(shù),一切都可由Dockerfile所容納并實(shí)現(xiàn)隨處運(yùn)行。在提交最終鏡像之前,開發(fā)人員根本不需要接觸運(yùn)營(yíng)工作;但在整個(gè)過(guò)程中,運(yùn)營(yíng)仍然始終存在、在不知不覺(jué)中為開發(fā)者提供支持。

雖然存在這種開發(fā)與運(yùn)營(yíng)之間的隔絕,容器本身仍然是一項(xiàng)重大成就,而容器的起效又離不開編排工具的引導(dǎo)。

到這里,我們要請(qǐng)出下一位重量級(jí)嘉賓——Kubernetes。

Kubernetes使組織得以高效管理、擴(kuò)展、觀察并接入容器。它將Dockerfile的需求抽象為可以管理及擴(kuò)展的明確對(duì)象。這種聲明式抽象要求開發(fā)人員與運(yùn)營(yíng)人員開展溝通,進(jìn)而有效運(yùn)用Kubernetes。隨著時(shí)間推移,雙方的交流將逐漸升級(jí)、最終將安全問(wèn)題納入進(jìn)來(lái)。

(3) 自動(dòng)化——那么,安全或者運(yùn)營(yíng)團(tuán)隊(duì)又該如何要求、或者說(shuō)約束開發(fā)人員?

通過(guò)在不影響開發(fā)速度的情況下向開發(fā)人員提供直接反饋,自動(dòng)化成為實(shí)現(xiàn)DevSecOps的關(guān)鍵所在。單元測(cè)試、代碼分析與鏡像掃描已經(jīng)成為可輕松被添加至持續(xù)集成(CI)管道的常見(jiàn)工具,即時(shí)向開發(fā)人員通報(bào)必要修改。在開發(fā)團(tuán)隊(duì)的協(xié)作下,這些變更可以快速被集成至現(xiàn)有管道當(dāng)中。運(yùn)營(yíng)與安全團(tuán)隊(duì)?wèi)?yīng)該明白,他們?cè)皆缣峁┳詣?dòng)化反饋機(jī)制,開發(fā)人員就能越早適應(yīng)這種新的協(xié)作模式。

這一點(diǎn)對(duì)安全團(tuán)隊(duì)來(lái)說(shuō)極為重要。在組織當(dāng)中,安全團(tuán)隊(duì)往往被視為一種“令人心煩”的存在,因?yàn)檫@幫家伙總在強(qiáng)調(diào)根本不可能實(shí)現(xiàn)的所謂“100%安全系統(tǒng)”。但行之有效的DevSecOps可不是這么簡(jiǎn)單粗暴。

借助新的工具與好實(shí)踐,安全團(tuán)隊(duì)可以為開發(fā)人員提供穩(wěn)定且安全的基礎(chǔ)鏡像,由此不斷提升代碼質(zhì)量。安全團(tuán)隊(duì)還可以在管道中引入自動(dòng)檢查機(jī)制,監(jiān)控一切包含權(quán)限提升行為的YAML文件、未匹配網(wǎng)絡(luò)策略的命名空間或者存在漏洞及風(fēng)險(xiǎn)的容器鏡像。

(4) 一切即代碼——Kubernetes及其他編程語(yǔ)言的聲明性質(zhì),極大提高了基礎(chǔ)設(shè)施與應(yīng)用程序的可重用性與可理解性。YAML文件將幫助各團(tuán)隊(duì)準(zhǔn)確理解容器如何才能發(fā)揮預(yù)期作用。時(shí)鐘時(shí)間、卷掛載以及secret注入等一切行為都可通過(guò)這個(gè)文件及注釋進(jìn)行觀察。這種方法還讓代碼成功呈現(xiàn)為文檔的形式,以供隨時(shí)進(jìn)行版本控制并實(shí)現(xiàn)迭代變更。

但即使有了最新、最好的工具,如果無(wú)法正確記錄和編目具體問(wèn)題,一切努力仍然可能是徒勞的。沒(méi)有清晰的文檔,將很難跨團(tuán)隊(duì)分享經(jīng)驗(yàn)教訓(xùn)。而在嘗試新的管道配置時(shí),各團(tuán)隊(duì)掌握的經(jīng)驗(yàn)教訓(xùn)很可能對(duì)其他團(tuán)隊(duì)有著決定性的指導(dǎo)作用。因此,請(qǐng)使用代碼與版本控制系統(tǒng)充分展示變更內(nèi)容,并允許各方據(jù)此開展討論。否則隨著單一團(tuán)隊(duì)的快速推進(jìn),知識(shí)共享體系將土崩瓦解,各團(tuán)隊(duì)間再難開展充分交流。

(5) 溝通與協(xié)作——如果團(tuán)隊(duì)和個(gè)人間不進(jìn)行充分溝通,那么一切代碼、應(yīng)用程序與安全變更都將毫無(wú)意義。而IT部門中最常忽視的一大溝通要點(diǎn),在于對(duì)意圖的明確解釋。

DevOps與DevSecOps之所以難以發(fā)揮其全部潛力,一大核心原因就是相關(guān)行動(dòng)的意圖往往未被各方正確理解。安全團(tuán)隊(duì)并不是要阻礙開發(fā)工作,他們只是在完成自己的本職工作并保證應(yīng)用程序安全。而開發(fā)團(tuán)隊(duì)雖然也關(guān)心安全性,但他們面前的頭號(hào)難題永遠(yuǎn)是如何在限期之內(nèi)讓新功能順利上線。

組織必須努力彌合各團(tuán)隊(duì)之間的差距,專注于吸取教訓(xùn),鼓勵(lì)合理的嘗試失敗,并設(shè)定出切合實(shí)際的后續(xù)目標(biāo)。從文化角度來(lái)看,這種變化通常由高層自上而下推動(dòng)。在重視這種方法的組織當(dāng)中,開發(fā)、運(yùn)營(yíng)及安全團(tuán)隊(duì)會(huì)樂(lè)于討論哪些意圖較合理、哪些不合理,并愿意站在對(duì)方的立場(chǎng)上考慮問(wèn)題。

DEVSECOPS將向何處去?

總而言之,DevSecOps向我們提出了以下幾項(xiàng)重點(diǎn)要求:

要求在快速迭代的軟件開發(fā)生命周期中建立嵌入式自動(dòng)安全檢查機(jī)制

可重用的各開發(fā)環(huán)境間具有同類型的安全控制機(jī)制

版本控制CI管道

以組織或團(tuán)隊(duì)職能范圍為邊界進(jìn)行管道變更,借此改善事件后的安全調(diào)查流程

完善的說(shuō)明文檔,最好以聲明式方法實(shí)現(xiàn)安全即代碼

鼓勵(lì)創(chuàng)新,并接納由此帶來(lái)的失敗文化

請(qǐng)注意,本文沒(méi)有明確指定任何具體工具。DevSecOps代表的是一種文化變革,其背后代表的思維方式轉(zhuǎn)變不限于任何特定工具。當(dāng)然,大家也應(yīng)盡可能采用支持協(xié)作解決問(wèn)題的工具,包括保證其具有良好的可移植性、可觀察性并提供簡(jiǎn)單易懂的說(shuō)明文檔。最重要的,還有獲得團(tuán)隊(duì)的支配以建立起可跨團(tuán)隊(duì)共享的上下文素材。

結(jié)合種種成功案例與理論層面的巨大潛能,相信DevSecOps這波不斷發(fā)展的浪潮終將成為我們手中的有力武器。

分享題目:DevOps與DevSecOps有何區(qū)別?
URL分享:http://bm7419.com/news/203338.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、企業(yè)建站企業(yè)網(wǎng)站制作、外貿(mào)建站、移動(dòng)網(wǎng)站建設(shè)云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化