通過安全的云開發環境重新發現 DevOps 的心跳

云開發平臺如何“提升” DevOps

首先,我來簡單介紹一下什么是云開發環境:它通常運行帶有應用程序的 Linux 操作系統,提供預配置的環境,允許進行編碼、編譯和其他類似于本地環境的操作。從實現的角度來看,這樣的環境類似于遠程運行的進程,通常通過 Docker 或 Podman 等技術進行虛擬化。有關 CDE 的一般概述,請查看 本文。

CDE 技術正在推動當今最快的 DevOps 轉型趨勢,整個云原生開發行業都在將開發環境轉移到線上。這些環境剛剛于 2023 年 8 月成為 Gartner 的新技術類別之一。 值得注意的是,Gartner 預計到 2026 年,60% 以上的云工作負載將使用 CDE 構建和部署。

:在線容器可作為 DevOps 三大核心方式的利用

如今,組織可以決定使用自托管平臺來管理這些環境,或者在可用時使用云提供商提供的服務之一。但總體而言,管理這些環境的平臺目前尚處于起步階段,其功能因供應商而異。因此,在如何實施該技術以及最重要的是業務用例涵蓋哪些方面具有很大的靈活性。

我認為,在選擇 CDE 平臺時,企業應該選擇既能提高生產力又能保證數據安全的平臺。使用 安全的云開發環境(即提供數據安全性的環境)可讓組織部署多種機制,例如:防止數據泄露和滲透、自動化 DevSecOps 最佳實踐、生成安全審查等。這種安全性通常是 Citrix 虛擬桌面基礎架構的目標,或者最近使用企業瀏覽器(Island、Talon 或 Chrome Enterprise)的目標。

原因之一是許多公司(包括科技公司)的資產(如源代碼、客戶數據和其他知識產權)都遭受了攻擊。最近備受矚目的源代碼泄露案例包括 Slack 的 GitHub 存儲庫、CircleCI 和 2022 年 12 月的 Okta。最重要的是,我認為安全應該被定位為生產力的助推器,這樣它才能有助于改善開發人員的體驗,而不是成為阻礙。

現有平臺之間的共同點之一是旨在提高代碼開發效率。無論您是否選擇將安全性考慮在內,很明顯 CDE 可以釋放大量生產力,從而有利于 DevOps 工作流程。這就是為什么我在這里重新審視 DevOps 的核心原則并重新思考這些環境如何為它們帶來新的啟示。這些原則也被稱為三種方式,并在Kim、Debois 和 Willis 的《DevOps 手冊》中進行了解釋。

在線環境加速 DevOps 的流程原則

從流程的角度來看,DevOps 是關于實施三個原則(或方式):即流程、反饋和持續學習原則。我認為,在這種情況下解釋 CDE 的好處是理解它們的一些關鍵影響的好方法。

:Kim、Debois 和 Willis 在《DevOps 手冊》中描述了 DevOps 的三種方式,即流程、反饋和持續學習

讓我們從流程原則開始。第一個原則強調工作從開發到測試、部署再到運營和監控的順暢和高效流動。它旨在最大限度地減少瓶頸、優化流程并實現連續和無縫的交付流程。流程通常由沿無窮大符號排列的一系列階段表示。

CDE 是實現流動原則的有效方法,因為它們允許用戶在處理多個項目時擁有完全隔離的工作區設置,從而實現它們之間直接且無影響的上下文切換。

良好的 CDE 平臺為開發人員提供了多種工具來管理和配置他們的 CDE,特別是基于公司政策。例如,開發人員可以自助訪問 CDE,這是一項重要優勢。

CDE 還可以輕松復制以進行測試,并可以根據需要在用戶之間重新分配。它們可以完全模板化,在幾秒鐘內配置到靈活的資源上,并且任何開發人員都可以訪問,無論他們身在何處。在這里,一個好的 CDE 平臺為項目和 IT 經理提供全面的操作,從而實現大規模的 CDE 管理和可觀察性。

:CDE 的使用始于 DevOps 的代碼階段,使組織能夠跨階段保持一致的環境。CDE 及其訪問機制分別由圖塊和一系列圖標表示。

顯然,CDE 的在線部署允許集中管理、可觀察性和訪問,從而真正增強了 DevOps 的流動原則。

