首页 > 其他分享 >DevOps落地实践点滴和踩坑记录-(2) -聊聊企业内部DevOps平台建设

DevOps落地实践点滴和踩坑记录-(2) -聊聊企业内部DevOps平台建设

时间:2023-06-11 19:02:25浏览次数:50  
标签:企业 平台 DevOps 研发 聊聊 团队 过程 点滴

很久没有写文章记录了,上一篇文章像流水账一样,把所见所闻一个个记录下来。这次专门聊聊DevOps平台的建设吧,有些新的体会和思考,希望给正在做这个事情的同学们一些启发吧。
DevOps落地实践点滴和踩坑记录-(1)

企业落地DevOps该买商用还是自己研发呢?

DevOps落地实践点滴和踩坑记录-(2) -聊聊企业内部DevOps平台建设_技术栈


很多团队刚开始都会问这个问题,我的回答如下

  • 如果团队人数少,技术栈或者技术债务不是很多,历史包袱不重,领导急于看到成果,可以使用devops商业产品。前提还是看商业产品是否满足你们目前场景。
  • 自建工具链,分成简单工具搭建 和 更上一层的二次开发做平台,看你们需要哪种。
  • 前者相对容易点,比如常见的gitlab+jenkins+harbor/nexus+kubernetes等这样的组合
  • 后者 前期需要投入成本,还是看 你们目标是什么,解决什么问题。

以终为始,看目标,找合适的方案,是比较合适的。平台可大可小,功能也可大可小,解决的问题也可大可小,看看目前的问题是什么?

有哪些好用的DevOps价值流交付平台推荐?

国外

  • Azure DevOps

国内

  • Coding
  • 蓝鲸
  • JD行云
  • 阿里云效
  • 简单云ezone
  • 华为DevCloud

国内很多,以上这些都算是整合各个环节比较综合的,其他像禅道、Ones等这些项目管理类平台虽然号称DevOps平台,但是他们更擅长垂直领域,不是综合性平台。

有哪些好用的DevOps VSDP(DevOps价值流交付平台)推荐? - 知乎

自研DevOps平台面临的问题

上面说的平台都很好,但是面对上千规模的研发团队,往往会有“心有余力不足”,“杀鸡用牛刀,但是还杀不了鸡”的感觉。说白了,就是买了还是做二次开发,并且往往还不是简单二次开发这么简单。听我细细道来

1. 企业内部各平台鱼龙混杂

对于中小型企业,你可以通过采购外部DevOps平台服务的方式,快速形成战斗力。但是对于一定规模的企业,并不是一穷二白,而是各种平台已经存在了。
这是一个企业的案例,很明显管需求的在OA, 管工单在一个系统,项目管理在另外一个系统。那我买了外面的平台(一般都是全家桶的解决方案),到底和我内部系统怎么融合呢?

  • 举个例子,如果公司已经用了JIRA, 外面大部分DevOps平台都自带同类功能的模块,你让我把JIRA干掉,买你的产品,尽管JIRA国内有点水土不服,但是这需要管理者做出抉择,哪怕是数据迁移也是需要成本和时间的。

DevOps落地实践点滴和踩坑记录-(2) -聊聊企业内部DevOps平台建设_研发过程_02

2. 自研平台本质还是“企业的数字化转型”

对于传统软件企业,他们要的平台不仅仅是一个跑CI/CD,做部署的平台,更重要的是能够度量内部变革成果的平台。提到度量,就意味着你要打通整个研发过程所有环节,从外部客户需求,到内部研发环节,到对外发布,再到产品反馈,形成闭环。
可以想象,变革过程会遇到多少不同的角色,不同的平台,所以研发打造自己平台的过程也是企业内部自我变革的过程,这个过程会很漫长,也会很痛。

  • 对于互联网企业,他们必须拥抱变化,快速抢占市场,所以从基础设施到人员素质,一定程度上比传统软件企业会好很多,数字化程度会好很多,他们关注更多其实是线上的快速发布,回滚,试错,监控告警。技术栈上,相对容易统一,个性化定制会很少,一般都是主干开发主干发布,或者主干开发分支发布。
  • 可是,对于传统企业,他们的特点是产品线丰富,客户定制化需求多,重产品定制(轻运维),他们更需要规范化的管理和规则限制。但是往往他们的技术设施(容器化,环境快速生成)比较落后,研发人员不太重视工程化手段解决问题,技术栈没有很好统一,工具各个团队各自为政,因此整合工具链条就变得更艰难。

所以自研平台本质还是企业自我的变革和决心,如果把传统软件企业比作工厂,通过自研平台进行功能和数据的整合,就是希望构建一个真正的“数字化“工厂,让信息流动和共享。

3. 自研平台建设离不开部门间的拉通对齐

