IBM Well-Architected Framework
高效运维支柱专注于满足云工作负载洞察、数字化流程和维护主动运维态势要求的解决方案。这是通过关于部署团队、自动化和人工智能工具的实践和指导来实现的,旨在以安全、可靠和高性能的方式监控、管理和维护解决方案。
运维模式的示例包括“谁构建,谁运维”或建立站点可靠性工程实践。这些及其他的运维模式,都依赖于对业务、客户、管理员和开发团队的需求及背景的理解。
重要的是要了解,运维模式应持续评估、调整,并根据组织的需求量身定制,同时考虑行业、法规要求、现有解决方案和用户目标等因素。
使用脚本、智能代理和其他工具自动化常见和例行的运维任务,有助于维持高服务水平。
此原则应在团队和依赖关系中扩展,以实现端到端的效率/速度、准确性、减少错误、敏捷性,并确保运维环境内的一致性。
如今,运维团队在运维工具方面拥有众多选择,可能会针对特定运维方面选用多种最佳工具,若管理不善,这可能导致工具泛滥。
工具之间的差异和集成可能导致团队成员入职困难、许可和成本控制问题、敏捷性降低以及漏洞增加。运维团队应持续寻求最小化并整合所使用的运维工具和控制台。
并非每个解决方案都需要全天候可用性或即时响应时间。高效的解决方案必须在一个解决方案内支持多种服务级别,并允许将工作负载部署在最能满足其运行要求的基础设施上。
服务级别还将告知开发团队考虑应用级别的配置和仪表化,以支持业务目标和积极的用户体验。
高效的运维团队是多学科的,即他们包含支持一组应用所需的所有技能。实现此功能需要全面考虑工作负载的技术栈,包括应用和基础设施服务。
解决方案和运维工具必须通过支持运维工具和信息的集成(跨解决方案组件)和隔离(与其他解决方案隔离)来支持此模式。
许多运维实践是通用的,既可以自动化,也可以在 API 后面进行访问以获得更广泛的访问,例如,不仅要创建自动化来管理密钥,还要创建一个长期运行的 API 来执行密钥管理操作。
这种方法可扩展到新功能的引入和集成到动态工作流中。这既可以标准化流程,也可以减少团队间的等待时间。
创建高效运维解决方案的实践和指导。此指导告知团队如何实施高效运维原则,并确保复杂系统的可靠性、可用性和性能。这些实践帮助组织实现以用户为中心的可靠性目标,并维护其服务的健康状态。
高效的运维实践是可调整的,并且可以适当调整规模,以适合组织消费者、系统和服务的特定需求和背景。
组织特定的需求、工作负载和架构将决定采用哪些最佳实践。通过反馈、评估以及与组织云战略保持一致来进行持续改进,对于保持持续的效率和有效性至关重要。
期望的结果是建立一种可靠性和协作的文化,从而增强用户体验、推动业务价值并最大限度地减少中断。
每个拥有自己管理团队或 SRE 团队的云应用,都倾向于采用或构建一个监控方案。为最小化控制平面,运维团队应倾向于与中央工具团队合作,接入集中式监控方案。
将系统、事件和应用日志整合到一个中央位置,通过最大限度地减少运维人员必须监控和管理的日志源和位置数量,极大地简化了运维监控和问题诊断。这使得团队能够建立全面的监控系统,持续收集和分析来自系统各组件的指标和日志。当 SLI 偏离可接受范围时,这些系统会触发警报,使工程师或自动化流程能够快速响应以处理指示性信号。
传统的“中断-修复”模式在当今客户需求更高、多云解决方案泛滥、且缺乏熟练员工来管理一切的现代 IT 环境中已不再适用。人工智能辅助运维 (AIOps) 工具可帮助运维团队维护其环境的可用性、性能和安全性,并快速识别和解决环境中潜在和正在发生的问题。
采用 AIOps 通过以下关键活动实现:
基础设施规范和配置像代码一样进行管理,即使用自动化配置工具来实现配置管理,并确保跨部署的基础设施一致性。
将一致的基础设施配置编写为代码,可确保在 SLDC 生命周期各阶段和跨环境部署中实现可复现的环境。
此方法带来诸多关键优势,包括:
产品团队与利益相关者合作定义 SLO,并建立衡量服务弹性和交付情况的 SLI。SLI 与为实现既定目标而采用的 SLO(如延迟、错误率和正常运行时间)之间,可能与服务级别目标存在多对一的关系。
建立 SLO 和 SLI 可实现以下关键优势:
持续制定流程,概述在事件、变更和问题管理等关键过程中的角色、职责、沟通渠道和升级路径。这些流程确保云资源的功能性、安全性、可扩展性和成本效益。
常见的云运维流程包括:
明确定义流程的实施和管理包括进行流程模拟,模拟各种场景,确保团队做好充分准备,能够跨团队高质量、高效率地执行。
在意外事件发生后,团队进行事后分析和无指责调查,确定促成因素、根本原因以及响应的效率。随后采用数字化和/或自动化解决方案,防止将来发生类似事件。
此实践包括基于数据驱动的洞察、事后分析和利益相关者反馈进行定期审查和改进。此外,随着新服务加入并整合到环境中,与现有自动化解决方案的集成对于保持主动态势至关重要。
这确保流程不会停滞不前,而是不断发展以满足动态的业务目标、需求和挑战。
与安全团队协作,确保将安全措施集成到开发、部署和维护流程中。
这包括将安全和软件开发生命周期 (SDLC) “左移”,重点通过编码和自动化解决方案实施策略。
与安全团队持续协作,确保部署的工作负载始终符合动态的组织策略和业务目标。其他流程包括进行定期安全评估、纳入漏洞管理以及执行定期合规性检查。