如今,遠程開發人員的加入已成為大多數組織運營的一部分。CDE 的在線特性非常適合在完全配置的環境中讓開發人員入職,無論他們身在何處。提供對組織資源的訪問權限也是入職的一個重要方面。在這里,CDE 提供了一種以集中方式訪問開發資源的新機會,特別是提供增強的控制和可觀察性的方式。

為了將生產力與靈活性結合起來,一個好的 CDE 平臺必須提供資源訪問權限模型,以允許處理不同類型的開發人員、不同的開發場景(內部、協作等)和不同類型的資源。例如,基于角色和基于屬性的訪問控制 (RBAC/ABAC) 加上對資源進行分類的機制,使組織能夠設置風險控制并確保治理,即使在復雜的工作流程情況下也是如此。這大大增強了設計高效協作開發流程的可能性。

:引入多元化的開發人員需要一種機制來根據角色管理對資源的訪問權限。還可以根據用戶位置等屬性動態評估權限。

最后,CDE 和基于 Web 的 IDE 聯合使用的一大優點是,在瘦設備或 BYOD 模式下加入開發人員可以立即加速業務擴展。

如何將即時性帶入 DevOps 的反饋原則

反饋原則涉及在開發和運營流程的不同階段之間建立溝通和協作機制。這包括從各種來源收集反饋,例如最終用戶、監控系統和測試流程。該原則的一個重要方面是它使開發人員之間能夠更好地協作。

DevOps 的第二個原則最好地體現在代碼存儲庫應用程序中實現的Pull Request (PR) 機制。使用 PR,開發人員可以在將分支提交的工作合并到應用程序之前對其進行評論。

CDE 的在線特性使反饋原則更貼近開發人員,即在工作到達代碼存儲庫之前,即在編碼活動的中心。CDE 通常訪問或監控它的機制(例如 IDE、終端、網絡、編排等)結合使用,從而實現這一優勢。

由于 CDE 是在線運行的進程,因此很容易觀察工作進展情況。這讓人想起觀察網站訪問者的用戶體驗。在我看來,這是最有可能將生產力和安全性置于開發核心的領域。

:由于 CDE 可以遠程訪問,因此很容易測量它們的一些屬性,例如正在運行的進程和分配的資源。

例如,可以很容易地實時測量一組 CDE(例如由共同項目的開發人員共享)構建應用程序所需的平均編譯時間(見上圖)。這為項目經理提供了有關生產力的即時和有價值的信息。

還可以輕松查看通過開發人員剪貼板傳遞的信息和 CDE 的網絡流量。利用這些渠道,我們可以向開發人員和管理人員提供反饋。例如,從基礎設施安全角度來看,可以輕松監控潛在的數據泄露并防止知識產權損失。

但通過同樣的渠道,人們還可以尋找潛在的惡意數據滲透。例如,假設您可以檢測到開發人員剪貼板中的憑據,那么詢問開發人員執行此操作的意圖怎么樣?當開發人員即將將從隨機網站收集的源代碼粘貼到您的代碼庫中時,也是有可能的。您想標記它并自動創建安全審查嗎?如何在惡意軟件進入您的代碼庫之前檢測它或系統地標記 AI 生成的代碼怎么樣?

:對 CDE 及其支持基礎設施的控制是對輸入數據(如憑證、許可源代碼和潛在惡意軟件)進行語義分析的機會。同樣,它允許設置數據泄漏預防措施。

顯然,CDE 和用于將數據導入其中的基礎設施組件是引入 DevOps 和 DevSecOps 中一批新最佳實踐并重新審視 DevOps 反饋原則的媒介。通過我上面給出的例子,你可以看到基礎設施安全可以與代碼安全原則相聯系!

一個好的 CDE 平臺肯定會提供一系列新穎且富有創意的 DevOps 和 DevSecOps 自動化。此外,還有一個很好的機會來重新審視標準化和公認的指標,例如 DORA 和 SPACE,使它們更接近開發人員在 IDE 中編寫代碼所花費時間最多的活動。

持續學習原則的特寫

現在讓我們用第三個原則,即持續學習原則來結束本次討論。該原則強調在開發和運營團隊中培養持續改進和學習的文化的重要性。它涉及定期收集反饋、分析績效指標以及吸取開發和部署過程每個階段的經驗教訓,以提高效率和創新能力。

網絡平臺的即時性以及它們帶來的觀察業務流程的機會也使組織能夠了解自己。這是增加持續學習潛力的一大福音。

