什么是 DevOps?

您所在的位置:网站首页 软件交付的形式为可执行软件对吗 什么是 DevOps?

什么是 DevOps?

2023-06-04 21:52| 来源: 网络整理| 查看: 265

DevOps 生命周期(以线性方式描述时,也称为持续交付管道)是一系列迭代式、自动化的开发流程(也称工作流程),在更大的自动化迭代式的开发生命周期内执行,旨在优化高质量软件的快速交付。 工作流程的名称和数量众说纷纭,但通常可归结为以下六类:

规划(或称构思)。 在这个工作流程中,团队会根据划分了优先级的最终用户反馈和案例研究,以及来自所有内部利益相关方的意见和建议,确定下一个发行版中新功能和新特性的范围。 规划阶段的目标是通过生成待办工作清单,确保其在交付后可实现预期成果,从而最大程度地提高产品的业务价值。 开发。 这是编程步骤,开发人员根据待办工作清单中的用户情境以及工作事项,测试、编码和构建新功能和增强功能。 常用的实践组合包括测试驱动的开发 (TDD)、配对编程和同级代码评审等。 开发人员通常使用本地工作站来执行代码编写和测试的"内部循环",然后再将代码发送到持续交付管道。 集成(或称为构建,或持续集成和持续交付 (CI/CD))。 如上所述,在这个工作流程中,新代码集成到现有代码库中,然后进行测试,并打包成可执行文件以进行部署。 常见的自动化活动包括将代码变更合并到“主”副本中,从源代码存储库中检出代码,自动执行编译、单元测试然后打包为可执行文件。 最佳实践是将 CI 阶段的输出存储在二进制存储库中,用于下一阶段。 部署(通常称为持续部署)。 将(来自集成的)运行时构建输出部署到运行时环境,通常是执行运行时测试的开发环境,旨在确保质量、合规性与安全性。 如果发现错误或缺陷,开发人员有机会拦截并修补任何问题,防患于未然。 通常存在开发、测试和生产环境,每个环境都需要逐步“严格”的质量关口。 部署到生产环境的最佳实践通常是首先针对一部分最终用户进行部署,然后在产品趋于稳定后最终面向所有用户部署。 运营。 如果将功能交付到生产环境称为“第一天”, 那么这些功能在生产环境中运行,即标志着“第二天”运营的开始。 必须监控功能的性能、行为和可用性,以确保为最终用户增添价值。 运营旨在确保功能平稳运行,不会发生服务中断 - 必须确保网络、存储、平台、计算和安全资源一切正常! 如果出错,运营可确保发现事故,提醒适当的人员,确定问题,并采取修复措施。 学习(有时称为持续反馈)。 在这个工作流程中,会收集来自最终用户和客户对特性、功能、性能和业务价值的反馈,根据这些反馈,规划下一个发行版中的增强和功能。 这还包括来自运营活动的任何学习成果和待办事项,旨在帮助开发人员主动避免将来再次发生过去的任何事故。 这个工作流程是对规划阶段的“总结”,从而“持续改进!”

这些工作流程之间还有另外三个重要的持续工作流程:

持续测试: 在典型的 DevOps 生命周期中,集成和部署之间有一个单独的“测试”阶段。 但 DevOps 又更进了一步,可以在各个工作流程中执行测试的某些要素,例如在规划工作流程中执行行为驱动的开发;在开发工作流程中执行单元测试与合同测试;在集成工作流程中执行静态代码扫描、CVE 扫描和语言分析;在部署工作流程中执行烟雾测试、渗透测试和配置测试;在运营工作流程中执行混沌测试、合规性测试;在学习工作流程中执行 A/B 测试。 测试是发现风险和漏洞的强大方法,为 IT 接受、缓解或补救风险提供了机会。

安全性: 瀑布方法和敏捷实现是在交付或部署后"附加"安全工作流程,而 DevOps 力求从一开始(规划)就融入安全措施,因为此时安全问题最容易解决,而且解决成本最低,然后在开发周期的其余阶段持续实施安全措施。 这种安全性方法称为左移(请参阅图 1 以便更轻松地理解这个概念)。 一些组织的左移工作不甚理想,这也导致了 DevSecOps 的兴起(见下文)。

合规性。 法规 合规性(治理和风险)也必须在开发生命周期的早期和整个过程中得到最充分的满足。 受监管行业通常必须强制性满足某种程度的可观察性、可追溯性以及可访问性,以表明如何在运行时运营环境中交付和管理功能。 这需要在持续交付管道和运行时环境中规划、制定、测试和执行策略。 合规性措施的可审计性对于向第三方审计机构证明合规性而言极其重要。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3