【DevOps核心理念基础】1. 什么是 devops

一、什么 devops?

1.1 定义

1.2 作用

1.3 核心

1.4. 软件开发流程

1.5. DevOps的核心定义

1.6. 具备的能力

二、DevOps流程中的几个关键概念

2.1 持续集成

2.2 持续交付

2.3 持续部署

2.4 总结

三、DevOps和敏捷开发的演进


一、什么 devops?

1.1 定义

  • Development & Operations 的缩写,也就是开发&运维

  • DevOps 是一个不断提高效率并且持续不断工作的过程

1.2 作用

  • 公司能够 更快地应对更新和市场发展变化

  • 开发可以 快速交付,部署也更加稳定

1.3 核心

  • 简化流程,开发更快。简化Dev和Ops团队之间的流程,使整体软件开发过程更快速

  • 自动化工具管理软件生命周期。自动化的工具协作和沟通来完成软件的生命周期管理
     

1.4. 软件开发流程

  • PLAN:开发团队根据客户的目标制定开发计划

  • CODE:根据PLAN开始编码过程,需要将不同版本的代码存储在一个库中。

  • BUILD:编码完成后,需要将代码构建并且运行。

  • TEST:成功构建项目后,需要测试代码是否存在BUG或错误。

  • DEPLOY:代码经过手动测试和自动化测试后,认定代码已经准备好部署并且交给运维团队。

  • OPERATE:运维团队将代码部署到生产环境中运行

  • MONITOR:项目部署上线后,需要持续的监控产品。

  • INTEGRATE:然后将监控阶段收到的反馈发送回PLAN阶段,整体反复的流程就是DevOps的核心,即持续集成、持续部署

1.5. DevOps的核心定义

