当前位置: 首页 > news >正文

Pass基础-DevOps

DevOps是Dev(开发)和Ops(运维/运营)的结合,它将人、流程、工具、工程实践等等结合起来应用到IT价值流的实现过程中,是一系列原则、方法、流程、实践、工具的综合体。DevOps面向应用的全生命周期管理,包括:规划、开发、交付和运维/运营阶段包括:规划、开发、交付和运维/运营阶段。

DevOps是什么

什么是敏捷

“敏捷是一种开发方法,它遵循敏捷软件开发宣言的原则,以增量的方式交付软件。”—— Gartner

敏捷是一种能在在不确定和混乱的环境中通过接受变化、响应变化、创造变化而取得成功的能力。

敏捷软件开发是基于敏捷宣言定义的价值观和原则的一系列方法和实践的总称。这些方法和实践以相对松散/非固化的形式组成,根据团队实际所处的环境来决定采用何种组合形式并演进。

什么是DevOps

通过在面向系统方法的环境中采用敏捷、精益实践,专注于快速的IT服务交付。DevOps强调人(和文化),它寻求改善运营和开发团队之间的协作。DevOps的实现利用了技术,特别是自动化工具,这些工具可以从生命周期的角度利用日益可编程和动态的基础设施。—— Gartner

DevOps是Dev(开发)和Ops(运维/运营)的结合,它将人、流程、工具、工程实践等等结合起来应用到IT价值流的实现过程中,是一系列原则、方法、流程、实践、工具的综合体。DevOps面向应用的全生命周期管理,包括:规划、开发、交付和运维/运营阶段。整个DevOps化的价值流交付过程,并非完全强调角色与阶段行为的一一对应,而是强调构建整体的跨职能团队。在经典的 DevOps 文化中,每个角色在某种程度上都涉及到每个阶段,而在部分传统组织/行业(如有监管要求金融业等)中,则需要做一定的变通。

敏捷与DevOps的区别与联系

一个常见的误解是,“DevOps将取代敏捷”。DevOps的原则与实践很多时候与敏捷一脉相承,更多的是敏捷在工程实践层面的延续和扩展。在DevOps的体系下,敏捷的身影通常更多出现在工作协同和持续集成的领域,帮助团队快速形成可交付的输出物。

DevOps能力成熟度模型

随着应用技术的发展,对于原则、流程、方法、工具的讨论也越来越多。而作为应用研发运维的组织和团队,自然而然期望能有统一化、标准化、可量化的方法论体系,这背后是对软件全生命周期管理最佳实践孜孜不倦的追求。这样可以帮助决策者能够快速定位自身当前所处水平,以及组织未来的目标应该定义、路径应该如何达到。

传统的CMM/CMMI就是这样诞生的,DevOps也不例外。而DevOps的能力成熟度模型即是以DevOps的理念和视角,评估整个软件全生命周期相关的能力成熟度模型。目前国内业界比较认可的是信通院发布的《研发运营一体化(DevOps)能力成熟度模型》。

 

企业研发过程管理的痛点

1、需求开发过程协作难。解决需求开发过程中的协同反模式:重文档轻交流、围绕文档的低频重型交流/大型需求澄清会、需求澄清不清晰难以理解、需求跟踪困难。

2、研发测试过程缓慢。团队花费大量时间在编译构建和测试上,缺乏自动化编译构建、自动化测试的方法和有效工程实践、没有工具去支撑重复的、可自动化的、占用大量人工时间的必要工作。

3、代码管理混乱代码管理混乱、缺乏有效的分支管理策略、代码分支策略没有固化、缺乏从需求到代码的跟踪等。

4、手工应用发布。仍然采用手工发布易出错无法跟踪发布过程、每个应用有自己单独的发布工具和发布规范、组织级发布管理规范和执行流程难以执行和跟踪等。

5、研发过程改进缺乏抓手。研发过程改进无从下手、缺乏有效的研发过程基础数据、研发过程数据散落在各处没有统一归集无法整体综合分析;

6、组织级研发管理规范难以落地。缺乏组织级研发管理规范、组织级规范停留在线下无法贯穿到工程实践中、规范执行情况难以跟踪。