最初,DevOps 對持續學習的期望是圍繞改進運行中的應用程序(即客戶正在使用的應用程序)。但是,當整個開發過程作為云應用程序運行時,組織可以學到很多關于其?自身基于平臺的開發過程的寶貴知識。

本著這一思路,CDE 平臺帶來了全新水平的可觀察性,并允許圍繞多個關鍵領域進行業務優化。我已經討論過組織如何了解其在應用程序交付和安全態勢方面的績效。但他們還可以了解云和物理資產的利用率,以及監控 IT 功能的成本和分配給開發的資源。該平臺還帶來了一個絕佳的機會,可以集中實施生產力和風險控制,同時在分散在不同地理位置的團隊中系統地執行這些控制。實際上,現代 CDE 平臺需要允許同時在多個地區使用多個云。最重要的是,它們能夠統一向組織提供復雜的服務,這使得實施不會妨礙用戶日常任務的治理機制變得容易。

:DevOps 的持續學習原則也適用于開發過程本身。CDE 產生了一系列新的流程測量,有利于治理、問責和風險控制。

總之,良好的 CDE 平臺應為組織帶來豐富的指標和功能,以便他們重新控制通常分散、跨硬件和應用程序不統一且有時從安全角度來看模糊的開發過程。這就是為什么在我看來,采用趨勢將有增無減的原因。此外,我們應該看到對 CDE 提供商增強安全控制能力的需求越來越大,同時確保它們最終不會對開發人員的生產力產生任何負面影響。最后,開發 CDE 屬性作為增強 DevOps 三種方式的一種方式,是推動開發社區以有意義的方式進行創新的絕佳框架。

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

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

相關文章

前端 JS 經典:讀取文件原始內容

前言:有些時候在工程化開發中,我們需要讀取文件里面的原始內容,比如,你有一個文件,后綴名為 .myfile,你需要拿到這個文件里的內容,該怎么處理呢。 在 vue2 中,因為 vue2 使用 vue-c…

【算法】前綴和——尋找數組的中心下標

本節博客是用前綴和算法圖解“尋找數組的中心下標”,有需要借鑒即可。 目錄 1.題目2.題意3.前綴和求解4.示例代碼5.細節6.總結 1.題目 題目鏈接:LINK 2.題意 我們以示例1為例來圖解一下題意: 3.前綴和求解 根據已有經驗,我…

Java 讀取 xml 文件的五種方式

在編寫與 XML 數據交互的現代軟件應用時,有效地讀取和解析 XML 文件是至關重要的。XML(可擴展標記語言)因其靈活性和自我描述性,已成為數據存儲和傳輸的一種普遍格式。對于 Java 開發者來說,Java 提供了多種工具和庫來…

數據庫索引相關的知識點總結

目錄 1. 索引的概念 2. 索引的作用 3. 索引的類型 4. 索引的缺點 5. 索引的使用場景 6. 索引的設計原則 7. 索引的實現技術 8. 索引的優化技巧: 數據庫表的索引是一個非常重要的概念,它類似于一本書的目錄,可以幫助我們快速找到所需的…

Idea工具的使用技巧與常見問題解決方案

一、使用技巧 1、啟動微服務配置 如上圖,在編輯配置選項,將對應的啟動入口類加進去, 增加jvm啟動參數, 比如: -Denvuat 或者 -Denvuat -Dfile.encodingUTF-8 啟動配置可能不是-Denvuat,這個自己看代…

Android 11 Audio音頻系統配置文件解析

在AudioPolicyService的啟動過程中,會去創建AudioPolicyManager對象,進而去解析配置文件 //frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp AudioPolicyManager::AudioPolicyManager(AudioPolicyClientInterface *clientIn…

MySQL目錄和文件

MySQL目錄和文件 bin目錄 存儲一些mysql腳本比如mysqld、mysqld-self等等,用于執行mysql一些操作 數據目錄 show variables like datadir;--查看數據目錄位置每一個數據庫都有一個和數據庫名相同的文件夾;MySQL5.7開始每創建一個表,在Innod…

Python機器學習 Tensorflow + keras 實現CNN

一、實驗目的 1. 了解SkLearn Tensorlow使用方法 2. 了解SkLearn keras使用方法 二、實驗工具: 1. SkLearn 三、實驗內容 (貼上源碼及結果) 使用Tensorflow對半環形數據集分 #encoding:utf-8import numpy as npfrom sklearn.datasets i…

Dynadot API調整一覽

