DevOps教程:DevOps 生命周期

【注】本文译自:
DevOps定义了运营与开发之间的敏捷关系 。 从产品的开始到最终阶段 , 开发团队和运营工程师共同实践这一过程 。
DevOps教程:DevOps 生命周期文章插图
不了解 DevOps 生命周期阶段的话 , 就不能完整地学习 DevOps 。 DevOps 生命周期包括以下七个阶段:
1) 持续开发 此阶段涉及软件的计划和编码 。 在规划阶段确定项目的远景 。 开发人员开始为应用开发代码 。 计划不需要任何 DevOps 工具 , 但是有几种工具可以维护代码 。
2) 持续集成 此阶段是整个DevOps生命周期的核心 。 这是一种软件开发实践 , 开发人员需要更加频繁地对源代码进行更改 。 可能是每天或每周提交 , 然后会构建每个提交 , 如果存在问题则可以尽早发现问题 。 构建代码不仅涉及编译 , 而且还包括单元测试、集成测试、代码审查和打包 。
支持新功能的代码与现有代码不断集成在一起 。 因此 , 软件在持续开发 。 更新后的代码需要与系统持续续流畅地集成 , 从而将变更反映给最终用户 。
DevOps教程:DevOps 生命周期文章插图
Jenkins 是这个阶段使用的流行工具 。 每当 Git 存储库中发生变更时 , Jenkins都会获取更新的代码并准备该代码的构建 , 生成 war 或 jar 形式的可执行文件 。 然后将此构建转发到测试服务器或生产服务器 。
3) 持续测试 在此阶段 , 开发好的软件被持续测试 , 以发现错误 。 持续测试中可以使用自动化测试工具 , 如 TestNG、JUnit、Selenium 等 。这些工具使 QA 可以完全并行地测试多个代码库 , 以确保功能上没有缺陷 。 这个阶段可以使用 Docker 容器模拟测试环境 。
DevOps教程:DevOps 生命周期文章插图
Selenium 进行自动化测试 , TestNG生成报告 。 Jenkins 这个持续集成工具的帮助下 , 整个测试阶段可以自动化 。
自动化测试节省了执行测试所需的时间和精力 , 而不是手动执行 。 除此之外 , 报告生成是一大优势 。 评估测试套件中失败的测试用例这样的任务 , 变得更加简单 。 同样 , 我们可以安排在预定的时间执行测试用例 。 测试后的代码将与现存代码持续集成 。
4) 持续监控 监视阶段涉及整个DevOps流程的所有操作因素 , 在此阶段将记录并仔细处理有关软件使用的重要信息 , 以发现趋势并确定问题域 。 通常 , 监视被集成在软件应用的操作能力之内 。
监控数据可能是文档文件的形式 , 也可能在持续使用时生成关于应用参数的大规模数据 。 此阶段解决了系统错误 , 例如服务器无法访问、内存不足等 。它维护服务的安全性和可用性 。
5) 持续反馈 通过分析软件操作的结果 , 持续改进应用开发 。 由此 , 要设置一个当前运营的软件应用和下一版本开发之间的关键阶段 , 来接受持续反馈 。
【DevOps教程:DevOps 生命周期】 在 DevOps 中 , 连续性是至关重要的因素 , 因为它消除了开发软件所需要的不必要的步骤 , 使用它来发现问题然后生成一个更好的版本 。 这可能会降低应用程序的效率 , 并减少感兴趣的客户数量 。
6) 持续部署 在此阶段 , 将代码部署到生产服务器 。 同样 , 必须确保在所有服务器上正确使用该代码 。
DevOps教程:DevOps 生命周期文章插图
新代码不断部署 , 配置管理工具在频繁且快速地执行任务中起着至关重要的作用 。 以下是此阶段使用的一些流行工具 , 例如 Chef、Puppet、Ansible 和 SaltStack 。
容器化工具在部署阶段也起着至关重要的作用 。 Vagrant 和 Docker 是用于此目的的流行工具 。 这些工具有助于在开发、阶段、测试和生产环境中实现一致性 。 它们还有助于柔和地伸缩实例 。
容器化工具有助于在测试、开发和部署应用程序的环境中保持一致性 。 生产环境中不会出现错误或故障的机会 , 因为它们打包并复制了测试、开发和阶段环境中使用的相同依赖项和程序包 。 它使应用易于在不同的计算机上运行 。
7) 持续运营 所有 DevOps 运营都基于连续性以及发布过程的完全自动化 , 并使组织能够持续加快整体上市时间 。
从讨论中可以明显看出 , 连续性是 DevOps 的关键因素 , 它可以消除一些步骤 , 这些步骤经常会分散开发人员注意力、花费较长时间来发现问题并在几个月后才能生产出更好版本的产品的步骤 。 借助 DevOps , 我们可以提高任何软件产品的效率 , 并增加产品对于客户吸引力 。