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

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

猜你喜欢

转载自blog.csdn.net/qq_47188967/article/details/130763659