如何在保持安全/合規的同時更快地構建應用程序:DevOps 指南

隨著敏捷思維方式的興起,開發和 DevOps 團隊都面臨著持續的壓力,他們需要以迭代方式縮短發布周期并加快部署速度,以滿足不斷增長的客戶期望。隨著這種對速度的追求越來越強烈,維護安全性和合規性標準的復雜性也隨之增加。

當今 DevOps 工作流程的主要挑戰之一是“速度與安全性的困境”。問題是:如何在不影響安全協議和監管要求的情況下跟上快速發展?

在本指南中,我們將探討 DevOps 團隊面臨的一些最緊迫的挑戰。我們還將討論 Incredibuild 如何幫助您在不犧牲 DevOps 合規性的情況下更快地交付高質量和安全的應用程序。

常見瓶頸和合規性挑戰

讓我們看一下構建過程中導致發布周期變慢的一些常見瓶頸。

大型代碼庫的構建時間長

隨著應用程序復雜性的增加,其代碼庫也隨之增加。對于每個新功能、錯誤修復或更新,構建需要更長的時間,從而導致等待時間延長,從而減慢開發速度。

較長的構建時間源于需要跨多個依賴項、模塊和服務重新編譯、運行測試和打包代碼。在復雜的整體式架構中,此問題尤其具有挑戰性,因為一個領域的更改可能需要重新構建完整的應用程序。

雖然將整體式架構拆分為微服務可能會有所幫助,但它通常需要對架構進行重大改革。對于不斷承受加速發布壓力的 DevOps 團隊來說,像 Incredibuild 這樣智能分配工作負載的工具可以通過運行加速構建來發揮關鍵作用,而無需完全重新設計現有管道。

測試執行瓶頸

測試對于交付高質量和安全的軟件開發至關重要,但它也可能是一個主要瓶頸,尤其是在代碼庫和測試套件擴展時。

自動測試通常需要在每次代碼更改后重新運行,這可能會消耗很大一部分構建時間。雖然單元測試通常很快,但跨多個服務驗證功能的集成和端到端測試可能非常耗時。

當團隊缺乏并行測試功能時,測試瓶頸通常會變得更糟,從而導致排隊測試運行延遲發布過程。有效的測試管理和優先級排序策略(例如僅測試修改后的代碼或首先運行關鍵測試)有助于減少延遲。

這就是像 Incredibuild 這樣的解決方案可以提供幫助的地方。它可以在分布式計算機上并行執行測試,使大型測試套件能夠同時運行。

CI/CD 管道中的資源約束

隨著多個開發人員并行工作,對共享基礎設施資源(如 CPU、內存和磁盤 I/O)的需求會增加,尤其是在高峰時段。

當這些資源受到限制時,構建和測試會排隊,從而導致整個開發管道出現延遲。此外,在云環境中擴展資源的成本可能很高,特別是對于流量模式激增或偶爾使用密集型服務的組織。當工作負載激增時,本地基礎設施可能無法提供足夠的靈活性來快速擴展,而云擴展會帶來潛在的延遲和預算問題。

為了解決這些問題并優化資源使用,Incredibuild 將構建和測試工作負載分布在網絡或云中的空閑 CPU 之間;這減輕了資源限制,減少了構建隊列時間,并允許更快的擴展。

在不影響安全性的情況下加速構建的策略

讓我們探索一些策略,以加快構建速度,同時保持強大的 DevOps 安全標準。

構建管道的并行執行和分布式處理

縮短構建時間的最有效方法之一是將工作負載分布在多臺機器或處理器上,從而實現并行執行。通過在可用資源之間拆分任務(例如編譯或測試),團隊可以在不犧牲準確性或安全性的情況下顯著加快流程。

Incredibuild 等分布式處理平臺允許 DevOps 團隊跨網絡或云實例利用閑置的 CPU 能力。

緩存和增量構建

緩存和增量構建通過對未更改的代碼重用以前的構建結果來幫助避免冗余處理。對大型代碼庫進行微小更改時,完全重新構建效率可能很低,從而在尚未修改的文件上浪費時間。

