服务开发架构随着业务发展的要求,从传统的单体架构逐步转向分布式架构,容器、容器编排、微服务等云原生技术的应用越来越广泛。服务粒度的加剧细化,服务数量的日益增多,不可避免造成系统的复杂程度越来越高,系统状态的可视化难度急剧攀升,监控技术和工具的革新迫在眉睫。2018 年,可观测性被引入 IT 领域,逐渐取代传统的系统监控技术,促使从被动监控系统数据转向主动观测应用关联的各类数据,成为云原生领域最热门技术之一。
5 月 25 日 论道原生第四期直播,「DaoCloud 道客」携手 Opentelemetry 中国社区,分享了企业级可观测性平台的构建方案,深入探讨了 Opentelemetry 的本质和价值。
01
如何构建
可观测性
「DaoCloud 道客」技术专家 -- 谭建主要介绍了什么是云原生可观测性,并分享了常用的可观测性方案 -- Apache Skywalking 和 Opentelemetry。可观测性出现前,在信息科学和系统领域,应用性能管理 (Application Performance Management,简称:APM) 技术用于监控和管理应用软件性能和可用性,也是人们常说的监控,其通过探针 (自动字节码注入或者手动 API) 的形式,采集并测量端到端的性能指标。随着应用复杂程度的上升,APM 在复杂场景中的信号采集受到了巨大的挑战。
为了构建企业级可观测性,或者在构建企业级可观测性平台过程中,需要提供一种低的成本追踪埋点方式,以及直观的内置统计分析仪表盘,除此之外,还要能够支持较复杂运维分析场景的查询定制和无代码开发,需要解决数据集中存储对高可用性的要求,需要平台能够满足可进行高速、大数据量查询,能应对数据规模的线性增长,满足所有团队的集中式访问,等等。
图片来源:刘征,《破解云原生的可观测性,2019》
目前主流的可观测性解决方案 -- Apache Skywalking,自2017年孵化以来,能力和架构逐渐完善,目前已支持可观测性中三大支柱:日志 (log)、指标 (metrics)、链路 (trace) 的数据采集,并提供不同语言的探针进行数据采集,然后通过后端处理进行数据分析,精简的架构只保留了采集、存储、处理三个端口,极大地减轻了运维团队的负担。Apache Skywalking New v9.x 是最新发布的一个版本,经过了很大的重构,整个 UI 都变成了国内企业比较常用的一种方式,感兴趣的伙伴可以去社区下载试用。
图片来源:https://skywalking.apache.org/
另一个常用的方案 -- Opentelemetry,与 Apache Skywalking 的区别在于,如果说 Apache Skywalking 是通过集成插件的方式支持日志 (log)、指标 (metrics)、链路 (trace)的数据采集,Opentelemetry 则是想通过统一的标准方式进行数据采集和处理,同时也支持不同语言的探针进行数据采集。由于 Opentelemetry 是一个与厂商无关的独立标准方案,因此数据采集完以后,如何进行数据的分析、查询、展示、存储等则需要企业另行考虑。
02
漫谈云原生
可观测性和 OpenTelemetry 的未来
Opentelemetry 中国社区发起人 - 蒋志伟主要围绕 Opentelemetry 技术进行了深入分享。
可观测性现在非常热门,在网上有很多相关的定义和概念,整体来说这是一个较大的命题,那么它的本质和价值到底是什么?
蒋志伟老师认为,如果把系统比作一座海上的冰山,监控仅能看到的是冰山之上,可观测性则能全面展现出冰山的全部。随着系统拥抱容器、微服务、服务网格等云原生技术,系统的监控门槛越来越高,对监控技术的要求也日益增多,需要监控的指标可以说是呈指数级增长,于是可观测性应运而生,被称之为下一代监控。在 IT 系统稳定性保障生命周期中,可观测性主要聚焦故障感知和故障定位两个方面。
简单来说,可观测性就是系统故障的可观测:通过业务、性能等指标的根因分析查找有没有故障,链路追踪故障在哪里,日志准确告诉我们故障的原因。
可观测性的解决方案有很多,Opentelemetry 为何如此受欢迎?
Opentelemetry 简称 Otel,由著名的 OpenTracing、 OpenCensus 两个产品,在 2019 年合并而来,拥有广泛的群众基础和强大的开发团队。此外,Otel 专注于监控数据采集,支持广泛的组件,通过兼容解析主流监控产品,把不同语言、不同系统采集到的数据平滑地接入可观测系统,助力企业实现标准化的统一数据采集,提供整体可观测能力。
Otel 让可观测性变得更灵活,其中核心组件 Otel Collector 兼容数采协议,使得主流采集器数据都能接入 Otel,让老监控系统更平滑过渡到可观测性系统,同时,可释放主流监控系统做采集的研发资源,避免重复造轮子;并实现解耦数据处理,给监控、数据平台带来更大扩展性和性能优化空间,让 Otel 在可观测性领域更容易普及。
数据采集完后,通过 Collector Exporters 开放加工后的数采数据,所有纳入 Otel 生态圈的平台都可以使用这些数据,这使得几乎所有云平台和知名开源、商业监控产品都选择拥抱 Otel。在大数据、高并发的场景下,Otel Collectors 分布式架构设计支持灵活采样,具有的多 Collectors 集群、负载均衡能力可轻松应对分布式、高并发系统,增强了可观测性系统高可靠和高可用。
对 Opentelemetry 感兴趣的小伙伴可以访问项目地址:
https://github.com/open-telemetry/docs-cn
本期直播内容涉及很多可观测性的技术细节,建议观看回放,欢迎点我加入群聊,为大家提供直播回放和演讲 PPT,以及技术交流。
在此感谢大家的积极参与,我们将继续为大家带来更多更好的内容。
本次活动的纪念品,待疫情结束解封后将陆续寄出,希望大家每期都能有所收获,我们下期再会。