阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

“要什么 DevOps,我们开发者根本不想做运维!”

  • 2022-08-25
    北京
  • 本文字数:3677 字

    阅读完需:约 12 分钟

“要什么DevOps,我们开发者根本不想做运维!”

“谁构建、谁运行”的口号让开发者们倍感压力,但另一方面,运维团队的日子也不好过。那么,这场席卷全球的开发与运维融合浪潮会不会黯然退场?

 

根据外媒记者 Scott Carey 的观察,众多开发者纷纷表示“苦DevOps久矣”。我们将 Carey 记录的文章在不改变愿意的基础上进行了编译,以飨读者。本文谨代表作者个人观点,不代表 InfoQ 立场。面对争议问题,希望大家理智讨论。

 

“在大多数情况下,开发人员并不想处理运维问题。”亚马逊云科技社区参与负责人、《DevOps for Dummies》作者Emily Freeman在推特上坦言。

 

一石激起千层浪。Freeman 的观点引起了广泛共鸣,几百条抱有同样观点的开发人员纷纷留言回应。

 

“我就是个开发者,我不想处理运维问题。”快餐公司 Chipotle 软件工程师 Scott Pantall 直接表示。

 

“我确实更喜欢回到只需要掌握特定编程技巧的时候,而不是现在这样成为一个万事通,因为多个责任分散了我太多精力。这两者都是全职工作,而我只能各自投入一半的精力。”开发者 Mitchell Abbott 说道。

 

SUSE 开发人员布道师 Andrew Gracey 认为,开发人员和运维人员应该密切合作,同时各自扮演不同的角色,能够让团队成员相互理解的同理心才是 DevOps 的真正核心。

 

“强迫开发者身兼太多任务,最终只会搬起石头砸自己的脚。不同场景对应着不同的技能组合。”Kubernetes 存储技术提供商 Ondat 的产品负责人 James Brown 表示。

 

“人们慢慢意识到,电工和水管工确实不是同一个职位。”Harness 公司专项 CTO Nick Durkin 说道。

 

当然,也有开发者人认为,当自己全面负责代码、基础设施和监控时,通常会感到自己很有能力。“这就是全才和专家的区别吧。”

 

职责“大量”增加

 

2000 年代后期,DevOps 与敏捷方法随着云计算的兴起而大行其道。作为将开发与运维合并起来的新理念,DevOps 希望打通这两支以往长期孤立的软件构建与部署力量,实现“1+1>2”的积极效应。与此同时,当时的软件工程师也恰好需要缩短用户反馈循环、提升生产环境下的更新推送频率,这也在无形中推进了开发与运维间的融合。

 

不少组织敏锐把握住了这个机会,将两方面的专家汇聚起来,试图以前所未有的速度解决种种常见问题。但也有一些组织把 DevOps 解读成了“让开发人员负责运维工作”,并据此描绘出一个白日梦般的超级概念——全栈开发人员。

 

但开发运维受到很多限制。网友“beall49”表示,“我厌倦了一切东西像是从钥匙孔里获取,它令人筋疲力尽。”

 

领导:我们希望你做开发运维,但我们不会将所有内容直接给你,您必须绕过防火墙才能获得。哦,是的,我们也不会提供一种标准化的方式来访问某些东西。

领导:为什么要花这么长时间?

我:这不是真正的开发操作。

领导:别那么消极。

 

“有时,你会得到一台被公司严格锁定的开发机器(硬件加速设置已关闭并且没有密码无法使用,严格的操作系统安全策略禁止你从公司存储库以外的任何地方安装软件等),你不能甚至使用虚拟化,使用这台机器就是你进入公司网络的方式。”开发者“FloRup”补充道。

 

同时,随着企业软件开发者的总体规模达到历史新高,大家对运维侧的关注度却始终不高。更可怕的是,随着软件开发的增长,运维工作量实际上也始终在同步攀升。

 

正如 DevOps 工程师、前系统管理员Mathew Duggan去年的观点,虽然运维人员继续承担着之前的所有职责,确保应用程序可用、受控、安全和合规,但现在他们还得负责构建和维护软件交付管道,确保开发人员在无需运维介入的情况下,快速安全地发布代码。

 

要干的活越来越重、要上的再培训课程越来越多,特别是云工程和基础设施即代码技能,几乎成为当前运维从业者们的必修课。

 

“在我看来,情况已经恶化到了历史极点。运维团队的职责范围大幅增加,但管理层还是对速度提出不切实际的要求,整个体系已然不堪重负。”Duggan 写道。

 

事实上,压力带来的恶果正开始显现。

 

戴尔技术资本董事总经理 Tyler Jewell 在一份研究报告中提到,“要想建立一支能够长期、和谐保持这种稳定迭代水平的团队,其实是个巨大的挑战。随着系统复杂度的提升和最终用户反馈的增加,人们已经很难准确预测某项变更可能给系统造成的影响。”

 