DevOps平台与工具

DevOps平台概念

以DevOps及敏捷工程实践为理论基础构建的面向应用管理、研发、运维/运营场景的研发运营一体化管理平台。与搭建开源工具链相比,开源工具链可以解决CI、CD过程中一些最基础的场景,但要想达成企业级应用的全生命周期管理,就需要DevOps平台与解决方案去完成。

DevOps平台内容与用途

1、需求管理与项目协同。为开发团队提供简单高效灵活的敏捷协作服务,包括需求和缺陷的管理与跟踪,以及工作项看板、版本视图、迭代视图、甘特图等服务。

2、代码管理。支持主流的开源、商业代码托管工具工具对接与管理。提供包括仓库信息、文件管理、提交记录、分支管理等。

3、制品管理。支持主流的开源、商业制品库工具对接。提供制品库管理能力,包括资源管理器、制品上传、制品库与项目的绑定与解绑等。

4、测试管理。提供轻量级的测试管理工具,包含测试用例、测试计划、测试执行、测试报告、缺陷跟踪。

5、持续集成。提供提供图形化可编排的CICD流水线。支持暂停、重试、审批、多流水线编排、并行任务等特性。降低研发团队在工具链管理上投入的时间和成本,专注于软件研发本身。

持续部署。支持多环境的定义、管理与部署发布。并且可以结合客户的资源管理平台,形成资源管理平台对接与集成解决方案。打通资源申请与回收的流程,实现资源的自动创建与回收。

6、指标度量。提供完善的度量指标体系,通过对软件的生命周期管理过程中的进度、质量、效率等维度进行实时度量分析和反馈,驱动团队对生产过程不断改进优化,提升IT生产率。

7、文档管理。提供轻量级的文档中心,作为在线知识库。具备文档资源管理器、版本管理、权限控制功能。

DevOps工具链

CI/CD

什么是CI

持续集成(CI)是持续在源代码变更后自动检测、拉取、构建和单元测试的过程。持续集成。持续集成的目标是快速确保开发人员新提交的代码变更是正确的、可以被集成的,并且适合在代码库中进一步使用。持续集成伴生的行为是持续测试。

什么是CD

持续部署(CD)是指持续通过自动化Pipeline的方式发布制品到使用环境中的行为。持续部署的过程依赖于持续集成与持续测试。

CI/CD流程

CICD流程又称为CI/CD流水线,持续交付流水线。持续交付涵盖了从需求、设计、开发、构建、测试、上线整个过程的流程、工具、方法、平台化的输入以输出。

相关文章:

Pass基础-DevOps

,DevOps是Dev(开发)和Ops(运维/运营)的结合,它将人、流程、工具、工程实践等等结合起来应用到IT价值流的实现过程中,是一系列原则、方法、流程、实践、工具的综合体。DevOps面向应用的全生命周期…...

k8s 对外服务之 Ingress

LB ingress //Ingress 简介 service的作用体现在两个方面,对集群内部,它不断跟踪pod的变化,更新endpoint中对应pod的对象,提供了ip不断变化的pod的服务发现机制;对集群外部,他类似负载均衡器,可…...

Mybatis Mapper接口和xml绑定的多种方式、内部实现原理和过程

一、绑定方式 1. XML文件方式 在Mybatis中,我们需要创建一个与实体类对应的Mapper接口,然后在该接口上添加方法,这些方法对应着SQL语句。然后,我们需要创建一个XML文件,这个文件中包含了SQL语句和映射关系。 例如&a…...

Unity性能优化分析篇

性能优化是游戏项目开发中一个重要环节。游戏帧率过低,手机发烫, 包体太大,低端机上跑不起来等, 这些都需要来做优化,不管过去,现在,未来,性能优化都是永恒的话题。 而性能优化首先要掌握的是性…...

一键帮您解决win11最新版画图工具难用问题!

🦄个人主页:修修修也 ⚙️操作环境:Windows 11 正文 自从win11更新后,新版的画图工具变得非常难用,如: 使用橡皮擦后露出背版马赛克 框住某部分拖动移动时背景露出马赛克剪贴板上图片信息无法直接插入到画图板 目前没有一个好一些的能够在软件内部解决这些问题的方…...

