前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >【译】怎样监控与可视化微服务架构

【译】怎样监控与可视化微服务架构

作者头像
极客人
发布于 2018-08-30 07:48:23
发布于 2018-08-30 07:48:23
2.1K0
举报
文章被收录于专栏:我是极客人我是极客人

最近一直在考虑如果有个东西展示我们的多个微服务之间调用关系,以及显示它们的状态,并通过网络拓扑图的方式显示数据的流向、错误追溯,如果做的通用起来一定是个好的框架。主要的思路就是给各个微服务制定一定的通信协议,让他们遵守一定协议上报到服务器,服务器进行UI展示。常言道,“国外的公司会玩”,才发现一些公司已经给做出来了。 本文翻译自:Tools to Monitor and Visualize Microservices Architecture | ProgrammableWeb

构建和部署分布式应用程序后,监视和可视化它至关重要,以确保软件的可靠性,可用性和预期的性能。这并不容易。

微服务架构驱动的应用程序的异构和分布式特性使得监视,可视化和分析成为一个难题。传统的应用程序监控和性能管理(APM)解决方案不适合当今复杂的分布式应用程序。

幸运的是,在过去的几年里已经推出了几种新的APM解决方案来解决这些问题。这些APM解决方案利用人工智能(AI),机器学习和图形分析等先进技术来监控,可视化和分析微服务架构。许多现代APM解决方案还包括有效管理微服务体系结构所需的分布式跟踪和拓扑可视化功能。

分布式跟踪和拓扑可视化

当前的开源分布式跟踪系统包括Zipkin,HTrace,X-Trace和Trace。还有OpenTracing项目,旨在提供与供应商无关的 API,以便可以在所有流行的平台上实施分布式跟踪和上下文传播。

Battery Ventures的技术研究员,Netflix前任首席架构师Adrian Cockcroft在最近的一次演讲中描述了分布式跟踪,他说:“分布式跟踪系统几乎实时地收集端到端延迟图(迹线)。你可以比较痕迹来理解为什么某些请求需要比其他请求更长的时间。

并非所有可用的开源分布式跟踪系统都包含拓扑可视化功能,这可能是一项重要功能。拓扑可视化对微应用架构和其他分布式应用程序中的应用程序布局进行映射或图表化。当您需要发现性能问题和其他问题时,这样做非常重要。

SimianViz演示屏幕截图,更复杂的Netflix可视化

Adrian Cockcroft最近发布了一个新的开源工具SimianViz(以前称为Spigo),它可以生成对复杂微服务的大规模模拟。公司可以使用这些模拟来进行拓扑可视化,并且可以对微服务监控解决方案进行压力测试,而无需设置大型测试配置。

Netflix和LinkedIn等主要技术公司已经建立了自己的分布式跟踪和性能监控解决方案。对于Netflix而言,由于其需要可扩展性,因此对其多种分布式跟踪工具的需求受到驱动,因为大多数商业工具无法在Netflix所需的级别进行扩展。Netflix还使用各种可视化工具,包括按需CPU 火焰图来分析和优化Java和Node.js应用程序的性能。

LinkedIn有一个实时分布式跟踪系统,它使用Apache Samza结果来构建实时呼叫图。调用图用于LinkedIn分布式架构的性能优化和根本原因分析。

大多数公司没有像LinkedIn和Netflix这样的公司的大量资源,因此从头开始构建定制的分布式跟踪和性能监控解决方案可能是不可能的。幸运的是,任何规模公司的开发人员都可以使用许多工具来监视和可视化分布式应用程序。

微服务架构的监控和可视化

任何构建于微服务架构上的系统都有很多。微服务体系结构通常由几十个甚至几百个细粒度的服务组成; 每个用户交易都经历了许多这些服务。另外,事务通常是异步的,涉及多个并发服务请求。传统的APM产品通常无法监控处理多个并发服务请求的分布式应用程序。

它们固有的复杂性和高可扩展性要求导致了使用机器学习,图形分析,分布式跟踪,拓扑可视化和其他尖端技术的应用程序监视和可视化工具的创建。

以下是这些解决方案的几个示例,因此您可以了解可用的工具以帮助您了解软件中发生的情况。

