写点什么

微服务与容器的监控 —— 来自 Adrian Cockcroft 的挑战

  • 2015-07-09
  • 本文字数:1902 字

    阅读完需:约 6 分钟

GlueCon 2015 大会上的一场演讲中,Adrian Cockcroft 为听众列举了如何对微服务与基于容器的应用进行监控的多条规则。除了这些指导方针之外,Cockcroft 也着重强调了在监控 cloud native 并且基于容器的系统时所面临的一系列挑战,并介绍了一个由他设计的微服务模拟与可视化工具,名为“Spigo”,它能够帮助开发者对大规模微服务的监控进行测试。

Cockcroft 是来自于 Battery Ventures 的技术专家,他在演讲中首先列举了关于微服务与容器监控的一系列规则,这其实是于 Monitorama 2014 大会上首次提出的规则的一个升级版本。

  1. 将更多的时间用于编写对数据指标的意义进行分析的代码,而不是用于编写收集、移动、保存以及显示指标的代码。
  2. 让关键业务指标的延迟降低到人类注意力的持续时间以下 (约 10 秒左右)。
  3. 请验证你的衡量系统是否具有足够的精确度与准确度,并将收集到的响应时间数据以柱状图表示。
  4. 对于比目前监控中的系统(与服务)需要更高可用性与可伸缩性的系统进行监控。
  5. 对分布式的、短期的、“cloud native”、容器化的微服务的监控进行优化。
  6. 让指标与你的模型相一致,以便理解它们之间的关系(这是一条新的规则)。

Cockcroft 表示,这条新的规则,即“让指标与模型相一致”是必不可少的。因为基础设施、数据流以及自主权与组织结构等因素往往是互不相交的,只有将它们关联在一起,指标才能够表现出其意义。随后,Cockcroft 将微服务定义为“一种由边界上下文组成的松耦合面向服务架构”,在此定义的基础上深入讨论了在监控微服务与容器技术(例如 Docker )时所面临的一系列挑战。

首先提出的一个挑战是“复杂性”,Cockcroft 表示在一体性的应用程序内部的依赖是无限制的,比起具有明确的、可视的微服务依赖,其复杂性可能会高出许多,要检测出所有的外部依赖是一件非常困难的是。第二个挑战是“变更的速度”,它所表示的是在对基于容器的微服务应用进行持续部署时,可以实现的变更速率已经达到了相当的高度,这也带来了相应的问题:

对于容器应用来说,每分钟一次进行 CPU 占用率的检测已经失去意义了……从监控工具的角度来看,如何应对这种变更速率是一个巨大的挑战。

“大规模化”是第三个被提出的监控挑战,这里的规模不仅是指运行中的容器与机器的数量,还必需考虑到“ cloud native ”中的相关概念,例如地区和可用性区域。当然也要考虑服务本身的大规模化,以及可能会发生的多个版本的服务并行运行的情况。

Cockcroft 还表示,“数据流”也是微服务架构中一种内在的挑战。虽然有某些工具能够跨多个服务展示请求流,例如 Netflix 的 Atlas (以及相关的应用)、AppDynamics 的应用性能管理工具,以及Twitter 的 Zipkin ,但我们所关注的架构可能会包含多个微服务,这就意味着如何使这些服务做到可视化成为一个实在的挑战。

在微服务架构的应用程序中,产生“故障”的可能性是一个始终存在的挑战,而在云环境中,这一问题往往被进一步放大。举个例子,如果某个可用性区域出现了分区或故障,该如何在监控或分析平台中显示这一情况?按照设定,cloud native 的应用在出现部分可用性区域故障时会继续运行,因此这种情况本身并不算是一种“故障”。但应将这一情况通知系统的运维人员,甚至可能需要停止应用的部署。

在这种情况下,如何理解、并且对微服务的故障模式进行交流,这一点正是挑战之所在。

对于大规模的微服务及容器监控工具进行测试的过程会很快造成高昂的代价,因此,对这一场景进行模拟是一种可行的方案。Cockcroft 为听众介绍了他所设计的微服务模拟器“Spigo”(又名“simianviz”),可以通过它对你所关注的微服务架构进行建模与可视化。

