最近, Scott Carey 发表了一篇调查文章,喊出了一些开发者的心声:“扯淡的DevOps,我们开发者根本不想做运维!”除此之外,软件工程师兼DevOps评论员Sid Palas也在推特上写道,“DevOps已死,平台工程才是未来。”

平台工程火了,DevOps真的走向末路了?服务了国内各个行业的Dev和Ops,我也想来说说自己的一点看法。

一、什么是DevOps?

说DevOps已死,我们得首先明确DevOps是什么?连是什么都不清楚,何来死了的说法。

这里的Dev,是广泛意义的资源的使用方,在不同的场景下有不同的角色,比如金融机构大多是软开团队,集团企业是子公司的技术人员,政务云是委办局的用户,行业云是被服务的企业,校园云是学校师生等。这里的Ops,也就是基础设施的建设方和资源的运维方。

DevOps是一个概念,是为解决Dev和Ops中间的鸿沟,加快应用开发和上线过程而提出的概念。传统的软件开发,Dev和Ops是隔离的,简单如下图:

那具体什么是DevOps?DevOps是希望Dev和Ops能够合作的更紧密,从而加速应用系统的开发、测试和发布过程。DevOps概念图如下:

DevOps发展这么多年,其实已经构建了非常强大的生态体系,“DevOps已死”难道是说,下图中的DevOps工具链的公司都死了?显然不是,这些DevOps工具链对软件研发上线效率提升起到很大作用。

那具体问题是什么呢?Scott Carey和Sid Palas为何会发出如此呼声?对于这块,我们骞云还是有很深刻的理解的,因为我们的平台,就是帮广义上的Dev用户更好的使用Ops提供的基础设施云资源。

二、国内Dev和Ops协作现状

为帮助大家理解,下面先介绍一下我们看到的绝大部分国内中大型企事业单位的Dev和Ops的情况。

过去几年,各家企业、组织都在投入大量时间和精力去建设云、上云以及采用更多的云。国内的云,包括了私有化的公有云,也包括容器云、超融合,还有安全云等等。

随着云的发展,应用架构也在不断的云化,分布式架构、微服务、无服务、多云应用架构更加普及。数字化让应用系统数量持续变多,单个应用系统需要的云资源类型和数量越来越多,上线和变更更加频繁。

可以看到,数字化让系统数量更多、数据更大、迭代速度更快,必然会推动IT复杂度的提升,整体IT系统的熵会越来越大。在数量和复杂度都不可避免增加的情况下,如何让系统更加有序成为企业眼下关注的焦点。

接下来我们看看整体的云的建设情况。近几年各家企业事业单位投入大量的时间精力金钱建设的大量的云,包括虚拟化、私有云、容器云、公有云,还包括大量的行业云,比如金融云、政务云、国资云、超算云,绝大部分的云都是由Ops团队来进行规划建设和运维,很多云的日常运维甚至交给了第三方外包团队或者MSP厂商。

让我们从广义的Dev视角来看看云是如何被使用的,以及Dev和Ops是否紧密合作了呢?广义的Dev人员包括了企业内Dev、应用系统的架构师、技术负责人、政务云的委办局、集团云的分子公司的技术人员。在我们接触过的上千家企事业单位中,大部门企事业的云服务,大概率在以下三个阶段之中:

1. 云资源是通过电话或电子邮件获取;

2. 云资源是通过工单(OA)申请,电话讨论来获取;

3. 云资源是通过标准化服务目录,电话讨论来获取。

可以看到,电话、微信、邮件是大部分Dev和Ops沟通的主要途径,人肉执行运维是主要手段。资源申请,提工单;资源变更,尽量不变,必须变化,则继续工单加电话。

这个方式在物理机,甚至虚拟化时期,尚能勉强维持运转。想象大部分项目就是在启动阶段,批量申请服务器,开通一下网络资源;项目启动申请,结束关闭,停止使用所有资源。一次申请几十台上百台的服务器,配置相同,大家对服务器理解相同,工单系统还能满足需求。如果后台人员还懂点Shell、Powershell、Ansible,甚至Terraform,其实这个过程还是可以挺快的。

