热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

降本:云原生可观测性新定义

“您可以从三个选项中(快速、便宜或好)选择两个”提出这个问题的人可能不是可观测性工程师。但也可能是,在可观测性方面,决定您

“您可以从三个选项中(快速、便宜或好)选择两个”提出这个问题的人可能不是可观测性工程师。

但也可能是,在可观测性方面,决定您是否想要“快速、负担得起或深入的洞察力”传统上是工程团队的首要任务之一。从历史上看,我们所依赖的监控架构和工具并不能让我们拥有一切,至少在分布式云原生应用程序的环境中是这样。

幸运的是,至少在可观测性方面通过重新思考监控方法的基本原理,您可以拥有一切。您可以快速获得深入的见解,而无需为监控工作流付出代价。

听起来好得令人难以置信?继续阅读来了解如何在云原生可观测性方面围绕成本和深度(以及速度)进行平衡。

当工程师拥有一切时:传统的可观测性方法

在可观测性方面,过去几代的工程师不必在成本、深度或速度之间做出选择。他们无需尝试就拥有这一切。

这是因为他们使用的是集中的、单一的应用程序。在这种情况下,收集足够数量的监控数据以实现完全知情的管理决策并不需要花费太多时间或金钱。多数情况下,只需将轻量级监控 SDK 集成到单体应用程序中,并让它收集基本指标和日志数据。设计简单,工艺简单,成本低。

这种方法在以单体和单节点应用程序部署为主的世界中运行良好。没有人质疑它,因为没有理由质疑它。

事情是如何分崩离析的:云原生可观测性的曙光

在过去十年左右的时间里,许多工程团队遇到的问题是,当采用传统的、对单体友好的监控架构并尝试将其移植到分布式云原生应用程序上时,将无法再拥有这一切。

您不一定能快速监控,因为将 SDK 集成到所有微服务中需要时间。此外还需要收集更多数据,因为不仅要处理来自单个应用程序的一些基本指标。相反,你从一堆微服务中获得了大量的日志和指标(不要忘记你的踪迹!)。

以具有成本效益的方式收集所有数据也非常困难。您可能会遇到高额的出口费用,只是为了将数据移动到可以分析的地方,还要支付存储费用。冰川层存储可能很便宜,但当拥有大量需要保留多年的监控数据时,它就会增加。

加快云原生可观测性并降低成本的一种方法是仅收集工具随机选择的一些数据,而不是尝试收集和分析可用的每一个日志、指标和跟踪。但随后您将进行抽样——没有人愿意成为数据抽样者,因为数据抽样意味着可能会由于数据收集和分析不完整而错过重要信息。

如果依赖于分布式应用程序的传统可观测性策略,您最终将面临笔者喜欢称之为成本深度权衡的问题。可以快速且廉价地进行观测,或者选择深入观测,但要付出高昂的时间和精力。你不可能拥有一切。

摆脱成本深度的权衡

幸运的是,如果退后一步重新考虑可观测性方法,您会意识到可以进行廉价和深入的观测。

诀窍在于:无需尝试收集和分析每一个可用数据或随机采样,而是通过在源头识别最有趣的数据来智能地对其进行采样,然后仅选择该数据以发送到可观测性平台。您还可以将数据转换为细粒度的、可操作的指标,以便在它到达可观测性门户时立即进行分析。

仍然好得令人难以置信,对吧?问题是,基于仪器的监控方法本质上意味着,如果我们试图测量关于代码的关键内容,需要使用外部代码段“包装”其中的一部分,这些代码段将管理监控的逻辑工具。

使逻辑过于复杂,开销就越大。在将来自应用程序的数据发送出去之前,分析得越多,生成的开销对应用程序的总体影响就越大。


这就是为什么传统的监控工具会转向简单的逻辑,比如全部采样,或者随机采样。
在不深入细节的情况下,这种限制可以通过eBPF等新兴技术来解除。

结果是您传输、分析和存储的数据要少得多。但由于专注于相关数据,您不必在晚上因想知道您选择的数据是否会可靠地产生您需要的深入见解而睡不着觉。

把针放在大海捞针前

如果你喜欢类比,这里有一个总结了我们在这里讨论的可观测性策略:这类似于在你建立一个干草堆前对每一束干草进行分类,检查里面是否有一根针。

这样就可以尽早抓住针头,而不必等到准备好整个干草堆后才能对其进行分类并尝试拔出针头。针很容易找到,因为它们从一开始就不会被埋在干草堆里。事实上,你根本没有干草堆来处理,因为可以在不关心的干草变成代价高昂的干草堆之前将其丢弃。

