通过安全的云开发环境重新发现 DevOps 的心跳

2024-05-28 18:52

本文主要是介绍通过安全的云开发环境重新发现 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 三种方式的一种方式,是推动开发社区以有意义的方式进行创新的绝佳框架。

这篇关于通过安全的云开发环境重新发现 DevOps 的心跳的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1011406

相关文章

ESP32 esp-idf esp-adf环境安装及.a库创建与编译

简介 ESP32 功能丰富的 Wi-Fi & 蓝牙 MCU, 适用于多样的物联网应用。使用freertos操作系统。 ESP-IDF 官方物联网开发框架。 ESP-ADF 官方音频开发框架。 文档参照 https://espressif-docs.readthedocs-hosted.com/projects/esp-adf/zh-cn/latest/get-started/index

UnrealScriptIDE调试环境部署

先安装vs2010   再安装VSIsoShell.exe, 下载地址 https://pan.baidu.com/s/10kPNUuDGTbWXbz7Nos-1WA       fd3t   最后安装unside,下载地址 https://archive.codeplex.com/?p=uside  安装中间有一步选择Binary文件夹要选对路径。   安装好以后,启动 UDKDe

Eclipse+ADT与Android Studio开发的区别

下文的EA指Eclipse+ADT,AS就是指Android Studio。 就编写界面布局来说AS可以边开发边预览(所见即所得,以及多个屏幕预览),这个优势比较大。AS运行时占的内存比EA的要小。AS创建项目时要创建gradle项目框架,so,创建项目时AS比较慢。android studio基于gradle构建项目,你无法同时集中管理和维护多个项目的源码,而eclipse ADT可以同时打开

Python应用开发——30天学习Streamlit Python包进行APP的构建(9)

st.area_chart 显示区域图。 这是围绕 st.altair_chart 的语法糖。主要区别在于该命令使用数据自身的列和指数来计算图表的 Altair 规格。因此,在许多 "只需绘制此图 "的情况下,该命令更易于使用,但可定制性较差。 如果 st.area_chart 无法正确猜测数据规格,请尝试使用 st.altair_chart 指定所需的图表。 Function signa

API-环境对象

学习目标: 掌握环境对象 学习内容: 环境对象作用 环境对象: 指的是函数内部特殊的变量this,它代表着当前函数运行时所处的环境。 作用: 弄清楚this的指向,可以让我们代码更简洁。 函数的调用方式不同,this指代的对象也不同。【谁调用,this就是谁】是判断this指向的粗略规则。直接调用函数,其实相当于是window.函数,所以this指代window。

9 个 GraphQL 安全最佳实践

GraphQL 已被最大的平台采用 - Facebook、Twitter、Github、Pinterest、Walmart - 这些大公司不能在安全性上妥协。但是,尽管 GraphQL 可以成为您的 API 的非常安全的选项,但它并不是开箱即用的。事实恰恰相反:即使是最新手的黑客,所有大门都是敞开的。此外,GraphQL 有自己的一套注意事项,因此如果您来自 REST,您可能会错过一些重要步骤!

数据库原理与安全复习笔记(未完待续)

1 概念 产生与发展:人工管理阶段 → \to → 文件系统阶段 → \to → 数据库系统阶段。 数据库系统特点:数据的管理者(DBMS);数据结构化;数据共享性高,冗余度低,易于扩充;数据独立性高。DBMS 对数据的控制功能:数据的安全性保护;数据的完整性检查;并发控制;数据库恢复。 数据库技术研究领域:数据库管理系统软件的研发;数据库设计;数据库理论。数据模型要素 数据结构:描述数据库

Pycharm配置conda环境(解决新版本无法识别可执行文件问题)

引言: 很多小伙伴在下载最新版本的pycharm或者更新到最新版本后为项目配置conda环境的时候,发现文件夹目录中无法显示可执行文件(一般为python.exe),以下就是本人遇到该问题后试验和解决该问题的一些方法和思路。 一般遇到该问题的人群有两种,一种是刚入门对pycharm进行conda环境配置的小白(例如我),不熟悉相关环境配置的操作和过程,还有一种是入坑pycharm有段时间的老手

WDF驱动开发-WDF总线枚举(一)

支持在总线驱动程序中进行 PnP 和电源管理 某些设备永久插入系统,而其他设备可以在系统运行时插入和拔出电源。 总线驱动 必须识别并报告连接到其总线的设备,并且他们必须发现并报告系统中设备的到达和离开情况。 总线驱动程序标识和报告的设备称为总线的 子设备。 标识和报告子设备的过程称为 总线枚举。 在总线枚举期间,总线驱动程序会为其子 设备创建设备对象 。  总线驱动程序本质上是同时处理总线枚

Redis-在springboot环境下执行lua脚本

文章目录 1、什么lua2、创建SpringBoot工程3、引入相关依赖4、创建LUA脚本5、创建配置类6、创建启动类7、创建测试类 1、什么lua “Lua”的英文全称是“Lightweight Userdata Abstraction Layer”,意思是“轻量级用户数据抽象层”。 2、创建SpringBoot工程 3、引入相关依赖 <?xml version