增量構建僅重新編譯或重新處理更改的文件,從而顯著縮短構建時間。通過使用緩存機制來存儲這些中間結果,DevOps 團隊可以實現更快的構建,同時確保僅重新評估相關文件。

自動測試和安全掃描

自動測試和安全掃描對于及早識別漏洞和功能問題至關重要。通過將安全掃描(例如靜態代碼分析和漏洞評估)直接集成到 CI/CD 管道中,團隊可確保在每個階段都遵循安全協議。

支持并行化測試的工具允許快速執行這些測試。自動化、持續的測試為安全可靠的構建提供了所需的保證,同時保持了高速,防止安全性成為加速工作流程中的事后考慮。

在 CI/CD 管道中實施安全性和合規性檢查

在整個 CI/CD 管道中整合安全性和合規性檢查對于交付具有彈性和合規性的軟件至關重要。“左移”方法在開發早期引入安全措施,從一開始就減少漏洞和合規性風險。

通過在 CI/CD 流程的每個階段集成安全實踐,團隊可以創建一個持續的反饋循環,使安全性成為一種主動而非被動的措施。有多種解決方案可幫助進行此集成。

CI/CD 安全的基本工具

在代碼提交階段,開發人員可以執行代碼審查、靜態分析和提交簽名以驗證代碼安全性。在構建階段,團隊可以使用靜態應用程序安全測試 (SAST) 工具在執行之前分析源代碼并發現代碼庫中的漏洞。

在測試過程中,動態應用程序安全測試 (DAST) 可以評估已部署環境中的運行時漏洞。DAST 工具模擬運行時環境中針對應用程序的攻擊,發現訪問控制不當或會話處理漏洞等問題。

在部署時,使用策略即代碼或合規性即代碼 (CaC) 解決方案進行合規性檢查,確保在最終發布之前遵守監管標準和監管。CaC 工具可自動進行基礎設施配置和策略中的監管檢查,驗證部署是否符合合規性標準。

通過實施左移實踐、跨 CI/CD 階段的安全檢查點和自動化工具的組合,DevOps 團隊可以在不減慢開發速度的情況下提高安全性。

幫助平衡速度和安全性的工具和技術

平衡速度和安全性是 DevOps 團隊面臨的一項關鍵挑戰,因為他們努力快速交付高質量的應用程序。幸運的是,有一些現代工具可以同時支持加速開發和強大的安全實踐。

我們將在下面討論其中一些解決方案。

Incredibuild:分布式處理和緩存,實現更快的構建

Incredibuild 是一個分布式計算平臺,通過將任務分解為更小的進程并將其分布在多個 CPU(無論是在本地還是在云中),從而顯著加快構建時間。

在這里插入圖片描述

圖 1:Incredibuild 構建緩存

通過利用網絡上的空閑 CPU 周期,Incredibuild 將普通構建流程轉換為高度并行化的任務。這大大減少了構建時間,幫助開發人員在不影響準確性的情況下更快地迭代。此外,Incredibuild 的緩存機制可確保在后續構建中重復使用未更改的組件,從而進一步優化構建流程并節省時間。

分布式處理和緩存的這種組合使團隊能夠跟上快速的發布周期,同時保持構建質量和穩定性。

GitLab CI/CD 和 Jenkins:促進自動化合規性檢查

GitLab CI/CD 和 Jenkins 是流行的 CI/CD 平臺,支持在安全的 DevOps 工作流中實現端到端自動化。這些工具允許團隊在管道的各個階段嵌入安全性和合規性檢查,以便代碼在流程的早期就符合安全標準。

例如,團隊可以設置 Jenkins 管道,以便在每個構建中自動運行靜態代碼分析和安全掃描,從而在問題進入生產環境之前發現問題。GitLab CI/CD 通過其安全性和合規性管理功能提供類似的功能,允許團隊在整個 CI/CD 流程中定義和實施合規性策略。

通過自動化驅動的合規性檢查,這些工具可以簡化安全驗證,而不會減慢開發速度。

