探秘企业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.rhkb.cn/news/78631.html

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

相关文章

HTTPS-RSA握手

RSA握手过程 HTTPS采用了公钥加密和对称加密结合的方式进行数据加密和解密 RSA握手是HTTPS连接建立过程中的一个关键步骤,用于确保通信双方的身份验证和生成对称加密所需的密钥 通过RSA握手过程,客户端和服务器可以协商出一个共享的对称密钥,…

ruoyi若依 组织架构设计--[ 角色管理 ]

ruoyi若依 组织架构设计--[ 角色管理 ] 角色新增后端代码 角色修改后端代码 角色查询角色删除角色分配数据权限后端代码 角色分配用户 角色新增 后端代码 有一点,我认为新增的时候,也需要修改redis中的权限。 角色修改 后端代码 因为修改了role_menu表了…

Chrome 75不支持保存成mhtml的解决方法

在Chrome 75之前,可以设置chrome://flags -> save as mhtml来保存网页为mhtml。 升级新版,发现无法另存为/保存网页为MHTML了。 参考https://jingyan.baidu.com/article/a3761b2b7e39ec5576f9aad9.html 在网上搜索无果后,只得从chromium项…

【分布式应用】ELK企业级日志分析系统

目录 一、ELK 简介 1.1 ELK各组件介绍 ElasticSearch: Kiabana: Logstash: 1.2 可以添加的其它组件: Filebeat: 缓存/消息队列(redis、kafka、RabbitMQ等): Fluentd&#xf…

vue中vue-lazyload报错

1.问题: 说明:也就是版本不兼容,我安装的是vue2,因此需要 "vue-lazyload": "^1.2.6"或者更低 2.解决 npm i vue-lazyload1.2.6

补充JDK源码-IDEA集成工具

在阅读JDK8源码的时候发现,只有一小部分常用包是存在源码及其注释的,而很多内部包是没有源码,class文件在阅读的时候对阅读者十分不友好。在网上搜集了很多资料都没有解决问题。 解决问题办法:参考文档。本文主要是根据这篇文章记…

安全杂记 - 复现nodejs沙箱绕过

目录 一. 配置环境1.下载nodejs2.nodejs配置3.报错解决方法 二. nodej沙箱绕过1. vm模块2.使用this或引用类型来进行沙箱绕过 一. 配置环境 1.下载nodejs 官网:https://nodejs.org/en2.nodejs配置 安装nodejs的msi文件,默认配置一直下一步即可&#x…

Wordpress升级版本后插件和主题常见出错及处理方法整理【持续更新】

Wordpress报错怎么解决? 一般常用的排查方法: 暂时禁用所有插件;将主题更改为默认主题; 修改wp-config.php文件;更新固定链接设置,确保设置正确;检查.htaccess文件是否存在且是否可写&#xf…

ant.design 组件库中的 Tree 组件实现可搜索的树: React+and+ts

ant.design 组件库中的 Tree 组件实现可搜索的树,在这里我会详细介绍每个方法,以及容易踩坑的点。 效果图: 首先是要导入的文件 // React 自带的属性 import React, { useMemo, useState } from react; // antd 组件库中的,输入…

了解Linux 的 mmap --- 笔记

学习这篇博客,进行了一些归纳Linux下mmap_linux mmap_一个山里的少年的博客-CSDN博客https://blog.csdn.net/qq_56999918/article/details/127070280 >>读取文件 读取文件方法:由操作系统提供的两个方法,read和write来读写文件。 由…

【SpringBoot】知识

.第一个程序HelloWorld 项目创建方式:使用 IDEA 直接创建项目 1、创建一个新项目 2、选择spring initalizr , 可以看到默认就是去官网的快速构建工具那里实现 3、填写项目信息 4、选择初始化的组件(初学勾选 Web 即可) 5、填…

flask中的应用上下文

flask中的应用上下文 Flask应用上下文主要包含两个对象:current_app和g。这两个对象在处理请求期间都是全局可访问的,但在每个请求结束时都会被重置。 current_app:这是当前激活的Flask应用的实例。在大多数情况下,你可以将其视为…

Git工具安装

Git 工具安装 1. 下载Git安装包2. 安装Git工具3. 简单的使用配置用户名 1. 下载Git安装包 打开官网 https://git-scm.com/downloads点击下载 2. 安装Git工具 右击以管理员身份运行 ![在这里插入图片描述](https://img-blog.csdnimg.cn/9a99a73d54824800bc87db64f71f7602.png…

Vue3状态管理库Pinia——自定义持久化插件

个人简介 👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,正逐渐往全干发展 📃个人状态: 研发工程师,现效力于中国工业软件事业 🚀人生格言: 积跬步…

Codejock Skin Framework Visual C++ MFC Crack

Codejock Skin Framework Visual C MFC Crack Codejock Visual CMFC皮肤框架为Windows开发人员提供了一种高度复杂的应用程序皮肤框架技术,该技术是在考虑Windows主题(视觉样式)的情况下开发的。只需几行代码就可以实现一个完全主题化的应用程序。 功能概述 Codejoc…

【雕爷学编程】MicroPython动手做(30)——物联网之Blynk 4

知识点:什么是掌控板? 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片,支持WiFi和蓝牙双模通信,可作为物联网节点,实现物联网应用。同时掌控板上集成了OLED…

Element的Dialog+Form使用问题

在Element的Dialog中使用表单时&#xff0c;可能会出现以下问题 无法清空表单校验 <el-dialog title"新建资产" :visible.sync"addAssetsFormVisible" close"resetForm(addAssets)">resetForm (formName) {this.$refs[formName].resetFie…

2023-8-6 成年人交朋友,只筛选不改造。

前段时候&#xff0c;把Ex和相关的人都删掉了&#xff0c;又起了一次棺材。上次棺材给掀开&#xff0c;是因为肉桂拉小群又把我们拉一块。 我睡醒的时候看到了一堆的消息&#xff0c;他遇到麻烦想投靠我&#xff0c;还说以后要跟我混。他只有在遇到麻烦&#xff0c;遇到换工作…

前端CSS文字阴影text-shadow记录

前端CSS文字阴影text-shadow记录 一、文字阴影 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Doc…

【Redis】——AOF持久化

什么是AOF日志 AOF日志是redis为数据的持久化提供了的一个技术,日志里面记录着执行redis写命令。每当redis执行一条写命令的时候&#xff0c;就会将该命令记录 到AOF日志当中。当redis启动的时候&#xff0c;可以加载AOF日志中的所有指令&#xff0c;并执行这些指令恢复所有的…