0

0

终结这个话题:运维岗位真的不能干了么?

WBOY

WBOY

发布时间:2023-06-09 18:57:47

|

1431人浏览过

|

来源于51CTO.COM

转载

终结这个话题:运维岗位真的不能干了么?

上周五马驰和来炜在线交流,话题是运维岗位真的不能干了么?我作为主持人,既是点火的又是拉架的 :) 听两位老兵分享了一些他们各自的观点,受益匪浅。今天抓紧记录一下,以免忘记,算是对直播的一个复盘。

Question AI
Question AI

一款基于大模型的免费的AI问答助手、总结器、AI搜索引擎

下载

关于工具平台

工具平台会取代一部分人工,这个其实是显而易见的,无需多言。

但是工具平台谁来构建呢?这个值得捋一下。监控系统、CI/CD的平台、混沌工程的平台、中间件服务等,都是Platform,由Platform Engineer来构建,简称PE。PE显然是拆成很多小组的,每个PE小组负责有限的几个平台。这些零散的PE小组整体可以组成一个大的团队,比如叫基础架构团队,也可以拆到多个团队,比如跟工程效能相关的PE小组放到一个部门(比如效能工程部门),数据库、大数据相关的PE小组放到一个部门(比如数据部门),稳定性保障相关的PE小组放到一个部门(比如运维部)。

这个组织的划分,不同公司可能不同,关系倒不是很大,关键是PE团队应该怎么开展工作?PE团队核心要做好以下事项:

  • 构建好用的平台,让业务研发团队来自助服务
  • 平台要沉淀最佳实践。平台需要满足业务,但也要有业界最佳实践,理论上,如果业务需求和业界最佳实践相冲突的时候,尽量应以业界最佳实践为准,如果短期实在无法做到,也应该制定分步落地的计划,争取未来要做到,否则个性的东西、反模式的东西越来越多,Platform侧就会越来越难受,最后不堪重负,推倒重来,一地鸡毛
  • 要想方设法使用平台来落地规范,而不是用规章制度来落地规范,马驰举了一个例子挺好的,他们有个规范,是要求业务程序不能利用本地磁盘存储状态数据,他们没有把这个作为红线法令颁布,而是明确告诉业务方会定期重启容器,让容器漂移!其实用过aws的人应该知道,aws的虚机有的时候也会莫名重启,面向不可靠的基础设施提供高可用的应用程序,本就是应用研发人员的职责
  • 需要COE(领域专家)来指导Platform的演进,因为擅长数据库的架构师未必擅长Hadoop,擅长Hadoop的架构师未必擅长可观测性系统,擅长可观测性系统的架构师未必擅长混沌工程。

但所有的Platform都不是一蹴而就的,如果还没有这些Platform,怎么办?公司应该先去招聘COE,让COE来一边做业务顾问,一边建设Platform的能力,业务发展很快,Platform自研太慢,也可以寻求外部供应商的解决方案。甚至COE本身,都是可以寻求外部解决方案的,视情况而定。

关于外部供应商

大家直观上会觉得:欧美的公司更乐于采购SaaS服务,国内的公司更乐于基于开源自建。是不是因为国内的公司理念不行?不尽然。国内很多领域缺少靠谱的ToB企业和产品才是最核心的问题。试想,如果某个ToB公司可以为甲方提供:

  • 优秀的、先进的方法论
  • 稳定的、易用的产品
  • 优秀的、稳定的客户成功团队,帮助客户更好的落地最佳实践
  • 价格上,比甲方自己招聘人员自研更便宜

只要CXO脑子没坏,肯定会选择引入这样的外部供应商。但是这样的ToB公司有么?这是个大大的问号。我们创建快猫星云公司,为客户提供可观测性产品,力争成为这样的供应商。希望业界ToB同仁一起努力!

延展一下择业问题,虽然某个细分领域可能现在还没有很好的供应商,但是3年以后呢?5年以后呢?国外是不是已经率先有了?国内是不是有潜力不错的供应商了?如果已经有了,兄弟,你还敢继续投身在这个细分领域么?是否应该早做一些打算?

当然了,对于未来的预估,我们通常过于乐观,也过于悲观,对时间的预估,通常预估的超前,也预估的滞后。道理如此,兄弟,就看你怎么判断了。

关于应急故障处理

应该由研发来OnCall故障响应?还是运维?这个问题很有意思。马驰认为,线上80%的故障跟变更相关,变更是研发做的,研发显然更熟悉,让研发来OnCall故障响应,就意味着,80%的问题研发可以更快的响应。

业务研发如此,数据库变更、基础网络变更、接入层的变更,都是同样的道理,做变更的那个人来响应自己的服务的故障告警,看起来是比较合理的。

实际上,这取决于两个前提:

  1. 监控、可观测性做的足够好,变更导致的问题能够通过这套平台及时发现,大家加油,希望每个公司都有一套完备的可观测性体系
  2. 变更引入的问题是即时体现的,有些变更引入的问题如果一周之后才出现,做变更的人也很难怀疑到自己头上

其实我们可以分两种情况对待,变更之后的服务稳定性监测,本就是这个做变更的人的分内之事,日常OnCall是另一个场景,单独对待。那日常OnCall应该由谁来做呢?应该是那些可以直接参与故障定位、止损的人,道理很明显,如果OnCall的人收到告警还需要去联系别人,那这个故障止损的时效性就太差了。