“人人都能成为专家”谬论

 

当然,情况可能并没 Duggan 等人描绘的那么糟糕,但对工程团队及其职责做出重大调整确实非常必要。

 

“转型的目的不是要给开发人员增加负担,而是在正确的时间为开发者提供正确的信息。”Harness 公司的 Durkin 表示,“开发者最需要的不是额外的配置任务,而是在正确的时间能从系统中快速获取必要信息,这样就能支持运维、安全和基础设施团队的正常工作。除非出现问题,否则运维元素就不应该出现在开发者的视野当中。”

 

迪士尼公司前企业技术战略总监 Nigel Simpson 也希望公司能认识到这个问题,并努力让开发人员摆脱对底层基础设施的担忧,重新回到自己最擅长的软件构建上来。

 

更重要的是,DevOps 代表一个连续的统一体,其具体实施会因组织而异。现在的开发者能做一点运维,并不代表他们就该每天都承担运维压力。

 

Gartner 公司分析师Lydia Leong认为,开发人员对基础设施的控制,并不是“要么全做、要么彻底不做”的命题。企业可以把这部分职责划分到整个应用程序生命周期当中,只有这样“谁构建、谁运行”才能发挥积极作用,而不是把开发者空降到一个他们既不熟悉、也难以驾驭的陌生环境。

 

粗暴把基础设施和运维团队的问题抛给开发者,不会带来任何好处。 Leong 表示,更好的办法应该是放手让开发人员自行访问开发和测试环境,并为他们赋予将基础设施构建为生产代码模板的能力。这才是重点,而不是让他们全面负责生产。

 

在云计算领域,Kubernetes 容器编排正在成为开发与运维之间的边界。关注这条边界,就能让开发者集中于自己的代码,并让运维人员确保底层基础设施和管理的运行与优化。“但这种独立是以沟通和理解作为基础的,并不是以往那种孤岛式的各自为战。”Ondat 公司 Brown 说道。

 

事实上,根据 VMware 公司发布的《2022 年 Kubernetes 现状》报告,776 名受访者中,54%的人采用 Kubertnetes 的关键原因就是要提高开发者效率,另有超过三分之一(37%)的受访者称是为了提高运维人员的效率。

 

“千万别相信那种‘人人都能成为专家’的谬论。在高效团队中,其实很少会有所谓专门的 Kubernetes 专家。这些团队只是通过极高的抽象度着力缓和了每位成员的认知负担。”Humanitec 公司创始人Kaspar von Grunberg表示。

 

DevOps 已死

 

如果 DevOps 的时代真的走到了尽头,或者至少走过了辉煌时期、来到新的转折点,那接下来事情将如何发展呢?

 

站点可靠性工程(SRE)诞生自谷歌内部,当时搜索巨头遭遇到了 DevOps 希望解决的成长阵痛。现在来看,这个职位确实能有效平衡开发与运维间的矛盾。谷歌工程副总裁、SRE 之父 Ben Treynor 曾经坦言,“从本质上讲,如果要求软件工程师设计一项运维功能,那结果就是 SRE。”

 

以 Vanguard 和摩根士丹利两家大型金融机构为例,他们在向着云原生实践过渡时,就发现越来越难以平衡开发和运维两端的职责。而 SRE 就像是缓冲层,把它铺在集中运维团队和各开发者团队之间,就能帮助各方建立信心,感受到既保持良好开发速度、又获得稳定运营状态的可能性。

 

有开发者现身说法道,“我们有 SRE,他们为我们构建了很好的工具并维护应用程序的基础设施。我们仍然自己做几乎所有的日常部署和运维工作,但是 SRE / 基础设施团队已经做得很好了,我们只需要担心会发生什么而不必担心要如何做。”

 

然而,SRE 也受到过不少批评。摩根士丹利的 DevOps 和企业技术架构负责人 Trevor Brosnan 就提到,建立 SRE 原则“有时会被误读为要对运维团队进行大洗牌。”

 

“这是个需要解决的微妙问题。引入 SRE 确实会让人有种正在再次剥离运维团队的感觉。”但事实并非如此,Vanguard 站点可靠性工程师 Christina Yakomin 就一直在鼓励公司的开发者和运维人员分担安全责任,并把运营需求整体交由共享平台团队承担。

 

平台工程才是未来?

 

如今,不少企业开始尝试建立内部开发者平台或者平台工程部门,这样既能给开发人员提供必要工具,也能通过适当的组织护栏隔开其他事务对开发和运维造成的影响。

 

内部开发者平台往往由大量 API、工具、服务、知识和支持所构成,目的是为开发人员提供代码生产部署所必需的一切助力。至于平台本身,则由公司专门的专家团队或所有者负责维护。

 