老师的保命大法

数字化高度发达的今天,成绩查询系统已经成为学校教育中不可或缺的一部分。不同于传统的成绩公布方式,成绩查询系统更加高效、便捷,同时也充分保障了每位学生的隐私,今天就来揭秘这个教师保命大法! 1、代码查询法 对于…...

Django视图函数和资源

文章目录 1.视图1.1 文件or文件夹1.2 相对和绝对导入urls1.3 视图参数1.4 返回值1.5 响应头1.6 FBV和CBV 2.静态资源2.1 静态文件2.2 媒体文件 1.视图 1.1 文件or文件夹 1.2 相对和绝对导入urls 注意实现:不要再项目根目录做相对导入。 原则: 绝对导入…...

戴建业作品集读书笔记

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、高贵既不屈己从人,也不强人同己君子之交淡如水鄙弃世俗功利,以审美的态度应世观物,不仅美化了平凡的事务,也诗化…...

Linux常用的磁盘使用情况命令汇总

1、查看分区使用百分比 df -h 2、查看指定目录磁盘使用情况 du -hac --max-depth1 /opt 参数:-a 查看所有文件,-c 汇总统计,max-depth1 查看深度为1,2级目录不再统计。 3、常用统计命令汇总...

将按键放到输入框内:

如何将将Button放到输入框内&#xff1f; 效果图&#xff1a; 步骤如下&#xff1a; button 外围用template 包裹一层 <template #suffix v-if"row.WorkerRole TPM"> <el-inputtype"text"v-model"row.JobNumber"placeholder"…...

Java Lambda 表达式常见面试问题与解答

公众号「架构成长指南」&#xff0c;专注于生产实践、云原生、分布式系统、大数据技术分享。 在本文中&#xff0c;我们将讨论一些重要且常见的 Java Lambda 表达式面试问题和解答 1.什么是 Lambda 表达式&#xff1f; lambda表达式只是一个没有任何名称的函数,它甚至可以用作…...

【vue+amap】高德地图绘制多边形区域

参考文档&#xff1a; 高德地图参考手册 高德地图示例代码 1、高德地图控制台创建应用&#xff0c;获取权限ak 高德地图控制台 Ps.本项目里按钮等基础控件使用的是element-ui版本控件 2、项目内全局引入 index.html内引入高德地图代码&#xff1a; <script type"te…...

自定义Graph Component:1.2-其它Tokenizer具体实现

本文主要介绍了Rasa中相关Tokenizer的具体实现&#xff0c;包括默认Tokenizer和第三方Tokenizer。前者包括JiebaTokenizer、MitieTokenizer、SpacyTokenizer和WhitespaceTokenizer&#xff0c;后者包括BertTokenizer和AnotherWhitespaceTokenizer。 一.JiebaTokenizer   Ji…...

docker-compose 部署 MySQL 8

目录 前言MySQL 配置文件(my.cnf)docker-compose.yml安装卸载 前言 Windows/Linux 系统通过 docker-compose 部署 MySQL8.0。 MySQL 配置文件(my.cnf) # 服务端参数配置 [mysqld] usermysql # MySQL启动用户 default-storage-engineINNODB # 创建新表时…...

Java设计模式-结构型模式-适配器模式

适配器模式 适配器模式应用场景案例类适配器模式对象适配器模式接口适配器模式适配器模式在源码中的使用 适配器模式 如图&#xff1a;国外插座标准和国内不同&#xff0c;要使用国内的充电器&#xff0c;就需要转接插头&#xff0c;转接插头就是起到适配器的作用 适配器模式&…...

CCF编程能力等级认证GESP—C++4级—样题1

CCF编程能力等级认证GESP—C4级—样题1 单选题&#xff08;每题 2 分&#xff0c;共 30 分&#xff09;判断题&#xff08;每题 2 分&#xff0c;共 20 分&#xff09;编程题 (每题 25 分&#xff0c;共 50 分)第一题 绝对素数第二题 填幻方 参考答案单选题判断题编程题1编程题…...