所以首先,应该对告警分门别类的处理,不同的人OnCall不同的告警。所有的告警都交给研发或者都交给运维,这种绝对的做法是不合理的。

关于变更发布

最终目标是有共识的,就是让业务研发可以自由发布版本,但是我们又希望受控,希望安全的发布,希望在发布的同时保障业务连续性。这就对CI/CD的系统提出了极高的要求。

如果不管不顾,变更系统的底层就是去一批机器上批量跑个脚本的事情。但是附加了上述这些要求之后,就困难了很多,变成了一个系统性工程。

业务研发侧,需要做好埋点可观测,需要监控类的系统能够及时发现问题,甚至告警之后自动阻断发布流程。需要有一些蓝绿发布、金丝雀发布的手段落地,需要有些自动代码扫描、安全扫描的能力,工具体系不完备,一味地要求研发确保变更可回滚,确保变更安全也是不合适的。CI/CD的能力水平如何,基本可以看出这个公司的技术实力。

如果你所在的公司,还是研发给运维提单,运维去线上操作,要掂量一下这么做是否合理了哈。当然,上面的做法更多的是偏互联网的做法,未必适合所有的公司,这个直播也只是提供一个思路,你要自行斟酌。

当然了,这个理想的情况怎么达到?在这个理想的情况达成之前应该怎么一步一步走过去?时间问题,直播里并未探讨。如果公司的业务适合跑在Kubernetes上,用Kubernetes来构建这么一套体系是相对容易的,可以尽快行动起来。如果公司的业务必须跑在物理机、虚拟机环境,那就先搞一个统一的变更发布平台,然后哪里缺失补哪里,逐渐完善了。

关于成本优化

两位嘉宾谈的不多,不过大家对这个事情都非常慎重。提醒大家:

  1. 人比硬件贵,千万不要做花费了5000万的人力,节省了4000万硬件成本的事情
  2. 要给业务留出足够的冗余算力,如果资源用的太过紧张,该批的预算不批,因为容量导致故障的话,客户体验受损、舆论不利,得不偿失
  3. 可笑的例子是,用3000万买量,为了节省300万的硬件成本,没抗住量,真的就呵呵了

小结

现在这个阶段,平台体系还没有那么完备,使用自助Platform+COE+BP(Business Partner)的架构来搭建运维体系看起来是靠谱可落地的。未来Platform足够好的的时候,可以缩减BP人力(BP也慢慢具备了COE的能力),Platform继续完备,可以继续缩减COE,再之后,嗯,运维和研发可能就都不需要了吧。

相关专题

更多
什么是中间件
什么是中间件

中间件是一种软件组件,充当不兼容组件之间的桥梁,提供额外服务,例如集成异构系统、提供常用服务、提高应用程序性能,以及简化应用程序开发。想了解更多中间件的相关内容,可以阅读本专题下面的文章。

178

2024.05.11

Golang 中间件开发与微服务架构
Golang 中间件开发与微服务架构

本专题系统讲解 Golang 在微服务架构中的中间件开发,包括日志处理、限流与熔断、认证与授权、服务监控、API 网关设计等常见中间件功能的实现。通过实战项目,帮助开发者理解如何使用 Go 编写高效、可扩展的中间件组件,并在微服务环境中进行灵活部署与管理。

212

2025.12.18

hadoop是什么
hadoop是什么

hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。本专题为大家免费提供hadoop相关的文章、下载和课程。

207

2023.06.30

hadoop三大核心组件介绍
hadoop三大核心组件介绍

Hadoop的三大核心组件分别是:Hadoop Distributed File System(HDFS)、MapReduce和Yet Another Resource Negotiator(YARN)。想了解更多hadoop的相关内容,可以阅读本专题下面的文章。

393

2024.03.13

hadoop的核心
hadoop的核心

hadoop的核心由分布式文件系统 (hdfs) 和资源管理框架 (mapreduce) 组成。想了解更多hadoop的相关内容,可以阅读本专题下面的文章。

330

2024.05.16

Java 大数据处理基础(Hadoop 方向)
Java 大数据处理基础(Hadoop 方向)

本专题聚焦 Java 在大数据离线处理场景中的核心应用,系统讲解 Hadoop 生态的基本原理、HDFS 文件系统操作、MapReduce 编程模型、作业优化策略以及常见数据处理流程。通过实际示例(如日志分析、批处理任务),帮助学习者掌握使用 Java 构建高效大数据处理程序的完整方法。

114

2025.12.08

数据库三范式
数据库三范式

数据库三范式是一种设计规范,用于规范化关系型数据库中的数据结构,它通过消除冗余数据、提高数据库性能和数据一致性,提供了一种有效的数据库设计方法。本专题提供数据库三范式相关的文章、下载和课程。

345

2023.06.29

如何删除数据库
如何删除数据库

删除数据库是指在MySQL中完全移除一个数据库及其所包含的所有数据和结构,作用包括:1、释放存储空间;2、确保数据的安全性;3、提高数据库的整体性能,加速查询和操作的执行速度。尽管删除数据库具有一些好处,但在执行任何删除操作之前,务必谨慎操作,并备份重要的数据。删除数据库将永久性地删除所有相关数据和结构,无法回滚。

2074

2023.08.14

C++ 单元测试与代码质量保障
C++ 单元测试与代码质量保障

本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

8

2026.01.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.2万人学习

Excel 教程
Excel 教程

共162课时 | 11.9万人学习

C# 教程
C# 教程

共94课时 | 6.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号