平台工程指南:从架构构建到职责分工

平台工程只是 DevOps 专业化的另一个术语,还是另有所指?事实可能介于两者之间。DevOps 及其相关的 DevXOps 有着浓厚的文化色彩,以各个团队为中心。不幸的是,在许多地方,DevOps 引发了新的问题,如工具激增和整个企业缺乏协调。可以说,为了应对过去非常严格的孤岛式管理和强烈的集中化,DevOps 逐渐倾向于联合——也就是团队层面的次优化,这对组织也造成了损害。规模更大、更复杂的企业对此感受最深,因为它们必须处理不同的技术堆栈,而且整个组织的成熟度也不尽相同。

平台工程正是为了应对这一全企业范围的挑战而发展起来的。它并非 DevOps 的替代品。相反,平台工程与 DevOps 相辅相成,共同应对整个企业面临的挑战,并提供一个工具平台,让各个团队更容易完成工作,而不是在试图保持整个组织一致性的同时破坏事情。

在过去几年中,由于更多的应用程序正在以更快的速度运行,IT 交付的复杂性也随之增加。这意味着组织不能依靠个人来控制复杂性;他们需要有适当工具支持的系统解决方案。这就是平台工程要解决的问题。因此,平台工程师对企业来说至关重要,因为他们的角色是实现安全和工程标准的关键。

01 平台工程师的定义

平台工程师的职责包括三个不同的部分。

图片

最明显的是技术架构师的角色,因为他们必须建立一个连接所有工具和实现流程的工程平台。第二个方面是社区推动者,这与技术工具公司的开发人员关系角色类似。第三部分是产品经理;开发人员社区的利益和需求与平台的技术需求(如安全加固和过时组件的修补)之间的竞争需要优先考虑。

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

在技术堆栈复杂度中等或较高的企业中,构建、发布和维护软件所需的工具至少有十几种,有时甚至更多。整合这些工具并对有意义的指标进行衡量,就像整合业务应用程序一样棘手。毕竟,面临的挑战非常相似:不同的流程需要校准,数据模型需要转换以使其可用,集成点需要连接以实现端到端流程

运行软件方面业务的系统也同样具有挑战性。平台工程师在这方面的职责是负责软件运行工具的架构,目标是让工具 “消失”,使软件的构建和发布显得简单易行

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

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

作为产品经理的平台工程师

企业的工程师和其他利益相关者对平台的需求相互竞争。以高效的方式确认这些需求的优先级是一项艰巨的任务,因为您必须在所有相互竞争的利益之间找到平衡,尤其是平台的资金本身往往就是一项挑战,因此快速实现价值对于平台的持续支持至关重要。平台工程师需要良好的谈判技巧来应对这些挑战。

02 平台工程架构概述

我们谈到了平台工程师的角色,但平台工程师要构建和维护的平台包含哪些内容呢?最简单的方法是考虑三个层次和一个目标环境:

  • 最上层是开发人员体验。这些是开发人员直接使用的工具——推动整体工作流程的工具,如敏捷生命周期管理工具、服务管理工具和开发人员集成开发环境,都属于这一层。

  • 底层包括基础设施组件,这些组件必须结合起来才能构建应用环境。这些组件可以来自公共云或私有云,也包括传统的数据中心技术。

  • 中间层是最复杂的地方——软件工程平台。在这里,创建和交付软件所需的所有流程都要进行协调:CI/CD、安全扫描、环境配置和发布管理。

图片

03 如何在整个 DevOps 团队中采用平台工程

一种成功的采用模式侧重于确定开发人员的旅程,以定义最小可行平台。那么,需要哪些功能才能使开发人员的旅程实现结果呢?想一想置备环境、将新 API 部署到生产环境或运行性能测试套件这样的任务。每项任务都是一个有效的开发人员旅程,其中有多个接触点,可能需要众多工具。一旦您为第一套应用或技术创建了最低可行平台,应用就会从三个维度展开:更多的应用更多的功能和更高的成熟度,从而提高自动化和/或性能水平。

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

  • 社区参与

  • 提供资金

  • 衡量平台成果

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

