2.1.10 DevOps架构师
当系统变得越来越复杂,出现人为错误的可能性就越来越大,这可能会导致额外的工作、成本的增加、质量的降低。自动化是避免故障并提高系统整体效率的最佳方式。现如今,自动化已经不是一个可有可无的选择,如果想变得敏捷且行动更快,自动化不可或缺。
自动化可以应用在任何地方,无论是测试和部署应用程序,还是启动基础设施,甚至是确保安全性。自动化起着至关重要的作用,DevOps架构师可以让一切都实现自动化。DevOps是实践和工具的组合,有助于以更快的速度交付应用程序。
这样可以使组织更好地服务于客户,并在竞争中保持领先。在DevOps中,模型开发团队和运维团队同步合作。对于软件应用程序,DevOps架构师定义了持续集成和持续交付(CI/CD)。在开发团队将其代码变更合并到中央存储库之前,CI将进行自动构建并执行测试。CD扩展了持续集成,在构建和测试阶段后将所有代码更改部署到生产环境。
DevOps架构师将基础设施的部署自动化,即所谓的基础设施即代码,这在云环境中非常普遍。DevOps可以利用Chef和Puppet等工具进行指令性自动化,如果工作负载在云环境中,则可以使用云原生工具。基础设施自动化为开发团队的实验提供了极好的灵活性,并使运维团队能够创建副本环境。
为了平稳的运维,DevOps架构师规划了监控和告警机制,并在出现问题或任何重大更改时进行自动化的通信。任何安全事件、部署故障或基础设施故障都可以被自动监控,并且在需要时通过移动设备或电子邮件向相应团队发出告警。
DevOps架构师还为灾难恢复规划了不同的部署方式。组织恢复点目标(Recovery Point Objective,RPO)是指组织可以容忍的数据丢失量。恢复时间目标(Recovery Time Objective,RTO)表明应用程序需要花费多少时间来恢复并重新开始运行。更多关于DevOps的内容见第12章。