什么是DevOps?如何理解DevOps思想?

  博文参考总结自:https://www.kuangstudy.com/course/play/1573900157572333569

  仅供学习使用,若侵权,请联系我删除!

1、什么是DevOps?

  DevOps是一种思想或方法论,它涵盖开发、测试、运维的整个过程。DevOps强调软件开发人员与软件测试、软件运维、质量保证(QA)部门之间有效的沟通与协作。强调通过自动化的方法管理软件变更,软件集成,使得软件从构建到测试、发布更加快捷、可靠,最终可以按时交付软件。

  上面说的就是CICD,也就是持续集成与持续部署,DevOps思想如下图所示。
在这里插入图片描述

  公司里面开发一个项目的流程大概如上图所示:

  1. 公司计划一个需求
  2. 需求由开发人员编码实现
  3. 构建项目
  4. 测试
  5. 发布项目
  6. 部署项目
  7. 监控
  8. 运维

  如果此时又来了一个新需求,这个流程又要重新走一遍,这是一个闭环,我们每天都会重复的干这些事情。如果我们只需要负责需求分析以及编码上线,构建、测试、部署…这些工作全部自动化完成,那将会十分节省我们的人力物力。

  下面是公司项目开发大概得流程,看看是如何一步一步操作的:
在这里插入图片描述

  1. 用户给我们一个需求反馈
  2. 产品经理拿到反馈,列出一些计划,将这些计划变成需求,根据这些需求列出代办清单,代办清单里面有优先级,重要的先去执行,最后发布一个迭代的计划
  3. 开发拿到任务,对任何进行编码
  4. 将编写好的代码提交到代码仓库
  5. 最终将代码发布到持续集成系统里面,持续集成系统有测试环境、预发布环境、生产环境等。
  6. 测试就去测试系统、运维就干运维自己的事

  如果这个流程智能一点的话,可以把测试和运维也一起集成到持续集成系统当中。

2、如何落地实现DevOps理念?

  DevOps兴起于2019年,近年来由于云计算、互联网的发展,促进了DevOps的基础设施及工具链的发展,涌现出一大批优秀的工具,这些工具包括开发、测试、运维的各个领域,例如:GitHub、Git/svn、Docker、Jenkins、HudSon、Ant/Maven/Gradle、Qunit、JMeter等,看下图:
在这里插入图片描述

  这么多的软件,我们如果要全部都学的话,就十分的头疼了。如果我们开发人员只需要负责开发编码,将代码提交到代码仓库,后面的流程都可以自动化去完成就好了。

  完整的开发流程和技术如下:
在这里插入图片描述

  这么多技术,我们如果每个都只学Hello World,都得学好久,开发个十年可能才能理解每个软件有什么用,我们不用全部去学,没必要。我们只需要掌握一套主流的技术即可。

3、实践测试

  我们搭建一个springboot的项目,编写一个接口,返回:hello,欢迎来到狂神说,页面被浏览n次这句话,用redis来记录页面被浏览的次数,界面如下:
在这里插入图片描述

  代码如下:
在这里插入图片描述

  我们现在有一个需求,假如是要修改返回的字符串,修改为:hello,感谢大家收看,希望大家可以三连投币,页面被浏览n次,代码如下:
在这里插入图片描述
  我们现在只需要将代码提交到远程的代码仓库里面,等待两三分钟,页面就会自动刷新,自动化部署到服务器上,如图:
在这里插入图片描述

  我们自动化构建工具使用的是Jenkins,他会有一个图形化界面,让我们知道现在项目部署的流程,部署到哪了:
在这里插入图片描述

  对于我们的开发人员来说,我们只需要编码,将代码提交到远程代码仓库,后面的构建、测试、部署等都会自动化完成。

  具体的流程如下:
在这里插入图片描述

  Jenkin会有每一次的构建部署记录,方便我们查看:
在这里插入图片描述

4、当今大公司一定要使用DevOps