资金很快也会成为瓶颈,因此应在平台工程师采用平台的早期就商定资金策略。这可以是多种策略之一,如专项资金、为所提供的服务提供资金或对所有软件开发征收服务税。每种策略都有其自身的优势和挑战,但最重要的是要有一个不依赖于利益相关者善意的可持续长期资助战略

最后一点,平台工程师需要能够展示成果,这意味着我们需要衡量有意义的指标,以展示为什么有了该平台,公司会变得更好。这一点往往被遗忘或事后才想到。了解组织的优先事项并使衡量框架与之保持一致,有助于获得持续的支持。不幸的是,这通常需要对多个工具的数据进行调整,而且在前期考虑时最容易实现——单个工具的数据模型保持孤立的时间越长,难度就越大。

04 结论

平台工程仍然是一个相当新的领域,但已经有很多关于它的内容,这说明它很快就引起了企业的兴趣。甚至还有一个专门的会议,始于 2022 年,有数千人参加。虽然还为时尚早,但目前的迹象表明,平台工程已迅速获得市场认可,并形成了一个充满激情的社区。与此同时,平台工程师角色的重要性也将稳步提升,这一点也已在薪酬中有所体现。

希望平台工程能继续帮助企业为开发人员降低软件开发的复杂性,同时实现 DevOps 的承诺:更快、更安全地提供更好的解决方案

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

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

相关文章

【云原生】kubeadm快速搭建K8s集群Kubernetes1.19.0

目录 一、 Kubernetes 的概述 二、服务器配置 2.1 服务器部署规划 2.2服务器初始化配置 三、安装Docker/kubeadm/kubelet【所有节点】 3.1 安装Docker 3.2 添加阿里云YUM软件源 3.3 安装kubeadm,kubelet和kubectl 四、部署Kubernetes Master 五、部署Kube…

网络入侵检测系统之Suricata(十四)--匹配流程

其实规则的匹配流程和加载流程是强相关的,你如何组织规则那么就会采用该种数据结构去匹配,例如你用radix tree组织海量ip规则,那么匹配的时候也是采用bit test确定前缀节点,然后逐一左右子树查询,Suricata也是如此&…

基于Spring Boot的图书个性化推荐系统 ,计算机毕业设计(带源码+论文)

源码获取地址: 码呢-一个专注于技术分享的博客平台一个专注于技术分享的博客平台,大家以共同学习,乐于分享,拥抱开源的价值观进行学习交流http://www.xmbiao.cn/resource-details/1765769136268455938

Doris实战——特步集团零售数据仓库项目实践

目录 一、背景 二、总体架构 三、ETL实践 3.1 批量数据的导入 3.2 实时数据接入 3.3 数据加工 3.4 BI 查询 四、实时需求响应 五、其他经验 5.1 Doris BE内存溢出 5.2 SQL任务超时 5.3 删除语句不支持表达式 5.4 Drop 表闪回 六、未来展望 原文大佬的这篇Doris数…

离散数学——(3)联结词及对应的真值指派,最小全功能联结词集,对偶式,范式,范式存在定理,小项

目录 1.联结词及对应的真值指派 2.最小全功能联结词集 3.对偶式 4.范式 1.析取范式 5.范式存在定理 6.小项 1.联结词及对应的真值指派 2.最小全功能联结词集 3.对偶式 4.范式 1.析取范式 5.范式存在定理 6.小项

hfish蜜罐搭建与使用

本次是对自己在学习蓝队过程中的一次对安全设备 hfish蜜罐的搭建和使用考核记录,距离之前已 经过去很久了,对之前在考核过程中的操作进行回顾和总结. 蜜罐在这里我进行免费分享 hfish-3.1.4-windows-amd64.zip官方版下载丨最新版下载丨绿色版下载丨APP下载-123云…

Visual Studio如何进行类文件的管理(类文件的分离)