AppDynamics

图片来源:AppDynamics

虽然AppDynamics已经有相当长的一段时间了,但该公司在2015年6月推出了机器学习驱动的APM产品,以监控,管理和分析诸如微服务之类的复杂体系结构。AppDynamics实时显示应用程序性能并自动发现应用程序拓扑和相互依赖关系。其APM工具还包括分布式跟踪,拓扑可视化和动态标记。

开发人员可以使用AppDynamics来确定分布式应用程序的运行状况,了解事务路径,确定服务失败的根本原因,并获得对微服务体系结构的其他重要见解。AppDynamics API可以帮助扩展和定制平台的功能。

Instana

图片来源:Instana

Instana是Web应用程序的监控和管理平台,成立于2015年4月。其关键特征之一是智能虚拟机器人助理Stan。

Stan帮助Instana用户(即开发人员和DevOps)通过即时通知来监控和优化复杂的应用程序和体系结构。Stan拥有丰富的DevOps知识,并不断学习和理解尖端的应用程序组件和体系结构。机器人助手依赖于多种技术,包括动态依赖图,自动发现和传感以及组件和系统的健康预测。Instana还包含一个实时知识引擎,可自动发现应用拓扑和相互依赖关系。

Instana使用机器学习,数学算法和专有知识系统来提供动态图形和可视化。Instana公司承诺,开发人员可以测量分布式应用程序的健康状况(延迟,错误率等),了解服务关系和相互依赖性,调查特定事件和服务故障(实时和历史),并获得更好的理解的整体应用程序。

Netsil

图片来源:Netsil

Netsil分布式应用监控和分析平台成立于2016年,自动发现完整的应用拓扑结构,持续监控分布式应用,执行分布式跟踪以及分析应用指标(从历史到现在)。

基于微服务的应用程序由多个服务组成,通常使用不同的语言和框架构建。虽然分布式应用程序的服务可能使用多种语言和框架,但这些服务的协议通常是相同的(REST,HTTP,RPC,pub / sub等)。像Netsil这样的一些APM工具可以与这些通用协议监控服务集成,无论语言或框架如何。

Netsil监视和捕获分布式应用程序服务交互数据,以创建可视化,帮助开发人员发现和管理事件,衡量应用程序的整体运行状况,并理解应用程序的组件和依赖关系。

OpsClarity

图片来源:OpsClarity

OpsClarity于2015年12月推出,是一款面向高速Web规模应用的智能监控和分析平台。OpsClarity承诺的功能包括自动拓扑发现和度量收集,拓扑可视化和性能监控。

它的一个组成部分是一个操作知识图表,它理解并不断学习操作数据模型,服务拓扑和其他应用程序/系统性能基线。开发人员可以利用OpsClarity RESTful API来捕获自定义指标,为每个指标标注注释,并推送指标和事件。OpsClarity还提供了监视和分析工具,可显示自上而下的统一视图以及深入数据可视化

OpsClarity使用AI和图形分析来可视化和分析大规模分布式应用程序。基础架构主机地图显示每台主机或服务的运行状况; 拓扑图帮助开发人员了解服务依赖性和基础架构组件; 时间线功能使开发人员能够回顾并查看以前的系统状态,以了解错误和失败的发生情况。

共同能力

本文中突出显示的大多数APM工具都包含常见功能,例如自动发现应用程序拓扑和相互依赖性,监视应用程序运行状况,服务级别警报以及重播系统状态。

自动发现应用程序拓扑和相互依赖性可节省开发人员的时间,并缩短平均修复时间(MTTR)。开发人员不必花费数小时就可以找出服务关联和映射应用程序组件。应用程序拓扑的可视化可以帮助开发人员识别和减少服务依赖性中的瓶颈。

分布式应用程序中的服务可能存在延迟问题,错误和其他影响应用程序整体运行状况的问题。监视应用运行状况并提供服务级别警报的工具可帮助开发人员快速发现并修复应用程序问题

一些APM解决方案包括历史重播功能,可帮助开发人员调查和确定服务故障和错误的根本原因。系统状态的历史回放还可以帮助开发人员发现拓扑变化并更好地了解整体应用。

