关于DevOps工具链的探讨
近日,翰德恩的学友会同学们与翰德恩高级DevOps咨询师、原京东研发效能专家熊志男老师就DevOps工具链展开了探讨。
Q: 熊老师好,公司要求我们自研或者基于业界的工具采购DevOps相关工具。您在京东等大厂有多年的DevOps工具经验,有几个问题请教。
A: 尽管问,请讲。
1.能一句话给个定义吗,所谓的DevOps工具链到底是什么?就是把各种工具都穿起来吗?
DevOps工具链是指为了使研发团队和运维团队在整个研发生命周期中能够无缝协作的工具集合,具体包含持续集成、持续交付、自动化工具和协同工具等等。然而仅依靠工具是无法实现DevOps的,文化、组织和技术手段是三个基本要素,而工具只是代表了其中的技术手段。
2.那么DevOps工具链有哪些必备的工具种类?
DevOps工具链必备的工具种类包含不同团队之间沟通和协同的协作类工具、制定排期和计划的工具、代码仓库、缺陷管理、配置管理、持续集成、制品仓库、自动化测试工具、部署工具、监控工具和数据仓库。
3.为什么需要DevOps工具链?没有工具链不行吗?
通过使用DevOps工具链可以带来的好处包含:通过自动化技术节约时间和资金成本、通过事件管理工具实现及时响应从而降低损失和风险、通过自动化技术提升开发和部署效率、通过缺陷管理和质量工具实现质量保障、通过度量和评估来找出效率瓶颈从而获得研发效率提升、通过质量左移和自动化技术实现效率和质量的平衡、增加系统的鲁棒性。总结起来,每个单独的工具都可以带来有效的价值,工具链的意义在于流程和数据的打通,实现多个工具组合起来形成一加一大于二的效果。
4.那么我们该如何构建DevOps工具链?
DevOps工具链不是一蹴而就的,主要从成本和收益两个维度考虑。基础设施类的工具是需要首先考虑的,比如基于云的基础实施管理、运维和部署;其次是在研发生命周期中涉及到不同角色必须使用的工具建设,如代码仓库、缺陷管理和事件管理等;接下来是实现工具整合和协同效率提升类的工具,如通过流水线实现多类型工具的协同,通过数据平台实现全生命周期的数据度量和分析。
5.DevOps工具链中的工具如何选型?
构建DevOps工具链可以选择的工具有开源工具、商业工具或者自研工具,那我认为选择的策略可以参考两个方面。首先从DevOps工具链发展阶段来看,初期为了快速实现工具链的完整和打通,可以优先选择开源工具或者商业工具,需要注意的时候工具之间的联通性,和是否有标准的数据模型;中后期为了满足企业内部的定制化需求,比如与内部其他工具系统打通,可以进行工具的定制化,或者通过自研工具来实现。然后可以从工具的能力属性来考虑,提供单点能力的工具,如自动化测试工具、代码扫描工具、机器和任务调度引擎等,选择开源的或者商业的工具较好,因为这些工具经过不断演进和发展在技术上具备先进性,功能上更加完备;而对于管理协同类工具,如效能度量、流程和质量管控和统一平台入口等具有企业特色的能力大多时候会选择通过自研来实现。
6.如何实现DevOps工具的定制化?
DevOps工具的定制化,主要指两个方面:一是指在链条上的相同节点的不同工具的选择,如流水线引擎的选择可以多样化,采用传统的Jenkins平台来实现是一种方式,另外也可以采用ArgoCD这种基于GitOps的工具。另外一个方面是指对于单个工具的定制化,通过调用API的方式,或者开发自定义插件的方式实现工具的定制化,对于开源工具来说,通过基于开源工具的二次开发实现定制化开发比起商业工具的定制化来说成本要低得多。
7.为什么需要构建一站式DevOps平台呢?
之所以要构建一站式DevOps平台,是基于以下几个方面考虑。首先是为了降低用户的操作成本,例如使用原生的DevOps工具大多需要通过编写脚本或者DSL语言来实现自动化任务的编排,而通过平台化可以实现界面拖拽或者操控按钮的方式代替。减少用户在不同工具之间的切换也能帮助降低用户的操作成本。然后通过不同工具之间的有机结合,实现整体效用提升的效果。比如精准化测试等事件需要多个工具之间更加丰富的数据传递和接口调用,平台化可以帮助实现此类功能。还有就是通过平台化实现数据的统一收集和度量,建立有效的效能度量机制,是驱动研发团队和平台本身朝着正确方向演进的不二法门。
8.业界是否有一站式DevOps平台的案例?
企业内一站式DevOps平台的案例全景图如下:
9.企业建设DevOps平台一般会遇到哪些问题?
DevOps平台建设常常会面临以下问题:首先是平台的复杂性增加带来用户体验和使用效率下降。根本原因是企业内工具类产品大多时候早期缺乏合理的用户体验设计,而随着平台的功能增多,进行颠覆式修改的成本有很大,因此这样的设计债会拖累用户体验提升的进展。然后是与管理诉求的绑定,随着功能的完善,用户需求也越来越多,而平台建设需要投入的成本也会增加,因此往往平台建设团队通常会过多迎合管理来需求来换取资源的投入,这样会造成管理流程完善,但是一线用户使用体验反而降低的现象。还有大多时候会由独立的工具团队来负责DevOps平台建设,而这些团队自身的开发流程与模式与业务研发团队存在差异,而如果不能和相关研发领域专家很好配合就会造成功能脱离实际的情况。
10.展望未来,DevOps工具链有什么演进趋势?
DevOps工具链的演进趋势主要体现在以下几个方面:首先是多云环境的支持,目前越来越多的企业使用混合云的部署方案,无论从多云部署还是和云原生工具的集成角度都是必要的。然后是更加注重软件供应链的安全,随着平台化的演进,不同角色的用户都可能会通过平台操作来引入不同的风险,在整个软件研发生命周期中,需要通过DevSecOps等实践来确保整个软件供应链的安全。还有就是智能化技术在研发过程的的应用,比如通过低代码平台来快速生成软件系统,通过智能化测试技术来实现测试数据生成、用例智能推荐和精准化度量等。
Q: 感谢熊老师,让我对DevOps工具链平台清楚了很多,知道如何着手开始第一步。
A: 客气了。学无止境,翰德恩咨询伴您一路成长,为您解决数字化和敏捷DevOps转型过程中的各种疑难杂症。
关于DevOps工具链的探讨相关推荐
- DevOps 工具链可推动你的创新计划!
一套完整启用的 DevOps 工具链可推动你的创新计划,实现快速部署并节约成本.不同规模和不同行业组织都致力于为提高软件交付的速度和质量提供解决方案.这不仅保证了他们的生存,还令他们在全球市场取得了成 ...
- 运维必备的DevOps工具链大盘点
作者 | Suresh Sekar 译者 | 无明 1 关于 DevOps 及其工具 关于 DevOps 及其工具,需要记住: 持续改进是目标: DevOps 不是花钱买来的: 分阶段采用工具. 2 ...
- DevOps工具链介绍
DevOps工具链介绍 简介 这篇文章主要分享关于DEVOPS 工具链的相关知识. 关于DevOps和工具 关于DevOps及其相应工具的注意事项: · 目标是持续改进 · 你不能买DevOps · ...
- Java应用DevOps工具链推荐
文章目录 Java应用DevOps工具链推荐 前言 Java应用DevOps工具链 扩展阅读 Java应用DevOps工具链推荐 前言 本文列出了Java应用常用的DevOps工具链,供大家参考. 涉 ...
- 必备的 DevOps 工具链大盘点
点击下方"IT牧场",选择"设为星标" 来源 | https://www.aisoutu.com/a/25434 本篇文章中将介绍一些能够帮助你实现 DevOp ...
- DevOps工具链:开放、自由地选择最适合团队和业务需要的工具
Hi!我们是DevSecOps解决方案提供商.Atlassian全球白金合作伙伴--龙智.在过去的十多年间,传统软件研发模式发生巨变,从瀑布式开发到敏捷再到DevOps,开发和运维之间曾经明确的界限正 ...
- DevOps工具链学习——相关工具知多少
转载至:https://blog.csdn.net/nklinsirui/article/details/80510535#版本控制 刚刚接触DevOps,作为开发人员,我要做的自然是将DevOps中 ...
- 整理了一份史上最全的DevOps 工具链
2018-02-07 朱少民 软件质量报道 在列出DevOps 工具链之前,介绍一下什么是DevOps,虽然DevOps这个概念现在还没有标准的定义,但我们可以追溯一下其过去九年的历史发展过程(从20 ...
- DevOps工具链 - 2021
文章目录 DevOps 工具链 版本控制 IDE 任务管理 远程会议 协作工具 依赖管理和构建工具 中央仓库 代码质量分析 持续集成与持续交付 自动化配置管理 自动化测试 单元测试 行为驱动开发测试 ...
最新文章
- 嵌入式Linux设备驱动程序:编写内核设备驱动程序
- 对象序列化与反序列化
- webpack打包转换es6_webpack(二)解析es6并打包
- Java时区处理初学者指南
- Android----获取activity上所有的控件
- mysql怎么显示创表的语句_141张图带你 MySQL 入门
- python 传参数 传引用_Python 函数参数 传引用还是传值
- android传感器开发与智能设备案例实战_【我的物联网成长记2】设备如何进行选型?...
- 应对计算机领域中后门,网络课程论坛中长尾现象的应对策略——以《计算机应用基础》网络课程为例...
- Visualize real-time data streams with Gnuplot
- 【Emb】词向量与ELMo模型
- Windows10(MSN)天气数据爬取
- 超分算法之SRCNN
- 构建请求header fake_useragent安装以及解决方法
- Android仿微信语音录制和播放
- promise跟ajax区别,Promise和AJAX有什么区别?
- 3-3存储系统-高速缓冲存储器Cache
- 周爱民先生力作《Delphi源代码分析》持续好评热卖中!!
- 【计算机三级信息安全】信息安全保障概述
- Go实现自动回复的Tg bot机器人
热门文章
- CAD二次开发 关于BlockTable、BlockTableRecord和BlockReference的一丢丢理解
- JavaScript事件冒泡应用实例
- 手机QQ2008聊天记录导入手机QQ2009 塞班第三版Python全代码 修改
- 马蜂窝大交通团队故障级别与解决时限
- Ubuntu Server 1404 换源
- OCR 手写体英语作文扫描数据集
- Xfce桌面图标文字透明度阴影等隐藏属性的设置
- 理解CGI、FCGI、php-cgi、php-fpm的概念
- 【游戏开发日志】【Unity】day_one
- SPSS Modeler18.0数据挖掘软件教程(三):逻辑回归分析