【文末赠书】SRE求职必会 —— 可观测性平台可观测性工程(Observability Engineering)

文章目录

  • 〇、导读
  • 一、实现可观测性平台的技术要点是什么?
  • 二、兼容全域信号量
  • 三、所谓全域信号量有哪些?
  • 四、统一采集和上传工具
  • 五、统一的存储后台
  • 六、自由探索和综合使用数据
  • 七、总结
  • ★推荐阅读《可观测性工程》
  • 直播预告
    • 直播主题
    • 直播时间
    • 预约直播 视频号:CSDN 预约直播提醒:《开讲》-现代化软件工程新趋势 ​; CSDN官网直播间也将同步转播!
  • 赠书活动


〇、导读

可观测性已成为一个热门话题,并广受关注。随着它的普及,“可观测性”不幸被误作“监控”或“系统遥测”的同义词。可观测性是软件系统的一个特征。而且,只有当团队采用新的实践进行持续开发时,才能在生产软件系统中有效利用这一特征。因此,将可观测性引入系统既是一个技术挑战,也是一个文化挑战。接下来让我们一起来了解一下可观测性平台

一、实现可观测性平台的技术要点是什么?

随着可观测性理念的深入人心,可观测性平台已经开始进入了落地阶段,它的先进性已经毋庸置疑;而另外一只靴子:它如何以一个统一融合的平台在企业中生根发芽?

可观测性并不是空穴来风,也非关键词炒作。大家不妨回顾一下我们所熟知的运维管理的演化历程,抛开运维管理中关于流程和人的那些繁文缛节。让我们只关注于:基础设施和应用架构的变迁,关注于这些层出不穷的技术工具侧面。

在这里插入图片描述

二、兼容全域信号量

从遥测方式的角度看:任何类型的信号都有各自的用途和道理,武断地选取其一作为可观测性的代名词是一种比较偏激的想法,在Debug生产环境的道路上,我们难以依靠单一方法。我们要根据不同应用系统的特点和服务类型,选择合理的SLI组合,用恰当的信号量来覆盖目标应用系统,目标是打造应用系统本身的「可观测性属性」。这样,你就必须要明智地选择、添加或变化信号类型,要能做到按需求,对症下药。这里不是监控数据源越多越好,盲目的全面覆盖亦是事倍功半的做法;在应对高维度、高基数的运维大数据的场景中,我们很容易走向存储成本飙升的局面,无效杂音数据还能严重稀释有价值的信息点。
在这里插入图片描述

三、所谓全域信号量有哪些?

  • 日志Log:文本记录系统和应用的活动、事件和错误,提供详细上下文。

  • 指标Metric:定量的性能度量,如CPU使用率、请求速率,帮助监控系统状态。

  • 分布式追踪Trace:跟踪请求在分布式系统中的路径和性能瓶颈。

  • 流数据Stream:实时产生的数据,如用户行为,用于即时监测和分析。

  • 用户体验数据RUM:记录用户在应用中的交互、操作和反应,评估体验质量。

  • eBPF:扩展Berkeley Packet Filter,收集内核级别的数据,用于分析和监控。

  • 网络性能管理NPM:监测网络带宽、延迟和连接状况,优化网络性能。

  • Profiling:分析代码运行时的性能特征,帮助优化应用程序。

  • 云服务Cloud:从云提供商获取的监测数据,跟踪资源使用和性能。

  • 拨测数据Uptime/synthetics:定期对系统进行外部测试,监测系统在不同地点和条件下的可用性和性能。

  • 未来新技术:未知类型数据。

可观测性管理平台」应当以兼容并蓄全方位的信号量为初始设计目标。这意味着:在观测数据的采集、上传、存储、展示以及关联分析的整个过程中,各类数据都需要被正确处理,能更合理、有效地进行跨类型的数据关联;在数据下钻的过程中,可以自由地在各种时间线之间跳转和探索。

当然,监控已知的「未知」是一项基本的管理需求,你应当能使用某一种信号量即可实现。而可观测性更多的是要讨论:在「未知」状态间进行变化的管理;这就需要「可观测性平台」能处理多层级、高依赖、多云环境、分布式系统下的高「复杂度」,信号量的全面准备和按需取用往往也只是一个必要条件。

