平台工程与安全

平台工程不是为了取代DevOps,而是DevOps的进一步演进和发展。本文介绍了DevOps和平台工程,以及对于安全的意义。原文: Platform Engineering and Security: A Very Short Introduction

中国云南大理的日落
中国云南大理的日落

我是一名 DevOps 工程师,个人还是希望 DevOps 仍然有其意义,因为很显然,如今已是"DevOps 已死,平台工程万岁"的时代了。

不可否认,自 2022 年以来,我们更频繁的看到"平台工程(platform engineering)"、"开发者门户(developer portal)"以及"后台(Backstage)"等术语。

本文将回答几个基本问题:DevOps 真的死了吗?什么是平台工程?区别是什么?平台工程如何处理 DevSecOps/安全问题?

DevOps 已死?

简单来说,并没有。

如果我这么多年来在技术领域学到了什么,那就是技术、框架和方法论从未真正消亡,而是会成长、适应和发展。

例如,想想敏捷开发。你第一次听说敏捷开发是什么时候?现在死了吗?这就是问题所在。

但某种程度上,DevOps 确实"死"了。虽然从传统意义上讲,DevOps 并没有从科技界消失,但确实"死"了,因为许多尝试 DevOps 的公司和团队都没有达到预期。

不过这并不是什么新闻,因为早在多年前,技术研究和咨询公司 Gartner 的一位数据分析师就已经预测,在整个 2022 年,75% 的 DevOps 计划将无法达到预期目标,而到 2023 年,这一数字可能会增长到 90%。

但需要指出的是,这些 DevOps 计划的失败并不是因为技术上的挑战,而是因为信任、所有权和团队合作等被忽视的人为因素。

DevOps 本应是解决传统运营孤岛中所有问题的银弹,让一切重新变得美好。然而不幸的是,许多团队并没有达到最初预期,而且开发人员似乎并不想从事运维工作:

开发人员不想从事运维?

公平的说,这取决于你问的是谁。有些开发人员认为 DevOps "谁构建,谁运维"的模式肯定是有益的,甚至有时是必要的,而有些开发人员则根本不想接触运维。

Twitter 上有一项关于此问题的民意调查[1],330 名开发人员参与了调查,调查结果显示,41.8% 的受访者表示支持运维任务,42.1% 的受访者表示不支持,16.1% 的受访者表示无所谓。

因此,开发人员更愿意避免与基础架构和运维打交道,这对 DevOps 来说是个坏兆头。在这种情况下,平台工程变得前所未有的热门。

平台工程

如今,非专业的最终用户经常被要求运维一系列复杂的服务,这几乎是不可能的。平台工程与 DevOps 一样,都是为应对日益复杂的现代软件架构而出现的。

DevOps 试图从文化角度解决软件开发生命周期(SDLC)中的协作和速度问题,即重视责任分担模式、持续成长和学习心态,鼓励团队合作、最佳实践和现代工具链,而平台工程则试图从另一个角度来解决问题:自助服务。

我们来看一个具体例子:

团队中的开发人员需要为新创建的应用创建数据库,但他们可能并不完全了解如何使用正确的自动化工具(比如Terraform)在特定云服务商(比如AWS)中创建关系数据库(RDS),并非所有开发人员都知道基础架构在哪里运行以及如何协调。

解决这个问题的 DevOps 方法是使团队具有足够的跨职能知识,让团队中的某个人掌握 AWS 服务和基础设施即代码的专业知识,更重要的是拥有适当权限,通过编写 Terraform 模块和在 AWS 中部署 RDS 来自动化配置云资源。

而对于平台工程,应该有一个作为"内部开发人员门户"的集成产品,这样开发人员就可以通过它以自助服务的方式请求 AWS 中的 RDS,平台将自动创建 RDS。

请注意,这只是一个例子。如果设计得当,内部开发人员门户网站可以实现更多功能。

简而言之,平台工程是一门设计和构建工具链和工作流集成产品的学科,涵盖了整个 SDLC 的操作需求,实现适度的开发人员自助服务,并为云原生时代的各个组织和团队找到合适的抽象层次。

平台工程 V.S. DevOps

