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流水线,持续交付流水线。持续交付涵盖了从需求、设计、开发、构建、测试、上线整个过程的流程、工具、方法、平台化的输入以输出。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/193357.html

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

相关文章

React 高级教程

目录 前言setState函数式编程HooksMy HooksuseState定义原理函数式更新reduce 方法react 源码 useEffect定义原理无限循环 useCallback定义原理 useMemo定义比较 ReduxuseReducer定义使用应用 useContext 前言 在现代前端开发中,React已经成为了一种无法忽视的技术…

ESP32网络开发实例-将数据保存到InfluxDB时序数据库

将数据保存到InfluxDB时序数据库 文章目录 将数据保存到InfluxDB时序数据库1、InfluxDB介绍与安装3、软件准备4、硬件准备5、代码实现6、InfluxDB数据可视化在本文中,将介绍 InfluxDB 以及如何将其与 ESP32 开发板一起使用。 我们将向展示如何创建数据库桶并将 ESP32 数据发送…

探索人工智能领域——每日30个名词详解【day3】

目录 前言 正文 总结 🌈嗨!我是Filotimo__🌈。很高兴与大家相识,希望我的博客能对你有所帮助。 💡本文由Filotimo__✍️原创,首发于CSDN📚。 📣如需转载,请事先与我联系以…

C++ Qt 学习(六):Qt http 编程

1. http 基础 HTTP 基础教程C Web 框架 drogonoatpp 2. C Qt 用户登录、注册功能实现 login_register.h #pragma once#include <QtWidgets/QDialog> #include "ui_login_register.h" #include <QNetworkReply>class login_register : public QDialog…

Peoeasy机器人:原点无法重置问题

机械手在伺服关闭的模式下&#xff0c;插入定位插销&#xff0c;进入机构设定重置原点&#xff0c;发现PUU值没有变化 问题原因 台达软件版本比较多&#xff0c;每个版本重置原点的模式和马达偏差角的默认值是有一定差异的。再重置原点之前尽可能先确认一下重置原点的模式和马…

云服务器如何选?腾讯云2核2G3M云服务器88元一年!

作为一名程序员&#xff0c;在选择云服务器时&#xff0c;我们需要关注几个要点&#xff1a;网络稳定性、价格以及云服务商的规模。这些要素将直接影响到我们的使用体验和成本效益。接下来&#xff0c;我将为大家推荐一款性价比较高的轻应用云服务器。 腾讯云双11活动 腾讯云…

【计算思维】少儿编程蓝桥杯青少组计算思维题考试真题及解析B

STEMA考试-计算思维-U8级(样题) 1.浩浩的左⼿边是&#xff08; &#xff09;。 A.兰兰 B.⻉⻉ C.⻘⻘ D.浩浩 2.2时30分&#xff0c;钟⾯上时针和分针形成的⻆是什么⻆&#xff1f;&#xff08; &#xff09; A.钝⻆ B.锐⻆ C.直⻆ D.平⻆ 3.下⾯是⼀年级同学最喜欢的《⻄游记》…

SystemVerilog学习 (5)——接口

一、概述 验证一个设计需要经过几个步骤&#xff1a; 生成输入激励捕获输出响应决定对错和衡量进度 但是&#xff0c;我们首先需要一个合适的测试平台&#xff0c;并将它连接到设计上。 测试平台包裹着设计,发送激励并且捕获设计的输出。测试平台组成了设计周围的“真实世界”,…

c语言从入门到实战——数组指针与函数指针

数组指针与函数指针 前言1. 字符指针变量2. 数组指针变量2.1 数组指针变量是什么&#xff1f;2.2 数组指针变量怎么初始化? 3. 二维数组传参的本质4. 函数指针变量4.1 函数指针变量的创建4.2 函数指针变量的使用4.3 两段有趣的代码4.3.1 typedef关键字 5. 函数指针数组6. 转移…

VScode+python开发,多个解释器切换问题

内容&#xff1a;主要VScode使用多个解释器 环境准备 VScode编辑器&#xff0c;两个版本python解释器 python3.7.2 python3.11.6 问题&#xff1a; 目前我们的电脑安装了python3.7.2、python3.11.6两个解释器&#xff0c;在vscode编辑器中&#xff0c;无法切换解释器使用如…