在我们服务的几百个客户里,就有一个证券客户,前端ITSM、Ops团队自己开发了Powershell脚本,人工执行实现虚拟机的批量创建。这样通过OA、邮件、科管系统来申请资源的过程,会出现资源浪费严重,需要提前几天申请,需要外包团队加班开通资源等问题。但当Dev有了一堆的服务器,很多情况和Ops就没什么交集了。Dev拿到一堆的IP地址和访问信息,剩下的事情都是自己能搞定的。变更配置,打快照备份?Dev都自己想办法搞定吧。

随着应用架构的云化,资源的使用从以单一云服务器,变成采用更多的云产品。随着大云(类似AWS这样有着数百种云服务的云平台)的深入采用,直接使用云产品而不是自己去构建各种基础服务,成为持续提升研发和运维人效,增强系统可扩展性、可运维性的关键。最普遍的,虚拟机里面安装MySQL变成了云平台的RDS MySQL;NAS变成了对象存储等。

我们有一客户,上百个自研的系统,用到云平台提供数据库、中间件、安全、大数据等数十种服务。大家可以脑补一下,每个不同的应用的部署架构都不一样,相同的应用,在开发、测试、UAT、生产、部署架构、底层资源方面也可能不一样。于是Dev和Ops之间如何协作变成了云化应用架构转型过程中的一个关键问题。

遇到这样的问题,大部分企业Ops的想法是,云不是提供了多租户能力,自服务能力吗?我给每个Dev都创建账号,让他们自己想怎么用就怎么用,Ops只要确保底层资源够多,够稳定就行。这其实也是大部分人的原始想法,甚至是不少专业运维人员的想法。

这个就是让每个Dev尽量变成云运维人员,了解企业内部的网络规划,了解企业的IT规范,更深入地了解众多云产品的运维底层逻辑,使用资源时都按照企业的规范来用,其实这些都需要Dev承担更多的运维责任。

考虑到绝大部分企业都不止一朵云(一种类型,部署几套,其实是几朵云),少的三四朵,多的七八朵,不仅责任重大,还非常低效,易出错,因此有人喊出了“Dev不想变成Ops”的口号。

于是,我们也有客户,觉得基础设施即代码挺好的,Dev不是会写代码吗,让每个人都自己写Terraform,Ops只要审批就够了。理想很丰满,现实很骨感,能写好Terraform的人,对云的Ops的理解,比在云平台界面上直接操作要求还高。要会用IaC,不但得知道Terraform,还得知道云,但现实是大部分Dev,两个都不懂,所以Dev也做不了Ops。

三、ITIL框架支持的DevOps

DevOps发展这么多年,其实一直都是要加强Dev和Ops的协作,提升协作效率,减少人肉响应。从来没有Dev变成Ops,或者Ops变Dev,因为两个领域需要完全不同的技能、知识。

了解ITIL的朋友们会发现,其实更好地服务资源的使用方(Dev)也是ITIL的目的。Dev是IT的使用部门,云是IT部门管理的资源,ITIL是让IT更好地服务使用部门的。因此当我们看到ITILv4在拥抱Agile,支持DevOps时,我们不禁会惊叹,这个发展了超过40年的概念,也在积极寻求如何让Ops更好地服务Dev。

如果用CMMI成熟度体系来度量Dev和Ops的合作,我们可以清晰地看到,完全依靠电话或邮件的交互方式,IT管理成熟度仅处于初始级别,工单系统的出现,IT管理进阶至Level 2级别,有了最基本的记录和管理。但Dev和Ops合作下的IT服务管理水平仍存在着巨大的上升空间。

四、平台工程是DevOps的替代还是新瓶装旧酒?

2023年,Garter年在其发布的十大战略技术趋势中提出了一个新的概念——平台工程。具体来说,平台工程是用来构建和运营支持软件交付,和生命周期管理的自助式开发者平台的机制和架构。平台工程的目标是优化开发者体验并加快产品团队为客户创造价值的速度。