Git用pull命令后再直接push有问题

在gitlab新建一个项目&#xff0c;然后拉取到本地&#xff0c;用&#xff1a; git init git pull <远程主机名> 然后就是在本地工作区增加所有文件及文件夹。再添加、提交&#xff0c;都没问题&#xff1a; 但是&#xff0c;git push出问题&#xff1a; 说明本地仓库和…...

C语言不可不敲系列:跳水比赛排名问题

目录 1题干&#xff1a; 2解题思路&#xff1a; 3代码: 4运行结果: 5总结: 1题干&#xff1a; 5位运动员参加了10米台跳水比赛&#xff0c;有人让他们预测比赛结果 A选手说&#xff1a;B第二&#xff0c;我第三&#xff1b; B选手说&#xff1a;我第二&#xff0c;E第四&am…...

Python与ArcGIS系列(二)获取地图文档

目录 0 简述1 获取当前地图文档2 获取磁盘中的地图文档3 获取地图文档的图层0 简述 本篇开始介绍实际代码操作,即利用arcpy(python 包)执行地理数据分析、数据转换、数据管理和地图自动化。通过arcpy调用ArcGIS中任意工具,将其与其他python工具结合使用,形成自己的工作流…...

Ansible自动化部署工具-role模式安装filebeat实际案例分析

语法以及实际案例 平时我们在进行日志收集的时候&#xff0c;往往会在每台机器上安装filebeat&#xff0c;并且由于每台机器运行服务的不同&#xff0c;那么收集日志的配置文件也是不一样的&#xff0c;如何快速高效的部署filebeat以及拥有不同的配置文件就是我们要思考的问题&…...

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

Xshell远程连接Kali(默认 | 私钥)Note版

前言:xshell远程连接&#xff0c;私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

C# SqlSugar:依赖注入与仓储模式实践

C# SqlSugar&#xff1a;依赖注入与仓储模式实践 在 C# 的应用开发中&#xff0c;数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护&#xff0c;许多开发者会选择成熟的 ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;SqlSugar 就是其中备受…...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码&#xff0c;实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing

Muffin 论文 现有方法 CRADLE 和 LEMON&#xff0c;依赖模型推理阶段输出进行差分测试&#xff0c;但在训练阶段是不可行的&#xff0c;因为训练阶段直到最后才有固定输出&#xff0c;中间过程是不断变化的。API 库覆盖低&#xff0c;因为各个 API 都是在各种具体场景下使用。…...

在 Spring Boot 项目里,MYSQL中json类型字段使用

前言&#xff1a; 因为程序特殊需求导致&#xff0c;需要mysql数据库存储json类型数据&#xff0c;因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...

【SpringBoot自动化部署】

SpringBoot自动化部署方法 使用Jenkins进行持续集成与部署 Jenkins是最常用的自动化部署工具之一&#xff0c;能够实现代码拉取、构建、测试和部署的全流程自动化。 配置Jenkins任务时&#xff0c;需要添加Git仓库地址和凭证&#xff0c;设置构建触发器&#xff08;如GitHub…...

十九、【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建

【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建 前言准备工作第一部分:回顾 Django 内置的 `User` 模型第二部分:设计并创建 `Role` 和 `UserProfile` 模型第三部分:创建 Serializers第四部分:创建 ViewSets第五部分:注册 API 路由第六部分:后端初步测…...

OCR MLLM Evaluation

为什么需要评测体系&#xff1f;——背景与矛盾 ​​ 能干的事&#xff1a;​​ 看清楚发票、身份证上的字&#xff08;准确率>90%&#xff09;&#xff0c;速度飞快&#xff08;眨眼间完成&#xff09;。​​干不了的事&#xff1a;​​ 碰到复杂表格&#xff08;合并单元…...

算法—栈系列

一&#xff1a;删除字符串中的所有相邻重复项 class Solution { public:string removeDuplicates(string s) {stack<char> st;for(int i 0; i < s.size(); i){char target s[i];if(!st.empty() && target st.top())st.pop();elsest.push(s[i]);}string ret…...