• 生产监控和故障排除是DevOps / SRE的责任。
  • DevOps负责将问题和错误上报给相关工程师。

工具

主要工具类别包括:

  • 版本控制:跟踪软件版本的工具,无论是手动还是自动。这意味着对版本进行编号,并跟踪配置和存在的任何环境相关性,例如数据库的类型,品牌和版本。操作系统详细信息;甚至是所需的物理或虚拟服务器的类型。此类别与变更管理工具有关。
  • 构建和部署:用于在整个DevOps流程中自动构建和部署软件的工具,包括持续开发和持续集成。
  • 功能和非功能测试:提供自动测试的工具,包括上面列出的最佳实践。测试工具应提供集成的单元,性能和安全性测试服务。目标应该是端到端自动化。
  • 供应和变更管理:用于提供部署软件所需平台的工具,以及监视和记录配置,数据或软件发生的任何变更的工具。这些工具确保无论发生什么情况都可以使系统恢复稳定状态。

最佳做法

1.测试自动化

为了编写高质量的代码,开发人员需要定期测试软件。 DevOps允许进行早期测试,这使开发人员有机会在软件开发过程中而非过程的后期识别和解决问题。

与手动测试相比,自动测试可以更快地执行SDLC(软件开发生命周期)。使用回归测试和负载测试,可以将测试自动化应用于数据库和网络更改,中间件配置以及代码开发。

可以通过执行各种活动来完成测试自动化,例如识别测试场景和案例,选择正确的自动化工具集,设置适当的测试环境,运行测试案例以及分析结果。

2.集成配置管理

配置和变更管理是操作的组成部分。配置管理涉及跨网络,服务器,应用程序,存储和其他托管服务进行的系统范围配置的自动化,监视,管理和维护。

集成的配置管理使开发团队具有更广阔的视野。它允许在软件开发过程中利用现有服务,而不用花费时间和精力从头开始重新发明新服务。

3.集成变更管理

变更管理是一个过程,在其中更改和重新定义配置以满足动态情况和新要求的条件。在配置管理过程中,如果需要进行任何更改,那么更改管理就会进入画面。运营团队就变更可能在更大的范围内暴露出哪些机会和后果以及可能影响到哪些其他系统提供意见。

4.持续集成

这是DevOps软件开发实践,开发团队会定期更新存储库中的代码更改,然后运行自动构建和测试。持续集成实践使开发人员可以更快,更频繁地进行集成。 CI工具可帮助他们检测新代码和现有代码中的集成挑战,并仅在早期阶段解决它们。因此,CI改善了团队之间的协作,并最终构建了高质量的软件产品。

5.持续交付

持续交付是DevOps的一种实践,其中新开发的代码由开发人员更新,通过自动和手动测试在不同阶段由QA团队进行测试,一旦案例通过所有测试,便进入生产。它使开发团队可以在短周期内更快,更频繁地构建,测试和发布应用程序。

它可以帮助组织增加交付数量,减少人工工作,将生产过程中发生故障的风险降到最低等。

6.持续部署

部署过程包含各种子过程,例如代码创建,测试,版本控制,部署,后部署等。在连续部署过程中,一旦代码成功通过了QA中的所有测试用例,代码就会自动部署到生产环境中。 ,UAT和其他环境。许多执行连续部署的工具从阶段到生产都需要最少的人工干预。

7.应用程序监视

无论是将其部署在云还是本地数据中心上,应用程序基础结构监视对于优化应用程序性能都至关重要。如果在发布过程中有bug击中了应用程序,那么它将变成失败。因此,对于开发团队和运营团队而言,考虑主动监视并检查应用程序的性能非常重要。各种工具可用于应用程序监视,这些工具提供了许多与应用程序,基础架构,销售,图形,分析等相关的指标。

8.自动化仪表板

通过自动仪表板利用DevOps智能。它将提供数据以及每项操作的详细见解和报告,例如运行的测试数量,测试的持续时间,测试失败和成功的数量。它允许查看对数据库和服务器所做的配置更改以及在系统中进行的部署。

仪表板充当集中式枢纽,使运营团队能够获得实时数据见解,从而帮助他们选择正确的自动化工具测试集。此外,还有各种日志,图形和度量标准,使操作团队可以全面了解系统中发生的更改。