Spigo,或者说 simianviz 是一个基于 Go 与 D3.js 开发的应用程序,能够生成人为的测试微服务系统。它完全能够模拟大规模的系统配置,最终目标是能够支持对实际应用中的监控工具进行负载测试。此外,Cockcroft 还计划让这套工具支持更多的特性,例如动态地变换代码提交以及配置的自动伸缩、支持 Netflix 用于处理区域及地区故障的 chaos gorilla 工具的建模,以及在 Spigo(simianviz)的多个显示之间建立 WebSocket 连接。

这是我为你提出的挑战:用 Spigo 创建你的架构,让它对你的监控工具进行负载测试,并让它帮助你修复微服务的监控过程中的问题。

关于 Adrian Cockcroft 在 GlueCon 大会上所做的演讲,可以在 Cockcroft 的 SlideShare 帐号下找到更多的信息与幻灯片。此外还可以在 GitHub 上找到 Spigo 或 simianviz 的源代码。GlueCon 是一个一年一度的开发者会议,它专注于云计算、DevOps、移动、API 与大数据,可以在 GlueCon 网站上找到更多的信息。

查看英文原文: Monitoring Microservices and Containers: A Challenge by Adrian Cockcroft

2015-07-09 09:063713
用户头像

发布了 428 篇内容, 共 197.8 次阅读, 收获喜欢 39 次。

关注

评论

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

游戏+NFT,脱虚向实外的另一可行场景

CECBC

索信达获金融街资本1亿元投资

索信达控股

解锁OpenHarmony技术日!年度盛会,即将揭幕!

OpenHarmony开发者

OpenHarmony 技术日

数字化时代,SaaS软件如何成为国产化替代的轻骑兵?

小炮

SWOOLE高性能内存数据库的使用和配置教程

CRMEB

Clubhouse为什么不火了?

InfoQ IT百科

53w字!阿里首推系统性能优化指南太香了,堪称性能优化最优解

爱好编程进阶

Java 面试 后端开发

Docker:第七章:Docker搭建私服-本地镜像库

爱好编程进阶

Java 面试 后端开发

2022年4月中国数据库排行榜:春风拂面春意暖,分数回升四月天

墨天轮

数据库 opengauss 国产数据库 KingBase gbase8a

架构实战毕业总结

王大胖

数字化时代,企业运维面临现状及挑战分析解读

云智慧AIOps社区

大数据 运维 数字化时代 大数据运维

智慧公安二维码定位报警系统开发 移动警务app

a13823115807

Ceph实战(一)-分布式存储介绍与原理架构概述

爱好编程进阶

Java 面试 后端开发

Docker镜像超详细介绍

爱好编程进阶

Java 面试 后端开发

区块链+数字资产,未来财富的新起点

CECBC

海口等保测评公司有几家?具体在哪里?哪里可以查到?

行云管家

网络安全 等保 等保测评 海南 海口

在安卓应用市场上架需要注意什么?

InfoQ IT百科

IDEA中Maven依赖下载失败解决方案

爱好编程进阶

Java 面试 后端开发

一级等保怎么做?要收费吗?等保要求是什么?

行云管家

网络安全 等保 等保2.0 一级等保

用数字“钥匙”打开发展新空间

CECBC

Android ANR分析(trace文件的产生流程)

北洋

4月月更

关于Signal Catcher线程中对线程的理解

北洋

4月月更

2021金九银十最新338道大厂Java架构面试高频题目+答案详解

爱好编程进阶

Java 面试 后端开发

Alibaba内部流行的“Java突击宝典”

爱好编程进阶

Java 面试 后端开发

Filter 过滤器和 Listener 监听器

爱好编程进阶

Java 面试 后端开发

LLVM之父Chris Lattner:编译器的黄金时代

OneFlow

编程语言 编译器 LLVM 加速器 MLIR

如何选择合适的 Neo4j 版本(2022)

亮小猪

neo4j 图数据库 图算法

阿里云云效研发协同服务相关协议条款 |云效

阿里云云效

云计算 阿里云 运维 研发 研发协同

36天突击腾讯终拿Offer! Redis、高并发

爱好编程进阶

Java 面试 后端开发

如何以Sonar为例创建一个适用与所有企业的测试步骤

阿里云云效

阿里云 运维 测试 sonar 研发测试

数据仓库架构演变和建设思路

五分钟学大数据

数据仓库 4月月更

微服务与容器的监控 —— 来自Adrian Cockcroft的挑战_服务革新_Daniel Bryant_InfoQ精选文章