如下图所示,DevOps涉及诸多研发阶段和领域

  • 项目管理
  • 需求/缺陷跟踪
  • 代码管理
  • 构建/部署/测试
  • 发布
  • 日志监控

DevOps落地实践点滴和踩坑记录-(2) -聊聊企业内部DevOps平台建设_二次开发_03

DevOps落地实践点滴和踩坑记录-(2) -聊聊企业内部DevOps平台建设_研发过程_04


在企业内部刚起步阶段,可能缺乏专业的DevOps专家和人员,以为只是通过建设不同领域的工具平台,不知道如何拉通,为什么拉通,甚至可能不同的部门团队负责不同领域的工具。

缺乏最终目标的对齐和部门间拉通,可能导致如下问题

  • 影响整体技术架构设计,可能导致很多返工
  • 部门间配合缺失,各自为政,不仅无法形成合力,还可能相互掣肘,相互可能在做重复工作
  • 无法制定长远平台演进规划
  • 数据拉通遥遥无期
  • 最终可能导致DevOps变革的失败,团队士气低沉,领导层看不到预期效果

解决思路-组织结构

  1. 成立虚拟的过程改进团队,包含组织级研效管理团队,平台工具建设团队,效能/工程教练团队,对业务研发团队进行支撑
  2. 业务研发团队对效能提高负主要责任,每个月业务技术leader 汇报进展;业务研发团队需要证明自己技术架构改进,解决成员的抱怨;需要对自己团队负责;
  3. 杜绝“工具平台团队”对效能结果负责的局面,工具团队一般提供的是通用的功能,对于“北极星”指标(ps:产品成功的关键指标)影响有限; 对技术负责,打包更快,上线工作流更好
  4. 效能/工程教练团队要走进一线,和团队成员面谈,深刻了解团队“痛点”,进行辅导
  5. 组织级研效管理团队(一般是PMO组织),建立组织级规范进行发布;(PS: 实际情况中,该部门可能需要DevOps工具/教练团队的支撑,特别是工程技术方面,避免规范无法落地
  6. 需要一位德高望重,技术能力威望都还可以的领导统领过程改进团队 (PS: 解决拉通过程的困难,帮助协调资源,敢于拍板)

DevOps落地实践点滴和踩坑记录-(2) -聊聊企业内部DevOps平台建设_研发过程_05

4. 围绕“版本”和“关联”做文章,构建研发领域模型

  • **”版本“ **记录了整个研发过程的演进,通过“版本”作为纽带,串联起来真个研发过程的元数据,再合适不过。
  • ”版本“的规范化,也是流程规范化的重要体现,只有“版本”规范化,过程才可能规范化。试想,如果你的组织连规范的版本号以及发布规范都没有,其他自动化手段就根本不用提
  • 版本”关联元数据 - 在笔者看来,是整个DevOps平台的重要目标之一,如果没有做到这一点,必然影响价值流打通

DevOps落地实践点滴和踩坑记录-(2) -聊聊企业内部DevOps平台建设_二次开发_06

DevOps落地实践点滴和踩坑记录-(2) -聊聊企业内部DevOps平台建设_研发过程_07


构建研发过程领域模型,可以帮助平台建设者理清业务实体之间的关系,指导平台的技术演进,串联起领域实体也是整个DevOps平台的重要目标一致

5. 围绕组织内真实业务场景,避免照虎画猫

在我们自己建设DevOps平台过程中,往往会参考一些商用的平台,这个无可厚非,但是要避免“机械模仿”。任何一家公司的DevOps演进都不是一蹴而就,或多或少都有历史原因,模仿的同时要思考他们为什么要这样做,是不是真的适合自己的场景,借鉴可以,但是要弄清楚为什么需要。
举例说明

  • 大部分公有云的DevOps平台基因里都或多或少都有互联网的基因,它们的对于持续部署发布(灰度,蓝绿)会格外重视,那么作为传统软件企业,你是否真的需要?
  • 再比如,这些平台的流水线编排都很灵活,但是在你的企业过度的灵活是否真的有用? 也许开发团队只需要傻瓜式的,甚至无脑,严格控制的流程呢?

熟悉组织的软件研发活动,通过和业务研发团队座谈的方式,收集真实的痛点,在“灵活模式”和“死板模式”中需求平衡。功能做的再酷炫,不能解决实际问题,也是没有任何价值的。

如图所示,可以通过绘制业务流程图的方式,将平台的业务流程和实际的业务场景结合,指导平台分阶段建设,业务与技术演进相结合。

DevOps落地实践点滴和踩坑记录-(2) -聊聊企业内部DevOps平台建设_二次开发_08


总结

上面我分享的几个问题,相信你都会遇到,这里仅供参考。每个组织想要的DevOps平台是完全不一样的,别人的场景功能未必就适合自己,主要还是以解决问题为目的。
DevOps实践过程是漫长和艰难的,平台能力是整个组织一起努力的结果,不要试图你的团队单枪匹马搞成这个事情,离不开你的“客户”(需求),离不开上层领导的支持(自上而下推动),离不开组织运营规范的牵引(流程规范)。


DevOps落地实践点滴和踩坑记录-(2) -聊聊企业内部DevOps平台建设_研发过程_09

标签:企业,平台,DevOps,研发,聊聊,团队,过程,点滴
From: https://blog.51cto.com/devopsingroad/6458593

相关文章

  • 聊聊Flink的必知必会(一)
    概述Flink是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算。Flink能在所有常见集群环境中运行,并能以内存速度和任意规模进行计算。使用官网的语句来介绍,Flink就是“StatefulComputationsoverDataStreams”。首先,Flink是一个纯流式的计算引擎,它......
  • 聊聊结合业务需求给出合理的技术解决方案,改进现有模块功能,提高系统的可扩展性,封装性,稳
    针对提高系统的可扩展性、封装性、稳定性,改进现有模块功能,以下是我给出的一些技术解决方案:使用面向对象编程的设计模式:可以采用一些设计模式如单例模式、工厂模式、观察者模式等,来提高系统的可扩展性和封装性。应用微服务架构:可以将系统拆分成多个独立的服务,使得每个服务都可......
  • 聊聊读研究生应该怎么权衡offer的选择(适合选择恐惧症,哈哈)
    关注微信公众号“AI学习经历分享”,回复对应关键词,获取机器学习,深度学习,Python,Java的技术干货!今天突然有时间聊聊这个读研究生offer的选择,一方面是因为当初都答应了一位朋友,但是因为种种原因和因素,鸽了这个约定,并且最近一段时间比较忙,但是我从来没有忘记,答应别人的事情一定要做到。......
  • 聊聊Cola-StateMachine轻量级状态机的实现
    背景在分析Seata的saga模式实现时,实在是被其复杂的json状态语言定义文件劝退,我是有点没想明白为啥要用这么来实现状态机;盲猜可能是基于可视化的状态机设计器来定制化流程,更方便快捷且上手快吧,毕竟可以通过UI直接操作,设计状态流转图,但我暂时不太能get到。对于Saga模式的实现,之前......
  • 聊聊MAUI、WinUI3和WPF的优势及劣势
    今天在群里聊到WinUI3的学习及发展,还有他那堪比玩具的使用体验,正好梳理一篇关于WinUI3、MAUI和WPF优劣势,我整理的不是很好,所以又让ChatGPT在生成了一遍,感觉整体还可以。看完可以相互讨论一下;引言:在应用程序开发领域,选择合适的框架对于开发人员和业务来说至关重要。本文将比较并......
  • DevOps| 研发效能和PMO如何合作共赢?
    项目经理(PMO)对于大组织、跨团队高效协同有着不可替代的作用。跳出组织架构的束缚,横向推动公司级别的大项目向前推进,跟进进展和拿到结果,PMO的小伙伴有着独特的优势。我之前写过小团队如何高效协作的一篇文章《 高效能敏捷交付团队反思:特性团队(FeatureTeam)+Scrum》,还写过一篇关......
  • DevOps| 研发效能和PMO如何合作共赢?
    项目经理(PMO)对于大组织、跨团队高效协同有着不可替代的作用。跳出组织架构的束缚,横向推动公司级别的大项目向前推进,跟进进展和拿到结果,PMO的小伙伴有着独特的优势。我之前写过小团队如何高效协作的一篇文章《 高效能敏捷交付团队反思:特性团队(FeatureTeam)+Scrum》,还写过一篇......
  • 聊聊公司技术上的奇葩规定——计算机使用
    首先说明下公司的技术架构。MySQL+PHP+Java,纯互联网应用,Docker容器部署微服务在AWS上面。数据上没有过多敏感性,不涉及到很多敏感数据,身份识别信息通常使用的是第三方平台,我们本地不存储用户身份信息。电脑只能使用Mac如果你是Mac电脑的深度爱好者,那你有福了。公司......
  • 来聊聊才离职就被拉黑禁用的这些事
    可能最近写离职的东西比较多,在网站上刷新闻的时候说是有一人才离职1个小时就被拉黑退群了。为了保证来源的准确,原文就不发了,可以自行搜一下。觉得上面的情况还挺有意思的,现就来说说离职拉黑在美国这回事。公司层面上规模的公司对用户的管理都会有一个标准流程的,这个用户的管理不......
  • 来聊聊才离职就被拉黑禁用的这些事
    可能最近写离职的东西比较多,在网站上刷新闻的时候说是有一人因为才离职1个小时就被拉黑退群了。为了保证来源的准确,原文的截图如下:  觉得上面的情况还挺有意思的,现就来说说离职拉黑在美国这回事。公司层面上规模的公司对用户的管理都会有一个标准流程的,这个用户的管理......