【DEVOPS】现状篇
0. 目录
- 1. 前言
- 2. 现状
- 2.1 需求管理
- 2.2 开发流程
- 2.3 测试流程
- 2.4 部署流程
- 2.5 维护阶段
- 3. 后记
- 4. 相关
1. 前言
一直以来,深感内部工程化能力欠缺,急于将事情向前推进,总是希望能够向前走几步,再走几步。
可惜的是,数年下来,进展实在乏善可陈。这里我们不去分析原因,本篇主要是阶段性总结到目前这个阶段,我们在DEVOPS上所处的状态,取得共识。
毕竟,DEVOPS作为一种文化,认知齐了才可能进一步地发展。
2. 现状
我们以一个软件项目的全生命周期里的各个阶段为线索,逐一总结各个阶段的进度情况。
2.1 需求管理
如我们在【DEVOPS】需求跟踪管理全面落地里提到过的,截止当下,我们已经分别在行业部门和基础平台部门分别进行了成功的试点,但是距离全面铺开以及进一步规范化还存在比较大的距离。
落地特点:
- 两类部门均对禅道标准流程进行了自主调整。
- 行业部门内落地的管理流程特点参见【DEVOPS】基于禅道 - 重构研发协作流程,总结一句话就是改进主要是由研发推动,遵循了"产品需求-项目任务-测试BUG"这三个概念基础之上,抛弃了敏捷开发里“冲刺(Sprint)”概念,显著减少流程里对应人员能力的要求,以及流程学习和维护成本。另外关于版本/发布这一步也暂时放弃。
- 基础平台部门内落地的管理流程则是以质量保证部门发起,所以最终落地的管理流程特点也是非常明显。现阶段他们基本忽略了需求的流转这一过程,关注点主要是在于需求、BUG与发布版本之间的关联。也就是确定当前发布的版本是被验证过哪些BUG或需求被解决了的,并且基于这个要求,完善了用例的编写和基础用例库的建立。嗯,你说"难道他们之前?",是的,你猜得没错。
- 各自都基于自身的本地化流程做了相应的禅道二开报表统计和流程流转限制。这是一个好现象,但还远远不够。
存在问题:
- 集团公司内诸多行业部门,但落地成功的现阶段只有一个。
- 行业特点各异,所以很可能部门行业部门还需要进行对应人员进行主动实践,本地化出适合自己的流程。
- 本地化程度低,以上很明显可以看出不管是行业还是基础平台部门,它们对于禅道的应用还只是处于最初的起步阶段,只能算是真正踏出了第一步,如果不进行持续的迭代改进,那么与过往的土八路打发并不能拉开显著的差距。
2.2 开发流程
这一部分关注点主要是自动化的程度,以及经验复制的范围。
- CICD在行业部门的内个别小组中有试点,并且反馈也不错,但是一旦相应的跟进停止,相关的人员在退回原有开发模式时,并没有过多的抵触。这应该是过往DEVOPS推进始终停滞不前的重要原因 —— 有好处,但是不多,没有达到形成这种自下而上的变革力量。
- 编码规范等一系列的前置检查也有尝试,但是受限于业务压力,以及历史代码的纠缠等原因,这一块的推进始终反复不断,目前处于搁置状态。
- 技术解决方案的沉淀一直在推进,但基本属于剃头挑子一头热的状态,距离理想中的"共建"还存在着很大的距离。
- 以上尝试,在基础平台部门起步更晚。
2.3 测试流程
做得也不怎么样。
- 行业部门的测试以"猴子测试"为主,保证基本的业务功能就可以了,相应的人员招聘也是按照这个标准来的,而且相关人员还要身兼售后等职责,所这一块的尝试始终无法更进一步,截止目前也是缺乏显著的进展。
- 基础平台部门因为自身业务特点,所以在用例的维护上取得了显著效果,这对于产品质量在一定程度上的保证,以及人员结构的稳定上有了明显的进步 ——新入职的人员两周内必然上手,而不是过往一个月过去了这人都不知道自己该怎么干。
- 并且内部的基础设施(典型如何服务器)使用效率底下,没有一个基本的CMDB。每次申请服务器之后,用一段时间之后就闲置了,逐步积累直到无法分配新的服务器,于是导致每隔一段时间都需要重新统计服务器使用情况,从零再来一轮新的分配,循环往复。
2.4 部署流程
这一块因为行业特点,问题的复杂性,造成相应的推进涉及不多。
相关原因大致有:
- 部署环境高度各异,且不可控。
- 相关人员缺乏基本知识素养。
- 软件自身未考虑鲁棒性问题。
2.5 维护阶段
对于这一阶段,进展大致分为两类:
- 对于以上已经实现基本的禅道管理流程的,目前已经可以实现反向地,由研发/测试团队倒逼需求提出方去规范基础的需求/BUG处理流程。
- 但对于其他团队,逮着认识的人往死了用,出现相关问题不知道找谁等无谓的沟通摩擦成本依然是大量存在,并且毫无改进的迹象。
3. 后记
自下而上,没有专人投入,领导不理解,短期难以见效,这样的背景之下,任何流程的推进都是“横垄地里拉车,一步一个坎儿”,我也是见证了不少半途而废的改良者。
放弃者并不能说是懦弱,而坚持下来的人也只是各有各的原因。
4. 相关
- 传统软件行业中技术团队的发展(现状篇)
- 【DEVOPS】需求跟踪管理全面落地
相关文章:
【DEVOPS】现状篇
0. 目录 1. 前言2. 现状2.1 需求管理2.2 开发流程2.3 测试流程2.4 部署流程2.5 维护阶段 3. 后记4. 相关 1. 前言 一直以来,深感内部工程化能力欠缺,急于将事情向前推进,总是希望能够向前走几步,再走几步。 可惜的是,…...