虽然平台工程通过提供自动化基础架构操作的自助服务功能改善了开发人员的体验和工作效率,但并不适合所有人,尤其不适合小型团队/公司。即使团队决定购买内部开发人员门户网站作为服务,而不是从头开始构建,仍然需要在幕后维护自动化和模板。想想之前在云上创建 RDS 的例子,团队需要具备维护 Terraform 模板的知识,以生成在 AWS 中创建 RDS 的模块。

如果团队和公司规模太小,不适合开展平台工程,DevOps 可以更好的发挥作用。一般来说,在规模较小的环境中,协作更紧密,节奏更敏捷,组织摩擦更少。

关于平台工程和 DevOps,还有一点至关重要,那就是平台工程不会"取代"DevOps,它的出现不会让 DevOps 被遗忘。

尽管很多人说,随着平台工程的兴起,DevOps 已死,但这并不是一种方法取代另一种方法的情况,而是两种方法可以结合在一起。我们可以将平台工程称为 DevOps 的"进化",两者仍在促进相同的目标,并能帮助 DevOps 提高效率。我们很可能仍然会经常看到 DevOps 文化,而且许多软件工程组织也很可能会建立平台团队,从而将软件开发人员和 IT 运维人员凝聚在一起。

安全在新范式中的定位

说到 DevOps,就不能不提到安全(或 DevSecOps),毕竟安全是头等大事。

DevOps通过"左移"来解决安全问题。在传统软件开发方法中,与安全相关的任务只在SDLC的最后处理,而这可能会导致项目延迟并且不可扩展,DevOps/DevSecOps使用自动化工具尽可能早的在SDLC的每个阶段"嵌入"安全。

例如,在编写代码时,开发人员会考虑潜在的安全问题,如在哪里存储secrets和凭证,以及如何从代码中安全的获取(而不是在将所有secrets推向生产之前进行最终审计/审查)。另外,在构建虚拟机镜像或容器镜像时,每次构建都会自动进行漏洞扫描,并在发现任何漏洞时进行修复(而不是在交付生产之前进行一次性扫描)。

这就是"左移"。

所有这些以更敏捷、反应更快、更自动化的"左移"方式处理secrets的方法,在平台工程中仍然被坚持继承了下来,DevOps 和平台工程在这里并不矛盾。

只是在平台工程的帮助下,内部开发人员门户网站可以将整个过程的自动化提升到另一个层次。我们来看两个具体的例子:

想象一下,当你想创建一个新的微服务时,内部开发人员门户网站可以使用现有模板引导创建整个存储库,而不只是编写一些模板代码。然后通过技术手段构造 CI/CD 流水线、Dockerfiles 和 Kubernetes 清单,这不仅能为应用程序提供脚手架代码,还能提供 CI/CD 流水线、Dockerfiles、Helm charts和 Kubernetes YAML,其中预配置的流水线遵循 DevSecOps 最佳实践,能扫描源代码中的硬编码secrets,并对 YAML 等进行校验。

想象一下,你想存储一些secrets。与其去弄清团队正在使用哪个secrets管理器,部署在哪里,以及是否有权限创建secrets,还不如访问与secrets管理器集成的内部开发人员门户,以自助服务的方式创建secrets,而不必过多担心任何底层细节,这正是平台工程所能提供的抽象程度。

想象一下,你想在云上启动一个新的虚拟机。与其从头开始编写自动化代码(或从现有代码库中复制粘贴),然后在部署前审查安全组设置,还不如简单的访问内部开发人员门户网站,点击一个按钮,然后使用由平台工程团队维护和保护的模板来完成所有工作。

所有这些都是平台工程的魅力所在:

  • 自助服务
  • 适度抽象
  • 最佳实践和自动化
总结

本文探讨了 DevOps 和平台工程,它们之间的区别,以及新范式如何解决安全问题。


你好,我是俞凡,在Motorola做过研发,现在在Mavenir做技术工作,对通信、网络、后端架构、云原生、DevOps、CICD、区块链、AI等技术始终保持着浓厚的兴趣,平时喜欢阅读、思考,相信持续学习、终身成长,欢迎一起交流学习。为了方便大家以后能第一时间看到文章,请朋友们关注公众号"DeepNoMind",并设个星标吧,如果能一键三连(转发、点赞、在看),则能给我带来更多的支持和动力,激励我持续写下去,和大家共同成长进步!