泛微E9,独立选择框对应数据库表查询

泛微E9&#xff0c;独立选择框对应数据库表查询 文章目录 泛微E9&#xff0c;独立选择框对应数据库表查询步骤一&#xff1a;准备姓名、姓名文本字段&#xff1a;步骤二&#xff1a;获取选择框字段的id&#xff1a;其他 需求描述&#xff1a;假如流程表单有两个字段&#xff0c…

SpringBoot和Spring源码下载

1.下载&#xff1a;在一个空的干净地创建一个文件夹叫springsourcecode&#xff0c;其实叫什么都行的。 git clone https://github.com/spring-projects/spring-framework.git 2.JDK要和gradle匹配 我们要21的&#xff0c;今天为止2023年11月13日&#xff0c;idea是2023.2。 …

ChatGLM3-6B:新一代开源双语对话语言模型,流畅对话与低部署门槛再升级

项目设计集合&#xff08;人工智能方向&#xff09;&#xff1a;助力新人快速实战掌握技能、自主完成项目设计升级&#xff0c;提升自身的硬实力&#xff08;不仅限NLP、知识图谱、计算机视觉等领域&#xff09;&#xff1a;汇总有意义的项目设计集合&#xff0c;助力新人快速实…

PM2学习

目录 PM2简介 pm2的主要特性 PM2安装 启动PM2项目 查看应用列表&#xff08;查看当前机器执行的所有进程&#xff09; 查看某个应用详情 重启 停止 删除 日志查看 负载均衡 监控CPU/内存 内存使用超过上限自动重启 监听代码变化/自动重启 PM2简介 PM2是常用的node…

虹科示波器 | 汽车免拆检修 | 2014款保时捷卡宴车行驶中发动机偶尔自动熄火

一、故障现象 一辆2014款保时捷卡宴车&#xff0c;搭载4.8L自然吸气发动机&#xff0c;累计行驶里程约为10.3万km。车主反映&#xff0c;行驶中发动机偶尔自动熄火&#xff0c;尤其在减速至停车的过程中故障容易出现。 二、故障诊断 接车后路试&#xff0c;确认故障现象与车主所…

tcpdump wireshark简单使用

tcpdump工作原理 tcpdump 是 Linux 系统中非常有用的网络工具&#xff0c;运行在用户态&#xff0c;本质上是通过调用 libpcap 库的各种 api 来实现数据包的抓取功能&#xff0c;利用内核中的 AF_PACKET 套接字&#xff0c;抓取网络接口中传输的网络包。查 看 tcpdump 的 手册…

《网络协议》06. HTTP 补充 · HTTPS · SSL/TLS

title: 《网络协议》06. HTTP 补充 HTTPS SSL/TLS date: 2022-10-06 18:09:55 updated: 2023-11-15 07:53:52 categories: 学习记录&#xff1a;网络协议 excerpt: HTTP/1.1 协议的不足、HTTP/2、HTTP/3、HTTP 协议的安全问题、SPDY、HTTPS、SSL/TLS、OpenSSL。 comments: fa…

2023年09月 Python(五级)真题解析#中国电子学会#全国青少年软件编程等级考试

Python等级考试(1~6级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 阅读以下代码,程序输出结果正确的选项是?( ) def process_keywords(keywords_list):unique_keywords = list(set(keywords_list))

SQL练习---619.出现一次的最大数字

题目 分析 首先确定表的来源只有一个表数字表&#xff0c;再者判断他是不是单一数字&#xff0c;&#xff08;想到的是直接按数字分组&#xff0c;通过count函数来判断是否为单一数子&#xff09;&#xff0c;然后求最大值。 题解 select Max(num) as num from MyNumbers wh…

Facebook个人主页和公共主页的区别

Facebook个人主页和公共主页是两种不同类型的页面&#xff0c;它们在功能、用途和管理方面上都是存在着一些明显的区别。本文小编则对他们的区别介绍一下。 首先&#xff0c;个人主页是供普通用户使用的&#xff0c;用于展示个人信息和与朋友、家人保持联系。个人主页通常包括…