0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是DevOps?DevOps的优势以及生命周期

马哥Linux运维 来源:OSC开源社区 作者:炒蚕豆吃蹦豆 2021-06-29 17:19 次阅读

在大多数情况下,软件应用程序开发由于其规范性和复杂性而变得很耗时。为了在短时间内交付高质量应用程序,软件开发人员正在遵循一套通用的实践,称为DevOps生命周期。那么,DevOps在软件应用程序开发领域中扮演着什么角色?让我们深入了解其含义、用途以及DevOps生命周期中的每个关键阶段。

什么是DevOps

在DevOps之前,从业人员使用瀑布模型或敏捷开发模型进行软件项目开发:瀑布模型或顺序模型是软件开发生命周期(SDLC)中的一种开创性方法,在这个模型中,软件开发成为一个线性过程,不同的阶段和任务被依次定位;而敏捷开发涉及各种方法的使用和SDLC中多个团队的协作。

瀑布模型的线性和敏捷开发的跨功能性无法确保快速、连续地交付无缺陷的软件应用程序。软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运维工作必须紧密合作。这样的情况下,DevOps应运而生。

DevOps是一个简单的缩写词,源于“development(开发)”和“Operation(运维)”两个词,它涉及以特定的方式实践应用程序开发的任务。更广泛地说,软件开发和IT运维的结合被称为DevOps。

DevOps的优势

DevOps在促进IT运维和软件开发之间的敏捷关系方面的有效性受到几个因素的支持。通过在软件开发和IT运维部门的多个业务部门内实现更好的通信,DevOps通过以下优势的结合改进了软件的总体生产:稳定的运行环境、超快速的交付、坚实的合作、时间优化(特别是在修复/维护阶段)、持续创新。

这样的技术优势使得DevOps成为世界上软件应用程序开发中备受追捧的方法。要了解DevOps如何实现这些优势,了解DevOps的完整生命周期是很重要的。让我们分解DevOps中的关键阶段,并找出实现完美、连续和快速软件开发的过程。

解密DevOps生命周期

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

持续开发

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

JavaScript,C / C ++,Ruby和Python在DevOps中主要用于编码应用程序。维护代码的过程称为源代码管理(SCM),其中使用了诸如Git、TFS、GitLab、Subversion等版本控制工具。在SCM过程中,Git是支持分布式版本控制的首选工具。

它通过循环的非线性工作流对数据保证做出贡献。对于涉及大量合作者参与开发活动的大型项目,Git通过提交消息在团队之间建立可靠的通信。借助版本控制工具,可以在连续开发阶段构建应用程序代码的稳定版本。开发人员还可以使用Garden,Maven和类似工具将代码打包为.exe(可执行)文件。

持续集成

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

为了生成为应用程序带来更多功能的新代码,开发人员运行用于单元测试、代码评审、集成测试、编译和打包的工具。将新代码持续集成到现有源代码中有助于反映最终用户在使用更新后的代码时所经历的更改。Jenkins是被广泛应用的可靠的DevOps工具,用于获取更新的源代码并将构建构建为.exe格式。这些转换是无缝进行的,更新的代码将打包并进入下一阶段,即生产服务器或测试服务器。

持续测试

一些开发人员在持续集成阶段之前执行持续测试阶段。根据应用程序代码中的更新,可以围绕DevOps生命周期中的持续集成阶段重新定位此阶段。在这个阶段,对开发的软件进行不断的Bug测试。使用Docker容器来模拟测试环境。通过自动化测试,开发人员可以节省往常在手动测试中浪费的精力和时间。

自动化测试生成的报告可改善测试评估过程,分析失败的测试用例变得更加容易。经过UAT(用户接受测试)过程后,生成的测试套件更简单且没有Bug。TestNG,Selenium和JUnit是用于自动化测试的一些DevOps工具。这些工具还可以在预设的时间线上安排测试用例的执行。

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

持续反馈

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

持续监测

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

