做到这6点,你的平台工程就完啦

在开始平台工程改革前,DevOps 团队往往对平台抱有很高的期望。他们期望彻底改变与 Git、CI/CD、测试以及团队使用的其他一些相关的工作流程,并简化整个流程。当平台被推出时,结果却令人失望。平台的复杂性和不直观的设计让开发人员常常感到困惑,他们发现很难设计工作流程。无论是创建或触发流水线还是管理部署环境,该平台都被证明是一个障碍。

虽然这是一个假设的场景,但这也很可能在现实生活中发生。即使是使用最新工具和技术构建的最有前途的平台也可能会陷入困境。根据 State of Platform Engineering Report 2023,32% 的受访者认为团队之间沟通不畅可能导致平台失败

在这篇文章中,我们将深入探讨导致平台失败的原因。或者换句话说,做到哪几点,你的平台工程就完蛋了。

01 平台工程失败的6个原因

产品不匹配

产品不匹配是指平台的设计和功能与其目标受众(即平台所面向的开发者)的需求和期望不匹配。出现产品不匹配的几个原因如下:

  • 当开发人员不参与平台的构建过程时,最终的结果往往是平台的功能是开发人员根本不需要或根本用不上的。这导致平台的大部分功能被闲置

  • 一个不能满足开发人员需求的平台往往无法与组织的目标保持一致。这将导致开发进程放缓、高层兴趣降低,甚至在某些情况下出现财务瓶颈。

例如,设计一个平台是为了实现 CI/CD 集成自动化,但却没有考虑到开发团队使用的多云环境,因此该平台与这些复杂设置存在兼容性问题。这种不匹配会导致极大的复杂性和较慢的部署速度。

要克服产品不匹配的问题,最好的办法是让开发人员参与到平台建设的早期阶段中,开展调查和访谈,以了解将构成平台基础的开发人员的需求。

过于复杂的设计

平台失败的常见原因之一是平台带来了不必要的复杂性。平台工程团队在构建平台时,会加入大量旨在解决所有用例的功能,这就给开发人员带来了困惑,有时甚至会掩盖平台的实际目的。偏离行业标准和最佳实践也会加剧这一问题。

为实现灵活性和通用性而构建的平台通常会提供大量定制选项。然而,过多的选项会增加平台的整体复杂性。此外,如果这样的平台使用非标准脚本语言来配置这些设置,可能会导致开发人员的学习变得更加艰难。

因此,按照行业标准建立界面更简单的平台是避免问题的好方法。

全面但不精准的工具

当平台工程师团队开始构建平台时,他们往往希望构建一个能解决所有问题的平台,而最终发现这才是最大的问题。虽然建立一个一体化平台的初衷很好,但这往往会导致平台功能繁多。

这就给用户体验带来了挑战,因为用户往往很难在平台中找到他们需要的东西。此外,这种平台还存在与其他平台集成的问题,而这往往是任何平台的关键部分。

例如,这种一体化平台希望能够与所有 CI/CD 工具集成。然而,在此过程中,该平台将引入大量复杂的配置,这将使开发人员难以连接到自己喜欢的平台。

与其专注于构建能解决所有问题的平台,不如专注于构建能彻底解决一个问题的平台。建立满足开发人员需求的专业平台将有助于避免这样的问题出现

并且,实现这一目标的方法之一是将平台视为产品,这也有助于解决这一问题,因为您可以将开发人员的需求放在中心位置,并围绕其构建平台。

说明文档不充足

完整的说明文档对于包括平台在内的所有产品都至关重要。没有完整的说明内容,开发人员在排除故障和浏览平台时就会遇到障碍。在某些情况下,开发人员可能会试图独立破解复杂的流程,从而造成认知负担。

此外,不充分、不完整和过时的文档会导致效率低下,甚至可能导致大量支持请求涌入,造成不必要的干扰。

例如,一位开发人员需要为一个专门项目定制一个云实例。然而,该平台的说明文档并没有提供如何申请自定义实例的全面指导。更令人沮丧的是,该开发人员不得不联系同事并进行大量研究以了解流程,这导致了大量时间的浪费。

为了避免出现这种情况,拥有最新的文档非常重要。如果需要,可以组建一个专门的团队来确保文档的更新。

提示:在说明文档中添加搜索功能有助于节省宝贵的时间。

孤立的开发

平台工程的两个主要利益相关者是开发人员和平台工程团队。前者使用平台,后者构建和维护平台。通常情况下,这两个团队都是各自为战,很少能看到其他团队在做什么。

平台团队可能会在不了解开发人员不断变化的需求的情况下构建功能,而开发团队可能会努力使自己的工作与平台的功能保持一致。这种脱节往往会导致效率低下、工作重复,以及无法充分利用平台的潜力