软件工程师兼 DevOps 评论员 Sid Palas 在推特上写道,“DevOps 已死,平台工程才是未来。开发者不想跟基础设施打交道,企业在发展过程中又需要控制自己的基础设施。只有平台工程,能将这两个相互矛盾的命题统一起来。”

 

“平台工程部门的实际表现确实不错,能够在消除开发流程摩擦的同时,赋予开发者充分的灵活性。”软件咨询公司 Thoughtworks 的技术主管 Brandon Byars 表示,“一旦把这些工作硬塞给缺乏专业知识和工具支持的开发者,情况就会迅速恶化。”

 

因此面对新的历史阶段,要想在工程团队中贯彻 DevOps 原则,组织首先需要了解怎样在软件开发与运维团队间寻求平衡。正是因为这一微妙平衡点的存在,才让云原生时代的系统复杂性越来越高。

 

原文链接:

 

https://www.infoworld.com/article/3669477/devs-don-t-want-to-do-ops.html

2022-08-25 14:5412394

评论 4 条评论

发布
用户头像
我们要做着运维的工作还没有devops用╮( ̄▽ ̄)╭
2022-08-31 12:25 · 浙江
回复
用户头像
我们开发做了一段时间devops,揽了一堆活不落好,慢慢又都推出去了
2022-08-30 09:12 · 辽宁
回复
用户头像
2022-08-28 14:47 · 浙江
回复
用户头像
天下大事分久必合,合久必分
2022-08-26 14:24 · 上海
回复
没有更多了
发现更多内容

算法 | 详解斐波那契数列问题

甜点cc

JavaScript 算法 10月月更 斐波那契数列

升级全新网络方案,给你低成本、高性能的裸金属体验

华为云开发者联盟

云计算 后端 华为云 云服务器 企业号十月 PK 榜

热门探讨:为何数字化转型的企业,大都“死”在了黎明前夕?

优秀

数字化转型

【网络安全篇】JavaSript基础内容大全

贤鱼很忙

10月月更

如何实现图像人脸融合?

夏夜许游

人工智能 AI 融合 图像人脸

你应该知道的数仓安全:都是同名Schema惹的祸

华为云开发者联盟

数据库 后端 华为云 企业号十月 PK 榜

面试官:数据库加了唯一索引,就不会有重复数据了吗???

小小怪下士

Java MySQL 程序员

堆排序详解(含对时间复杂度的分析)

lovevivi

c 数据结构 10月月更

八大排序(下)

lovevivi

c 数据结构 10月月更

如何实现一个SQL解析器

vivo互联网技术

sql 解析 SQL解析

HashMap源码分析(六)

知识浅谈

hashmap 10月月更

在线问题反馈模块实战(十八):实现excel台账文件记录批量导入功能

bug菌

springboot 项目实战 10月月更

vue-router学习-1

Studying_swz

前端 10月月更

规律跑步,让生活更有掌控感

BY林子

跑步 掌控

在线问题反馈模块实战(十七):实现excel模板在线下载功能

bug菌

springboot 项目实战 10月月更

基于Ernie-3.0 CAIL2019法研杯要素识别多标签分类任务

汀丶人工智能

nlp

技术分享 | 测试开发工程师必读经典好书清单,抽奖赠书送福利!

霍格沃兹测试开发学社

校招面试真题 | 显式等待与隐式等待的区别?与强制等待的方式分别是什么,有什么区别?

霍格沃兹测试开发学社

八大排序 (上)

lovevivi

c 数据结构 10月月更

“程”风破浪的开发者|我的js学习小技巧

国服第二切图仔

JavaScript 学习方法 “程”风破浪的开发者

浅析HTML页面的生命周期

CoderBin

html 前端 10月月更

一种基于柔性事务的分布式事务解决方案设计探究

京东科技开发者

编程 分布式事务 事务 事务回滚 柔性事务

【高并发】深度解析ScheduledThreadPoolExecutor类的源代码

冰河

并发编程 多线程 高并发 协程 异步编程

详解Native Memory Tracking 追踪区域分析

华为云开发者联盟

开发 华为云 企业号十月 PK 榜

数据湖(九):Iceberg特点详述和数据类型

Lansonli

数据湖 10月月更

在线问题反馈模块实战(十六)​:实现查详情功能

bug菌

springboot 项目实战 10月月更

Hybrid app本地开发如何调用JSBridge

甜点cc

JavaScript 前端 Hybrid 10月月更

uniapp H5端精准定位

源字节1号

软件开发 小程序开发

Vue_cli2和Vue_cli3

Studying_swz

前端 10月月更

Vue_Webpack详解

Studying_swz

前端 10月月更

记一个“奇葩”需求的实现

甜点cc

JavaScript 前端 Element UI 10月月更

“要什么DevOps,我们开发者根本不想做运维!”_文化 & 方法_Scott Carey_InfoQ精选文章