上QQ阅读APP看书,第一时间看更新
3.8 卓越运维与可维护性
卓越运维可以为应用程序带来巨大的差异化优势,实现以最小的停机时间为客户提供高质量的同等服务。主动进行卓越运维可以帮助支持团队和工程团队提高生产效率。可维护性与卓越运维息息相关。易于维护的应用程序有助于降低成本和避免错误,并让你获得竞争优势。
解决方案架构师需要针对运维进行设计,这意味着设计时应该从长远考虑如何对工作负载进行部署、更新和运维。对日志、监控和告警进行规划,通过捕获所有事件并快速响应以获得最佳用户体验,这一点至关重要。无论是部署基础设施还是应用程序代码变更,都应尽可能地实现自动化,以避免人为错误。
对部署方式和自动化策略的设计非常重要,因为它可以在不影响现有运维的情况下加快变更的上线速度。卓越运维计划还应考虑安全性与合规性因素,因为合规性要求可能会随着时间而变化,应用程序必须遵守这些要求才能运行。
维护可以是主动的或被动的。例如,当市场上出现新版操作系统时,你可以立即升级应用程序并切换平台,也可以先对系统的运行状况进行监控,等到软件生命周期结束后再进行变更。无论采取哪种策略,变更都应该以小步增量进行,并且需要考虑回滚策略。你可以通过设置CI/CD(持续集成和持续部署)流水线来自动化整个变更过程,还可以通过A/B部署或蓝绿部署进行上线。
关于运维的准备工作,架构设计应包含适当的文档和知识共享机制,例如,通过创建和维护运行手册对日常活动进行文档化,或编写剧本以通过问题来引导团队了解系统流程。这将让你在发生事故时迅速响应。发生事故后应进行根因分析来确定问题发生的原因,并确保不再发生。
卓越运维和维护是一项日常工作,每一次运维事故和故障都是学习的机会,从先前的错误中学习将有助于改善运维。必须对运维活动和故障进行分析,进行更多的试验并改进。更多关于卓越运维的考量见第10章。