参考资料
[1]

Twitter上关于DevOps的调查: https://twitter.com/luca_cloud/status/1562349679660122112

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/711749.shtml

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

相关文章

Android WebView访问网页+自动播放视频+自动全屏+切换横屏

一、引言 近期,我发现电视家、火星直播等在线看电视直播的软件都已倒闭,而我奶奶也再无法通过这些平台看电视了。她已六十多岁,快七十岁啦。这些平台的倒下对我来说其实没有多大的影响,但是对于文化不多的她而言,生活中…

蓝桥杯算法 一.

分析&#xff1a; 本题记录&#xff1a;m个数&#xff0c;异或运算和为0&#xff0c;则相加为偶数&#xff0c;后手获胜。 分析&#xff1a; 369*99<36500&#xff0c;369*100>36500。 注意&#xff1a;前缀和和后缀和问题

【wpf】关于绑定的一点明悟

背景简介 软件功能为&#xff0c;读取一个文件夹下的所有子文件夹&#xff0c;每个文件夹对自动对应生成 一组 “按键四个勾选” 按键点击触发&#xff0c;可以发送与其对应文件夹中的一些内容。这个绑定的过程我在之前的文章有过详细的介绍&#xff0c;非常的简单。 这里回顾…

mac jupyter使用现有的python环境

mood&#xff1a;python 编程真的是在反复的与自己和解啊 本来超级的畏难情绪 读会儿书 计算机博士的书 感觉还是要坚强的。《研磨记》--一位博士生的回忆录 作者技术真的强啊 正文开始&#xff1a; 聚焦搜索&#xff0c;打开终端激活虚拟环境&#xff1a;conda activate pyt…

外汇天眼:ASIC 获得针对前 Blockchain Global 董事的临时出行限制令

澳大利亚证券与投资委员会&#xff08;ASIC&#xff09;已经针对前Blockchain Global Limited&#xff08;清算中&#xff09;董事梁国&#xff08;又名Allan Guo&#xff09;获得了临时旅行限制令。这些命令在其他方面&#xff0c;阻止郭先生在2024年8月20日或进一步命令之前离…

(done) 如何计算 Hessian Matrix 海森矩阵 海塞矩阵

参考视频1&#xff1a;https://www.bilibili.com/video/BV1H64y1T7zQ/?spm_id_from333.337.search-card.all.click 参考视频2&#xff08;正定矩阵&#xff09;&#xff1a;https://www.bilibili.com/video/BV1Ag411M76G/?spm_id_from333.337.search-card.all.click&vd_…

windows安装部署node.js以及搭建运行第一个Vue项目

一、官网下载安装包 官网地址&#xff1a;https://nodejs.org/zh-cn/download/ 二、安装程序 1、安装过程 如果有C/C编程的需求&#xff0c;勾选一下下图所示的部分&#xff0c;没有的话除了选择一下node.js安装路径&#xff0c;直接一路next 2、测试安装是否成功 【winR】…

华为OD机试真题-智能成绩表-2023年OD统一考试(C卷)---Python3--开源

题目&#xff1a; 考察内容&#xff1a; sort(双排序&#xff09; if dict(keys;items()) 代码&#xff1a; """ analyze:input: int n 学生人数&#xff1b; int m 科目数量 科目名称&#xff08;不重复&#xff09; 人名(不会重名&#xff09; 科目成绩 …

Python 在Word中查找并高亮指定文本

当你需要在长文档或报告中快速找到特定的关键词或短语&#xff0c;Word中提供的查找并高亮这一功能可以帮助你迅速定位这些内容。本文将介绍如何使用Python在Word中查找并突出显示指定的文本。 所需工具&#xff1a;第三方库 Spire.Doc for Python。该库支持创建、编辑、转换Wo…

HDL FPGA 学习 - FPGA基本要素,开发流程,Verilog语法和规范、编写技巧

目录 Altera FPGA 基本要素 FPGA 开发流程和适用范围 设计和实施规范 顶层设计的要点 Verilog HDL 语法规范 编写规范 设计技巧 编辑整理 by Staok&#xff0c;始于 2021.2 且无终稿。转载请注明作者及出处。整理不易&#xff0c;请多支持。 本文件是“瞰百易”计划的…

