探秘企业DevOps一体化平台建设终极形态丨IDCF

笔者从事为企业提供研发效能改进解决方案相关工作十几年,为国内上百家企业提供过DevOps咨询及解决方案落地解决方案,涉及行业包括:金融、通信、制造、互联网、快销等多种行业。

DevOps的核心是研发效能改进,效能的提升离不开强大工具的支撑,因此在DevOps如火如荼的今天,承载研发效能改进的企业DevOps一体化平台工具建设变得非常炙手可热。

所以,工具链建设过程中,很多人都会有这些疑问:当前DevOps工具发展情况如何?为什么近期国内开始涌现大量的DevOps一体化工具平台,其中很多有实力的企业甚至自研DevOps一体化平台工具?自研DevOps一体化平台工具应该如何做?未来的DevOps发展方向会如何?

通过下面的内容使大家在DevOps工具建设过程中少走一些弯路。

当前DevOps工具发展情况

1.1丰富的可用工具集

图片

自从2010年DevOps这个专属名词推广开来以后,所有和软件研发过程管理相关的工具都可以划入到DevOps工具集中,这些工具从功能范围上可以分为两大类:

All-In-One类(DevOps一体化平台类):即工具具备软件研发主要过程的管理能力,例如上图中微软的Azure DevOps,Atlassian的全家桶(包括我们熟知的Confluence,Jira,Bitbucket,Bamboo等)。

领域专注类:这类工具大都只专注于一种或者多种能力,例如只专注于条目化跟踪管理的Jira,禅道,Clickup等,这些工具大多核心能力是进行条目化跟踪管理的,可以覆盖需求、变更以及缺陷等多种企业常见软件研发管理流程。

1.2井喷式出现的国内DevOps工具

当前国内出现了大量的DevOps一体化平台工具,例如阿里的云效、华为的DevCloud、京东的行云,Gitee,博云等诸多商用DevOps一体化平台工具。当然也有很多企业开始自研平台工具。导致这种状况的主要原因有三个:

  1. 随着开源社区的发展,使得企业基于开源工具定制化更加适合自身要求的平台工具越发简单。

  2. 国内的软件行业经过多年发展,逐渐形成了一套适合自身需要的管理方法,也诞生了诸多优秀工具。随着企业对工具的整合,逐渐具备了DevOps一体化平台的基础。

  3. 部分企业由于国际环境原因,开始逐步放弃国际上成熟的优秀DevOps一体化平台工具,转而在国内寻求优秀替代品,或者干脆自行研发。

1.3国内DevOps工具建设问题

虽然目前市场上有很多国内的DevOps产品,但是或多或少会有一些开源工具的影子,有些干脆就是基于开源工具套了一个壳子。这种方式可以让产品快速投入使用,但是同时也会有很多的问题。

  • 技术封装不到位

  • 流程管理模式僵化

  • 扩展性差、定制化强烈依赖二次开发

  • 管理维度能力较强,工程维度专业度不足

  • 可度量设计缺失、数据分散

DevOps工具优化方案

2.1企业DevOps一体化平台能力

一款好的DevOps平台产品从研发流程跟踪与管理,到端到端的自动化高质量制品生成及交付,应该具备强大的业务功能:

研发过程覆盖

应该完整覆盖软件研发的主要过程:流程跟踪(需求、变更、缺陷以及测试等),源代码管理,自动化流水线,测试管理,制品管理等。

开箱即用

为最大限度的满足主要客户需求,提供开箱即用的配置及工具,例如:提供敏捷、看板等管理工具,提供主流技术栈的流水线开箱即用模板,并且提供调用主流自动化测试工具以及环境部署的流水线任务。

团队协作

在工程管理维度上,应该具备跨系统,跨团队的协同管理能力。

端到端的DevOps工具链

一定要具备协助企业搭建端到端的DevOps广义流水线的能力。也就是说基于DevOps平台工具可以将涉及软件研发的所有流程工具、研发工具、测试工具及运维工具等统一整合起来的能力。

图片

DevOps度量体系

如果希望建立企业级的DevOps持续改进机制,能有一种持续可行的研发效能提升体制,那么研发度量一定是必不可少的最重要依据。在当下工具功能已经足够完善的情况下,产品的最大卖点应该是帮发现问题,分析问题,以及提供解决问题的数据依据,最后成为企业持续改进的内建度量标准。

图片

一切皆代码

DevOps一体化平台工具除需求管理外,其他主要功能模块应该都可以通过脚本进行编排,即Everything As Code(一切皆代码)。

2.2DevOps一体化平台结构

图片

  • 具有普适性的基础管理能力

  • 具有灵活的流程管理配置能力

  • 具有完善的产品扩展能力

    • 对外提供标准Web API

    • 基于DevOps一体化平台产品的扩展框架

    • 完善的消息推送机制

  • 不可或缺的产品定制化能力

DevOps工具链的终极形态构想

图片

