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

[一、什么 devops?](#一、什么 devops?)

[1.1 定义](#1.1 定义)

[1.2 作用](#1.2 作用)

[1.3 核心](#1.3 核心)

[1.4. 软件开发流程](#1.4. 软件开发流程)

[1.5. DevOps的核心定义](#1.5. DevOps的核心定义)

[1.6. 具备的能力](#1.6. 具备的能力)

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

[2.1 持续集成](#2.1 持续集成)

[2.2 持续交付](#2.2 持续交付)

[2.3 持续部署](#2.3 持续部署)

[2.4 总结](#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:开发、测试、运维 的紧密合作
相关推荐
hsjcjh38 分钟前
Nodemailer使用教程:在Node.js中发送电子邮件
linux·运维·node.js
没有梦想的咸鱼185-1037-16631 小时前
北斗高精度数据解算:破解城市峡谷/长基线/无网区难题,从毫米级定位到自动化交付——(GAMIT/GLOBK底层核心解算技术方法)
运维·arcgis·数据分析·自动化
不怕犯错,就怕不做2 小时前
linux 如何查看自己的帐号密码及samba的帐号和密码
linux·运维·服务器
实在智能RPA2 小时前
Agent 在物流行业能实现哪些自动化?——深度拆解 AI Agent 驱动的智慧物流新范式
运维·人工智能·ai·自动化
张3232 小时前
Linux 启动过程
linux·运维
李彦亮老师(本人)2 小时前
Rocky Linux 9.x 新特性详解
linux·运维·服务器·centos·rocky linux
芳草萋萋鹦鹉洲哦4 小时前
【windows】nginx如何注册为开机自启的服务(WinSW实现)
运维·windows·nginx
猩猩—点灯5 小时前
部署远程利器-RustDesk
运维·服务器·网络
biubiubiu07065 小时前
Linux 中 `source` 和 `systemctl daemon-reload` 的区别与踩坑点
linux·运维·服务器