它还能确认重复出现的系统错误的威胁和根本原因。在这个阶段,安全问题可以得到解决,还能自动检测和修复缺陷。与软件开发团队相比,IT运维团队在这一阶段的参与程度更高。他们的角色在监视用户活动、检查系统是否有异常行为以及跟踪错误的存在方面至关重要。

Sensu,ELK Stack,NewRelic,Splunk和Nagios是用于持续监视的关键DevOps工具。这些工具可实现对系统、生产服务器和应用程序性能的全面控制。在这些工具的帮助下,运维团队可以积极参与,以提高应用程序的可靠性和生产率。当在此阶段检测到重大问题时,应用程序将在DevOps生命周期的所有早期阶段快速重新运行,这就是为何在这个阶段找到解决各种问题的方法会变得更快的原因。

持续部署

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

配置管理是这一阶段的关键过程,它在所有服务器上执行应用程序代码的精确部署,建立并管理应用程序性能和功能条件的一致性。将代码发布到服务器,为所有服务器安排更新,并且这些配置在整个生产过程中保持一致。Ansible、Puppet和Chef是用于配置管理的一些有效的DevOps工具,它们经常执行新代码的快速和连续部署。

容器化工具用于通过配置管理过程实现连续部署。Vagrant是一种容器化工具,可在从开发和测试到阶段和生产的不同环境中发展一致性。同样,连续部署的可伸缩性由Docker等工具处理。这些工具通过复制和打包来自测试,登台和开发阶段的软件耦合,消除了各种生产故障和系统错误。最终,该应用程序可以在不同的计算机上流畅运行。

持续运维

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

DevOps生命周期可交付成果

DevOps生命周期的每一个阶段都由两个共同因素控制:最大程度的自动化和连续性。多功能工具取代了额外的步骤,大大缩短了检测故障所需的时间。DevOps运行在一个生命周期中,这个生命周期提供了软件应用程序的最佳版本。

最终产品使企业能够恢复迅速开发的速度并同时改善用户体验。

高投资回报率(ROI)简化了成本控制,开发和运维团队可以有机合作。

与持续部署解决方案相结合,将编程代码发送到1000多台生产服务器上是可行的。在DevOps生命周期中,有一些高级模式是为部署而设计的。类似的特性用于交付按需部署和审核。

随着技术的不断创新,DevOps继续以最高的质量和速度发展。如今,它已成为全球数百万公司数字化转型之旅的战略组成部分。

DevOPS生命周期显然打破了团队合作的障碍。当可以使用DevOps构建负责任的业务环境时,无需进行任何冗余的工作。

DevOps工具生成的报告提供了业务洞察力并增强了SDLC中的可见性。通过端到端的价值管理,DevOps系统地提高了交付速度。

有了DevOps,项目管理和规划的任务将最终完成。DevOps既能应用于大型企业,也能服务于中小企业。组织、安排、调整和跟踪项目都变得更容易。DevOps生命周期的所有阶段都保持完整的可跟踪性。

大多数软件开发人员都可以从DevOps提供的分支工具中受益。它可以高效地设计应用程序UI和管理UX代码、安全地开发和存储项目数据。

由于代码中的每次更改都会影响生产阶段,因此用于自动监视和发布管理的工具分别有助于检测错误和模拟用户响应。

由于使用了单一的分布式版本控制工具,并且通过提供具有快速迭代自由度的高价值业务产品,工作流不会中断。

使用DevOps包管理工具可以为软件应用程序创建可靠的供应链。应用程序及其依赖项被捆绑到容器中,容器将进一步管理。开发人员可以通过安全的容器注册表和存储库轻松地构建代码包。DevOps通过自动化软件开发管道加速了自由、不间断的流程。

自动化测试使团队可以完全接受DevOps生命周期的不同阶段,因为这有助于维持高标准的产品质量。编码,验证,更改,构建新代码,甚至将它们集成到源代码中都非常容易。

除了自动化测试之外,还有代码质量分析、动态分析安全测试和静态分析安全测试等过程来收集重要的反馈并将其传递给开发人员和测试人员。这增强了开发和操作团队提高代码质量的能力。