如此描述,似乎说了很多,但又感觉什么也没说。但凡熟悉HP OpenView(知道这名字的都暴露年龄了)、VMware vRealize的行业人士都会觉得平台工程就是新瓶装旧酒。

为什么这样说呢?回顾前两年Gartner提出的概念——CMP,CMP的核心能力如下图所示,简单来说就是一个平台,通过服务目录,提供资源的自服务、监控告警的自服务等能力,并且这些能力都是通过部署和编排来实现的。听上去是不是和平台工程很相近?

那CMP是前几年才出现的全新的形态吗?也不是,CMP是围绕云如何使用的完整场景提出来的总结概念,虽然大部分人肤浅地认为多个云需要一个界面所以需要CMP。

可以比较一下,VMware的vRealize产品线,完整的目标也是构建DevOps-Ready的IT,vRealize产品线最初的产品远早于CMP概念的提出。(偷偷吐槽一下,vRealize在VMware是云管理产品线,但Gartner不认为vRealize是CMP,后来又提出了云管理工具的MQ,囊括了vRealize、Datadog、Terraform等更多的产品形态)

说到ITIL,就不能不提ServiceNow。ServiceNow成立20年,是世界第二大SaaS公司,其旗舰产品NowPlatform,不断的从传统IT基础设施过渡到云基础设施,从传统的ITSM发展为具备新型的DevOps能力,面向Dev构建更加强大的云基础设施的自服务能力。

从下图可以看到,ServiceNow也有对云资源的自服务和自动化的能力,这也是平台工程的核心。

如果将平台工程比作成一座冰山,那么其提供的自服务能力则是Dev感受到的能力的水上部分,为了支持自服务,平台工程需要具备类似ServiceNow平台的服务设计、治理、自动化、监控自服务、资源发现等一系列能力。

五、DevOps没死,平台工程是为了更好的DevOps而生

既然类似平台都出现那么多年了,为何Gartner却将平台工程列为2023年十大战略技术趋势之一呢?

个人认为有以下几方面原因:VMware的用户,采用vRealize (主要是vRealize Automation的能力)的还是少数,更何况在多云环境(国外的云,主要是公有云)下,大部分用户都还没有用。而大部分ServiceNow的用户,使用的还是其ITSM和CMDB的能力。国内的情况,更是大部分企业Ops团队还在建设传统的CMDB、ITSM、面向运维的监控告警等基础能力的阶段。

在应用不断上云的过程中,Dev和Ops的协作出现了更加明显的瓶颈,于是Gartner就老生常谈了这个问题,并指出我们需要平台工程来串联Dev和Ops。

无论是VMware vRealize、ServiceNow Now Platform, 还是骞云的运维服务平台,都是帮助我们的用户,打通资源的使用方和资源运维方,确保在安全、合理、合规的情况下,让Dev更加快速地获取所需要的资源,或者更进一步,专注应用层,减少管理资源层的负担。

现在,我们可以回答文章开头的疑问了,DevOps其实没死,平台工程也不是新的,两者并不存在矛盾关系,甚至在某种程度上我们可以说,平台工程是为实现更好的Dev和Ops的协作而生。

这次给大家介绍了DevOps的状况,以及为什么会出现平台工程。下一期我们会讨论平台工程是如何建设的,具体需要哪些能力。敬请期待!

