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

news2024/9/30 19:36:51

  博文参考总结自: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是你在实践中必须拥有的技术能力

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

三阶段项目相关内容

当虚拟网关和真实物理网关相同的时候,默认优先级是255 vrrp角色: 主路由器 备份路由器 虚拟路由器 计时器:发送hello报文的时间, 主网关:每隔1s会向备份发一次vrrp报文 备份网关:监听vrrp报文,主网…

【UE4】从零开始制作战斗机(上:准备模型、定义函数和变量)

资源连接:(链接) 步骤: 1. 下载完资源并解压,资源内容如下: 2. 将上图中所有的.fbx文件导入ue 使用默认的导入设置就行,直接点击导入所有 导入后内容如下: 将资源中的textures也导…

程序员必备的免费自然语言转SQL (摸鱼)工具,人手必备

程序员必备的免费自然语言转SQL (摸鱼)工具,人手必备 1、SQL查询中添加过滤 请对附加的SQL查询添加筛选条件,仅显示在加州居住且消费总额排名前10位的客户。 “SELECT customer_name, SUM(order_total) AS total_spent FROM orders GROUP BY customer…

web缓存—Squid代理服务

1.squid的相关知识 1.1 squid的概念 Squid服务器缓存频繁要求网页、媒体文件和其它加速回答时间并减少带宽堵塞的内容。 Squid代理服务器(Squid proxy server)一般和原始文件一起安装在单独服务器而不是网络服务器上。Squid通过追踪网络中的对象运用起…

一文搞懂Golang中的接口

目录 接口 接口介绍 接口定义 实现接口 空接口 实现空接口 类型断言 使用类型断言 结构体实现多接口 接口嵌套 结构体值接收者和指针接收者实现接口的区别 代码案例 接口 接口介绍 Go语言中的接口(interface)是一组方法签名的集合&#xf…

单片机--STM中断系统

目录 【1】中断系统 1.基本概念 2.中断的意义 中断提高了CPU效率? 3.中断处理过程 中断处理过程 4. 中断体系结构 5.NVIC NVIC主要功能 6.EXTI 【2】IIC IIC主要特点 【3】485 【1】中断系统 1.基本概念 在处理器中,中断相当于对于突发事件…

【Scala---02】Scala 类与对象 『 类 | 属性 | 访问权限 | 方法 | 继承 | 伴生对象伴生类』

文章目录 1. 定义类2. 属性3. 访问权限4. 方法4.1 方法 vs 函数4.2 方法重写4.3 方法重载4.4 构造方法(1) 构造器定义(2) 构造器的参数列表(3) 构造器私有化 5. 继承6. 伴生对象 & 伴生类6.1 伴生对象的由来6.2 伴生对象 & 伴生类 7. 后续 1. 定义类 Java文件&#xf…

JavaScript全解析——ES6函数中参数的默认值和解构赋值

本文为千锋资深前端教学老师带来的【JavaScript全解析】系列,文章内含丰富的代码案例及配图,从0到1讲解JavaScript相关知识点,致力于教会每一个人学会JS! 文末有本文重点总结,可以收藏慢慢看~ 更多技术类内容&#xf…

AI向百万薪资 高级原画师开刀?!爆Midjourney入局3D模型生成

来源 SoulofArt | ID Soul_Art 现在AI向高级原画师和3D开刀了? 网传爆料AI已入局3D模型生成... 这进化速度放在整个行业都十分炸裂 4月,Midjourney进一步宣布推出Niji-journey V5 这是MJ针对二次元动漫风格预训练好的模型 可在其中添加提示词直接调…

Android 广播使用详解(Broadcast Receivers)

Android 广播接收器(Broadcast Receivers) 广播接收器用于响应来自其他应用程序或者系统的广播消息。这些消息有时被称为事件或者意图。例如,应用程序可以初始化广播来让其他的应用程序知道一些数据已经被下载到设备,并可以为他们所用。这样广播接收器可…

Kubernetes配置管理 ConfigMap

Kubernetes配置管理 ConfigMap 一、ConfigMap 1.1 什么是configmap kubernetes集群可以使用ConfigMap来实现对容器中应用的配置管理。可以把ConfigMap看作是一个挂载到pod中的存储卷 1.2 创建ConfigMap的4种方式 1.2.1 在命令行指定参数创建 通过直接在命令行中指定config…

新手玩转腾讯云轻量应用服务器搭建网站(保姆级教程)

腾讯云轻量应用服务器镜像选择宝塔Linux面板,然后在宝塔面板上安装LNMP网站所需的Web环境,在宝塔面板上新建站点,上床网站程序安装包到根目录,并安装网站全流程。腾讯云百科来详细说下腾讯云轻量应用服务器搭建网站全流程&#xf…

opencv显示图片

要使用OpenCV在Python中显示图像,您需要遵循以下步骤: 1. 首先,确保已经安装了OpenCV。您可以使用以下命令安装OpenCV: pip install opencv-python 2. 然后,编写一个简单的程序来读取并显示图像。以下是一个示例代码…

数据可视化之雷达图(Radar Chart)

什么是雷达图? 雷达图(Radar Chart)也称为蜘蛛图、网络图或极坐标图,是一种用于可视化多变量数据的图表。该图表由一系列从中心点向外辐射的辐条组成,每个辐条代表一个不同的变量。数据使用线或区域绘制在每个辐条上&#xff0c…

面试的水太深,年轻人你把握不住.....

前言 去阿里面试测试工程师,这里面水太深,什么未来规划,职业发展的东西都是虚拟的,作者还太年轻,没有那个经历,把握不住。项目只有几个,开心快乐就行,不PK,文明PK。 很…

Partial convolution Gated convolution

组会讨论帖 1. 图像修复 图像修复(Image Inpainting),顾名思义,就是将图像中损坏的部分修复起来,是一种图像编辑技术,可以应用在移除物体、修复老照片、图像补全(eg,地震插值)等等。…

【初始scrapy框架上】——全栈开发——如桃花来

目录索引 scrapy框架的介绍:scrapy第三方包的下载:常见的换源网址: scrapy的图示原理:或者:或者: scrapy原理流程:详细介绍:流程描述:scrapy中的三个内置对象&#xff1a…

open cv 4.6.0 导入maven库以及依赖包 安装教程

windows: 1.官网下载windows安装包 2.安装完成后,复制opencv\build\java\x64\opencv_java451.dll 到 C:\Windows 下 centos: 参考https://www.cnblogs.com/huizhipeng/p/12732019.html 1.先安装cmake3 参考https://www.jianshu.com/p/20…

详谈大模型训练和推理优化技术

详谈大模型训练和推理优化技术 作者:王嘉宁,转载请注明出处:https://wjn1996.blog.csdn.net/article/details/130764843 ChatGPT于2022年12月初发布,震惊轰动了全世界,发布后的这段时间里,一系列国内外的…

莫言用 GPT 写颁奖辞,那如果他自己写会是什么效果呢?

在《收获》杂志 65 周年庆典上,莫言在为余华颁奖时表示,余华是自己的好朋友,但给他的颁奖词写了好几天也想不出来,后来找了 ChatGPT 帮忙写。最后,莫言让 ChatGPT 写了一篇莎士比亚风格 1000 多字的颁奖词,…