开发者原生动态可观察性的兴起

可观察性已成为现代软件开发中的一个关键概念,使团队能够深入了解复杂系统的性能、健康状况和行为。基于预定义度量和静态阈值的传统监控方法在应对现代应用程序的动态和分布式特性方面存在局限性。因此,一种称为动态可观测性的新范式获得了关注,通过结合度量、日志和跟踪,提供了动态系统的实时可见性。

凭借适应不断变化的环境和捕获上下文信息的能力,动态可观察性使开发团队能够主动识别和解决问题,减少平均解决时间(MTTR),提高整体系统可靠性以及开发人员的生产力。

如今,动态可观察性推动了开发实践的发展,将运行时调试集成到开发生命周期中,鼓励团队采用主动的方法进行系统监控和故障排除。通过动态可观测性提供的洞察,开发团队可以在整个开发过程中优化系统性能、检测异常并做出数据驱动的决策。

动态可观察性的兴起代表了软件开发领域的变革性转变。通过拥抱动态可观察性,组织可以在日益复杂和动态的数字生态系统中培养持续改进的文化,提高系统可靠性,并提供高质量的软件产品。

可观察性:好的、坏的和压倒性的

可观察性是通过观察系统的输出来理解系统行为的能力。这包括日志、跟踪和度量。主要目标是能够通过对系统的运行状况和状态有一个清晰的概述来诊断和调试问题。简单地说,它是查看系统内部、了解其工作方式并积极调试系统的能力。

c69d4086d57e517f0813826a48874dd6.png

虽然在过去,应用程序性能监控(APM)工具和日志记录工具与内置集成开发环境(IDE)调试工具的组合足以识别应用程序中的问题,但今天的现实更为复杂。向微服务和云原生、无服务器应用程序、渐进式交付工作流和其他高级架构的过渡给开发者和运维带来了新的挑战。

8c00afac03a0b7600ccd191584fc6dc1.png

从Lightrun的经验来看,以上是开发人员在生产环境中常见的故障排除挑战的代表性子集。

由于各种原因,访问部署在Kubernetes集群中的应用程序或服务的远程实例或从开发人员机器调试无服务器Lambda功能是一项挑战。首先,从开发人员机器到生产部署的访问本身要么被禁止,要么过于复杂,以至于会削弱开发人员的能力并减缓调试过程。即使已经解决了这样的障碍,能够在不停止应用程序、更改其状态并重新部署以获得这些额外日志的情况下从生产环境中获取运行时遥测是一个极其漫长且容易出错的过程。

这些只是导致动态可观察性上升并转变为软件开发生命周期工具堆栈一部分的少数例子。从需求的角度来看,为开发人员提供更多的工具和能力来对自己的应用程序进行故障排除,无论它们在哪里运行以及它们有多复杂,这是一种新的常态。

动态可观察性案例:关键业务价值

正如我们前面所定义的,当开发人员需要使用传统的调试工具和APM解决方案从IDE中排除远程和复杂的工作负载时,他们会功亏一篑。动态可观测性就是为了解决这些挑战。

基本上,与静态日志记录相反,具有动态可观察性的开发人员可以直接从他们的IDE中享受跨应用程序部署和环境的端到端观察性。这意味着降低了MTTR,提高了开发人员的生产力,并优化了总体成本,因为开发人员在需要的地方和时间调试和使用日志和遥测数据,而不是监控一切。

动态可观察性已成为现代软件开发中的一种关键方法,使团队能够深入了解系统行为并做出明智的决策。它超越了传统的测试和监控方法,提供了对系统模式、优势和劣势的全面理解。

采用动态可观察性的原理和好处可以总结为以下几点:

——增强对系统的理解

动态可观察性使开发人员能够观察系统状态和行为,为他们提供详细的洞察。通过监控实时指标、日志和跟踪,开发人员可以全面了解其系统,识别潜在问题并做出数据驱动的决策。

——完善测试驱动开发

虽然测试驱动开发(TDD)侧重于编写测试以确保代码的正确性,但动态可观察性更进一步地观察和分析整个系统的行为。它认识到,单独的测试可能无法捕捉所有可能的场景,并鼓励开发人员采用可观察性来全面理解系统。

——加强行为驱动开发

虽然行为驱动开发(BDD)侧重于利益相关者之间的协作,以定义行为预期,但动态可观察性通过在运行时跨环境(生产、阶段、CI/CD、QA)积极观察和检测系统行为,揭示可能隐藏的模式和潜在风险,使其更进一步。

——完善监控

动态可观察性和开发者原生可观测性不能取代监控;监控确保了系统的稳定性和性能,而动态可观察性提供了更深入的理解。通过将监控和动态可观察性相结合,开发团队可以创建一个可靠且精简的系统,从而减少漏洞和风险。

一句话:动态可观测性是新常态

动态可观察性代表了软件开发的范式转变,使开发人员能够详细了解系统行为并做出明智的决策。它使用超越传统测试的工具和实践,使团队能够创建健壮可靠的系统。它与DevOps、TDD和BDD等现有方法论协调工作,以系统行为为重点增强了它们的原则。通过采用动态可观察性,组织可以增强其开发过程,并构建更具弹性和效率的软件系统。

在动态可观测性解决方案中要寻找什么?

实时调试:开发人员必须能够实时向代码中添加日志记录语句和度量,而无需重新部署或重新启动应用程序。

按需快照:动态快照为开发人员提供虚拟断点,而无需停止应用程序的执行。能够添加条件、计算表达式和检查任何代码是此类别中的关键功能。

自定义指标:从IDE开始,开发人员应该能够创建自定义指标,以在可变级别上跟踪系统行为的特定方面,如响应时间、方法持续时间或错误率。所有任务都应该在不需要重新部署任何代码的情况下完成。

与现有的开发人员和企业工具集成,包括Prometheus、Grafana、VSCode、公共云provider等云原生工具。

成本优化:能够分析与可观察性相关的低效率并进行优化以降低成本,例如用动态日志替换静态日志,这是此类工具的一项重要能力。

动态可观察性使开发人员能够深入了解其实时应用程序,显著提高开发人员的生产力,降低运营和基础设施成本,并简化调试和修复问题的过程。因此,开发人员可以将复杂的故障排除交给动态可观测性解决方案,从而花更多的时间进行创造性的编码。

原文链接:

https://thenewstack.io/the-rise-of-developer-native-dynamic-observability/

f6bd20c4a1bbc12c16bbbf64a919cbd9.jpeg

20c6e392d865e295fa2bcafe35f2b0b1.jpeg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行和易用,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行和易用,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值