为了避免这种失误并促进强有力的协作,企业可以启用共同协作渠道,让平台团队和开发团队可以进行互动、分享想法并解决问题。此外,还可以定期召开会议,讨论正在进行的项目,并分享最新情况和关注点。

停滞不前的平台

变化是唯一的不变。这是我们所有人都耳熟能详的一句话。这句话适用于一切事物,甚至包括平台。一个大张旗鼓地推出并配备了各种功能的平台,需要跟上团队不断变化的要求。

如果该平台不能为其提供的工具和服务提供最新更新,开发团队就会觉得难以使用,最终停止使用该平台。

平台提供的功能和服务也应不断发展。平台应考虑并提供任何有助于开发人员改进工作的内容。

例如,如果开发团队的应用程序使用 MongoDB 服务,平台就需要确保向用户提供最新版本的服务。如果平台不能提供这一点,开发人员将很难使其应用程序保持最新。

让平台保持最新的最佳方法之一就是制定 roadmap。这样你就能知道平台需要添加哪些功能。此外,与开发团队定期互动可以帮助平台团队了解开发人员不断变化的需求,并首先选择最有影响力的项目。

02 总结

综上所述,我们讨论了平台可能失败的一些常见原因。无论您是开发还是使用平台,都必须了解并满足开发人员的独特需求。只要将平台视为产品,就能克服大部分挑战。将产品思维应用于平台,您就能为平台及其未来规划出一条清晰的道路。

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

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

相关文章

健身管理小程序|基于微信开发健身管理小程序的系统设计与实现(源码+数据库+文档)

健身管理小程序目录 基于微信开发健身管理小程序设计与实现 一、前言 二、系统设计 三、系统功能设计 小程序端: 后台 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大厂码…

【重磅更新】开源表单系统填鸭表单v5版发布!

亲爱的TDucker,你们好。 真诚感谢您对填鸭表单的关注与支持。今天我们将为您带来新版本的更新说明,以便您更好的使用我们的产品。 社区版版V5更新概览: ✅ 增加WebHook数据推送功能,集成TReport实现数据大屏展示。 ✅ 增加主题…

在linux上面安装xxl-job2.4.0

问题 由于预算有限,用不起lambda去跑定时任务,现在只能在EC2上面自己安装一个单机版的xxl-job了。 步骤 下载压缩包 在这个页面下载压缩包,并本地解压。 https://github.com/xuxueli/xxl-job/releases mysql准备 找到它默认身数据库初始…

AI决策与专家决策,您更喜欢哪种决策方式?

HI,我是AI智能小助手CoCo。 CoCode开发云智能助手CoCo “大家好,我是CoCode开发云的AI智能小助手CoCo,现在为大家播放关于CoCode开发云AI大家庭的最新消息: 欢迎AI家庭新成员:AI自动决策”。 AI自动决策发布 CoCode开…

零基础自学Python,啃透这五本书就够了!

选择合适的学习资源 在自学Python的前期,选择一本适合初学者的Python入门书籍或在线教程,从基础开始学习,好的入门书籍或在线教程会按照逻辑顺序组织知识,从基础概念开始,逐步引导你深入学习Python编程语言。这种系统…

【经典算法】LeetCode 136:只出现一次的数字(Java/C/Python3实现含注释说明,Easy)

个人主页: 进朱者赤 阿里非典型程序员一枚 ,记录平平无奇程序员在大厂的打怪升级之路。 一起学习Java、大数据、数据结构算法(公众号同名) 目录 题目描述思路及实现方式一:使用异或运算(推荐)思…

MGRE环境下的ospf实验

MGRE环境下的ospf实验 一.拓扑图 二.实验步骤 1.分配各路由网段IP [R1]int g 0/0/0 [R1-GigabitEthernet0/0/0]ip address 16.0.0.1 24 [R1-GigabitEthernet0/0/0]int g 0/0/1 [R1-GigabitEthernet0/0/1]ip address 116.0.0.1 24[R2]int g 0/0/0 [R2-GigabitEthernet0/0/0]…

PDF文档电子签名怎么做?

如何确保电子文档的签署具有公信力和法律效力,防止伪造和假冒签名等问题,是电子文档无纸化应用面临的重要挑战。本文将详细介绍PDF文档电子签名的概念、重要性、实施步骤以及相关的法律背景,帮助用户理解并有效应用PDF文档电子签名技术。 1.…

扫雷 【搜索,哈希】

9.扫雷 - 蓝桥云课 (lanqiao.cn) #include<bits/stdc.h> using namespace std; #define int long long const int N1e5100; int n,m,res0; struct pt{int x,y,r; }; typedef pair<int,int> pii; map <pii,int> a;//炸雷的map,键是x,y,值是r map <pii,int&…

