DevOps生命周期的基本指南
2022-5-18 11:15:51 Author: www.secpulse.com(查看原文) 阅读量:21 收藏

DevOps通过引入更具协作性的开发环境并弥合开发人员和运营人员之间的差距,彻底改变了软件的开发和部署方式。同时确保满足消费者或市场需求的灵活性。但是,最好在组织中实施适当的DevOps生命周期,以充分利用DevOps提供的优势。

什么是DevOps生命周期?

DevOps生命周期由DevOps流程中涉及的不同阶段组成,以指导用户从开发到部署和监控。它提供了一个标准化的结构,将 DevOps
实践集成到您的交付管道中,以提高交付过程的速度和可靠性。同时,它提供了满足不断变化的需求所需的灵活性。

1.png

生命周期中的所有阶段都将在整个项目中不断迭代,不断地经历生命周期。DevOps生命周期分为以下七个阶段:

  • 发展

  • 集成

  • 测试

  • 部署

  • 监控

  • 回馈

  • 运营

为什么DevOps仍然需要生命周期?

除了提供实施DevOps实践的结构并提供更具弹性和灵活性的开发和管理体验之外,正确实施的生命周期还将提供以下优势:

在不影响最终产品质量的情况下提高开发过程的速度和效率。

促进不同团队之间的协作环境,并提高交付过程的可见性。

在整个生命周期中轻松集成自动化。它允许用户有效地管理可用资源,从促进自动化集成和测试到自动化部署和监控,同时减少团队的工作量。

开发团队可以利用通过 DevOps 实践节省的时间和提高的效率来进一步改进产品,从而获得更高的投资回报。

不管团队的大小,这些实践将允许用户正确地组织和跟踪整个交付过程。

自动化监控和测试有助于快速识别和修复更多缺陷或错误,同时减少人为错误。

由于跨团队成员的工作负载更明显、定义更明确,因此简化了工作流程。

DevOps生命周期的七个阶段

发展

开发是DevOps生命周期的开始,在此对软件进行编码。在这个阶段,对项目需求进行分析、商定,然后将其作为可编码的需求传达给开发人员。然而,即使是这些要求也会根据最终用户不断变化的需求或市场条件而发生变化。

解决这个阶段的最佳方法是实现标准化的开发最佳实践,并利用像版本控制这样的工具来促进协作编码和代码管理环境。此外,开发人员可以使用代码分析等技术,并检查代码,以创建流线化的开发体验。

集成

新开发的代码与现有代码库集成,以检查DevOps 生命周期下一阶段的兼容性。除了新的代码更改之外,在此阶段还可以与第三方服务的集成。

由于开发人员可以进行频繁的更改,Jenkins等持续集成平台对于创建工作流至关重要,该工作流将促进统一和集成测试、代码分析、打包,并与版本控制工具集成,以自动识别新的更改。它允许用户尽早确定代码的问题并快速修复它们。

测试

测试是DevOps生命周期中最长的阶段之一,在这个阶段中,应用程序要测试bug或错误。测试可以确保应用程序的质量,并确定软件是否符合定义的规范。它将涉及多个团队,从开发人员到质量保证工程师,甚至是站点可靠性工程师,以确保应用程序的功能、可靠性和性能。

通过使用诸如SCA、DAST等这样的自动化测试工具来支持连续测试,及时发现代码缺陷和安全漏洞及第三方库中存在的安全隐患。

部署

部署是指使用持续交付工具将开发和测试的应用程序部署到生产环境中。与传统的单体部署不同,部署是一次性的过程,DevOps
提倡持续部署,其中小的更新不断推送到生产中。

专注于小型部署允许团队快速地将bug修复和新特性推送到应用程序中。它还将带来更好的终端用户体验,因为bug可以快速修复,新特性可以不断添加到应用程序中。

此外,持续部署可以降低重大部署失败的风险。即使在部署失败的情况下,您也可以快速将应用程序回滚到以前的版本。这可以减少对终端用户的影响。

监控

在部署应用程序之后,监控可以让用户更好地了解应用程序的行为,并有效地响应事件。持续监视是了解应用程序和底层环境并快速检测异常的最佳方法。监视可以包括应用程序的每个方面,从简单的CPU和内存使用到监视API调用。

使用指标日志了解应用程序的运行状况和行为将有助于识别任何问题并有效缓解它们。

回馈

反馈对于DevOps过程是至关重要的,反馈过程从开发的计划阶段开始,一直到最终应用的最终用户反馈。最终用户从内部和外部获得的反馈可以用于改进应用程序,并促进准确的最终用户需求。即使某个功能看起来是最优的,单一的反馈也可以改变整个功能的观点并导致改进。

运营

运维是DevOps生命周期的最后阶段,在这个阶段中,在将应用程序移交给最终用户之后,对项目进行维护。操作严重依赖监视来了解应用程序的运行状况。它确保应用程序在其整个操作生命周期中名义上和可靠地运行。

维护应用程序的责任主要与操作团队有关。然而,它可能会在一个问题中传播到其他团队,比如需要多个团队开发、测试和部署修复的bug。在某些情况下,业务小组还负责提供用户支助和管理最终用户的反馈。

DevSecOps:持续安全

虽然安全性检测可以在开发、测试或监控阶段单独合并,但没有标准化的方法将安全集成到DevOps流程中。

像DevSecOps这样的实践旨在将持续的安全性集成到贯穿整个开发过程的DevOps生命周期中。除此之外,安全工作由一个SecOps团队负责;在开发过程中结合安全性将为最终产品和开发环境带来更好的安全性状况。

在自动化的帮助下,大多数安全扫描、审计和测试方面都可以集成为交付过程中不可分割的一部分。从代码分析、依赖扫描到失效的安全监控,作为整个监控阶段的一部分,将有助于在应用程序的整个生命周期中建立以安全为中心的环境。

改进安全状态可以使应用程序更具弹性,减少漏洞或攻击危及系统的可能性。

参考文章:

https://spectralops.io/blog/the-essential-guide-to-understanding-the-devops-lifecycle/

本文作者:中科天齐软件安全

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/179203.html


文章来源: https://www.secpulse.com/archives/179203.html
如有侵权请联系:admin#unsafe.sh