平台工程师的崛起:如何应对日益复杂的软件

平台工程只是 DevOps 专业化的另一个术语,还是有什么不同?事实可能介于两者之间。DevOps 及其相关的 DevXOps 风格具有浓厚的文化色彩,将各个团队置于中心位置。不幸的是,在许多地方,DevOps 导致了新的问题,例如工具激增和整个企业缺乏协调。有人可能会说,为了应对过去非常严格的孤岛和强烈的集中化,DevOps 已经将钟摆推向了联合——因此,在团队层面上进行了次优化——从而损害了组织。规模更大、更复杂的企业对此感受最深,因为它们必须处理整个组织中不同的技术堆栈和不同的成熟度水平。

平台工程的发展是为了应对这一企业范围的挑战。平台工程并不能替代DevOps。相反,平台工程补充了 DevOps,以解决企业范围内的挑战,并提供一个工具平台,使各个团队更容易做正确的事情,而不是破坏事情,同时尝试保持整个组织的一致性。

过去几年,随着越来越多的应用程序以更快的速度发展,IT 交付的复杂性不断增加。这意味着组织不能依赖个人来控制复杂性;它们需要由适当工具支持的系统答案。这就是平台工程想要解决的问题。因此,平台工程师对于组织来说变得至关重要,因为他们的角色掌握着实现安全和工程标准的关键。

什么是平台工程师?

平台工程师的角色分为三个不同的部分。

图 1.平台工程师的角色

最明显的一个是技术架构师的角色,因为他们必须构建一个连接所有工具并启用流程的工程平台。第二个方面是社区推动者,类似于技术工具公司的开发人员关系角色。第三部分是产品经理;开发者社区的相互竞争的利益和需求需要根据平台的技术需求来优先考虑(考虑安全强化和过时组件修补等问题)。

平台工程师作为技术架构师

在技​术堆栈具有中等或高度复杂性的组织中,构建、发布和维护软件所需的工具数量至少有十几个,有时甚至更多。集成这些工具并实现有意义的指标测量与集成业务应用程序一样棘手。毕竟,挑战非常相似:需要协调不同的流程,需要转换数据模型以使其可用,需要连接集成点以启用端到端流程。

运行业务软件方面的系统也变得同样具有挑战性。平台工程师在这里的角色是照顾运行软件端的工具的架构 - 目标是让工具“消失”并使软件的构建和发布看起来很容易。

平台工程师作为社区推动者

软件工程师倾向于认为他们的解决方案比其他人的解决方案更好。因此,工程平台的采用是一个需要克服的挑战。告诉工程师使用特定工具常常会遇到阻力。平台工程师必须是社区推动者,与工程师合作推广平台并让他们相信平台的好处。在这部分角色中,沟通是双向的,因为平台工程师还必须倾听平台的问题和挑战,并确定需求量大的新功能。这就引出了角色的第三部分。

平台工程师兼产品经理

对平台的竞争需求来自组织的工程师和其他利益相关者,例如安全性,当然还有平台工程师。以有意义的方式优先考虑这些需求是一项艰巨的任务,因为您必须在所有相互竞争的利益之间找到平衡,特别是平台的资金本身往往是一个挑战,因此价值实现速度对于平台的持续支持至关重要。平台工程师需要良好的谈判技巧来应对这些挑战。

平台工程架构概述

我们讨论了平台工程师的角色,但是平台工程师正在构建和维护的平台中包含哪些内容?最容易考虑三层和一个目标环境:

  1. 最顶层是开发者体验。这些是开发人员直接使用的工具——驱动整个工作流程的工具,例如敏捷生命周期管理工具、服务管理工具和开发人员 IDE,都适合于此。
  2. 底层包括必须组合起来才能构建应用程序环境的基础设施组件。这可以来自公共云或私有云,包括传统的数据中心技术。
  3. 中间是最复杂的地方——软件工程平台。在这里,创建和交付软件所需的所有流程都在编排:CI/CD、安全扫描、环境配置和发布管理。

图2.平台结构

做出转变:如何在 DevOps 团队中采用平台工程

那么你应该从哪里开始呢?一种成功的采用模式侧重于确定开发人员的旅程以定义最小可行平台。需要哪些能力才能使开发人员的旅程取得成果?想象一下这样的任务:配置环境、将新 API 部署到生产环境或运行性能测试套件。每个都是一个有效的开发者旅程,具有多个接触点,可能需要大量工具。一旦您为第一组应用程序或技术创建了最小可行平台,采用就会遵循三个维度:更多的应用程序(一旦所需的功能可用)、更多的功能和更高的成熟度,从而提高自动化和/或性能的水平。