Linux文件管理知识:查找文件(第二篇)
Linux文件管理知识:查找文件(第二篇) 上篇文章详细介绍了linux系统中查找文件的工具或者命令程序locate和find命令的基本操作。那么,今天这篇文章紧接着查找文件相关操作内容介绍。 Find命令所属操作列表中的条目,有助于我们想要…...

医疗小程序:让服务更高效,用户体验更优化
随着移动互联网的快速发展,小程序已经成为了一个热门的开发方向。医疗健康类小程序也不例外,拥有广泛的市场需求和前景。本文将为你提供一份完整的医疗健康类小程序开发攻略,帮助你快速开发上线一个专业成熟的小程序商城。 一、选择合适的小程…...
C++11 std::transform函数使用说明
std::transform是C标准库中的一个算法,它用于对输入范围内的元素进行操作,并将结果存储在输出范围内。这个算法特别适合于将一种数据类型转换为另一种数据类型。 函数定义在头文件algorithm中 std::transform的基本语法如下: std::transfor…...
JavaScript-DOM查询
获取元素节点 获取元素节点的子节点 元素节点的属性 节点的修改 JavaScript中的DOM(文档对象模型)是一种编程接口,它允许JavaScript与HTML文档交互。创建DOM查询,可以使用多种方法. 获取元素节点 1. getElementById() – 通…...

大数据-玩转数据-Flink 水印
一、Flink 中的水印 在Flink的流式操作中, 会涉及不同的时间概念: 1.1 处理时间 是指的执行操作的各个设备的时间,对于运行在处理时间上的流程序, 所有的基于时间的操作(比如时间窗口)都是使用的设备时钟。比如, 一个长度为1个小时的窗口将会包含设备…...