关键基础设施配置信息(密码和登录ID)的访问受工具保护,这些工具将它们伪装成秘密变量。为了获得额外的安全性,DevOps提供了有限的访问权限—只有经过授权的用户和进程才能获得访问权限。

凭借其独立的开发环境和更快的开发方法,DevOps成为技术市场的重要贡献者。它是通过创建动态应用程序来解决技术业务挑战的最重要的工具集。由于这种方法给开发人员和用户都能带来好处,DevOps的采用率持续增加。国内大厂如阿里、腾讯、华为、等都有自己的云端DevOps解决方案。

fea3afb6-d6a1-11eb-9e57-12bb97331649.png

以开源和私有部署为主要特点的禅道项目管理软件也已经内置了对Git、Subversion、Jenkins的集成,同时还提供了zentao ztf的自动化测试框架,打通了项目管理工具和持续集成工具中间的沟壑,禅道与ZTF的结合贯穿整个DevOps生命周期。

尽管DevOps目前是在全球大多数企业的软件开发项目的技术背景下进行的,但在未来几年,它将继续在现代静态网页和动态软件应用程序的开发中得到多样化的应用。

参考文献:Amol Muratkar.What is DevOps Lifecycle and How to Manage Yours [OL]。(2020-03-26)https://dzone.com/articles/what-is-devops-lifecycle-how-to-manage-yours

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编码
    +关注

    关注

    6

    文章

    942

    浏览量

    54814
  • C++
    C++
    +关注

    关注

    22

    文章

    2108

    浏览量

    73623
  • SCM
    SCM
    +关注

    关注

    2

    文章

    66

    浏览量

    15310
  • devops
    +关注

    关注

    0

    文章

    113

    浏览量

    12014

