扯淡的DevOps,我们开发根本不想做运维!

引言

最初考虑引用“ DevOps 已死,平台工程才是未来”作为标题,但这样的表达可能太过于绝对。最终,决定用了“扯淡的”这个词来描述 DevOps,但这并不是一种文明的表达方式。 文章旨在重新审视 DevOps 和平台工程,将分别探讨 DevOps 和平台工程的概念,并重点分析平台工程所倡导的一些核心内容。同时,希望通过本文能够给从事内部开发平台(IDP)工作的同学们带来一些思考。

DevOps的目标

在 2009 年,DevOps 这一概念就被提出,重点强调团队协作、自动化工具和流程改进,旨在提高软件开发和部署的速度和质量。然而,提出之后有近 15 年了,发现这一方法并未如预期完美实现了目标。在我们公司内部,我们也会发现软件交付成本仍然还是较高,从部署发布工具的角度来看,无论是 J-ONE、JDOS 还是目前的行云部署,对于研发人员日常部署发布仍存在一定的成本,但这种现象好像不仅仅是工具层面的问题。

DevOps 本身是一种理念,强调团队协作,使开发团队和运维团队能够紧密合作。尽管强调了自动化和工具的重要性,但它并没有明确指出具体的发展方向。因此,出现了平台工程(Platform Engineering)这一理念。虽然最早是谁提出的已无法考证,但在 2022 年 7 月份,一条Twitter上的消息“DevOps is dead, long live Platform Engineering” 在国内外的 DevOps 圈子迅速传播开来,并得到了广泛的回应。

平台工程(Platform Engineering)是一种新的运维理念,强调内部开发平台应该提供技术研发人员自服务的能力。其核心观点之一是通过屏蔽基础设施的复杂性,为技术研发人员提供灵活的工具链和工作流程。这样,可以利用平台的基本能力,自主解决问题,无需依赖平台层的参与,使得开发团队能够更加高效地开展工作,提高软件交付的速度和质量。

平台工程的定义

平台工程是设计和构建工具链和工作流的学科,可在云原生时代为软件工程组织提供自助服务功能。平台工程师提供的集成产品通常被称为“内部开发人员平台”,涵盖了应用程序整个生命周期的运营需求。 --定义来自 platformengineering.org (关于平台工程的定义较多,但大部分意思较一致:主要是倡导自助服务减少底层基础支撑工具的复杂性和不确定性,减化工作流程,减少最终用户在使用过程中的认知成本,从而改善了最终用户的体验,和提高生产效率)

平台工程和 DevOps 都是软件开发和运维领域的概念,它们共同关注提高软件开发和部署的效率和质量,但它们的重点和方法有所不同。平台工程着重于构建可重用的平台架构,提供场景化的能力,提供自助化的体验。而 DevOps 则侧重于团队协作、自动化工具和流程改进,以提高软件开发和部署的速度和质量。

在 2023 年,Gartner 已将平台工程列为顶级战略趋势之一。最近发布的 2024 年十大技术趋势中,Gartner 再次提到了平台工程,并且将其提升了一个级别,这表明平台工程在业界的认可度得到进一步提升。

在过去的几年中,人们一直追求 DevOps,并从能力成熟度的角度推动提升。然而,对于投入和产出的量化评估却相对模糊。平台工程提出了一些衡量其价值产出的方式,包括自助式体验和尽可能减少人力投入。通过致力于建设自助化、场景化的能力,提供有价值的平台。

回到本文的标题,我们来谈谈为什么开发人员不愿意承担运维的工作。

开发为什么不想做运维

DevOps 强调团队协作,并鼓励开发人员承担一定的运维工作。然而,在现实中,为什么这一点往往难以实现?我认为主要有以下几个方面的理由:

•**专注于核心开发任务:**开发人员通常更倾向于日常软件开发任务,他们可能没有太多时间和精力在其他方面,否则会影响日常任务的工作进展。

•**不熟悉或不感兴趣:**开发人员可能没有足够的经验来处理运维的工作,或者他们对运维工作不感兴趣,导致在运维方面缺乏积极性。

•**运维的锅太重、事太杂:**运维工作涉及到生产环境,因此其责任和影响范围较大。任何运维失误都可能导致系统故障、服务中断或数据丢失等严重后果。因此,对于开发人员来说,承担运维工作可能带来额外的压力和责任。此外,运维工作通常包括各种琐碎而繁杂的任务,包括7*24值班。

•**缺乏好用的工具和平台支持:**缺乏易用且高效的自动化工具和平台,运维工作就会更加依赖手工操作,从而增加了运维的成本和复杂性。

以上可能是开发人员不太愿意承担运维工作的一些可能的理由。我接下来看下运维的本质是什么?

运维工作的本质