目前市场上已经有许多运维管理平台都自称为「可观测性」管理平台。但他们中的大多数是从某个特定监控类型开始,并逐渐扩展覆盖其他更多信号类型。通常,只有能够涵盖3种以上信号类型的平台,才可能具有出色的实用效果;对于那些已经是有3至5年历史的「可观测性」产品而言,他们不太可能在短期内实现华丽的转身,也不可能会从头重构一遍自己的产品。

四、统一采集和上传工具

在物理机大行其道的时代中,对于一台主机(虚拟机或者物理机)而言,由于它很可能承担着多重角色。而且根据不同团队的管理需求,在其操作系统中会安装多种管理监控代理程序Agent,例如:操作系统指标、日志、数据库、中间件、安全巡检等等;这种叠罗汉的形式不仅给操作系统的资源带来了严重的消耗,甚至还给服务器的管理带来了大量的琐事,例如:数据库监控Agent还需要创建专用的用户账号等。为了解决这个问题,很多公司希望使用尽可能少的单一采集代理的模式,例如:BMC公司的Patrol监控产品,拥有多种采集模块KM(数据库、中间、web服务器等等),用户可以按需要进行配置,而不需要部署多个采集代理程序。然而,BMC公司会逐渐收购很多新产品,后来的产品有动态性能基线管理、自动化配置管理等等。从工具厂商的角度看,他们无法进行快速的产品整合,很难维持单一采集代理的局面。

在甲方企业的环境中,不同部门会根据自己的需求采购不同的管理工具,部门间的差异导致了工具的重复建设,数据的重复采集,而且数据并不会很轻易的在部门间共享。这样不仅带来了采集工具在同一个主机上的叠加部署,还会导致:独立运行着大量具有重复数据的孤岛运维数据数据库。这种局面进一步导致了其他问题,例如:同一个主机的同一个故障会在各种工具中都触发多条告警事件;事件风暴来临了。这种混沌的局面,给AIOps的工具带来了生存的空间,即使可以产生一些事件收敛和压缩的收益,但这里存在着一个很明显的“治标不治本”的错误。

时光穿梭到了虚拟化&云原生时代,以上局面并没有发生根本性的改变。反而带来了套娃式深层依赖关系的困境。我们不会把web、中间件、数据库、消息队列等功能跑在一个POD中,但是将其各自独立部署在可横向扩容的子服务(容器服务)中后,这就带来了管理对象的数量呈现指数级飙升的现状。容器时代带来了新鲜的监控工具,包括:Prometheus、Grafana、FluntD、Graphite、cAdvisor、Loki、EFK等等。我们可以观察到,新生的工具并不会完全改变:多种采集功能代理并存&叠加的局面。Elastic看到了部署多种相似代理程序的问题后,最近几年很快的将之前的多种Beats程序(多次收购的项目)整合成到了一个统一代理Elastic Agent中,而这个程序目前还只是多个Beats程序的马甲(包装壳)程序。

多种采集工具集不仅在端点上会造成大量部署和配置的琐事,而且,它们的后台都对应着各自的独立的数据库部署。同一个管理对象在不同的数据库中的字段描述基本上都不同,这导致:工具集的使用者很难在各类数据库中实现关联分析,用人脑携带着排错的上下文,在一堆控制台之间跳转是相当消耗体力的工作,对齐时间线和监控对象会很快耗尽人的认知上限。

CMDB可能是一个解决方法,而CMDB的设计和建设的难度并不亚于构建任何一个监控系统项目本身,用CMDB解决这个问题的实现难度大,成本高。数据治理也会是一个常见做法,而在这些运维数据库集合之间做ELT,做数据治理工作,最终实现异类运维信息的归一化的解决方式,也只是一个顺坡下驴的无奈之举,相关实施人员在项目中必将饱尝:将计就计的辛酸。

貌似最早由Elastic推出的统一数据模型(ECS)是一个让数据走向标准化定义的可行之道。我们也看到了:OpenTelemetry项目很快就采纳了Elastic ECS。CNCF在随后也推出了相似的观测数据定义模型。我相信CNCF一定是看到了,在它的技术蓝图中,可观测性和分析分类中相似&同类工具的快速繁荣。而这些标准也只能让我们望梅止渴,由于目前还没有看到多数厂商、大量开源项目都快速跟随实现和兼容落地的局面。