原文标题:DevOps生命周期,你想知道的全都在这里了!

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    汽车软件DevOps解决方案

    经纬恒润汽车软件DevOps解决方案是专为现代汽车行业设计的一套集成化需求、开发、测试、部署、OTA与监控,旨在加速软件开发流程,提高软件质量和安全性,同时确保整个生命周期的高效性和灵活性。
    的头像 发表于 12-16 10:33 599次阅读
    汽车软件<b class='flag-5'>DevOps</b>解决方案

    devops使用最广泛的集成工具盘点

    devops使用最广泛的集成工具包括GitLab(全栈DevOps平台)、Jenkins(CI/CD自动化服务器)、Docker(容器化技术)、Kubernetes(容器编排平台)、Ansible
    的头像 发表于 11-26 13:48 154次阅读

    什么是PLM产品生命周期管理系统?

    在当今竞争激烈的制造业环境中,企业不仅要关注产品的设计和生产,还需要对产品的整个生命周期进行全面管理。这包括了从产品概念构思、设计开发、生产制造、销售分发,到最终报废处理的每一个环节。为了高效、系统
    的头像 发表于 11-23 16:14 166次阅读
    什么是PLM产品<b class='flag-5'>生命周期</b>管理系统?

    半导体全生命周期测试:哪些设备在默默守护你的电子产品?

    半导体产业作为现代电子工业的核心,其产品的全生命周期测试对于确保产品质量、提高生产效率和降低成本具有重要意义。半导体全生命周期测试设备涵盖了从原材料检测到最终产品测试的一系列设备,本文将对这些设备进行详细介绍。
    的头像 发表于 07-01 09:38 337次阅读
    半导体全<b class='flag-5'>生命周期</b>测试:哪些设备在默默守护你的电子产品?

    鸿蒙开发组件:DataAbility的生命周期

    应用开发者可以根据业务场景实现data.js/data.ets中的生命周期相关接口。DataAbility生命周期接口说明见下表。
    的头像 发表于 06-20 09:39 434次阅读

    鸿蒙开发:【PageAbility的生命周期

    PageAbility生命周期是PageAbility被调度到INACTIVE、ACTIVE、BACKGROUND等各个状态的统称。PageAbility生命周期流转及状态说明见如下图1、表1所示。
    的头像 发表于 06-17 10:05 691次阅读
    鸿蒙开发:【PageAbility的<b class='flag-5'>生命周期</b>】

    设备全生命周期管理流程有哪些?

    采购与安装阶段设备全生命周期管理系统对设备需求进行分析,记录设备信息,确保设备正确安装并达到预期性能。维护保养阶段制定科学维护计划,定期检查和保养。性能优化与升级阶段通过分析数据发现问题,优化设备性能。
    的头像 发表于 06-13 15:21 735次阅读
    设备全<b class='flag-5'>生命周期</b>管理流程有哪些?

    鸿蒙Ability Kit(程序框架服务)【UIAbility组件生命周期】实例

    本文档主要描述了应用运行过程中UIAbility和自定义组件的生命周期。对于UIAbility,描述了Create、Foreground、Background、Destroy四种生命周期。对于页面
    的头像 发表于 05-31 15:03 1113次阅读
    鸿蒙Ability Kit(程序框架服务)【UIAbility组件<b class='flag-5'>生命周期</b>】实例

    如何保护电子元器件以延长生命周期

    在电子电力领域,许多关键应用要求设备必须运行很长一段时间,甚至几十年。尤其是对于航空航天、国防、能源和医疗行业方面而言,为了保持设备正常运行,必须在其整个生命周期内持续供应组件。那么,如何保护电子
    的头像 发表于 05-31 13:59 512次阅读
    如何保护电子元器件以延长<b class='flag-5'>生命周期</b>

    Traveo II B-H中的SECURE和SECURE_WITH_DEBUG生命周期阶段有何不同?

    Traveo II B-H 中的 SECURE 和 SECURE_WITH_DEBUG 生命周期阶段有何不同?
    发表于 05-21 07:07

    HarmonyOS开发案例:【UIAbility和自定义组件生命周期

    本文档主要描述了应用运行过程中UIAbility和自定义组件的生命周期。对于UIAbility,描述了Create、Foreground、Background、Destroy四种生命周期。对于页面
    的头像 发表于 05-10 15:31 1241次阅读
    HarmonyOS开发案例:【UIAbility和自定义组件<b class='flag-5'>生命周期</b>】

    IBM推出全新IT生命周期管理模式

    IBM近日正式推出了IBM Storage Assurance,这是一项创新的IT生命周期管理方案。其设计初衷在于为客户提供数据中心管理的灵活性与控制权,以最大化系统性能。该方案融合了IBM FlashSystem的硬件和软件创新优势,确保客户在享受高性能存储的同时,其投
    的头像 发表于 05-09 11:47 584次阅读

    什么是设备全生命周期管理系统?

    设备全生命周期管理系统是一款能够对设备进行全周期数字化管理的软件平台,它通过将设备信息电子化,使得设备的管理和监督更加便捷。这个系统不仅涵盖了设备的采购、使用、维修、报废等各个阶段,还能够对设备
    的头像 发表于 02-26 14:21 1176次阅读
    什么是设备全<b class='flag-5'>生命周期</b>管理系统?

    深度解析DevOps架构的概念、关键组成部分及其优势

    DevOps(Development和Operations的合并)是一种旨在加速软件开发和部署的方法论。
    的头像 发表于 01-15 09:38 2353次阅读
    深度解析<b class='flag-5'>DevOps</b>架构的概念、关键组成部分及其<b class='flag-5'>优势</b>

    什么是DevOps中的持续测试?持续测试如何融入DevOps

    持续测试(CT) 是在整个软件开发生命周期(SDLC) 中自动测试软件应用程序和组件的实践。在 DevOps 中,持续测试是在整个DevOps 管道中集成测试活动的实践。
    的头像 发表于 01-09 09:10 561次阅读
    什么是<b class='flag-5'>DevOps</b>中的持续测试?持续测试如何融入<b class='flag-5'>DevOps</b>?