通过安全的云开发环境重新发现 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.mzph.cn/bicheng/18579.shtml

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

相关文章

【算法】前缀和——寻找数组的中心下标

本节博客是用前缀和算法图解“寻找数组的中心下标”,有需要借鉴即可。 目录 1.题目2.题意3.前缀和求解4.示例代码5.细节6.总结 1.题目 题目链接:LINK 2.题意 我们以示例1为例来图解一下题意: 3.前缀和求解 根据已有经验,我…

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…

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 *…

推券客CMS淘宝优惠券网站源码

推券客CMS淘宝优惠券网站源码是一个以PHPMySQL进行开发的PHP淘宝客优惠券网站。支持电脑站、手机站以及微信公众号查券。支持多级代理返利和阿里妈妈最新的渠道管理等功能。 五大优势 一、全开源 推券客cms网站程序数据库完全开源,目前市场上基本都是以下2种淘宝客系统 第一…

LeetCode - 双指针(Two Pointers) 算法集合 [对撞指针、快慢指针、滑动窗口、双链遍历]

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/139270999 双指针算法是一种常见且灵活的技巧,通过使用两个指针协同完成任务。这些指针可以指向不同的元素,具体应用取决于…

什么是勒索软件

什么是勒索软件 勒索软件又称勒索病毒,是一种特殊的恶意软件,又被归类为“阻断访问式攻击”(denial-of-access attack),与其他病毒最大的不同在于攻击手法以及中毒方式。勒索软件的攻击方式是将受害者的电脑锁起来或者…

Spring Boot中如何查询PGSQL分表后的数据

数据库用的pgsql,在表数据超过100w条的时候执行定时任务进行了分表,分表后表名命名为原的表名后面拼接时间,如原表名是card_device_trajectory_info,分表后拼接时间后得到card_device_trajectory_info_20240503,然后分…

ubuntu使用oh my zsh美化终端

ubuntu使用oh my zsh美化终端 文章目录 ubuntu使用oh my zsh美化终端1. 安装zsh和oh my zsh2. 修改zsh主题3. 安装zsh插件4. 将.bashrc移植到.zshrcReference 1. 安装zsh和oh my zsh 首先安装zsh sudo apt install zsh然后查看本地有哪些shell可以使用 cat /etc/shells 将默…