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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

摆脱成本深度的权衡

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

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

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

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


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

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

把针放在大海捞针前

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

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

云原生可观测性的未来

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

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


推荐阅读
  • 从理想主义者的内心深处萌发的技术信仰,推动了云原生技术在全球范围内的快速发展。本文将带你深入了解阿里巴巴在开源领域的贡献与成就。 ... [详细]
  • 我的读书清单(持续更新)201705311.《一千零一夜》2006(四五年级)2.《中华上下五千年》2008(初一)3.《鲁滨孙漂流记》2008(初二)4.《钢铁是怎样炼成的》20 ... [详细]
  • 本文总结了一次针对大厂Java研发岗位的面试经历,探讨了面试中常见的问题及其背后的原因,并分享了一些实用的面试准备资料。 ... [详细]
  • Redis:缓存与内存数据库详解
    本文介绍了数据库的基本分类,重点探讨了关系型与非关系型数据库的区别,并详细解析了Redis作为非关系型数据库的特点、工作模式、优点及持久化机制。 ... [详细]
  • 对象存储与块存储、文件存储等对比
    看到一篇文档,讲对象存储,好奇,搜索文章,摘抄,学习记录!背景:传统存储在面对海量非结构化数据时,在存储、分享与容灾上面临很大的挑战,主要表现在以下几个方面:传统存储并非为非结 ... [详细]
  • 本周三大青年学术分享会即将开启
    由雷锋网旗下的AI研习社主办,旨在促进AI领域的知识共享和技术交流。通过邀请来自学术界和工业界的专家进行在线分享,活动致力于搭建一个连接理论与实践的平台。 ... [详细]
  • 知识图谱与图神经网络在金融科技中的应用探讨
    本文详细介绍了融慧金科AI Lab负责人张凯博士在2020爱分析·中国人工智能高峰论坛上的演讲,探讨了知识图谱与图神经网络模型如何在金融科技领域发挥重要作用。 ... [详细]
  • 菜鸟物流用户增长部现正大规模招聘P6及以上级别的JAVA工程师,提供年后入职选项。 ... [详细]
  • 流处理中的计数挑战与解决方案
    本文探讨了在流处理中进行计数的各种技术和挑战,并基于作者在2016年圣何塞举行的Hadoop World大会上的演讲进行了深入分析。文章不仅介绍了传统批处理和Lambda架构的局限性,还详细探讨了流处理架构的优势及其在现代大数据应用中的重要作用。 ... [详细]
  • 深入理解云计算与大数据技术
    本文详细探讨了云计算与大数据技术的关键知识点,包括大数据处理平台、社会网络大数据、城市大数据、工业大数据、教育大数据、数据开放与共享的应用,以及搜索引擎与Web挖掘、推荐技术的研究及应用。文章还涵盖了云计算的基础概念、特点和服务类型分类。 ... [详细]
  • 2017年软件开发领域的七大变革
    随着技术的不断进步,2017年对软件开发人员而言将充满挑战与机遇。本文探讨了开发人员需要适应的七个关键变化,包括人工智能、聊天机器人、容器技术、应用程序版本控制、云测试环境、大众开发者崛起以及系统管理的云迁移。 ... [详细]
  • 深入解析:存储技术的演变与发展
    本文探讨了从单机文件系统到分布式文件系统的存储技术发展过程,详细解释了各种存储模型及其特点。 ... [详细]
  • 本文探讨了一种统一的语义数据模型,旨在支持物联网、建筑及企业环境下的数据转换。该模型强调简洁性和可扩展性,以促进不同行业间的插件化和互操作性。对于智能硬件开发者而言,这一模型提供了重要的参考价值。 ... [详细]
  • 本文总结了近年来在实际项目中使用消息中间件的经验和常见问题,旨在为Java初学者和中级开发者提供实用的参考。文章详细介绍了消息中间件在分布式系统中的作用,以及如何通过消息中间件实现高可用性和可扩展性。 ... [详细]
  • 本文探讨了服务化的目标,包括将系统中的独立业务模块垂直划分,形成基础服务层,以及如何通过无状态的基础服务支持上游业务。同时,文章详细讨论了服务子系统的数量控制和划分注意事项,以确保系统的高效性和可维护性。 ... [详细]
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社区 版权所有