除了担心如何以合理的方式构建平台之外,还应该尽早解决其他三个方面的问题:

  1. 社区参与
  2. 资金
  3. 衡量平台的结果

定义社区参与策略非常有帮助。该策略应包含如何与开发者社区共享信息、如何提出功能请求以及如何传达平台的优势。定义论坛、通讯及其各自的频率也很有帮助。

资金很快就会成为瓶颈,因此应该在平台工程师采用的早期就资金策略达成一致。这可以是多种策略之一,例如专用资金、为所提供的服务提供资金或对所有软件开发征收服务税。每个都有其自己的优点和挑战,其讨论超出了本文的范围。重要的是要有一个不依赖于利益相关者善意的可持续的长期融资战略。

最后但并非最不重要的一点是,平台工程师需要能够展示结果,这意味着我们需要衡量有意义的指标,以展示为什么公司在使用平台后会变得更好。这常常被遗忘或事后才想到。了解组织的优先事项并根据其调整衡量框架有助于获得持续的支持。不幸的是,这通常需要跨多个工具进行数据对齐,并且在预先考虑时最容易实现 - 各个工具的数据模型保持隔离的时间越长,它就会变得越来越困难。

结论

平台工程仍然是一个相当新的事物,但已经有很多内容,这表明它很快就引起了组织的兴趣。甚至还有一个专门的会议,于 2022 年开始,有数千名参与者。现在还处于早期阶段,但目前的迹象表明,平台工程已迅速获得市场采用和热情的社区。在这种情况发生的同时,平台工程师的角色的重要性将稳步提高,这也已经体现在薪资中。

希望平台工程将继续帮助组织降低开发人员的复杂性,同时兑现 DevOps 承诺:更快、更安全地提供更好的解决方案。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

OpenAI 大声朗读出来

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

Kubernetes: 本地部署dashboard

本篇文章主要是介绍如何在本地部署kubernetes dashboard, 部署环境是mac m2 下载dashboard.yaml 官网release地址: kubernetes/dashboard/releases 本篇文章下载的是kubernetes-dashboard-v2.7.0的版本,通过wget命令下载到本地: wget https://raw.githubusercont…

成都正信:亲戚借了钱一直不还怎么委婉的说

在中国传统文化中,亲情关系往往被视为最为重要和敏感的部分。当亲戚间发生借贷时,若出现拖欠不还的情形,处理起来尤为棘手。面对这样的尴尬局面,采取委婉而有效的沟通方式至关重要。 张华最近就遇到了这样的困扰。他的表弟去年因急…

vue3中的生命周期有哪些和怎么使用?

目录 前言: 正文: 总结: 前言: Vue.js 3是Vue.js框架的最新主要版本,引入了一些重大的改变和增强。在Vue 3中,由于Composition API的引入,生命周期钩子被替换为生命周期函数。 正文: 以下是…

回调函数、回调地狱、解放方法Promise的用法

回调函数 回调函数的定义非常简单:一个函数被当做一个实参传入到另一个函数(外部函数),并且这个函数在外部函数内被调用,用来完成某些任务的函数。就称为回调函数回调函数的两种写法(实现效果相同): const text () > {docum…

Python算法题集_N 皇后

Python算法题集_N 皇后 题51:N 皇后1. 示例说明2. 题目解析- 题意分解- 优化思路- 测量工具 3. 代码展开1) 标准求解【规则遍历合理性回溯】2) 改进版一【线状态检测合理性回溯】3) 改进版二【单行矩阵回溯】 4. 最优算法5. 相关资源 本文为Python算法题集之一的代码…

文生视频Sora模型发布,是否引爆AI芯片热潮

文生视频Sora模型发布,是否引爆AI芯片热潮 1. 引言 在人工智能的历史长河中,每一次技术的飞跃都伴随着社会生产力的巨大变革。自2015年以来,深度学习技术的突破性进展,尤其是在自然语言处理、图像识别和机器学习等领域的成功应…

检测螺栓扭矩的方法有哪些——SunTorque智能扭矩系统