關于Dynadot Dynadot是通過ICANN認證的域名注冊商,自2002年成立以來,服務于全球108個國家和地區的客戶,為數以萬計的客戶提供簡潔,優惠,安全的域名注冊以及管理服務。 Dynadot平臺操作教程索引(包括域名郵…

AI Agent教育行業落地案例

【AI賦能教育】揭秘Duolingo背后的AI Agent,讓學習更高效、更有趣! ©作者|Blaze 來源|神州問學 引言 隨著科技的迅猛發展,人工智能技術已經逐步滲透到我們生活的各個方面。而隨著AI技術的廣泛應用,教育培訓正引領著一場新的…

149.二叉樹:二叉樹的前序遍歷(力扣)

代碼解決 這段代碼實現了二叉樹的前序遍歷,前序遍歷的順序是:訪問根節點 -> 遞歸遍歷左子樹 -> 遞歸遍歷右子樹。以下是詳細解釋,包括各個部分的注釋: // 二叉樹節點的定義 struct TreeNode {int val; // 節…

php -v在cmd中正常顯示 在vscode中卻報錯

效果展示 原因 在vscode中 終端是 PowerShell PowerShell 默認情況下它不會繼承系統的PATH環境變量 解決方案 使用CMD作為終端 打開VSCode設置(File > Preferences > Settings 或 Ctrl,)。搜索 terminal.integrated.shell.windows。更改其值…

springboot集成nacos

springboot集成nacos 1.版本2. POM依賴3. nacos服務3.1 下載nacos壓縮包3.2 啟動nacos 4. yaml配置5.Demo5.1 配置中心簡單格式獲取方式普通方式還可以再啟動類上添加注解完成5.2 獲取json格式的demo5.2 自動注冊根據yaml配置 1.版本 nacos版本:2.3.2 springboot版本&#xff…

【已解決】使用StringUtils.hasLength參數輸入空格仍然添加成功定價為負數仍然添加成功

Bug情景 今天在做功能測試時,發現使用使用StringUtils.hasLength()方法以及定價為負數時,添加圖書仍然成功 思考過程 0.1 當時在做參數檢驗時用了spring提供的StringUtils工具包,百度/大數據模型說: 0.2…

Redis:redis基礎

Redis Remote Dictionary Service即遠程字典服務 一個基于內存的key-value結構數據庫,在開發中常常作為緩存存儲不經常被改變的數據 基于內存存儲,讀寫性能高 在企業中應用廣泛 Redis介紹 用C語言開發的開源高性能鍵值對數據庫,可以達到10w的qps,可以存儲豐富的value類型…

【ubuntu20】--- 定時同步文件

在編程的藝術世界里,代碼和靈感需要尋找到最佳的交融點,才能打造出令人為之驚嘆的作品。而在這座秋知葉i博客的殿堂里,我們將共同追尋這種完美結合,為未來的世界留下屬于我們的獨特印記。 【Linux命令】--- 多核壓縮命令大全&…

肉類食品解凍污水處理設備功能特點

諸城市鑫淼環保小編帶大家了解一下肉類食品解凍污水處理設備功能特點 肉類食品解凍污水處理設備是專門用于處理肉類加工過程中產生的解凍廢水的設備。這些設備在保障肉類食品生產過程中的衛生安全同時,也有效處理了廢水,避免了環境污染。以下是對肉類食品…

VM虛擬機共享文件夾fuse: bad mount point `/mnt/hgfs‘: No such file or directory

報錯顯示掛載點 /mnt/hgfs 不存在,你需要先創建這個目錄。可以按照以下步驟進行操作: 創建掛載點目錄: sudo mkdir -p /mnt/hgfs 手動掛載共享文件夾: sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other 確保每次啟動時自動…

液氮罐內部會污染嗎

液氮罐是一種常見的存儲液態氮的設備,廣泛應用于科研、生物醫藥、食品冷凍等領域。但是,人們對于液氮罐內部是否會產生污染一直存在疑問。 我們來看液氮罐內部可能的污染源。液氮罐內部主要存在以下幾種潛在的污染來源:氣體污染、雜質污染、…

C++ | Leetcode C++題解之第117題填充每個節點的下一個右側節點指針II

題目: 題解: class Solution { public:void handle(Node* &last, Node* &p, Node* &nextStart) {if (last) {last->next p;} if (!nextStart) {nextStart p;}last p;}Node* connect(Node* root) {if (!root) {return nullptr;}Node *…