AWS发布运维仪表盘的最佳实践指南

2020 年 11 月 22 日

AWS发布运维仪表盘的最佳实践指南

最近,AWSAmazon构建者库(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,通常最重要的是可用性的聚合图或汇总图,以及端到端延迟的百分比图表。


其他设计原则包括:


  • 确保时区的一致性,并显示在仪表盘上。

  • 在图表的布局上,需迁就预期的最小显示分辨率;

  • 确保提供可调整采集度量指标周期和时间间隔的功能;

  • 在图上标注报警的阈值和目标值。

  • 报警状态、简单数值和时序图组件可用于适当位置。


O'Shea 还说明了 Amazon 在用的各类仪表盘,其中最重要并广为使用的是用户体验仪表盘。此类仪表盘设计适用于各种利益相关者的需求,从服务运维者到管理人员。仪表盘展示服务的整体健康状态,以及多种当前进度情况的度量指标。所展示的数据可回答“受影响的客户数量”、“受影响最大的客户”等问题。



各类仪表盘是如何为不同系统层级提供视图(图片来源:Amazon官方网站


在系统和服务层面也应创建仪表盘,提供多种系统和服务运行状态视图,用于审计跨各区域的服务。系统层仪表盘上应包含足够的信息,支持查看系统任一端点的运行状态,服务层仪表盘应深入到所有的单一服务实例,为精准定位更深层次的问题提供视图。


指南最后探讨了仪表盘的维护问题。O'Shea 写道:


仪表盘的维护和更新,是集成于我们的开发过程中的。在完成变更前的代码审核期间,我们的开发人员会问,“是否有需要我们更新的仪表盘?”。因此我们授权开发人员,在部署变更前更新仪表盘。指南意在将仪表盘的创建和维护潜移默化到文化中。正如近期Tyler Treat在接受InfoQ采访时分享的,“文化是许多工作的出发点。我们必须提升可观察性的文化。如果团队并未将仪表盘展示作为系统的首要关注点,那么构建其它工具的意义也不大。”


此外,指南鼓励团队在事后剖析(post-mortem)中讨论是否需要改进仪表盘和自动化报警,以防患于未然,或是更快地发现问题。仪表盘的更改应使用与服务部署同样的工具,包括作为核心实践的版本控制和 IaaS。


最佳实践指南的全文已加入到Amazon构建者库中。资料库中包含了一系列的文档,阐述并探讨了 Amazon 构建、维护和操作软件的机制。


原文链接:AWS Publishes Best Practices Guide for Operational Dashboards


2020 年 11 月 22 日 10:001025

欲了解 AWS 的更多信息,请访问【AWS 技术专区】

评论

发布
暂无评论
发现更多内容

【架构师训练营】1 - 食堂就餐卡系统设计

悬浮

架构 UML 部署图

架构师训练营 第一周 学习总结

RZC

食堂就餐卡系统设计(第一周作业)

Geek_237932

【架构思维学习】week01

chun1123

软件架构 UML

作业一:食堂就餐卡系统设计

carol

食堂就餐卡 最用心

人工智能之机械基

码农神说

人工智能 程序员 加班

架构师训练营 第一周 命题作业

RZC

架构作业-UML图

铁血杰克

架构师 week 1 作业一

iLeGeND

架构师如何做架构-开篇

铁血杰克

架构师成长心得

熊威

学习总结--Week1

吴炳华

极客大学架构师训练营

第一周学习总结

Young

GitHub 热榜:轻量级无 Agent 的自动化运维平台!

JackTian

GitHub spug 运维自动化 开源项目 监控管理平台

架构师训练营Week1总结

sunnywhy

UML作业

王志祥

极客大学架构师训练营

孤狼王兴 | 互联网大佬往事

刘燕

AI 企业管理 美团

week1学习总结

慢慢来的比较快

第一章作业

李白

一篇文章快速搞懂 Atomic(原子整数/原子引用/原子数组/LongAdder)

学习Java的小姐姐

Java 并发编程 并发 synchronized Atomic

UML用例图组件图部署图

熊威

食堂就餐卡系统设计

Thrine

【架构思维-学习总结】week01

chun1123

学习 架构 思维方式

架构建模总结

任鉴非

Week1命题作业

星河寒水

部署图 时序图 组件图 用例图

食堂就餐卡系统设计

Young

食堂就餐卡系统设计

慢慢来的比较快

食堂就餐卡系统设计

Linkin

作业一:食堂就餐卡系统设计

晨光

第一章作业-学习总结

李白

【架构】— 一个简单系统的UML模型

不二架构

极客大学架构师训练营 UML 架构总结

AWS发布运维仪表盘的最佳实践指南-InfoQ