整个流程严格可控(如:回滚

  • 能够 让业务需求、软件开发、IT 运维、软件测试之间 开展 紧密协作的一种方式 (方法)

  • 它具有 持续交付、持续集成、持续监控 的能力

  • 把原本孤立的开发、运维、测试集成起来,提高敏捷性,达成响应

1.6. 具备的能力

  • 开发、测试、运维 能够利用完整的DevOps工具链开展快速协作

  • 能够 自动构建、部署、测试 软件项目,快速发现软件和需求的差异性,并且 快速迭代响应

  • 软件项目上线后,能持续 对项目进行 监控实时追踪 项目运维数据

  • 促使项目实际落地 版本管理、基础架构配置、虚拟化、容器化、统筹监控 自动化工具 

二、DevOps流程中的几个关键概念

2.1 持续集成

  • Continuous integration,简称 CI,是一种软件工程流程

  • 工作副本提交:到开发 / 测试环境

  • 持续:是指尽可能 快速、正确地提交工作的新副本

  • 强调自动化构建、自动化测试 ( 单元测试)

  • 主体是开发者自己的工作副本,根据测试结果,我们可判断集成是否正确

2.2 持续交付

  • Continuous delivery,简称 CD,是一种软件工程流程

  • 交付是指在持续集成的基础上,将 正确的 集成结果 部署到 开发 / 测试 / 类生产 环境

  • 主体是 完整的软件项目

2.3 持续部署

  • 部署是指在持续交付的基础上,将正确的交付结果 自动化部署到生产环境

  • 对部署结果可控,可真实了解部署的结果

  • 部署错误可自动化回滚,对部署情况可监控

2.4 总结

  • 持续强调的是自动化能快速执行,并且执行结果可验证、追溯

  • 集成、交付、部署每一个环境都是独立个体,都需要执行结果正确之后,才开始下一个环节

  • 软件开发架构与这三个环境是相互相承的关系,架构耦合度越低,三个环境的执行效率会越高

  • 微服务架构可更快地驱动DevOps流程,是软件架构的趋势

三、DevOps和敏捷开发的演进

  • 敏捷开发需求 和 开发 的紧密合作
  • devops:开发、测试、运维 的紧密合作

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

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

相关文章

数据结构——KD树

KD树(K-Dimensional Tree)是一种用于多维空间的二叉树数据结构,旨在提供高效的数据检索。KD树在空间搜索和最近邻搜索等问题中特别有用,允许在高维空间中有效地搜索数据点。 重要性质 1.分割K维数据空间的数据结构 2.是一颗二叉树…

WebRTC 如何指定 H265解码器

WebRTC 本身支持多种视频编解码器,但 H.265/HEVC 编解码器的支持主要取决于浏览器或应用的实现。不过,如果你确定你的 WebRTC 实现和对端支持 H.265,可以通过修改 SDP 来优先选择 H.265 编解码器。 以下是如何指定 H.265 作为优先解码器的基…

PyTorch深度学习实战(16)——面部关键点检测

PyTorch深度学习实战(16)——面部关键点检测 0. 前言1. 关键点检测1.1 关键点检测模型分析1.2 数据集分析 2. 面部关键点检测3. 2D 和 3D 面部关键点检测小结系列链接 0. 前言 我们已经学习了如何解决二分类(猫狗分类)和多分类( fashionMNIST )问题。本…

算法刷题 week2

目录 week21. 二维数组中的查找题目题解(单调性扫描) O(nm) 2.替换空格题目题解(线性扫描) O(n)(双指针扫描) O(n) 3.从尾到头打印链表题目题解(遍历链表) O(n) week2 1. 二维数组中的查找 题目 题解 (单调性扫描) O(nm) 核心在于发现每个子矩阵右上角的数的性质&#xff1…

Dokcer创建MySQL容器,并在宿主机或mysql可视化工具中连接mysql容器的数据库

文章目录 一、Docker 创建 MySQL容器1. 拉取 MySQL 镜像2. 创建并运行 MySQL 容器3. 创建并运行 MySQL 容器(目录映射) 二、连接 MySQL 数据库1. 在 MySQL 容器内,连接MySQL2. 在宿主机连接 MySQL(遇到问题及解决方案)…

【kafka】可视化工具KAFKA EAGLE安装分享

目录 准备: 开始: 1.解压 2.环境变量配置 3.生效环境变量配置文件 3.修改配置文件 1.修改zookeeper集群信息 2.修改mysql配置信息 4.启动 5.异常排查 6.页面 创作不易,你的动力是我创作的动力,如果有帮助请关注我&…

rust容器

标准库提供了常见的容器。包括向量 ( Vector )、映射( HashMap )、集合( HashSet )。 一、向量Vector 数组有一个缺点,就是它的长度在编译时就确定了,一旦确定就永不可更改。 向量…

路由器端口转发

什么是路由器端口转发 路由器端口转发是一种网络配置技术,用于将公共网络(如互联网)上的请求转发到私有网络中的特定设备或服务。它允许外部设备通过路由器访问内部网络中的设备或服务,实现网络上的通信和互动。 路由器端口转发…

计算机竞赛 深度学习 YOLO 实现车牌识别算法

文章目录 0 前言1 课题介绍2 算法简介2.1网络架构 3 数据准备4 模型训练5 实现效果5.1 图片识别效果5.2视频识别效果 6 部分关键代码7 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于yolov5的深度学习车牌识别系统实现 该项目较…

《YOLOv5/YOLOv7/YOLOv8最新改进大作战》专栏介绍 CSDN独家改进创新实战 专栏目录

💡💡💡YOLOv5/YOLOv7/YOLOv8最新改进大作战,独家首发创新(原创),持续更新,适用于Yolov5、Yolov7、Yolov8等各个Yolo系列,专栏文章提供每一步步骤和源码,轻松带…

Postman脚本——变量的设置和获取

设置变量 设置Collection环境变量 pm.collectionVariables.set("变量名", "变量值");设置Global环境变量 pm.globals.set("变量名", "变量值");设置Environment环境变量 // 设置环境变量 pm.environment.set("变量名", …

mybatis-plus根据指定条件批量更新

1.service实现类中 比如我这里只针对UserEntity&#xff0c;在UserServiceImpl下&#xff08;该实现类是继承了mybatis-plus的ServiceImpl的&#xff09;新增如下代码&#xff1a; public boolean updateBatchByQueryWrapper(Collection<UserEntity> entityList, Funct…

uniapp之uni-forms表单组件封装的双向数据绑定

前言 在uniapp中, 封装组件的props单向数据流更为严格, 不允许改变子组件的props属性, 所以记录下uniapp下的form表单的组件是如何封装的, 双向数据是如何绑定的. 版本: "dcloudio/uni-ui": "^1.4.27", "vue": "> 2.6.14 < 2.7&quo…

安卓毕业设计各种app项目,Android毕设设计,Android课程设计,毕业论文

作为一位从事软件开发多年的专业人士&#xff0c;您积累了丰富的经验和技能&#xff0c;解决了许多不同类型的问题。除了开发原创项目&#xff0c;您还愿意分享您的知识&#xff0c;指导实习生和在校生。这种乐于助人的行为对于行业的发展和新一代软件开发者的成长都起着积极的…

《优化接口设计的思路》系列:第三篇—留下用户调用接口的痕迹

系列文章导航 《优化接口设计的思路》系列&#xff1a;第一篇—接口参数的一些弯弯绕绕 《优化接口设计的思路》系列&#xff1a;第二篇—接口用户上下文的设计与实现 《优化接口设计的思路》系列&#xff1a;第三篇—留下用户调用接口的痕迹 前言 大家好&#xff01;我是sum…

阿里云交互式建模(PAI-DSW)训练并微调推理ChatGLM模型

参考内容为《轻量微调和推理ChatGLM模型实践》 点击“交互式建模&#xff08;DSW&#xff09;”&#xff0c;然后选择“创建实例” 写上实例名称&#xff0c;然后选择GPU规格&#xff0c;选择“ecs.gn6v-c8g1.2xlarge(8 vCPU&#xff0c;32GB)” 页面往下拉选择“pytorch:…

力扣刷题:寻找两个正序数组的中位数、最长回文子串

今日刷题又开始了 一、寻找两个正序数组的中位数 题目链接&#xff1a;https://leetcode.cn/problems/median-of-two-sorted-arrays/ 给定两个大小分别为 m 和 n 的正序&#xff08;从小到大&#xff09;数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 算法…

常见的内网穿透工具有 ngrok/ localtunnel/ frp

1.内网穿透工具的工作原理 内网穿透工具的工作原理是通过在本地网络和公共网络之间建立一个通道&#xff0c;将公网流量转发到本地网络中的服务。这样&#xff0c;在没有公网 IP 或无法直接访问的情况下&#xff0c;用户可以通过公网访问本地网络中的服务。 2. 常见的内网穿透…

Leetcode162. 寻找峰值

力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 峰值元素是指其值严格大于左右相邻值的元素。 给你一个整数数组 nums&#xff0c;找到峰值元素并返回其索引。数组可能包含多个峰值&#xff0c;在这种情况下&#xff0c;返回 任何一个峰值 所在位置即…

Spring Boot 发送邮件

Spring Boot 发送邮件 准备工作引入依赖邮箱开启SMTP三方登录授权配置邮件服务器 发送邮件普通文本邮件复杂邮件 准备工作 引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId&…