DevOps死了吗?平台工程能否取代DevOps?相关推荐

  1. 从 DevOps 到平台工程:软件开发的新范式

    DevOps 是一种将开发和运营结合起来的方法,在应用规划.开发.交付和运营方面将人员.流程和技术结合起来.DevOps 使以前孤立的角色(如开发.IT运营.质量工程和安全)之间进行协调和合作.一直以 ...

  2. DevOps黄了,平台工程火了?非也!

    撰稿丨千山 审校 | 云昭 近年来,部分国外的开发者公开发声:DevOps就是扯淡,开发根本不想做运维. 更有甚者,直言"DevOps已死,平台工程才是未来". 之后不久,Gart ...

  3. 嘉为蓝鲸DevOps平台V5.0,以平台工程提升企业软件研发质效

    随着信息技术深入应用,企业业务由线下方式为主逐渐转变为线上方式为主,业务产品创新频率提升.创新周期缩短.同业竞争加剧,而企业的IT组织效能却尚未能提升到满足企业业务敏捷交付的水平. 面向行业竞争加剧和 ...

  4. 大规模开发团队如何实现DevOps转型? 来自微软全球开发平台工程团队的实践经验

    微软全球开发平台工程团队从敏捷到DevOps的转型 2013年11月13日,我们宣布了Visual Studio2013,以及微软研发云Visual Studio Online (VSO)的正式商用. ...

  5. Rancher Prime 为平台工程提供面向 K8s 的弹性能力

    作者简介 张应罗,SUSE 资深架构师,拥有 16 年架构咨询工作经验,专注于 SUSE Enterprise Container Management 相关的产品落地方案及咨询方案设计. 平台工程 ...

  6. 【DevOps】什么是混沌工程?

    测试您可以预测的事故是必不可少的.但是随着数字化转型和云原生架构带来的复杂性,团队需要一种方法来确保应用程序能够承受生产的"混乱".混沌工程满足了这一需求,因此组织可以提供在任何条 ...

  7. 从规模化平台工程实践,我们学到了什么?

    文|朵晓东(花名:奕杉 ) KusionStack 负责人 蚂蚁集团资深技术专家 在基础设施技术领域深耕,专注云原生网络.运维及编程语言等技术工作 一.摘要 本文尝试从平台工程.专用语言.分治.建模. ...

  8. DevOps落地实践:普元:PRIMETON DEVOPS

    普元发布了PRIMETON DEVOPS的5.0版本,其愿景定位为"打造新一代软件生产线, 快速提升IT运营质量与效率".结合普元官方提供的资料,我们来围观一下其围绕DevOps的 ...

  9. devops 解决了啥问题_您的DevOps有什么问题?

    devops 解决了啥问题 亲爱的DevOps, 我似乎无法将我的DevOps启发性想法付诸实践. 我究竟做错了什么? 您可能没有做错任何事情,没有找到足够的盟友. 早在8月,Jason Hibbet ...

最新文章

  1. 基于YOLO的手部检测和计数实现(课程设计,训练和测试)(1)
  2. 理解vuex -- vue的状态管理模式
  3. Mysql之主从复制及主主复制
  4. 谷歌新 AI 实验室主管 Hugo 深度学习教程:神经网络、CV、NLP 难点解析
  5. sql的split()函数
  6. flask.Config(root_path, defaults=None)
  7. DRBD+Heratbeat+NFS高可用文件共享存储
  8. 智能小车35:从汇编指令bne聊起
  9. 统计通话次数和时间的软件_通话时间统计app下载-通话时间统计下载v2.3-西西软件下载...
  10. Recyclerview 特别好用的局部刷新item方法
  11. 香槟分校计算机研究生专业,伊利诺伊大学香槟分校计算机专业排名好不好?
  12. wet-英语困难户的好选择-控制台翻译
  13. Tomcat-线程模型及设计精髓
  14. 站内优化第二篇:XML 站点地图的全面解析
  15. 不存私心天地间——“老召时空”2015年贺岁篇
  16. 阿里云Linux服务器上安装dubbo-admin管理控制台
  17. 无家可归的iPhone(第2部分)
  18. 2012-11-21四六级词汇#9312;-----…
  19. 公司申请高新认定需要有多少个软件著作权证书?
  20. 在胸口凝成一颗鲜红的朱砂印

热门文章

  1. vue实现数字滚动效果
  2. jQuery获取指定ul下的li
  3. Myeclipse下PHP开发环境搭建及运行
  4. LODOP.ADD.PRINT_IMAGE()打印图片设置width和height不起作用?
  5. 华为OD机试题【用户调度】用 C++ 编码,速通 (2023.Q1)
  6. 世界上第一台子计算机名为,世界上第一台子计算机诞生于(.doc
  7. 大学网课搜题系统接口
  8. 以前写的质谱仪的系统
  9. python读取excel画出饼状图_Python入门进阶:Python绘制饼图到Microsoft Excel
  10. 版本控制系统GIT文档