新一代APM工具

复杂的分布式应用程序数量持续增长,需要新型的应用程序监控和可视化工具来帮助烦恼的开发人员迷失在调试迷宫中,弄清楚:“为什么不按照它应该的方式工作? !”

多个应用程序监视和管理平台正在尽力让开发人员洞察这些复杂的,相互关联的应用程序。这些APM平台利用了人工智能,机器学习和图形分析等先进技术。

传统的应用程序监视和管理平台已经不够用了。随着应用程序体系结构的不断发展和变得越来越复杂,监控,分析和管理应用程序的工具也必须发展。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-08-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 我是极客人 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
可观测性就是对“监控”的包装?
作者:软件质量保障 知乎:https://www.zhihu.com/people/iloverain1024
互联网金融打杂
2022/08/01
6730
可观测性就是对“监控”的包装?
监控解决方案:10个 Kubernetes 监控工具
Kubernetes (K8s) 是开发人员中最常用的容器编排平台。它自动化部署、扩展和管理容器的能力彻底改变了我们大规模构建和运行应用程序的方式。然而,随着 Kubernetes 变得越来越流行,为了提供高性能应用程序,对强大的监控解决方案的需求变得更加迫切。
DevOps云学堂
2023/08/22
2.9K0
监控解决方案:10个 Kubernetes 监控工具
从可视化谈管理微服务
  很多人认为,在微服务架构下,可视化变得不重要了,因为发生问题时,服务会自动降级、熔断,容器会自动隔离、重生,似乎一切都可以自动化。然而很多实施了微服务改造的IT组织发现,随着应用和服务数量的不断增加,调用关系越来越复杂,遇到疑难杂症还是需要运维强力支持,而且运维好微服务这个庞然巨兽,可视化至关重要。  
