何为CI、CD? 什么又是DevOps

写在之前

最近一直再用微软的Azure DevOps,CI和CD、DevOps的概念一直在浮现,但一直不能彻底理解是什么意思,于是就翻阅各大论坛资料进行查询 ,但繁杂的概念让我更加的迷茫。在偶尔间看到了b站狂神的一个视频,进行了一个实例讲解,让我恍然大悟。虽然还有许多细节没有讲到,但是让我对整个流程有了把控,对日后的学习有了方向。现将笔记记录下来方便查阅。

什么是DevOps?

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

在这里插入图片描述

一个产品的诞生大概要不断经历以下流程

  • plan 客户提需求
  • code 开发人员进行开发
  • build 构建
  • test 测试环境测试
  • release 发布
  • deploy 部署
  • operate 监控
  • monitor 运维
    在这里插入图片描述

如何落地实现DevOps理念?

DevOps兴起于2009年,近年来由于云计算、互联网的发展,促进了DevOps的基础设施及工具链的发展,涌现了一大批优秀的工具,这些工具包括开发、测试、运维的各个领域,例如:Github,Git/svn、Docker、Jekins、HudSon、Ant/Maven/Gradle,QUint/JMeterd等,看下图:

在这里插入图片描述
在这里插入图片描述

DevOps流程

在这里插入图片描述

DevOps优点

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

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

DevOps这种软件开发方法,涉及到软件整个开发生命周期,这些活动只能在DevOps中实现,而不是敏捷开发或瀑布流。

DevOps是在较短的开发周期内开发高质量软件的首选方法,同时可以提高客户满意度。