在这里插入图片描述

  传统上在软件开发中(无论是瀑布模型还是敏捷方式,敏捷也比较传统),都由“开发团队"来构建软件。

  开发团队需要与运维团队进行了大规模的"交接”运维团队负责执行一系列部署"活动,将软件代码移至生产环境,并负责维护后续的系统稳定运行。生产环境的基础设施与开发或测试不同。需要有额外检查和平衡,以确保它一切功能正常。部署是由不同的人完成的,运维团队之前从未见过或听说过任何此类软件。

  DevOps这种软件开发方法,涉及到软件整个开发生命周期Ⅰ这些活动只能在DevOps中实现,而不是敏捷或瀑布流。DevOps是在较短的开发周期内开发高质量软件的首选方法,同时可以提高客户满意度。

  这就是为什么顶级互联网公司选择DevOps作为其业务目标的前进方向。

  1. 如果你是一名开发工程师:学习DevOps,让你成为更加优秀的IT工程师
  2. 如果你是一名运维工程师:应用DevOps必将,简化你的工作流程,提高你的工作效率
  3. 如果你是一名架构师:DevOps是你在实践中必须拥有的技术能力

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Maven方式构建Spring Boot项目

文章目录 一,创建Maven项目二,添加依赖三,创建入口类四,创建控制器五,运行入口类六,访问Web页面七,修改访问映射路径八,定制启动标语1、创建标语文件2、生成标语字符串3、编辑标语文…

DNDC模型在土地利用变化、未来气候变化下的建模方法及温室气体时空动态模拟实践技术

DNDC模型讲解 1.1 碳循环模型简介 1.2 DNDC模型原理 1.3 DNDC下载与安装 1.4 DNDC注意事项 ​ DNDC初步操作 2.1 DNDC界面介绍 2.2 DNDC数据及格式 2.3 DNDC点尺度模拟 2.4 DNDC区域尺度模拟 2.5 DNDC结果分析 ​ DNDC气象数据制备 3.1 数据制备中的遥感和GIS技术 3…

Vue3 + TypeScript + Uniapp 开发小程序【医疗小程序完整案例·一篇文章精通系列】

当今的移动应用市场已经成为了一个日趋竞争激烈的领域,而开发一个既能在多个平台上运行,又能够高效、可维护的应用则成为了一个急需解决的问题。 在这个领域中,Vue3 TypeScript Uniapp 的组合已经成为了一种受欢迎的选择,特别…

ODB 2.4.0 使用延迟指针 lazy_shared_ptr 时遇到的问题

最近在学习使用C下的ORM库——ODB,来抽象对数据库的CURD,由于C的ORM实在是太冷门了,ODB除了官方英语文档,几乎找不到其他好用的资料,所以在使用过程中也是遇到很多疑惑,也解决很多问题。近期遇到的一个源码…

推荐系统系列之推荐系统概览(下)

在推荐系统概览的第一讲中,我们介绍了推荐系统的常见概念,常用的评价指标以及首页推荐场景的通用召回策略。本文我们将继续介绍推荐系统概览的其余内容,包括详情页推荐场景中的通用召回策略,排序阶段常用的排序模型,推…

Keil Debug 逻辑分析仪使用

Keil Debug 逻辑分析仪使用 基础配置 更改对应的bebug窗口参数 两边的 Dialog DLL 更改为:DARMSTM.DLL两边的 Parameter (这里的根据单片机型号更改)更改为:-pSTM32F103VE 选择左边的 Use Simulator 选项。 打开Debug和其中的逻…

数据全生命周期管理

数据存储 时代"海纳百川,有容乃大"意味结构化、半结构和非结构化多样化的海量的 ,也意味着批数据和流数据多种数据形式的存储和计算。面对不同数据结构、数据形式、时效性与性能要求和存储与计算成本等因素考虑,应该使用适合的存储…

iptables防火墙(二)

iptables防火墙(二) 一、SNAT策略1、SNAT策略简述2、配置实验 二、DNAT策略1、DNAT策略简述2、配置实验 三、Linux抓包工具tcpdump四、防火墙规则保存 一、SNAT策略 1、SNAT策略简述 SNAT策略就是将从内网传给外网的数据包的源IP由私网IP转换成公网IP&…

四川省信创联盟2023年第一次理事会顺利召开,MIAOYUN荣获“信创企业优秀奖”!