螺栓扭矩的检测是确保螺栓连接紧固程度和安全性的重要环节。正确的扭矩检测能够预防螺栓松动、断裂等潜在风险,从而保障设备和结构的稳定运行。SunTorque智能扭矩系统接下来将详细介绍螺栓扭矩的检测方法。 螺栓扭矩的检测是确保螺栓连接紧固程度和安全性的重要环节…

刷题笔记day27-回溯算法3

39. 组合总和 var path []int var tmp []int var result [][]int// 还是需要去重复,题目中要求的是至少一个数字备选的数量不同。 // 所以需要剪枝操作,右边的要比左边的> func combinationSum(candidates []int, target int) [][]int {// 组合问题pa…

Ubuntu环境配置-LinuxQQ篇

本教程下载Linux QQ的版本是linuxqq_3.0.0-571_amd64.deb 一、下载LinuxQQ 直接使用wget命令下载链接,下载文件 wget https://dldir1.qq.com/qqfile/qq/QQNT/c005c911/linuxqq_3.0.0-571_amd64.deb 二、安装LinuxQQ 当下载完成后,运行命令:…

数据结构界的终极幻神----树

目录 一.数的概念和分类 种类 二.重点概念 哈希树: 二叉树的线索化 什么是线索化 为什么要线索化 特殊的查找树 完全二叉树 三.手撕完全二叉树(堆) 重点讲解 向上搜索算法 向下搜索算法 一.数的概念和分类 树(tree)是包含 n(n≥0) [2] 个节…

4万+条LDZ数据上线啦!快来体验专属于你的设计数据包

利驰电天下资源集市LDZ库正式上线后,物料数据已更新至44151条!你在做自动化设计时找不到元件物料?物料过时?物料信息有误?花高价买的物料信息重复?利驰官方的LDZ库可以帮助你解决这些问题。 LDZ库为电气设…

解决 Pandas 导出文件出现 dtype: object 字样

文章目录 1. 问题2. 解决方法 1. 问题 python 用 pandas 输出 excel 文件时,发现有些列的单元格出现 “dtype: object” 的字样,如下图: 这是 pandas 没有处理好导致的 2. 解决方法 结果用 .values 进行输出,这样就转成字符串…

请说明Vue中的Error Boundaries

当我们开发基于Vue框架的应用时,我们经常会遇到各种错误处理的情况。Vue提供了一种非常强大且简单的方式来处理这些错误,那就是Error Boundaries(错误边界)。本文将从概念、用法和示例代码三个方面来详细介绍Vue中的Error Boundar…

多媒体信息处理-重点知识-3. Feature Indexing and Retrieval

Chap 3. Feature Indexing and Retrieval 什么是索引? 为了提高数据集的检索效率而生成的结构化信息 基于特征的相似度匹配是多媒体数据检索方法的基础 从多媒体对象中提取重要特征,将其转化成高维特征向量存储在数据库中 相似性度量: 两种…

springboot245科研项目验收管理系统

科研项目验收管理系统 摘 要 使用旧方法对科研项目信息进行系统化管理已经不再让人们信赖了,把现在的网络信息技术运用在科研项目信息的管理上面可以解决许多信息管理上面的难题,比如处理数据时间很长,数据存在错误不能及时纠正等问题。这次…

Tomcat性能调优

1‍.应用场景/常见内容溢出问题‍ 常见问题为内存溢出,分为堆内存溢出、非堆内存溢出,比较常见的为堆内存溢出,后2类属于非堆内存溢出。 堆溢出: java.lang.OutOfMemoryError:Java heap spcace 原因:项目运行阶段,new的对象过多…

Linux CentOS系统安装Spug并结合内网穿透实现远程访问本地运维平台

目录 前言 1. Docker安装Spug 2 . 本地访问测试 3. Linux 安装cpolar 4. 配置Spug公网访问地址 5. 公网远程访问Spug管理界面 6. 固定Spug公网地址 结语 作者简介: 懒大王敲代码,计算机专业应届生 今天给大家聊聊Linux CentOS系统安装Spug并结合…

Leetcode刷题(三十八)

旋转矩阵(Medium) 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。示例 1:输入:mat…

Blazor系统教程(.net8)

Blazor系统教程 1.认识 Blazor 简单来讲,Blazor旨在使用C#来替代JavaScript的Web应用程序的UI框架。其主要优势有: 使用C#编写代码,这可提高应用开发和维护的效率利用现有的NET库生态系统受益于NET的性能、可靠性和安全性与新式托管平台(如…