【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:开发、测试、运维 的紧密合作
相关推荐
Karoku0661 小时前
【CI/CD】CI/CD环境搭建流程和持续集成环境配置
运维·ci/cd·docker·容器·kubernetes·prometheus
勤奋的凯尔森同学4 小时前
webmin配置终端显示样式,模仿UbuntuDesktop终端
linux·运维·服务器·ubuntu·webmin
技术小齐8 小时前
网络运维学习笔记 016网工初级(HCIA-Datacom与CCNA-EI)PPP点对点协议和PPPoE以太网上的点对点协议(此处只讲华为)
运维·网络·学习
ITPUB-微风9 小时前
Service Mesh在爱奇艺的落地实践:架构、运维与扩展
运维·架构·service_mesh
落幕9 小时前
C语言-进程
linux·运维·服务器
chenbin5209 小时前
Jenkins 自动构建Job
运维·jenkins
java 凯9 小时前
Jenkins插件管理切换国内源地址
运维·jenkins
AI服务老曹9 小时前
运用先进的智能算法和优化模型,进行科学合理调度的智慧园区开源了
运维·人工智能·安全·开源·音视频
sszdzq11 小时前
Docker
运维·docker·容器
book012111 小时前
MySql数据库运维学习笔记
运维·数据库·mysql