要不要吃火锅
2019/10/10
2.1K0
2022 APM工具对比​
调研市面主流APM(Application Performance Management)工具,了解不同工具的优缺点,再结合团队目前遇到的主要问题,选择最合适的一款。
TestOps
2022/12/12
2.8K0
2022 APM工具对比​
微服务架构开发实战:如何实现微服务的自动扩展?
前面讲了一些关于自动扩展的理论知识,但如何实现自动扩展,并不是三言两语就能够说得清楚的。特别是为了实现前面提到的那些自动扩展的模式及策略,在操作系统级别方面会需要大量的执行脚本。在自动扩展方面,SpringCloud框架也并没有给出确切的答案。
愿天堂没有BUG
2022/10/28
8170
微服务架构开发实战:如何实现微服务的自动扩展?
微服务中能付出什么, 得到什么
这篇文章目的是强调,只有当我们付出足够的努力来处理我们将要面对的组织和分布式计算问题时,才能获得微服务并从中受益。在后面的段落中,您将发现我们从真正的微服务中得到了什么,以及它们从我们这里得到了什么。
程序你好
2018/07/20
4890
APM(应用性能监控) 行业认知系列 - 一
我在 2017 年学习 APM 行业相关知识并获取相关认证时总结的笔记(知识是16-17年的知识)。今天偶然翻到了,看了一下仍然有一定意义,所以重新整理发出。总共会有 十七 部分。
东风微鸣
2022/04/21
1.1K0
APM(应用性能监控) 行业认知系列 - 一
应用技术架构 —— 微服务架构
在 2010s 进入移动互联网(web3.0)时代,互联网用户规模再次迎来井喷式增长,面向服务的技术架构在服务海量规模用户时显得力不从心。SOA 架构中 ESB 存在单点以及 RPC 中缺少服务的治理能力,ESB 和 RPC 架构都很难满足移动互联网海量用户的要求,微服务开始出现,并成为今天技术架构的主流。
腾讯云 CODING
2022/03/16
1.8K0
应用技术架构 —— 微服务架构
详细描述微服务架构模式 | 微服务系列第三篇
虽然微服务通常是单独部署的,但大多数企业级微服务架构要求服务彼此交互以及与其他外部服务交互。 使用进程间通信(IPC)机制实现该通信。 根据应用程序的要求,微服务之间的通信可以是同步的或异步的。
魏新宇
2018/08/16
8510
详细描述微服务架构模式 |  微服务系列第三篇
微服务 - 从想法到迈出第一步
原文作者:Michael Douglass 原文地址:https://codeburst.io/microservices-from-idea-to-starting-line-d6e8cd5e9bb
双愚
2018/06/25
6160
微服务 - 从想法到迈出第一步
主流微服务全链路监控系统实战
随着微服务架构的流行,服务按照不同的维度进行拆分,一次请求往往需要涉及到多个服务。
码猿技术专栏
2023/08/10
7780
主流微服务全链路监控系统实战
容器和微服务的五个关键真相
企业可以将容器与微服务结合使用,使其能够创建更加一致且轻量级的开发框架,该框架是云计算的最佳选择。而容器和微服务是可以在云计算中实现更高效率的两项前沿技术。虽然它们不需要组合使用,但当它们一起使用时,可以提供更多的好处。
静一
2018/12/26
1K0
微服务链路监控系统-Pinpoint
随着微服务架构的流行,服务按照不同的维度进行拆分,一次请求 往往需要涉及到多个服务。这些服务可能不同编程语言开发,不同 团队开发,可能部署很多副本。因此,就需要一些可以帮助理解系 统行为、用于分析性能问题的工具,以便发生故障的时候,能够快 速定位和解决问题。全链路监控组件就在这样的问题背景下产生了。 全链路性能监控 从整体维度到局部维度展示各项指标,将跨应用的 所有调用链性能信息集中展现,可方便度量整体和局部性能,并且 方便找到故障产生的源头,生产上可极大缩短故障排除时间。
yuezhimi
2020/09/30
1.6K0
微服务链路监控系统-Pinpoint
微服务的下一步,离不开服务网格
软件行业走了很长一段路,在整个过程中,软件体系结构也已经发展了很多。经历了1层(单节点),2层(客户端/服务器),3层和分布式,我们在此过程中看到了一些不同的软件架构模式。
xcbeyond
2021/04/02
3590
微服务与SOA实践
对于什么是微服务,什么是面向服务的体系结构以及它们如何相互关联存在很多混淆。从马丁福勒到史蒂夫琼斯的每个人都在关注这个问题。
李郑
2018/06/20
9760
DevOps驱动的人保微服务平台建设之路
2018年,我们在人保寿险进行了微服务平台建设。针对保险行业,微服务建设有哪些需求,我们又是如何应用DevOps理念的,本文我就和大家分享一下我们在人保寿险的微服务建设之路。希望通过本文,大家能够拨云见日,真正的使DevOps成为企业生产力增长的助推器。
yuanyi928
2018/10/23
7190
DevOps驱动的人保微服务平台建设之路
推荐一款开源的链路监控系统
用过cat、pinpoint、skywalking等链路监控系统,各有优劣,但用的最多的还是pinpoint,工作6年,其中有4年都在用pinpoint,所以也比较熟悉,之前也有过介绍如何安装部署,可以去参考如下文章:
大侠之运维
2024/09/25
4300
杂谈|如何做业务系统上下游的链路监控
全链路监控主要源于现代互联网服务的复杂性和分布式特性,随着近年来微服务架构的普及,服务按照不同的维度进行拆分、组合,一次请求往往需要涉及到多个后端服务,而这些服务可能由不同的团队开发、使用不同的编程语言实现,并部署在几千台服务器上,横跨多个数据中心,这种复杂性使得管理和监控整个系统的行为变得尤为重要。
六月暴雪飞梨花
2025/01/03
2070
杂谈|如何做业务系统上下游的链路监控
Istio+K8s,微服务的双剑合璧!
服务网格(Service Mesh)用来描述组成这些应用程序的微服务网络以及它们之间的交互。
小仙女闯运维
2020/09/23
3K0
一文读懂分布式追踪的历史发展点滴
Hello folks,我是 Luga,今天我们来聊一下可观测生态领域相关的技术 - Distributed Tracing(分布式追踪)。
Luga Lee
2023/09/22
1.2K0
一文读懂分布式追踪的历史发展点滴
相关推荐
可观测性就是对“监控”的包装?
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文