SQL注入漏洞解析--less-6

1.第六关了。 2.这个和第五关有点像&#xff0c;只是换成了双引号&#xff0c;接下来的都一样&#xff0c;看我操作(换个函数试一下extractvalue&#xff0c;他的报错位置在第二个&#xff0c;那我就利用一下) 3.爆库名 ?id1"%20and%20extractvalue(1,concat(0x7e,(sele…

刷题日记 | 字符串扩容和增强型for循环

for(char c:s)遍历字符串 增强型for循环 C for(char c:s)遍历字符串 增强型for循环_c for (char c : s)-CSDN博客 字符串使用前要进行扩容 reserve函数 【CString类成员函数辨析】resize(),size(),capacity(),reserve()函数的解析与对比_c reserve函数-CSDN博客 a.size() 用来…

告警闪现后的故障排查

长期以来&#xff0c;医院信息化运维中存在着科室复杂、应用场景多、终端运维工作量大、软件系统兼容需求强等诸多痛点&#xff0c;且对技术设备的稳定性、连续性要求极高&#xff0c;在日常运维中&#xff0c;需要应对和解决这些问题来保障业务稳定、健康运行。 1、数据孤岛 …

Centos6安装PyTorch要求的更高版本gcc

文章目录 CentOS自带版本安装gcc 4的版本1. 获取devtoolset-8的yum源2. 安装gcc3. 版本检查和切换版本 常见问题1. 找不到包audit*.rpm包2. 找不到libcgroup-0.40.rc1-27.el6_10.x86_64.rpm 的包4. cc: fatal error: Killed signal terminated program cc1plus5. pybind11/pybi…

安达发|可视化APS高级排产系统实现精益制造

精益制造已经成为了一种重要的生产模式&#xff0c;它的目标是通过消除浪费&#xff0c;提高生产效率&#xff0c;以实现更高的质量和更低的成本。而可视化APS高级排产系统则是实现精益制造的重要工具。下面&#xff0c;我将从接单可视化、BOM工艺可视化、计划与排程可视化、制…

【Flink精讲】Flink性能调优:CPU核数与并行度

常见问题 举个例子 提交任务命令&#xff1a; bin/flink run \ -t yarn-per-job \ -d \ -p 5 \ 指定并行度 -Dyarn.application.queuetest \ 指定 yarn 队列 -Djobmanager.memory.process.size2048mb \ JM2~4G 足够 -Dtaskmanager.memory.process.size4096mb \ 单个 TM2~8G 足…

Android 性能优化--APK加固(1)混淆

文章目录 为什么要开启混淆如何开启代码混淆如何开启资源压缩代码混淆配置代码混淆后&#xff0c;Crash 问题定位结尾 本文首发地址&#xff1a;https://h89.cn/archives/211.html 最新更新地址&#xff1a;https://gitee.com/chenjim/chenjimblog 为什么要开启混淆 先上一个 …

【会议征稿通知】第十届人文学科与社会科学研究国际学术会议(ICHSSR 2024)

第十届人文学科与社会科学研究国际学术会议&#xff08;ICHSSR 2024) 2024 10th International Conference on Humanities and Social Science Research 第十届人文学科与社会科学研究国际学术会议&#xff08;ICHSSR 2023)将于2024年4月26-28日在中国厦门隆重举行。会议主要…

工厂生产效率如何提升?这8个重点你不得不看!

企业的竞争本质上就是效率与成本的竞争&#xff08;当然是保证产品质量的前提下&#xff09;&#xff0c;如何持续不断地提高生产效率是企业永续发展的关键问题&#xff0c;提高生产效率也是降低制造成本的根本途径。 当然&#xff0c;我们必须严格根据工艺标准来操作&#xf…

如何通过ip查询用户的归属地

背景 最近公司做了一些营销活动&#xff0c;投入资金进行了流量推广&#xff0c;pv、UV都做了统计。老板说&#xff0c;我要看下用户的区域分布的数据。 以前的文章我讲过&#xff0c;pv、UV如何统计&#xff1f;我们是基于ip进行统计的。用的ip能获取到&#xff0c;那通过ip…