云杉网络发布DeepFlow容器化微服务可观测性方案

应用软件架构经过单体架构、分布式架构,面向服务架构、微服务架构发展,在云计算、容器、网络等技术的支撑下,更多企业的新一代应用都开始选择使用微服务架构。
容器技术在LXC (Linux Container)、cgroups、namespaces 技术基础上发展成型,是更轻量化的虚拟技术。随着Kubernets的发展解决了大规模容器集群的编排和管理问题,将被拆分解耦的业务系统再统一管理起来让服务可以自由融合、彼此协作为业务的发展提供高效的基础能力。

01 |  容器化微服务面临的监控运维挑战

容器化微服务在具备面向业务功能、降低开发难度、增加容错度、服务间松耦合、弹性扩展、提高生产效率等优势同时,也面临服务发现、限流、权限、版本管理等挑战,服务监控也是其中挑战之一。

▌监控对象数量增大

传统监控以单体应用为粒度,结合计算、存储、网络等基础设施监控进行运维保障。但在容器化微服务架构下,监控粒度细致到容器POD或微服务API级别,使得监控对象的数量相比单体应用呈指数级增长。

▌监控路径动态变化

基于微服务架构的应用动态性是监控面临的一个重要挑战。应用系统由很多个微服务组成,同时运行于容器环境中,服务通过相互调用、自身处理产生出复杂的行为。微服务并不是静态的,而是随着业务需求不断变化,改变调用关系,处理过程以及优化路径。

▌信息维度多面

保障容器化微服务,首要基础就要有能力全面“度量刻画”微服务,这其中涉及到应用、系统、基础设施等相关资源属性和性能指标等,这是一张多维关联的知识图谱。以一个异常的服务访问路径为例,涉及到的指标包括错误率,调用延时等。仅仅发现异常还不足以解决问题,因此会继续产生一系列的疑问:
  • 路径上的异常服务有哪几个?
  • 服务运行在哪个节点上,哪个区域中?
  • 访问路径在异常前有无变化?
  • 服务历史中的调用关系有哪些?
  • 异常可能影响的范围?

回答这些疑问,任何单一维度的排查都是管中窥豹。必须通过关联服务、容器平台、网络流量、平台事件等数据信息,构建多维度的知识图谱,在解决问题的过程中方可成竹在胸。

▌传统监控难以触达

在云环境中,由于虚拟化技术应用,传统监控工具难以触达池化后的各类资源,导致“黑盒”化严重。此外,传统监控工具从数据开放性、架构扩展性、监控粒度上都难以满足云原生应用的需求。新兴可观测技术,旨在通过系统的外部监测数据(指标、日志、追踪等)实时分析系统的内部状态(吞吐、错误、时延等),彻底解决云内监控的“黑盒”问题。

02 |  监控与可观测性

随着业务系统不断上云,容器、微服务、持续发布等云原生技术被广泛采用,从而为IT系统的监控带来了全新挑战。为保障云原生应用的稳定性,可观测技术被越来越多的企业所采用。针对于IT系统,尤其是面向云原生应用,可观测技术应包含如下需求:

零侵扰

传统APM/NPM等工具,要么需要应用程序中打桩插码,要么需要基础设施中分光镜像,均会对IT系统进行侵扰。可观测技术使用外部数据做分析,因此采用零侵扰的方式获取监控数据,无需打桩插码、分光镜像,而是通过开放系统架构直接获取监控数据。零侵扰的另一方面是要求低功耗,不能因为采集数据而影响应用或基础设施性能,通常采集点功耗不能超过业务功耗的1%。

多维度

要保障云原生应用稳定运行,可观测技术必须包含多维度数据分析能力。具体来说,要将应用的API、容器、主机、网络等监控数据进行全栈关联分析。传统的APM工具,可以定位代码层问题,却无法追踪容器或主机网络服务引起的故障。而传统的NPM工具,又不能关联应用的TraceID从而追踪穿越NAT、LB等网元的流量。因此,多维度的全栈数据分析,是可观测平台的第二个需求。

▌实时性

云原生应用的动态性要求可观测平台必须具备实时性。如果应用的升级/扩容在分钟级完成,那么监控系统就必须提供秒级的反馈能力。注意,这里的反馈需要对海量指标/追踪/日志数据进行查找分析,因此对可观测平台的海量数据实时处理能力提出了极高要求。
在Google Cloud的定义中,“可观测性是可帮助团队有效调试其系统的工具或技术解决方案,并有能力探索未知或事先未定义的属性和模式。”
可观测性并不是通过简单使用一个工具所能具备,是需要根据企业组织、业务应用、基础设施以及已有的监控体系的需求现状,明确阶段目标,伴随着业务发展逐步建立,是一个持续发展的过程。
云杉网络与客户的共同实践,基于云原生应用发展的现状,通过DeepFlow®与客户的应用、网络、基础设施整合,综合分析各类指标、日志以及追踪数据,形成一站式的容器化微服务可观测性方案
                              

