最近,AWS在Amazon构建者库(Amazon Builders' Library)中添加了构建仪表盘的最佳实践指南。仪表盘用于实现运维的可见性。文档中详细阐明了Amazon现有的各类仪表盘,并探讨了创建仪表盘的最佳设计实践。
AWS首席工程师John O'Shea负责撰写这些构建者库中的新添文档。O'Shea指出,AWS的服务状态告知机制是通过仪表盘实现的,仪表盘向用户提供系统运行视图。但O'Shea也阐明,“我们发现只要运维过程需要人工检查仪表盘,那么无论多么频繁地检查仪表盘状态,也会由于人为错误而导致失败”。为解决这个问题,他们专注于创建一种自动化的告警机制,以评估系统运行所产生的最重要的数据。在某些情况下,报警会触发自动修复工作流。
Amazon还对随时待命(oncall)事件使用了仪表盘。运维人员可以使用仪表盘定位并隔离问题。O'Shea给出的一个主要应用场景,就是在每周例行运维审核会议上使用。此类会议的与会者包括一些企业高层、高级管理人员和高级工程师。会议中使用一种称为“幸运转盘”(wheel of fortune)的工具,随机选择某个团队的仪表盘,基于此讨论用户体验和SLO问题。
为设计一致且实用的仪表盘,Amazon创建了一系列需遵循的通用设计原则,并给出了效果测定方式,以改进和推进这些原则。测定方法之一,就是新的运维人员是否能快速地理解和使用仪表盘。这种度量指标驱动的方法完全符合最近Camille Fournier在接受InfoQ采访中提出的技术和策略。在这次采访中,她介绍了Amazon内部平台团队是如何交付更有效的产品。
原则之一是应从最终用户预期的角度回推工作,确保仪表盘符合用户的需求。O'Shea指出,“对仪表盘创建者而言,构建一个自己完全理解的仪表盘是非常容易的。但这样的仪表盘可能对最终用户是毫无价值的”。他们发现,用户倾向于重点解读最新渲染出的图表,而传统设计理念是将最重要的图表置于仪表盘的最顶部。对于Web Service,通常最重要的是可用性的聚合图或汇总图,以及端到端延迟的百分比图表。
Comments