当前位置: 首页 > 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以及拥有不同的配置文件就是我们要思考的问题&…...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 &#xff08;1&#xff09;连接查询&#xff08;JOIN&#xff09; 内连接&#xff08;INNER JOIN&#xff09;&#xff1a;返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

微信小程序之bind和catch

这两个呢&#xff0c;都是绑定事件用的&#xff0c;具体使用有些小区别。 官方文档&#xff1a; 事件冒泡处理不同 bind&#xff1a;绑定的事件会向上冒泡&#xff0c;即触发当前组件的事件后&#xff0c;还会继续触发父组件的相同事件。例如&#xff0c;有一个子视图绑定了b…...

利用ngx_stream_return_module构建简易 TCP/UDP 响应网关

一、模块概述 ngx_stream_return_module 提供了一个极简的指令&#xff1a; return <value>;在收到客户端连接后&#xff0c;立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…...

Golang dig框架与GraphQL的完美结合

将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用&#xff0c;可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器&#xff0c;能够帮助开发者更好地管理复杂的依赖关系&#xff0c;而 GraphQL 则是一种用于 API 的查询语言&#xff0c;能够提…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

微信小程序云开发平台MySQL的连接方式

注&#xff1a;微信小程序云开发平台指的是腾讯云开发 先给结论&#xff1a;微信小程序云开发平台的MySQL&#xff0c;无法通过获取数据库连接信息的方式进行连接&#xff0c;连接只能通过云开发的SDK连接&#xff0c;具体要参考官方文档&#xff1a; 为什么&#xff1f; 因为…...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

爬虫基础学习day2

# 爬虫设计领域 工商&#xff1a;企查查、天眼查短视频&#xff1a;抖音、快手、西瓜 ---> 飞瓜电商&#xff1a;京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空&#xff1a;抓取所有航空公司价格 ---> 去哪儿自媒体&#xff1a;采集自媒体数据进…...

今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存

文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...