观测云的 DataKit 是一款多功能的采集代理程序,它具备解决上述问题的设计,它已经在兼容和对接更广泛的技术生态系统。任何采集代理程序在采集或者对接到了目标数据之后,它其实还需要处理一系列的细节,否则仍然无法实现「源头治理」,无法避免「garbage in gargage out」的窘境。

首先,DataKit 在组织封装数据时,所有字段的定义都遵从着一个观测云定义的数据字典(等同于Elastic ECS);
其次,上报数据包在封包前,还能做数据的Pipline处理,实现了数据字段的丢弃、质量控制、治理和脱敏等问题。
最后,DataKit的采集还可实现对接开源&闭源生态系统,例如接收DataDog的APM探针数据,对接OpenTelemetry的数据等等。它还能实现观测数据在网际、网络间的转发等。

五、统一的存储后台

在构建可观测性平台的过程中,每种类型的信号量都理应得到它最佳的容身之处:

  • Elasticsearch:在Elastic的ECS的加持之下,貌似它是一个很恰当的一库存所有的方案,但前提是你需要能hold住性价比。

  • 时序数据库:不一一列举,适合指标类时序数据。

  • 列数据库:以ClickHouse为代表的实时数据分析的列数据库,可兼容多种信号。

  • 关系型数据库:WHY NOT。

从数据入库的角度看,给每种信号量配置其最佳的数据库类型,貌似是一个皆大欢喜的局面。这也不辜负,目前各种开源数据库百花齐放的形势。

略过上面已经提到的数据孤岛和治理问题不谈。从查询的角度看,用户将不得不学会多种查询语言,前方有n种SQL语法需要你学习,否则你不得不开发维护一个一对多的查询界面。这里我们暂且不论述:你会如何实现可观测性数据的跨库数据关联分析。

问题:是否存在一种多模态的统一数据库,将多种类型的信号量数据融入一个统一的数据仓库中?

实际上,目前的可观测性SaaS提供商们,已经给他们的用户提供了这样一种统一融合的数据后端,起码从查询探索可观测性数据的使用体感的角度上,确实是已经做到了。而观测云也正在推出这样一款解决以上统一融合多态并存管理需求的数据库。观测云用户很快将在SaaS服务中,在私有部署的产品上使用到这种技术。

六、自由探索和综合使用数据

可观测性数据的价值体现在使用上,能自由的探索和综合的使用各种数据,才能放大数据的价值。在考虑到可观测性数据使用场景的时候,小编强烈建议大家运用「第一性原理」来进行思考,这样才能避免对经验的依赖,排除对新可观测性技术能平替所有旧技术的单纯幻想,才能回到可观测性技术的概念本源。

在这里插入图片描述

七、总结

本文从四个层面上对实现可观测性平台的技术要点,做出了一定深度和时间跨度上的探讨。希望:在您的工作环境中,统一融合的可观测性平台可以很快的落地。穿上两只靴子的你,可以脱离以前赤足上阵,光脚救火的困境。希望可观测性平台能够帮助到软件交付流水线中的所有人,运用可观测性来补Ops的锅,助SRE的威,壮Dev胆。

★推荐阅读《可观测性工程》

在这里插入图片描述

推荐理由:谷歌SRE核心专家、可观测性社区领袖撰写,国内可观测性领域独角兽企业观测云团队倾情翻译。可观测性技木落地买践指南,有效解决云原生时代软件系统运维难度大的痛点。推动IT系统实现高效交付、统一运维和持久优化。

购买链接: https://u.jd.com/nb2cA1B

适读人群

  • 软件工程师、产品经理、软件交付和运维人员。
  • SRE和DevOps。
  • 所有从事软件开发、运维、测试等领域的专业人士,以及对系统可观测性感兴趣的人士。

直播预告

直播主题

现代化软件工程新趋势论坛暨《可观测性工程》新书发布会

直播时间

9 月 20 日(星期三)19:00 - 20:30

