DevOps 的生命周期是什么

六六 TOP1 227

DevOps 的生命周期是能确保DevOps优化从提出到生产再到完整交付的整个开发流程的主要组成部分。DevOps主要用于电子商务网站、云本地应用程序和其他大型分布式平台的应用程序开发。它由多个阶段组成,这些阶段统称为DevOps生命周期:持续发展、持续集成、持续测试、持续反馈、持续监测、持续部署、持续运维。

1.持续开发

DevOps生命周期的第一个阶段是规划和软件编码。其中规划包括理解项目的远景,并基于这些远景设想软件。做规划不涉及任何主要工具,而维护代码需要使用一系列工具。 开发应用程序源代码的第一步是从不同的编程语言中进行选择。 JavaScript,C / C ++,Ruby和Python在DevOps中主要用于编码应用程序。

维护代码的过程称为源代码管理(SCM),其中使用了诸如Git、TFS、GitLab、Subversion等版本控制工具。

在SCM过程中,Git是支持分布式版本控制的首选工具。它通过循环的非线性工作流对数据保证做出贡献。对于涉及大量合作者参与开发活动的大型项目,Git通过提交消息在团队之间建立可靠的通信。

借助版本控制工具,可以在连续开发阶段构建应用程序代码的稳定版本。 开发人员还可以使用Garden,Maven和类似工具将代码打包为.exe(可执行)文件。

2.持续集成

源代码会被修改多次,这些频繁的更改每周甚至每天都在发生着。下一阶段的代码集成是整个DevOps生命周期的核心。在持续集成中,将构建支持附加功能的新代码,并将其集成到现有代码中。

在这个阶段,源代码中的错误会在早期就被检测到。为了生成为应用程序带来更多功能的新代码,开发人员运行用于单元测试、代码评审、集成测试、编译和打包的工具。 将新代码持续集成到现有源代码中有助于反映最终用户在使用更新后的代码时所经历的更改。

Jenkins是被广泛应用的可靠的DevOps工具,用于获取更新的源代码并将构建构建为.exe格式。 这些转换是无缝进行的,更新的代码将打包并进入下一阶段,即生产服务器或测试服务器。

3.持续测试

一些开发人员在持续集成阶段之前执行持续测试阶段。根据应用程序代码中的更新,可以围绕DevOps生命周期中的持续集成阶段重新定位此阶段。

在这个阶段,对开发的软件进行不断的Bug测试。 使用Docker容器来模拟测试环境。 通过自动化测试,开发人员可以节省往常在手动测试中浪费的精力和时间。 自动化测试生成的报告可改善测试评估过程,分析失败的测试用例变得更加容易。 经过UAT(用户接受测试)过程后,生成的测试套件更简单且没有Bug。

TestNG,Selenium和JUnit是用于自动化测试的一些DevOps工具。

这些工具还可以在预设的时间线上安排测试用例的执行。质量保证工程师(QA)可以使用这些工具对其他几个代码库进行并行测试。它确保了应用程序实现功能完美和网络互联。最后,被测试的代码被重新发送到持续集成阶段以更新源代码。

4.持续反馈

持续测试和持续集成是确保应用程序代码持续改进的两个关键阶段,而持续反馈是分析这些改进的阶段。

开发人员可以在最终产品上评估这些修改的结果。 最重要的是,测试这些应用程序的客户可以在此阶段分享他们的经验。 在大多数情况下,DevOps生命周期的这一阶段为应用程序开发过程提供了一个转折点。 及时评估反馈,开发人员开始着手进行新更改。 这样,客户反馈很快就能得到积极的回应,这为发布软件应用程序的新版本铺平了道路。

5.持续监测

监测应用程序的性能对于应用程序开发人员至关重要。 在此阶段,开发人员记录有关应用程序使用的数据,并持续监测着每个功能。 “服务器无法访问”或“内存不足”是可以在这个阶段被解决的一些常见系统错误。

持续监测有助于保持应用程序中服务的可用性。它还能确认重复出现的系统错误的威胁和根本原因。在这个阶段,安全问题可以得到解决,还能自动检测和修复缺陷。

与软件开发团队相比,IT运维团队在这一阶段的参与程度更高。他们的角色在监视用户活动、检查系统是否有异常行为以及跟踪错误的存在方面至关重要。

Sensu,ELK Stack,NewRelic,Splunk和Nagios是用于持续监视的关键DevOps工具。 这些工具可实现对系统、生产服务器和应用程序性能的全面控制。 在这些工具的帮助下,运维团队可以积极参与,以提高应用程序的可靠性和生产率。

当在此阶段检测到重大问题时,应用程序将在DevOps生命周期的所有早期阶段快速重新运行,这就是为何在这个阶段找到解决各种问题的方法会变得更快的原因。

6.持续部署

通常来说,持续部署阶段发生在持续监视之前。但是,开发人员要确保这个阶段在DevOps生命周期中始终处于活动状态,尤其是在应用程序上线并开始接收大量流量之后。 

在此阶段,最终确定的应用程序代码将被部署到生产服务器。配置管理是这一阶段的关键过程,它在所有服务器上执行应用程序代码的精确部署,建立并管理应用程序性能和功能条件的一致性。将代码发布到服务器,为所有服务器安排更新,并且这些配置在整个生产过程中保持一致。

Ansible、Puppet和Chef是用于配置管理的一些有效的DevOps工具,它们经常执行新代码的快速和连续部署。

容器化工具用于通过配置管理过程实现连续部署。

Vagrant是一种容器化工具,可在从开发和测试到阶段和生产的不同环境中发展一致性。

同样,连续部署的可伸缩性由Docker等工具处理。这些工具通过复制和打包来自测试,登台和开发阶段的软件耦合,消除了各种生产故障和系统错误。

最终,该应用程序可以在不同的计算机上流畅运行。

7.持续运维

DevOps生命周期的最后一个阶段是最短且最简单的阶段。 持续运维的目的是使发布的应用程序和后续更新的过程自动化。 持续运维中的开发周期更短,从而使开发人员能够不断加快该应用程序的上市时间。

回复

我来回复
  • 暂无回复内容

联系我们
关注微信
关注微信
分享本页
返回顶部