Databend 开源周报第 140 期

Databend 是一款现代云数仓。专为弹性和高效设计&#xff0c;为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务&#xff1a;https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend 。 支持 EXECUTE I…

FebHost:瑞士.CH域名和.RE域名如何选择

.ch和.re域名的区别主要在于它们代表的地区不同。.ch是瑞士的顶级域名&#xff0c;代表着瑞士的精细、创新和可靠&#xff1b;而.re则是留尼汪岛的顶级域名&#xff0c;展示着留尼汪岛的多元化和温馨。 从历史角度看&#xff0c;.ch域名的历史更悠久&#xff0c;反映了瑞士长久…

JSON数据格式讲解与cJSON库的使用

文章目录 写在前面一、安装cJSON二、使用cJSON1、使用的文件2、如何传输数据&#xff1a;**** 三、JSON语法四、cJSON函数讲解1、cJSON结构体 **2、cJSON结构体与字符串之间的转换&#xff08;重要&#xff09;2.1、标题将cJSON结构体转换为字符串(常用)2.2、将字符串转为cJSON…

什么是并行通信、串行通信?什么是全双工、半双工、单工? 什么是异步通信、同步通信? 什么是RS232、RS485?什么是pwm?

什么是并行通信、串行通信&#xff1f; 嵌入式系统中的通信是指两个或两个以上的主机之间的数据互交&#xff0c;这里的主机可以是计算机也可以是嵌入式主机&#xff0c;甚至可以是芯片。主机间通信的方式一般可以分为两类&#xff1a;并行通信和串行通信。并行通信是指多个比特…

LlamaIndex 组件 - Loading

文章目录 一、概览加载Transformations将所有内容放在一起抽象 二、文档/节点概览1、概念2、使用模式文件节点 三、定义和定制文档1、定义文档2、自定义文档2.1 元数据2.2 自定义id2.3 高级 - 元数据定制1&#xff09;自定义LLM元数据文本2&#xff09;自定义嵌入元数据文本3&a…

华为配置静态ARP示例

华为配置静态ARP示例 组网图形 图1 配置静态ARP组网图 静态ARP简介配置注意事项组网需求配置思路操作步骤配置文件相关信息 静态ARP简介 静态ARP表项是指网络管理员手工建立IP地址和MAC地址之间固定的映射关系。 正常情况下网络中设备可以通过ARP协议进行ARP表项的动态学习&…

Linux --- 高级IO

目录 1. 什么是IO 2. 阻塞的本质 3. 五种IO模型 3.1. 通过故事认识五种IO模型 3.2. 上述故事的总结 3.3. 具体的五种IO模型 3.3.1. 阻塞IO 3.3.2. 非阻塞轮询式IO 3.3.3. 信号驱动IO 3.3.4. 多路转接IO 3.3.5. 异步IO 4. 非阻塞IO 4.1. fcntl 系统调用 1. 什么是I…

麒麟信安LTF框架上线openEuler社区

麒麟信安LTF框架介绍 LTF&#xff08;Linux Test Framework&#xff09;是麒麟信安自动化组开发的一款面向Linux操作系统测试的自动化测试框架&#xff0c;目前已在openEuler社区开源。LTF工具积极投入国内各评测项目和日常版本测试任务中&#xff0c;汲取了在Linux自动化测试…

C语言预处理操作详解

这篇博客和大家分享一下C语言中的预处理操作。 1. 预定义符号 C语言设置了⼀些预定义符号&#xff0c;可以直接使用&#xff0c;预定义符号也是在预处理期间处理的。 __FILE__ //进行编译的源文件 __LINE__ //文件当前的行号 __DATA__ //文件被编译的日期 __TIME_…

【Android】重温Activity生命周期

前言 Android中用得最多的组件是Activity&#xff0c;而它的生命周期也是最基础的知识&#xff0c;从刚接触Android到工作中会频繁依赖这部分知识。可能大多数人能说出页面新建到页面关闭会走的生命周期&#xff1a;onCreate、onStart、onResume、onPause、onStop、onDestory&…

【五十三】【算法分析与设计】1392. 最长快乐前缀,686. 重复叠加字符串匹配,796. 旋转字符串,KMP算法

目录 1392. 最长快乐前缀 思路 过程 686. 重复叠加字符串匹配 796. 旋转字符串 string内置函数find KMP算法 结尾 1392. 最长快乐前缀 「快乐前缀」 是在原字符串中既是 非空 前缀也是后缀&#xff08;不包括原字符串自身&#xff09;的字符串。 给你一个字符串 s&…
最新文章