运维工作重点是保障系统的安全和稳定运行。它不仅需要 7x24小时监控线上环境的稳定性,还需要处理各种日常的运维任务。这些任务可能包括资源管理、日常巡检、故障排查与修复、工单处理等。

最近,一些大厂经历了重大的线上稳定性故障,这给业界带来了很大的关注。

最近的这些线上故障对整个行业产生了极大的警示,所有企业都一样面临着线上稳定性挑战。

带来的一些思考

**安全生产,警钟长鸣:**面对线上问题,我们绝不能单纯地追求速度和省事,对于任何线上操作,都必须保持敬畏之心。

**安全生产,人人有责:**无论是开发人员编写的错误代码逻辑,还是运维人员错误的升级操作,最终都有可能给公司带来无法估量的损失。

生产环境的稳定性,最难得不是技术,而是依赖无数细节的落地,稳定性的保障需要大量的投入,然而这个事最大的问题就是,难被认可,以及怎么来衡量做的好呢?网上曾经一个段子,大概意思就是“那些代码写的没有 Bug 的人,往往默默无闻,甚至可能被干掉;相反,那些经常写 Bug 的同学,因为日常忙碌于修复 Bug ,反而能风生水起”,当然,开发不愿意承担运维的原因,确实是因为线上稳定性的责任重大,同时运维工作的负担也很重,并且缺乏适用的工具和平台来支持。

然而,平台工程被提出,作为一种新的理念,旨在解决这些问题,并提高软件交付流程。接下来聊一聊,与 DevOps 相比【平台工程】的成功关键因素有哪些。

平台工程成功的关键因素

如何在公司内推动平台工程

作为一个相对新颖的概念,平台工程已连续两年获得 Gartner 的认可,将其推向了我们不得不关注的重要地位。要在公司内推动平台工程,我认为需明确以下几个方面:

•**平台范围:**内部有许多工具,首先要确立权威或认证的工具,进行持续投入与迭代,而非各自发展,以免造成重复建设和成本的浪费。

•**平台文化:**平台到底是为谁而做,为谁服务,技术研发人员是我们的上帝,建立以服务技术研发人员为主的平台文化,同时满足公司管理角度。

•**平台目标:**核心目标是构建场景化的工具,使技术人员能在平台中自助化使用,把场景化、自助化作为核心目标。

•**平台Owner:**企业内的IPD不可能集中在同一个部门,因此确定特定场景的 Owner 至关重要,可以消除职责边界不清晰的问题。

•**需求来源:**一切以研发需求为主,要兼顾研发人员的使用体验,避免大而全的版本升级改动,导致研发迁移系统,迁移资源,从而带来的额外使用成本。

•**平台API:**内部平台天然就应具备丰富API,满足内部研发的需求,并也应提供详细的文档让技术人员使用。

综上,从全局的维度讨论了如何在内部推动平台工程。接下来,我们探讨一下平台工程下的工具应具备哪些特质:

平台工程下建设什么样的工具

个人认为,相较于面向消费者的产品,内部工具更为重要。因为消费者产品用户有选择权,但内部人员并无太多选择余地,最多只是抱怨几句,却仍需继续使用。要打造令内部人员满意的工具,个人觉得至少需要以下关键属性:

•**产品化:**内部的工具平台一定要产品化,定位于服务全集团,而非局限自己所在部门的几个人,或者几十人使用,一定要把目标用户定位是集团内所有研发同学,只有这样才能把工具做好。

•**用户体验:**重视用户体验,除了提供基础的GUI界面,API等能力之外,另外也要注意屏蔽复杂的后端逻辑,降低用户的使用成本。

•**集成化:**这里讲集成,不仅是像目前行云/泰山一样通过工具市场把各个工具集成到平台上就行了,这些仅完成了第一步,还是以研发使用场景为目标,以应用为视角工作区,例如在发布时,整合监控、日志、预案、告警等可观测的视图,让用户在一个地方满足所有该场景的需求。

•**自助化:**用户无需平台同学的协助,能满足一切功能,这里举个例子,我们去银行取钱,在柜台人工可以取,但需银行人员的协助,但我们通过ATM,一样也可以完全自助的取钱。

平台工程下的内部开发团队

在平台工程背景下,内开发团队可能会有以下共性情况,例如这四方面:

•**产品化:**内部工具再需求把控方面特别容易被定制,经过一段时间后,可能会演变成了某个人或者某个小部门的定制产品。

•**优先级:**经常接到或面临“某C-x老板”的高优先级需求。

•**认可性:**由于与业务脱节,难以衡量价值,长期下来,对产出的价值认可可能会产生疑虑。

重复建设:内部工具和平台的重复建设问题较为严重。

个人觉得内部平台团队应要坚持做以下几件事:

•持续收集用户需求,并对平台长远规划路线图。