DeepFlow ®容器化微服务可观测性方案

DeepFlow®提供适用于容器化微服务的可观测性,解决云原生应用诊断难的核心痛点。通过对全局微服务(UniversalServices)间的通信访问、系统调用、平台环境等数据进行深度分析,提供监控告警、故障定位及风险排查,保障业务在云原生环境中的稳定、高效运行。
1

分钟级定位问题边界

基于容器化微服务的云原生应用出现故障时,快速明确问题边界是解决问题的第一步。基于知识图谱、微服务调用链、全栈追踪等功能组合,快速检索到异常单元所关联涉及到的其他维度信息和影响范围;直观展示系统、容器、虚拟主机全栈性能指标锁定性能洼地等。

大幅提升排障效率

排障过程并不仅是找到故障根因并修复,而是从定位、根因、修复、验证及预防一整套运维保障操作闭环。容器环境叠加微服务架构使得排障更加复杂,需要避免以单次异常故障为视角,避免以单一数据为依据判断根因进行排障工作,需要有效地将应用、容器平台、系统调用等运维数据进行关联,且对比指标、跟踪以及日志特征来提高根因的准确性;并通过历史视图、系统运行表现、修复验证等指标来确认从而提升效率。

微服务可用性指标

应用微服务化后,衡量判断众多微服务的质量以及可用性是一个繁琐的问题。涉及到不同开发团队,设定具体指标,周期性的记录和评估,发现性能洼地及热点等等。这些工作都是要建立在数据积累的基础之上,DeepFlow®平台也是基于此来进行对微服务各维度的画像评估。通过对应用中所涉及的几十、上百个微服务运行的历史指标数据进行量化分析,在一个运行周期中,能实时监控业务是否达到99.99%的可用性要求(Service Level Object),并分析出潜在影响可用性的各种原因。

运行环境

在公有云环境中,例如由腾讯云、阿里云等的云服务商提供的IaaS服务基础上,可以直接选择容器服务或者通过开源Kubernetes软件搭建容器平台,部署运行各类容器化微服务。DeepFlow ®通过零侵扰采集技术,获取各类运维监控数据,如基础设施资源配置、网络流量、API调用等,并通过后台实时数仓,对多维度数据进行实时分析处理,满足不同场景下的微服务可观测能力。

兼容现有监控工具

在监控体系发展以及客户的实际使用中,存在各类监控工具,如资源监控ZABBIX、容器监控Prometheus、日志监控ElasticSearch、应用追踪Skywalking等等。DeepFlow®凭借零侵扰、低消耗、高性能的流量采集技术,可以为现有监控工具补充难以获取的丰富指标数据,结合客户已有的环境及工具平台,达到监控数据关联,运维流程联动,满足微服务保障的告警、定位、排障以及预测量化服务质量的要求。
以DeepFlow®做为基础数据平台,结合Prometheus、ZABBIX、云监控数据构成对应用、系统、云基础设施的指标数据基础,通过开放数据对接告警平台、认证平台以及 Grafana等数据可视化平台,向微服务开发部门、业务部门展现关键指标数据。通过TraceID、SpanID、URL、资源ID等关键值关联追踪数据,在应用出现异常或者调优过程中,以高效对接历史指标趋势划定资源范围,使特定应用请求过程与指标钻取统计不再割裂。实现对云上微服务的全方位可观测能力。

总结

DeepFlow®容器化微服务可观测性方案,面向公有云K8s、容器环境。利用eBPF等新技术的零侵入特性实现对网络、系统、应用的全栈黄金指标的采集。对服务调用链以及Service mesh、iptables/ipvs、NAT的逐跳链路追踪,对服务访问的零采样全留存,并结合云资源知识图谱和变更事件数据,搭建立体化的微服务可观测平台。保障云及微服务业务有序可控发展。
%e5%be%ae%e4%bf%a1%e6%88%aa%e5%9b%be_20211228115643

Related Posts

IT系统为什么需要可观测性?

在IT领域中,简单而言,可观测性就是为复杂IT系统寻求白盒监控能力。

Read More

云杉网络DeepFlow基于Free5GC的方案示例

在运营商现网中的环境往往更为复杂,监控保障侧既要做到全面、实时、精准的数据处理和展示,又要在监控覆盖规模上具备灵活性和弹性,需要各方在推进方案落地过程中不断探索。

Read More