云原生可观测性的未来

我认为这种可观测性方法对于任何希望在不支付大量监控和数据存储成本的情况下保持对其系统的可靠可见性的团队来说都是关键。云原生日志、指标和跟踪数据的数量和复杂性只会增加,使得传统的监控和可观测性策略在云原生环境中越来越不可行。

如果你想拥有这一切——可以。采用可观测性架构,让您在源头上磨练相关数据,并且是金子。


推荐阅读
  • Sleuth+zipkin链路追踪SpringCloud微服务的解决方案
    在庞大的微服务群中,随着业务扩展,微服务个数增多,系统调用链路复杂化。Sleuth+zipkin是解决SpringCloud微服务定位和追踪的方案。通过TraceId将不同服务调用的日志串联起来,实现请求链路跟踪。通过Feign调用和Request传递TraceId,将整个调用链路的服务日志归组合并,提供定位和追踪的功能。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 集成电路企业在进行跨隔离网数据交换时面临着安全性问题,传统的数据交换方式存在安全性堪忧、效率低下等问题。本文以《Ftrans跨网文件安全交换系统》为例,介绍了如何通过丰富的审批流程来满足企业的合规要求,保障数据交换的安全性。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 本文介绍了OpenStack的逻辑概念以及其构成简介,包括了软件开源项目、基础设施资源管理平台、三大核心组件等内容。同时还介绍了Horizon(UI模块)等相关信息。 ... [详细]
  • 从高级程序员到CTO的4次能力跃迁!如何选择适合的技术负责人?
    本文讲解了从高级程序员到CTO的4次能力跃迁,以及如何选择适合的技术负责人。在初创期、发展期、成熟期的每个阶段,创业公司需要不同级别的技术负责人来实现复杂功能、解决技术难题、提高交付效率和质量。高级程序员的职责是实现复杂功能、编写核心代码、处理线上bug、解决技术难题。而技术经理则需要提高交付效率和质量。 ... [详细]
  • Learning to Paint with Model-based Deep Reinforcement Learning
    本文介绍了一种基于模型的深度强化学习方法,通过结合神经渲染器,教机器像人类画家一样进行绘画。该方法能够生成笔画的坐标点、半径、透明度、颜色值等,以生成类似于给定目标图像的绘画。文章还讨论了该方法面临的挑战,包括绘制纹理丰富的图像等。通过对比实验的结果,作者证明了基于模型的深度强化学习方法相对于基于模型的DDPG和模型无关的DDPG方法的优势。该研究对于深度强化学习在绘画领域的应用具有重要意义。 ... [详细]
  • 2021最新总结网易/腾讯/CVTE/字节面经分享(附答案解析)
    本文分享作者在2021年面试网易、腾讯、CVTE和字节等大型互联网企业的经历和问题,包括稳定性设计、数据库优化、分布式锁的设计等内容。同时提供了大厂最新面试真题笔记,并附带答案解析。 ... [详细]
  • ElasticSerach初探第一篇认识ES+环境搭建+简单MySQL数据同步+SpringBoot整合ES
    一、认识ElasticSearch是一个基于Lucene的开源搜索引擎,通过简单的RESTfulAPI来隐藏Lucene的复杂性。全文搜索,分析系统&# ... [详细]
  • 本文探讨了容器技术在安全方面面临的挑战,并提出了相应的解决方案。多租户保护、用户访问控制、中毒的镜像、验证和加密、容器守护以及容器监控都是容器技术中需要关注的安全问题。通过在虚拟机中运行容器、限制特权升级、使用受信任的镜像库、进行验证和加密、限制容器守护进程的访问以及监控容器栈,可以提高容器技术的安全性。未来,随着容器技术的发展,还需解决诸如硬件支持、软件定义基础设施集成等挑战。 ... [详细]
  • 分布式系统一致性专题:3PC协议的优化和问题
    本文介绍了分布式系统一致性专题中的3PC协议,该协议是对2PC协议的优化和改进。文章详细解释了3PC协议的三个阶段:CanCommit、PreCommit和DoCommit,并分析了每个阶段可能出现的情况和处理方式。同时,文章也指出了3PC协议存在的问题,如参与者超时机制可能导致数据不一致等。总体来说,3PC协议在优化和改进方面取得了一定效果,但仍需继续努力解决数据不一致问题。 ... [详细]
  • Harmony 与 Game Space 达成合作,在 Shard1 上扩展 Web3 游戏
    旧金山20 ... [详细]
author-avatar
我并没有你们想象P的坚强
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有