5月18日,四川省技术创新促进会信创工委会(四川省信创产业联盟)在成都市高新区新川科技园成功召开《2023年第一次理事单位(扩大)会议》,四川省技术创新促进会专家组杜纯文副组长、四川省技术创新促进会任渝英…

EasyRecovery16适用于Windows和Mac的专业硬盘恢复软件

无论你对数据恢复了解多少, 我们将为您处理所有复杂的流程并简化恢复!适用于Windows和Mac的 专业硬盘恢复软件 硬盘数据无法保证绝对安全。有时会发生数据丢失,需要使用硬盘恢复工具。支持恢复不同存储介质数据:硬盘、光盘、U盘/移动硬盘、数…

AC规则-1

本文主要参考规范 GPD_Secure Element Access Control_vxxx.pdf OMA 架构 基本定义 GP(GlobalPlatform)定义了一套允许各应用提供方独立且安全地管理其在SE上的应用的安全框架,而AC(Access Control),顾名思义,是对外部应用进行SE上应用访问…

网络知识点之-动态路由

动态路由是指路由器能够自动地建立自己的路由表,并且能够根据实际情况的变化适时地进行调整。 中文名:动态路由外文名:dynamic routing 简述 动态路由是与静态路由相对的一个概念,指路由器能够根据路由器之间的交换的特定路由信息…

【Python redis】零基础也能轻松掌握的学习路线与参考资料

Python redis是一种非常流行的缓存数据库,对于Python Web应用程序开发非常有用,能快速地处理大量的数据请求。Python redis的学习路线需要对Python语言有深刻的理解,并了解使用redis的API。在掌握了Python redis的基本知识后,就可…

Java设计模式-策略模式

简介 在软件开发中,设计模式是为了解决常见问题而提供的一套可重用的解决方案。策略模式(Strategy Pattern)是其中一种常见的设计模式,它属于行为型模式。该模式的核心思想是将不同的算法封装成独立的策略类,使得它们…

【halcon资料】取出区域的轮廓上所有转折点

一、说明 在区域运算的时候,有时候需要用图形的顶点来描述,比如,两个图中对象需要对齐,或者仿射变换,于是特征点是需要提取的。本文给出一个提取顶点的示例。 二、算子 1.1 get_region_polygon算子 (1&a…

高级树结构

二叉排序树 左子树中所有结点的值,均小于其根结点的值。 右子树中所有结点的值,均大于其根结点的值。 二叉搜索树的子树也是二叉搜索树。 注意: 1.二叉查找树不能插入重复元素 2.中序遍历是一个递增的数列 3.高度越小查询效率越高 二叉排序…

设备采购信息管理系统

系列文章 任务14 设备采购信息管理系统 文章目录 系列文章一、实践目的与要求1、目的2、要求 二、课题任务三、总体设计1.存储结构及数据类型定义2.程序结构3.所实现的功能函数4、程序流程图 四、小组成员及分工五、 测试界面展示添加采购信息按编号查找采购信息按设备编号查找…

macOS Ventura 13.5beta (22G5027e)发布

系统介绍 黑果魏叔 5 月 20 日消息,苹果今日向 Mac 电脑用户推送了 macOS 13.5 开发者预览版 Beta 更新(内部版本号:22G5027e),本次更新距离上次发布隔了 17 天。 macOS Ventura 带来了台前调度、连续互通相机、Face…

【SpringBoot】SpringBoot 纯后端项目如何自定义异常页面(Whitelabel Error Page)

文章目录 背景安排方案步骤 验证 背景 一个短链服务,业务将长链接给我,我转换成短地址,用户访问短地址时,我再做redirect;没有前端,纯后端项目短链会有过期时间,过期后将返回错误信息某一天一个…

本地电脑做服务器搭建私人音乐网站ThinkMusic + cpolar内网穿透

文章目录 1. 前言2. 本地网页搭建2.1 环境使用2.2 支持组建选择 3. 网页安装3. 本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 转发自CSDN lisacpolar的文章:ThinkMusic源码搭建音乐网站,并实现公网访问 1. 前言 在我们的日…