大家好: 衷心希望各位点赞。 您的问题请留在评论区,我会及时回答。 一、问题背景 实际开发中,类的声明放在头文件中,给程序员看类的成员和方法。比如:Dog.h(类的声明文件) 类的成员函数的具体…

继承,切片,隐藏

定义: 子类(派生类)继承了父类(基类)的成员函数和成员变量(类层次的复用) 赋值 子类可以赋值给父类。父类不可以直接复制给子类 (不像不同内置类型的赋值要转化为临时变量&#xf…

U盘上文件夹突然空了?掌握3个方法,轻松找回数据!

“我的u盘插上之后,不知道为什么就空了,里面所有的文件都没有了,有什么方法可以找回u盘里丢失的文件吗?” 在日常使用U盘的过程中,我们有时会遇到一个令人头疼的问题,U盘上的文件夹突然空了。这究竟是怎么回…

Windows系统安装MongoDB并结合内网穿透实现公网访问本地数据库

文章目录 前言1. 安装数据库2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射2.3 测试随机公网地址远程连接 3. 配置固定TCP端口地址3.1 保留一个固定的公网TCP端口地址3.2 配置固定公网TCP端口地址3.3 测试固定地址公网远程访问 前言 MongoDB是一个基于分布式文件存储的数…

DHCP部署与安全

在当今快速发展的网络世界中,动态主机配置协议(DHCP)扮演着至关重要的角色。这项技术不仅简化了网络管理,还提高了网络资源的利用率。本文旨在深入探讨DHCP的工作原理、优势以及如何有效部署和保护DHCP服务器。 一、DHCP作用 自…

Flutter的线程模型

在Flutter框架中,Embedder层负责把Flutter嵌入到各个平台上去,其所做的主要工作包括线程设置、渲染Surface设置,以及插件等。因此, Embedder负责线程的创建和管理,并且提供Task Runner给Engine使用。Engine则是负责提供…

Mysql深入学习 基础篇 Ss.05多表查询语法及案例

世界总是在推着我走,我自己一个人也能站稳 —— 24.3.7 一、多表关系 1.概述 项目开发中,在进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个…

Croissant:Google新推出的一个为机器学习准备的数据集元数据格式

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

【易飞】易飞ERP自动审核程序功能

易飞ERP自动审核程序功能 一、 使用场景二、 操作说明三、 安装方式 一、 使用场景 OA系统集成 与第三方OA系统软件集成,在OA软件审核完成后,直接将ERP中的单据审核。MES系统集成 MES系统生成单据写入到易飞ERP中,并需要自动审核单据&#x…

如何学习、上手点云算法(三):用VsCode、Visual Studio来debug基于PCL、Open3D的代码

写在前面 本文内容 以PCL 1.14.0,Open3D0.14.1为例,对基于PCL、Open3D开发的代码进行源码debug; 如何学习、上手点云算法系列: 如何学习、上手点云算法(一):点云基础 如何学习、上手点云算法(二):点云处理相…

跟无神学AI之Tensorflow笔记搭建网络八股

虽然Pytorch在论文中使用较多,但是像Alphafold在蛋白质结构预测的模型,仍然是用Tensorflow写成,遂近期在学其中的语法。 本系列来自慕课北大软微曹健老师的Tensorflow笔记,摘选其中重要部分。 1.导包 2.定义训练集测试集和数据…

Android随手记

activity的生命周期 创建时 onCreate() - onStart() - onResume() - onPause() - onStop() - onDestroy() 切换时 a切换到b a.onCreate() - a.onStart() - a.onResume - a.onPause - b.onCreate() - b.onStart() - b.onResume() - a.onStop() b切换回a b.onPause() - a.onR…

C#与python交互(flask发送Get/Post请求)

先运行python,再运行C# **ps: 注意修改端口号**python发送Get/Post请求 # -*- coding: utf-8 -*- # Time : 2024/1/25 15:52 # Author : YY # File : post_test.py # Content:提交数据给客户端 from flask import Flask, request, jsonify, redirect…

华为OD机试 - 字符串统计(Java 2024 C卷 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述1、输入2、输出3、说明 四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2024C卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题&a…