未来的编码趋势一定是IDE轻量化,这点大家可以查一查现在Web IDE的热度,VS Code在短时间内收获大量用户就是一个最好的证明。那么基于IDE的网页化,DevOps一定将走向轻量化,不应该再像现在一样,需要维护一个功能复杂的工具界面,这些功能应该被直接集成在IDE中。DevOps平台工具在功能设计上应该只有3个核心模块:流程管理,后台服务,度量。

  1. 流程管理:主要提供给利益干系人、管理者进行信息查看和流程操作使用,此功能需要有对外展示页面。但是开发团队只需要使用轻量化的IDE完成所有操作即可,所有信息与操作均可以在IDE上直接、精确的显示与操作。

  2. 后台服务:提供包括代码管理、流水线管理和制品管理等其他核心服务。

  3. 度量:可以根据任意维度显示所有与开发活动相关的数据,包括流程管理数据、工程管理数据、行为数据(例如开发人员的代码开发习惯,开发时长,代码质量分析等等)。并且可以快速的形成报表进行展示。

从技术上,整个环境应该都运行在基于容器化编排平台运行的容器中,并且相较于传统DevOps平台工具上的差异:

  1. 环境:DevOps平台工具、开发IDE、DevOps自动化流水线运行环境、应用运行环境

  2. DevOps组件:丰富的DevOps功能接口、通用化JS集成框架、实时的研发数据动态收集功能

  3. DIS(DevOps Integration Service):易于配置的集成服务、兼容主流DevOps工具集、开源化运营,便于使用者的二次定制化

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

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

相关文章

学习左耳听风栏目90天——第一天 1-90(学习左耳朵耗子的工匠精神,对技术的热爱)【洞悉技术的本质,享受科技的乐趣】

洞悉技术的本质,享受科技的乐趣 第一篇,我的感受就是 耗叔是一个热爱技术,可以通过代码找到快乐的技术人。 作为it从业者,我们如何可以通过代码找到快乐呢?这是一个问题? 至少目前,我还没有这种…

王道《操作系统》学习(二)——进程管理(四)

2.4.1 死锁的概念 (1)什么是死锁 (2)死锁、饥饿、死循环的区别 (3)死锁产生的必要条件 (4)什么时候会发生死锁 (5)死锁的处理策略

Scala编程语言入门教程

Scala教程 方便个人学习和查阅 学习目标 Scala介绍 简介 Scala创始人Martin Odersky马丁奥德斯基 再回到我们的scala语言,在Scala官网https://www.scala-lang.org/介绍了其六大特征。 Java和scala可以混编 类型推测(自动推测类型) 并发和分布式(Ac…

算法练习--leetcode 数组

文章目录 爬楼梯问题裴波那契数列两数之和 [数组]合并两个有序数组移动零找到所有数组中消失的数字三数之和 爬楼梯问题 输入n阶楼梯,每次爬1或者2个台阶,有多少种方法可以爬到楼顶? 示例1:输入2, 输出2 一次爬2阶&a…

flask服务生成证书文件,采用https访问,开启用户密码验证

openssl req -x509 -newkey rsa:4096 -nodes -out cert.pem -keyout key.pem -days 3072开启用户密码验证 auth.verify_password def verify_password(username, password):if username abcdefg and password 1234546:return usernameapp.route(/post_request, methods[POST…

无涯教程-Lua - 嵌套if语句函数

在Lua编程中,您可以在另一个if or else if语句中使用一个if or else if语句。 nested if statements - 语法 嵌套if 语句的语法如下- if( boolean_expression 1) then--[ Executes when the boolean expression 1 is true --]if(boolean_expression 2)then--[ Ex…

海外版金融理财系统源码 国际投资理财系统源码 项目投资理财源码

海外版金融理财系统源码 国际投资理财系统源码 项目投资理财源码

【计算机视觉 | Kaggle】飞机凝结轨迹识别 Baseline 分享和解读(含源代码)

文章目录 一、导读二、比赛背景三、比赛任务四、比赛数据五、评价指标六、Baseline6.1 Training part6.2 Submission part 一、导读 比赛名称:Google Research - Identify Contrails to Reduce Global Warming https://www.kaggle.com/competitions/google-researc…

Redis 6.5 服务端开启多线程源码

redis支持开启多线程,只有从socket到读取缓冲区和从输出缓冲区到socket这两段过程是多线程,而命令的执行还是单线程,并且是由主线程执行 借鉴:【Redis】事件驱动框架源码分析(多线程) 一、main启动时初始化…

LeetCode724. 寻找数组的中心下标

题干 给你一个整数数组 nums ,请计算数组的 中心下标 。 数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。 如果中心下标位于数组最左端,那么左侧数之和视为 0 ,因为在下标的左侧不存在元素。…

python进阶

目录 Json数据格式 前言 JSON格式 python数据和Json数据的相互转化 多线程 进程和线程 串行和并行 多线程编程 创建线程参数 具体案例 网络编程 套接字 socket服务端编程步骤 socket客户端编程步骤 python操作mysql数据库 查询并接收数据 数据插入 Json数据格…

docker search 镜像报错: connect: no route to host (桥接模式配置静态IP)

如下 原因 可能有多种: ① 没有开放防火墙端口 ② ip地址配置有误 解决 我是因为虚拟机采用了桥接模式,配置静态ip地址有问题。 先确认虚拟机采用的是 桥接模式,然后启动虚拟机。 1、打开命令行,输入下面指令,打开…