Snyk 和 OWASP ZAP:自動漏洞檢測

Snyk 和 OWASP ZAP 是用于識別應用程序中安全漏洞的強大工具。

Snyk 擅長掃描開源依賴項、識別已知漏洞并建議補救步驟;所有這些都使團隊能夠盡早保護他們的代碼庫。

在這里插入圖片描述

圖 2:Snyk 代碼掃描示例(來源:Snyk)

作為 DAST 解決方案,OWASP ZAP 允許您在最后測試階段掃描正在運行的應用程序,以查找錯誤配置和安全失誤等漏洞。通過自動進行漏洞檢測,這些工具可以降低部署不安全代碼的風險,同時無縫集成到 CI/CD 工作流中。

Terraform 和 AWS Config:大規模維護合規性

隨著基礎設施的發展,確保大規模合規性變得具有挑戰性。Terraform 和 AWS Config 等工具將合規性作為代碼實施,以在整個基礎設施中自動實施監管標準。

借助 Terraform,團隊可以編纂基礎設施配置,將策略直接嵌入代碼中,以防止未經授權的更改。同時,AWS Config 會監控您的 AWS 資源是否發生配置更改,并提醒團隊注意不合規的配置。

平衡速度和安全性/合規性的最佳實踐

在軟件開發中實現速度和安全性之間的平衡需要一種戰略方法并遵守兩個關鍵的最佳實踐。

一致的審計和監控

定期監控可確保盡早發現并解決新的漏洞、配置更改或合規性問題。通過實施自動化安全掃描、日志記錄和審計跟蹤,DevOps 團隊可以在潛在問題升級之前發現問題,從而降低違規和監管處罰的風險。

AWS Config 等持續合規性工具和 Prometheus 等監控平臺提供實時警報和自動響應,在快速進行開發的同時確保系統安全。

協作

開發、安全和運營團隊之間的傳統分離通常會造成瓶頸。采用 DevSecOps 模型可鼓勵這些團隊之間密切合作,將安全實踐直接嵌入到開發工作流程中。

借助 DevSecOps,開發人員、安全專家和運營人員可以共同協作,從頭開始創建安全的應用程序,而不是在最后改進安全性。這種協作使每個人都在優先考慮安全性的共同目標和最佳實踐上保持一致。

定期的跨職能會議、共享儀表板和聯合規劃會議可確保團隊盡早解決安全性和合規性問題,在降低風險的同時保持開發速度。

案例研究

以下是使用 Incredibuild 的客戶的真實場景及其體驗。

Adobe

Adobe 是數字媒體領域的全球領導者,其大型軟件項目的構建時間緩慢,這影響了生產力。

為了解決這個問題,Adobe 實施了 Incredibuild,將構建時間從 7.5 小時縮短到 15 分鐘。該平臺的高性能編譯 (HPC) 集群可按需訪問,使開發人員無需額外的硬件即可加速構建。

Incredibuild x Adobe

Incredibuild 的靈活性、穩定性以及與 Adobe 基礎架構的集成節省了大量時間和成本,事實證明,它對 Adobe 的企業需求非常寶貴。

Major European bank

一家擁有 300 年歷史并在 55 個國家/地區開展業務的歐洲領先金融機構利用 Incredibuild 來簡化其 CI/CD 流程。

面對云使用的監管限制和頻繁的內部輪班,該銀行的 700 人定量分析團隊使用 Incredibuild 來優化 C++ 編譯和 Ninja 構建,該基礎設施擁有超過 15,000 個幫助程序內核和 700 個啟動器。

Incredibuild 將構建時間從 25 小時縮短到 40 分鐘,顯著提高了跨職能和遠程團隊的生產力。Incredibuild 的卓越支持和基礎設施加速也因使銀行的運營穩定和高效而受到贊譽。

結束語

對快速應用程序部署的需求通常與嚴格的安全和法規要求相競爭,但通過正確的方法,團隊可以同時實現這兩點。

通過實施并行處理、緩存、增量構建和全面監控等策略,DevOps 團隊可以顯著加快工作流程,而不會影響質量或合規性。