•完善用户使用手册和最佳实践,提升用户体验。

•保持开放心态,一定要提供API。

•持续推广和运营所负责的平台。(生孩子和养孩子)

•针对重复建设问题,加强合作共建,避免陷入小范围的自嗨式“个人/部门工具”建设

如何衡量平台工程的成功呢?

主要在于要从一些指标维度进行衡量评估。如果一个平台或者工具,在做了一年后,对于自身的使用情况一无所知,而仅专注在做功能开发,那么怎么来衡量这个平台带来的价值呢?我觉得最关键的在于要寻找一个关键的指标,这个指标可以是业务维度,也可以是产品维度或组织维度,我抛出几个维度仅供参考:

用户维度(第一个就是要用户维度,提升用户体验)

◦周活跃用户数

◦赋能业务数

◦NPS净推荐值

产品维度

◦访问效率

◦执行效率

◦执行成功率

组织维度

◦XX周期

◦XX用时

平台工程的未来

针对平台工程的未来发展,目前国内外的情况如下:

国外的情况

当前,国外各大厂像Google、Spotify、Netflix、Walmart等一大批公司均在积极推动平台工程在企业内部的实施,11月份,CNCF正式发布了平台工程的能力成熟度模型,分别从5个维度上划分了4个级别,CNCF发布的成熟度模型维度比较粗粒度,主要从团队/人员、平台应用、用户体验、自服务以及平台迭代等方面进行评估,并未对平台功能维度进行详细划分。

国内的情况

在国内,目前平台工程也逐渐受到大家的关注,特别是原来就负责DevOps工具相关的人员,更加关注平台工程带来的新的概念和倡导方向。中国信息通信研究院也正在组织行业内的专家,共同梳理一份符合国内现状的平台工程能力要求标准,会明确平台工程功能维度。我目前也参与了部分工作,如有对此感兴趣的同事,欢迎联系我一同参与。

最后,放个一个Gartner预测的数据,Gartner预测,到 2026 年, 80% 的软件工程组织将建立平台团队,其中 75% 将包含开发者自助服务门户。80%的软件工程组织将建立平台团队作为可重复使用的服务、组件和工具的内部提供者,用于应用程序交付。

可见,平台工程不仅仅是一种趋势,它是软件交付的未来

作者:京东零售 井亮亮

来源:京东云开发者社区 转载请注明来源

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

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

相关文章

【c语言】人生重开模拟器

前言: 人生重开模拟器是前段时间非常火的一个小游戏,接下来我们将一起学习使用c语言写一个简易版的人生重开模拟器。 网页版游戏: 人生重开模拟器 (ytecn.com) 1.实现一个简化版的人生重开模拟器 (1) 游戏开始的时…

什么台灯最好学生晚上用的?五大高口碑学生护眼台灯推荐

对于学生来说,晚上学习早已是家常便饭,其中如果光线不合适,很容易就会造成近视的情况。面对这样的商机,很多厂家纷纷涉足护眼台灯行业,无论技术成熟与否,都大打护眼卖点,其中难免含有大量水分。…

SpringMVC的执行流程

过去的开发中,视图阶段(老旧JSP等) 1.首先用户发送请求到前端控制器DispatcherServlet(这是一个调度中心) 2.前端控制器DispatcherServlet收到请求后调用处理器映射器HandlerMapping 3.处理器映射器HandlerMapping找到具体的处理器,可查找xml配置或注…

milvus insert api的数据结构源码分析

