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

news2024/11/28 6:31:12

云开发平台如何“提升” 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.coloradmin.cn/o/1708330.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

零基础HTML教程(35)--网站的本地部署

文章目录 1. 背景2. 网站的本地部署3. 本地部署的步骤4. 服务器软件介绍5. 本地部署实操5.1 开发一个网站5.2 下载服务器软件5.3 将网站复制到服务器软件下5.4 启动服务器软件5.5 通过Http协议访问网站 6. 小结 1. 背景 我们之前开发的网页,都是编写完成后&#xf…

Angular(1):使用Angular CLI创建空项目

要创建一个空的 Angular 项目,可以使用 Angular CLI(命令行界面)。以下是使用 Angular CLI 创建一个新项目的步骤: 1、安装 Angular CLI: 打开你的命令行界面(在 Windows 上是 CMD、PowerShell 或 Git Bas…

扔掉 MacBook,挑战带OrangePi出差!

背景 由于工作需要,博主经常会到各大企业的自建机房中私有化部署公司的软件产品。 在某些企业自建机房中,有时给到全新的机器,没有基础环境,甚至有的还无法互联网,而且因为近几年CentOS的停止更新,服务器…

SCP收容物191~200

注 :此文接SCP收容物181~190,本文只供开玩笑 ,与steve_gqq_MC合作 --------------------------------------------------------------------------------------------------------------------------------- 目录 scp-191 scp-192 scp-193 scp-194 scp-195 …

SQL 语言:数据控制

文章目录 概述授权(GRANT)销权(REVOKE)总结 概述 SQL语言中的数据控制权限分配是数据库管理的重要组成部分,它涉及到如何合理地为用户分配对数据库资源的访问和使用权限。 权限类型:在SQL中,权限主要分为…

OS复习笔记ch7-1

存储的基本管理需求 重定位 重定位(Relocation):需要解决可执行文件中地址(指令和数据)和内存地址的对应。 一般有两种比较常见的重定位方式: 静态重定位(static relocation):当程序被装入内存时,一次性…

《我的阿勒泰》最经典的6句话

这是首部散文影视化改编的作品,剧集里的每一帧画面,都堪比电影大作。 阿勒泰壮丽广阔的风光,如同一幅幅动人的画卷展现在我们面前,让人沉醉其中。李文秀平淡朴实的生活,却溢出了蓬勃的生命力,直击心灵。只…

Yourpassword does not satisfy the current policyrequirements

mysql 新增数据库用户失败 解决方法: 修改校验密码策略等级 set global validate_password.policyLOW;

【算法】位运算算法——只出现一次的数字Ⅱ

题解:只出现一次的数字Ⅱ(位运算算法) 目录 1.题目2.题解:3.代码示例4.总结 1.题目 题目链接:LINK 要求:时间复杂度:O(N),空间复杂度:O(1) 2.题解: 3.代码示例 class Solution {…

搜维尔科技:拒绝毒品行为能力评估与训练系统应用案例

用户名称:山西医科大学 主要产品:虚拟现实复吸风险评估与干预系统 虚拟现实复吸风险评估与干预系统主要是为了解决物质使用障碍患者在临床治疗及康复回归正常生活出现的高复发现象⸺对毒品失控的渴求难以预测控制的问题。 整套系统由软件和硬件两部分…

Llama模型家族之使用 Supervised Fine-Tuning(SFT)微调预训练Llama 3 语言模型(十) 使用 LoRA 微调常见问题答疑

LlaMA 3 系列博客 基于 LlaMA 3 LangGraph 在windows本地部署大模型 (一) 基于 LlaMA 3 LangGraph 在windows本地部署大模型 (二) 基于 LlaMA 3 LangGraph 在windows本地部署大模型 (三) 基于 LlaMA…

C++的第一道门坎:类与对象(二)

一.类中生成的默认成员函数详解 0.类的6个默认成员函数 编译器会给类生成六个默认成员函数,在类中即使我们什么都不做,也会自动生成。 默认成员函数:用户没有显式实现,编译器会自动生成的成员函数称为默认成员函数。 下面我们逐…

蓝桥杯物联网竞赛_STM32L071_18_长短按键检测

长短按键的检测是国赛题里面遇到的,省赛没出过有两种实方法 定时器配置: 定时器的话要比delay准确,其中tim7定时器的准度最高 定时器预分配配置32 - 1,计数周期是10000 - 1这样做那么32MHZ/32也就是一秒钟记录10^6的数&#xf…

数组的定义、顺序存储及特殊矩阵的存储

目录 一、数组的定义 1.1概念 1.2抽象数据类型定义 二、数组的顺序存储 2.1一维数组元素的存储位置 2.2二维数组元素的存储位置 2.3三维数组元素的存储位置 三、特殊矩阵的压缩存储 3.1相关概念 3.2对称矩阵 3.3三角矩阵 3.4对角矩阵(带状矩阵&#xff0…

Java 数据类型:学习和区分Java的基本数据类型(如int、float、boolean等)和引用数据类型(如数组、类等)

Java数据类型 Java是一种强类型语言,所有变量在使用前都必须声明其类型。Java的数据类型分为基本数据类型(Primitive Data Types)和引用数据类型(Reference Data Types)。了解并区分这两类数据类型是学习Java编程的重…

PC网游、页游、手游、端游各类游戏收集整理大集合-90%以上游戏带视频架设教程

本游戏资源提供给大家学习及参考研究借鉴美工之用,请勿用于商业和非法用途,无任何技术支持! 干货列表

如何将RK R75键盘的右Alt键改为Ctrl键

打开注册表地址栏中输出 计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout右键新建二进制值,名称设为ScanCode Map按下图输入数值

什么是知识中台?为什么企业需要知识中台?

如今市面上的企业数不胜数,企业的任何一个小细节都会产生很大的影响。近几年来一直很热门的知识中台备受企业关注。关于如何高效地管理、整合和运用知识,成为了每一家企业都在重点关注的问题。而知识中台,就是为了解决这一问题而诞生的一个全…

软件功能测试的类型和流程分享

在现代社会,软件已经成为人们生活中不可或缺的一部分,而在软件的开发过程中,功能测试是不可或缺的环节。软件功能测试指的是对软件系统的功能进行检查和验证,以确保软件在各种情况下能够正常运行,并且能够按照用户需求…

【设计模式】JAVA Design Patterns——Circuit Breaker(断路器模式)

🔍目的 以这样一种方式处理昂贵的远程服务调用,即单个服务/组件的故障不会导致整个应用程序宕机,我们可以尽快重新连接到服务 🔍解释 真实世界例子 想象一个 Web 应用程序,它同时具有用于获取数据的本地文件/图像和远程…