借助 Incredibuild 的分布式處理和緩存,團隊可以通過更快的迭代來提高構建速度和效率,從而加快上市時間。同時,該平臺支持嚴格的安全實踐,以確保您的應用程序安全合規。

任何愿意采用平衡方法的組織都可以實現更快、安全且合規的應用程序開發。立即試用 Incredibuild,了解如何簡化 DevOps 管道,同時提高應用程序的質量和安全性。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/897527.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/897527.shtml
英文地址,請注明出處:http://en.pswp.cn/news/897527.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java中常見的PO、VO、DAO、BO、DO、DTO、POJO、Query類解釋(通俗易懂)

文章目錄 先點擊收藏和點贊,切勿白嫖,感謝一丶PO(persistant object)持久對象二丶VO(value object)值對象三丶DAO(Data Access Objects) 數據訪問對象接口四丶BO/DO(Business Object) 業務對象層五丶DTO(Data Transfer Object) 數據傳輸對象六丶POJO(Plain Old Java Objects) 簡…

Websocket的基本使用

1. WebSocket WebSocket 是一種在單個TCP連接上進行全雙工通信的協議,它在現代 Web 開發和網絡應用中發揮著重要作用。在 WebSocket 出現之前,實現服務器與客戶端實時通信主要采用輪詢Polling和長輪詢Long - Polling等技術。輪詢是客戶端定時向服務器發…

MySQL安裝及基礎操作

以下是基于MySQL 8.4.3版本(在Win11上)的安裝: 1.mysql的獲取 官網:www.mysql.com 也可以從Oracle官方進入:https://www.oracle.com/ 下載地址:https://downloads.mysql.com/archives/community/ 兩者…

基于6自由度搬運機器人完成單關節伺服控制實現的詳細步驟及示例代碼

以下是基于6自由度搬運機器人完成單關節伺服控制實現的詳細步驟及示例代碼: 1. 系統概述 單關節伺服控制是指對機器人的單個關節進行精確的位置、速度或力矩控制。在6自由度搬運機器人中,每個關節通常由伺服電機驅動,通過反饋傳感器&#x…

虛擬機新掛載磁盤后磁盤無法使用ssh問題 Permission denied (publickey).

在給vmware虛擬機掛載磁盤后再新磁盤目錄里面使用ssh拉取代碼一直報錯: Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. manifests: 虛擬機可以添加硬盤,…

每天五分鐘深度學習框架PyTorch:ResNet算法模型完成CAFIR十分類

本文重點 ResNet模型已經搭建完成了,本文我們使用ResNet來跑一下CAFIR10的數據集,看一下分類效果如何? 代碼 本文總結 在之前的課程中我們對殘差塊以及ResNet模型進行了詳細的介紹,并且我們對模型訓練這些基礎的數據集進行了詳…

Python網絡爬蟲與數據采集實戰——網絡爬蟲的基本流程

網絡爬蟲(Web Scraper)是用于自動化地從互聯網上抓取信息的程序。它廣泛應用于搜索引擎、數據采集、市場分析等領域。本文將詳細探討網絡爬蟲的基本流程,包括URL提取、HTTP請求與響應、數據解析與存儲,以及一個實際的爬蟲示例。文…

1.3 雙指針專題:快樂數(medium)

1.題目鏈接 202. 快樂數 - 力扣(LeetCode)https://leetcode.cn/problems/happy-number/submissions/609206400/ 2.題目描述 編寫?個算法來判斷?個數 n 是不是快樂數。 「快樂數」 定義為: 對于?個正整數,每?次將該數替換…

系統結構知識點

1.主存和輔存以頁面交換數據 2.計算機系統硬件固體軟件 3.計算機系統結構概念的實質是確定計算機系統中軟,硬件的界面,界面之上是軟件實現的功能,界面之下是硬件和固體實現的功能 4.計算機組成是指計算機系統結構的邏輯實現。計算機實現是…

STM32 HAL庫 CAN過濾器配置