《Observability Engineering》 出版于 2021 年,在海外已广受好评,是每一位想要了解可观测性技术的工程师都必须拜读的书。2023年 9 月 20 日 晚 19:00 ,机械工业出版社华章分社将联合本书的中译者「观测云团队」,在线上举办新书发布会,与圈内嘉宾们共同探索可观测性技术的新趋势与新未来。

预约直播 视频号:CSDN 预约直播提醒:《开讲》-现代化软件工程新趋势 ​; CSDN官网直播间也将同步转播!

在这里插入图片描述


赠书活动

🎉本次送书 2~5 本【阅读量越多,送的越多】
🎉参与方式:关注 + 点赞 + 收藏 文章,关注同名公众号(见文章末尾),发送:CSDN的ID或昵称 + 可观测性工程

❗❗ 注意:一定要关注公众号,不然中奖无效哦!

🎉通知方式:公众号通知

💡 提示:有任何疑问请私信公众号 :程序边界

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/136231.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

K8S名称空间和资源配额

Kubernetes 支持多个虚拟集群,底层依赖于同一个物理集群。 这些虚拟集群被称为名称空间。名称空间namespace是k8s集群级别的资源,可以给不同的用户、租户、环境或项目创建对应的名称空间,例如,可以为test、dev、prod环境分别创建各…

使用Linkerd实现流量管理:学习如何使用Linkerd的路由规则来实现流量的动态控制

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

video 视频编解码一些debug方法

文章目录 一、通过命令去获取一些数据1.2 确定我们xml配置文件: 二、查看我们芯片支持的编码能力三、通过log去获取信息 这个文章的主要内容是为了后期性能方面的debug, 设计到前期的bringup则没有 一、通过命令去获取一些数据 获取媒体相关的参数: # getprop |…

Postman —— post请求数据类型

1、Postman中post的数据类型 post中有以下数据类型 1、form-data 2、x-www-form-urlencoded 3、raw 4、binary 2、Postman请求不同的post数据类型 from-data multipart/form-data,它将表单的数据组织成Key-Value形式,也可以上传文件,当…

基于elelemt-ui封装一个表单

子组件 searchForm <template><el-formref"form":model"value":rules"rules":label-width"labelWidth":inline"inline"><el-form-itemv-for"field in fields":key"field.slot":label&q…

基于5G网络的智能车间MES设计方案

导读 在数字化转型建设过程中&#xff0c;机械制造企业的难点是智能车间的设计。随着5G技术的发展&#xff0c;大量的带网络接口的智能设备的投入使用&#xff0c;智能车间的实施成为可能。本文从车间生产计划调度、过程管控、设备管理、质量管理、能耗管理和物流仓储等方面提…

[网鼎杯 2020 朱雀组]Nmap 通过nmap写入木马 argcmd过滤实现逃逸

这道题也很好玩 啊 原本以为是ssrf 或者会不会是rce 结果是通过nmap写入木马 我们来玩一下 传入木马 映入眼帘是nmap 我们首先就要了解nmap的指令 Nmap 相关参数-iL 读取文件内容&#xff0c;以文件内容作为搜索目标 -o 输出到文件-oN 标准保存-oX XML保存-oG Grep保存-oA…

埃文科技受邀出席“安全堤坝”技术论坛

2023年9月11日&#xff0c;2023年国家网络安全宣传周河南省活动开幕式暨河南省网络文明大会在开封博物馆开幕。由CCF YOCSEF郑州举办的“聚焦数据交易监管技术&#xff0c;筑牢数据交易‘安全堤坝’”技术论坛在开封市博物馆二楼会议厅举行。埃文科技总经理王永博士与副总经理武…

如何让照片动起来?几个制作方法和注意事项分享

在现代社交媒体的时代&#xff0c;我们经常会看到一些有趣、生动的动态照片。那么小伙伴们知道如何让照片动起来吗&#xff1f;下面将分享几个简单的制作方法和注意事项。 1.使用书单视频王&#xff1a;我们在手机中打开这款应用&#xff0c;进入首页后可以看到照片动起来功能&…

自动化办公更简单了:新版python-office,有哪些更新?