【Apollo】阿波罗自动驾驶系统:驶向未来的智能出行(含源码安装)
前言 Apollo (阿波罗)是一个开放的、完整的、安全的平台,将帮助汽车行业及自动驾驶领域的合作伙伴结合车辆和硬件系统,快速搭建一套属于自己的自动驾驶系统。 开放能力、共享资源、加速创新、持续共赢是 Apollo 开放平台的口号。百度把自己所拥有的强大、…...
网络-Netty
how pipeline.addLast(ChannelHandler)...
如何使用vue-smooth-dnd
Vue Smooth DnD是一个基于Vue的平滑易用的拖放库。它提供了简单易用的API和可自定义的样式。 要使用Vue Smooth DnD,可以按照以下步骤进行操作: 安装Vue Smooth DnD npm install vue-smooth-dnd --save 在组件中引入Vue Smooth DnD import VueSmoot…...
为AWS认证做好准备:一份全面的备考指南
随着云计算的快速发展,越来越多的专业人士选择获取AWS(亚马逊网络服务)认证。这个认证不仅可以证明你对AWS的理解和专业技能,还有助于你在云计算领域获得更好的工作机会。 以下是一份全面的备考指南,帮助你为AWS认证做…...
尚硅谷SpringMVC
九、HttpMessageConverter...

django的简易的图书管理系统jsp书店进销存源代码MySQL
本项目为前几天收费帮学妹做的一个项目,Java EE JSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 django的简易的图书管理系统 系统有1权限:…...
力扣125. 验证回文串
125. 验证回文串 如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。 字母和数字都属于字母数字字符。 给你一个字符串 s,如果它是 回文串 ,返回 true &…...
用WebStorm创建Mock数据
WebStorm是一款强大的集成式开发环境,它集成了许多实用的功能,包括Mock数据的创建。 下面是用WebStorm创建Mock数据的步骤: 打开WebStorm,选择一个项目或新建一个项目;在项目中创建一个名为“mock”的文件夹…...

Python钢筋混凝土结构计算.pdf-已知弯矩确定混凝土梁截面尺寸
计算原理 确定混凝土梁截面的合理尺寸通常需要考虑弯矩、受力要求和约束条件等多个因素。以下是一种常见的计算公式,用于基于已知弯矩确定混凝土梁截面的合理尺寸: 请注意,以上公式仅提供了一种常见的计算方法,并且具体的规范和设…...
【正点原子STM32连载】第二十四章 高级定时器PWM输入模式实验 摘自【正点原子】APM32F407最小系统板使用指南
1)实验平台:正点原子stm32f103战舰开发板V4 2)平台购买地址:https://detail.tmall.com/item.htm?id609294757420 3)全套实验源码手册视频下载地址: http://www.openedv.com/thread-340252-1-1.html# 第二…...

Adapter Tuning Overview:在CV,NLP,多模态领域的代表性工作
文章目录 Delta TuningAdapter Tuning in CVAdapter Tuning in NLP Delta Tuning Adapter Tuning in CV 题目: Learning multiple visual domains with residual adapters 机构:牛津VGG组 论文: https://arxiv.org/pdf/1705.08045.pdf Adapter Tuning in NLP …...
velocity一个基于Java的模板引擎
参考:https://blog.csdn.net/m0_51517236/article/details/126175283 http://www.51gjie.com/javaweb/896.html...
异步servlet
我们日常使用的 SpringMVC,基本上都不是异步 Servlet,而学习 WebFlux,异步 Servlet 是基础,WebFlux。 1.什么是异步 Servlet 先来说说什么是非异步 Servlet。 在 Servlet3.0 之前,Servlet 采用 Thread-Per-Request 的方…...

煤矿皮带运输智能监控算法 opencv
煤矿皮带运输智能监控算法通过opencvpython深度学习算法网络模型,煤矿皮带运输智能监控算法实时监测皮带运输过程中的各种异常情况,如跑偏、撕裂、堆料异常等,一旦检测到异常情况,立即发出告警并采取相应的措施,以保障…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...

【2025年】解决Burpsuite抓不到https包的问题
环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...

IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...