之前在STM32 f407 CAN收發 基于HAL庫和Cubemx配置_stm32f407can收發程序-CSDN博客這篇博文里寫了一下配置CAN收發的方法,當時由于并沒有使用過濾器的現實需求,所以就也沒仔細研究。現在工作中確實需要用到過濾器了,有些項目中控制器和發動機E…

飛搭系列|數據遷移功能全新升級,助力用戶實現高效無縫遷移!

前言 飛搭低代碼平臺(FeiDa,以下簡稱“飛搭”),為企業提供在線化、靈活的業務應用構建工具,支持高低代碼融合,助力企業低門檻、高效率和低成本地快速應對市場變化,加速復雜業務場景落地。 在之…

【后端】【ubuntu】 ubuntu目錄權限查看的幾種方法

在Ubuntu中,有多種方式可以查看目錄或文件的權限,以下為你詳細介紹常見的指令及其使用方法: 1. ls -l 命令 這是最常用的查看文件和目錄權限的命令,-l 選項用于以長格式列出文件和目錄的詳細信息,其中就包含權限信息…

深度學習與大模型基礎-向量

大家好!今天我們來聊聊向量(Vector)。別被這個詞嚇到,其實向量在我們的生活中無處不在,只是我們沒注意罷了。 1. 向量是什么? 簡單來說,向量就是有大小和方向的量。比如你從家走到學校&#x…

TCP/IP原理詳細解析

前言 TCP/IP是一種面向連接,可靠的傳輸,傳輸數據大小無限制的。通常情況下,系統與系統之間的http連接需要三次握手和四次揮手,這個執行過程會產生等待時間。這方面在日常開發時需要注意一下。 TCP/IP 是互聯網的核心協議族&…

用Python和Docker-py打造高效容器化應用管理利器

《Python OpenCV從菜鳥到高手》帶你進入圖像處理與計算機視覺的大門! 解鎖Python編程的無限可能:《奇妙的Python》帶你漫游代碼世界 隨著容器化技術的發展,Docker已成為現代化應用部署的核心工具。然而,手動管理容器在規模化場景下效率低下。本文深入探討如何利用Python結…

【RabbitMQ】事務

事務的簡單配置及使用 配置事務管理器聲明隊列生產者代碼測試 RabbitMQ是基于AMQP協議實現的,該協議實現了事務機制,因此RabbitMQ也支持事務機制. SpringAMQP也提供了對事務相關的操作.RabbitMQ事務允許開發者確保消息的發送和接收是原子性的&#xff0c…

在 IntelliJ IDEA 中配置 Git

1. 確保已安裝 Git 在配置之前,確保你的系統已經安裝了 Git。 檢查是否已安裝 Git: bash 復制 git --version 如果未安裝,請前往 Git 官網 下載并安裝。 2. 在 IntelliJ IDEA 中配置 Git 打開 IntelliJ IDEA。 進入設置: Windo…

【A2DP】藍牙A2DP協議剖析:從架構到規范

目錄 一、A2DP 協議架構 1.1 A2DP 協議棧結構組成 1.2 協議棧各部分的關系與作用 二、設備配置與角色定義(Configurations and roles ) 2.1 角色定義 2.2 配置示例與角色體現 三、用戶需求與場景 3.1 用戶需求與場景 3.2 協議限制 3.3 協議要求…

【從零開始學習計算機科學】操作系統(五)處理器調度

【從零開始學習計算機科學】操作系統(五)處理器調度 處理器調度一些簡單的短程調度算法的思路先來先服務(First-Come-First-Served,FCFS)優先級調度及其變種最短作業優先調度算法(SJF)--非搶占式最短作業優先調度算法(SJF)--搶占式最高響應比優先調度算法輪轉調度算法…

27. Harmonyos Next仿uv-ui 組件NumberBox 步進器組件禁用狀態

溫馨提示:本篇博客的詳細代碼已發布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下載運行哦! 文章目錄 1. 組件介紹2. 效果展示3. 禁用狀態設置3.1 整體禁用3.2 輸入框禁用3.3 長按禁用 4. 完整示例代碼5. 知識點講解5.1 禁用狀態屬性5.2 禁用…