insert api的数据结构 一个完整的insert例子: import numpy as np from pymilvus import (connections,FieldSchema, CollectionSchema, DataType,Collection, )num_entities, dim 10, 3print("start connecting to Milvus") connections.connect("default&q…

网络原理 - HTTP/HTTPS(2)

HTTP请求 认识URL URL基本格式 平时我们俗称的"网址"其实就是说的URL(Uniform Resource Locator统一资源定位符). (还有一个唯一资源标识符,称为uri,严格来说,uri范围比url广). 互联网上的每一个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该…

HTB-Analytics

靶机的IP地址为10.10.11.233,攻击机的IP地址为10.10.16.30 信息收集 # nmap -sT --min-rate 10000 -p- 10.10.11.233 -oN port.nmap Starting Nmap 7.94 ( https://nmap.org ) at 2024-02-19 14:50 CST Warning: 10.10.11.233 giving up on port because retransm…

十字星K线(Doji)含义,fpmarkets澳福一分钟讲解

许多新手交易者遇到过这种奇怪的烛台,看起来就像一个十字架,没有主体上下有长长的影子,fpmarkets澳福肯定的告诉各位投资者,这种就是十字星K线(用Doji表示),开盘价与收盘价一致,价格运动已经停止时出现在烛…

突发!某地区网络故障,格行随身WiFi成“救星”?现场直击!

近日,某地区突发网络故障,导致大量用户无法上网。然而,在这场网络危机中,一款名为“格行随身WiFi”的设备却意外走红,成为了当地的“网络救星”。究竟发生了什么?让我们一起来现场直击! 据了解&…

Leetcode刷题笔记题解(C++):120. 三角形最小路径和

思路:动态规划,去生成一个对应的当前节点的最小路径值,对应的关系如下所示 dp[0][0] triangle[0][0] dp[i][0] triangle[i][0]dp[i-1][0] dp[i][i] triangle[i][i]dp[i-1][i] dp[i][j] triangle[i][j]min(dp[i-1][j-1],dp[i-1][j]) …

语义相关性评估指标:召回率、准确率、Roc曲线、AUC;Spearman相关系数、NDCG、mAP。代码及计算示例。

常规的语义相关性评价可以从检索、排序两个方面进行。这里只贴代码。详细可见知乎https://zhuanlan.zhihu.com/p/682853171 检索 精确率 def pre(true_labels[],pre_labels[]):""":param true_labels: 正样本索引:param pre_labels: 召回样本索引:return: 精…

首都博物京韵展,监测系统实现文物科技保护

​ 一、首都博物馆讲述京韵古都故事 2024年2月18日,首都博物馆重新亮相的“华夏文明的有力见证——北京通史展”震撼登场。展览面积4900平方米,汇聚1100多件(套)历史文物,不仅包含了传统历史瑰宝,还增加了…

【算法】基础算法002之滑动窗口(二)

👀樊梓慕:个人主页 🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》《算法》 🌝每一个不曾起舞的日子,都是对生命的辜负 目录 前言 5.水果成篮&#xff…

【Java EE初阶十八】网络原理(三)

3. 网络层 网络层要做的事情主要是两方面: 1)、地址管理:制定一系列的规则,通过地址,描述出网络上一个设备的位置; 2)、路由选择:网络环境是比较复杂的,从一个节点到另一个节点之间,存在很…

达梦数据库——数据迁移sqlserver-dm报错问题_未完待续

记录SQL server到达梦数据迁移过程中遇到的问题,持续更新中... 报错情况一:Sql server迁移达梦连接报错’驱动程序无法通过使用安全套接字Q层(SSL)加密与SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted b…

每日一题 (不用加减乘除做加法,找到数组中消失的数字)

不用加减乘除做加法_牛客题霸_牛客网 (nowcoder.com) 可以使用位运算符实现两个整数的加法: 在二进制加法中,我们通常使用“逐位相加”的方法来模拟常规加法的过程。当两个数字进行加法运算时,从最低位(通常是右侧)开…

软考学习--计算机组成原理与体系结构

计算机组成原理与体系结构 数据的表示 进制转换 R 进制转换为 10 进制–按权展开法 10进制转换为2进制 原码 反码 补码 移码 原码 :数字的二进制表示反码 : 正数的反码等于原码,负数的反码等于原码取反补码: 正数的补码等…

【算法】C语言使用qsort对字符串字符进行排序(解决字符串长度不统一的问题)

核心思想是 当a的长度>b时&#xff0c;a一定比b大当a,b长度相等时&#xff0c;通过strcmp比较哪个字典序大&#xff0c;也就是实际的数哪个大当a的长度&#xff1c;b是&#xff0c;b一定比a大 这时候就不得不感慨C的string是多么好用的&#xff0c;哎 #include<stdio.h…

⭐北邮复试刷题LCR 034. 验证外星语词典__哈希思想 (力扣119经典题变种挑战)

LCR 034. 验证外星语词典 某种外星语也使用英文小写字母&#xff0c;但可能顺序 order 不同。字母表的顺序&#xff08;order&#xff09;是一些小写字母的排列。 给定一组用外星语书写的单词 words&#xff0c;以及其字母表的顺序 order&#xff0c;只有当给定的单词在这种外…

软考30-上午题-数据结构-小结

一、杂题汇总 真题1&#xff1a; 有向图——AOV 带权有向图——AOE 真题2&#xff1a; 二叉排序树&#xff1a;左子树< 根节点 < 右子树。 二叉排序树中序遍历&#xff0c;节点关键字有序&#xff08;递增&#xff09;&#xff1b; 关键字初始序列有序&#xff0c;二叉树…

ubuntu 之 zeitgeist-fts 占用内存

座右铭&#xff1a;怎么简单怎么来&#xff0c;以实现功能为主。 欢迎大家关注公众号与我交流 sudo chmod -x /usr/bin/zeitgeist-daemonsudo chmod -x /usr/bin/zeitgeist-datahublocate zeitgeist-ftssudo chmod -x /usr/lib/x86_64-linux-gnu/zeitgeist-fts # 使用 locate z…