#职场经验谈# 大家好&#xff0c;这里是程序员晚枫&#xff0c;小破站/小红薯都叫这个名。 去年4月开源了一个Python自动化办公项目&#xff1a;python-office&#xff0c;GitHub和Gitee都能看到。1行代码实现复杂的自动化办公任务&#xff0c;帮助不懂代码的小白&#xff0c;…

oppo手机换荣耀手机,便签数据怎么搬家?

有不少网友之前使用的是OPPO手机&#xff0c;但是在使用了三四年之后就需要再次更换手机了&#xff0c;这时候一部分用户会选择更换相同品牌的OPPO手机&#xff0c;还有一部分用户会选择使用其他品牌的手机&#xff0c;例如小米、荣耀、华为等品牌。有的网友表示自己从OPPO手机…

Redis新篇一:认识Redis

首先&#xff0c;很抱歉小伙伴们&#xff0c;前段时间一直都没有更新&#xff0c;我很抱歉&#xff0c;现在开始持续更新Redis相关内容啦&#xff01;有需要的小伙伴们可以持续关注一下小博主的新篇哦~ 希望对你们有帮助&#xff01; 作者&#xff1a;爱撸猫的程序员 博客地址…

基于CNN-LSTM的时序预测MATLAB实战

一、算法原理 1.1 CNN原理 卷积神经网络具有局部连接、权值共享和空间相关等特性。卷积神经网络结构包含卷积层、激活层和池化层。 &#xff08;a&#xff09;二维卷积层将滑动卷积滤波器应用于输入。该层通过沿输入垂直和水平方向 移动滤波器对输入进行卷积&#xff0c;并计…

数据结构——线性表之顺序表

目录 一.线性表 二.顺序表实现 2.1 概念及结构 2.2 动态顺序表 2.2.1 初始化与销毁函数 2.2.2 打印函数 2.2.3 尾插函数 2.2.4 尾删函数 2.2.5 扩容函数 2.2.6 头插函数 2.2.7 头删函数 2.2.8 任意位置插入函数 2.2.9 查找函数 2.2.10 任意位置删除函数 2.2.11 修…

SSM - Springboot - MyBatis-Plus 全栈体系(七)

第二章 SpringFramework 四、SpringIoC 实践和应用 3. 基于 注解 方式管理 Bean 3.4 实验四&#xff1a;Bean 属性赋值&#xff1a;基本类型属性赋值&#xff08;DI&#xff09; Value 通常用于注入外部化属性 3.4.1 声明外部配置 application.properties catalog.nameM…

最新在线IDE流行度最新排名(每月更新)

2023年09月在线IDE流行度最新排名 TOP 在线IDE排名是通过分析在线ide名称在谷歌上被搜索的频率而创建的 在线IDE被搜索的次数越多&#xff0c;人们就会认为它越受欢迎。原始数据来自谷歌Trends 如果您相信集体智慧&#xff0c;那么TOP ODE索引可以帮助您决定在软件开发项目中…

golang 自动生成文件头

安装koroFileHeader控件 打开首选项&#xff0c;进入设置&#xff0c;配置文件头信息"fileheader.customMade": {"Author": "lmy","Date": "Do not edit", // 文件创建时间(不变)// 文件最后编辑者"LastEditors"…

0018Java程序设计-springboot智慧环卫养管作业平台

文章目录 摘 要目 录系统设计开发环境 摘 要 本智慧环卫养管作业平台就是建立在充分利用现在完善科技技术这个理念基础之上&#xff0c;并使用IT技术进行对环卫养管作业的管理&#xff0c;从而保证环卫养管作业能够高效的进行&#xff0c;可以实现环卫养管作业的在线管理&…

etcd之读性能主要影响因素

1、Raft模块-线性读ReadIndex-节点之间的RTT延时、磁盘IO 线性读时Follower节点首先会向Raft 模块发送ReadIndex请求&#xff0c;此时Raft模块会先向各节点发送心跳确认&#xff0c;一半以上节点确认 Leader 身份后由leader节点将已提交日志索引 (committed index) 封装成 Rea…

PyTorch安装

PyTorch 根据自己的需求选择&#xff0c;然后复制命令&#xff0c;运行