DevOps教程:DevOps 生命周期

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