可观察性与监控:有什么区别

内容纲要

在一个技术越来越受欢迎的世界中,可观察性和监控已成为软件开发讨论的常用术语。无论您在开发良好的应用程序方面投入了多少精力,该软件始终会有错误和错误。这就是为什么您的系统需要可观察的原因。

随着软件开发文化的进步,从监控环境到云环境的转变也随之而来。云和本地环境中的应用程序都需要可用且具有弹性。但是,实现这些目标的过程有所不同。

监视提供了诸如提高性能和生产力等优点。但它也允许根据用户的需求有效地分配资源,同时检测和解决软件问题。

可观察性监测之间的区别

若要探讨可观察性与监视,必须考虑它们之间存在的差异。

就其本质而言,可观察性与推断系统内部状态的能力有关。另一方面,监测涉及在观察系统中一个系统的性能质量时所采取的行动。

监控可以追溯到1970年代的Unix时代。从那时起,该实践不断发展,为开发人员提供有关整个技术堆栈(包括云)的用户体验和应用程序性能的详细跟踪,指标和警报。

在企业软件开发过程中,监控有助于将日志指标解释为可操作的、有意义的见解。通过监视,软件开发人员可以描述系统内部方面的运行状况、性能和其他特征。

即便如此,在复杂的现代软件开发环境中,监控并不像可观察性那样有效。与监控不同,可观察性使软件开发团队能够在一个位置实时获得所有性能数据的连接视图。这使他们能够更快地识别问题,导致问题的原因,并为客户提供愉快的体验。

从监测到可观察性

在过去十年中,技术取得了长足的进步。这些进步对软件开发团队产生了巨大的影响。

以下是开发人员从监控转向可观察性的一些原因:

不断变化的客户期望

即使他们变得不宽容,客户的期望也在增加;缓慢,设计不佳或容易出错的软件对它们没有吸引力。如果应用程序没有为他们提供他们想要的体验,他们就会离开它,他们就不会回来。实际上,客户卸载应用程序的主要原因是移动崩溃,错误和冻结。

为了满足客户的期望,软件开发人员应该能够在应用程序缺陷或影响用户的事件发生后一小时内恢复服务。

  • 创新应用的需求

为了在竞争中保持领先地位,软件开发人员不断面临创建为用户提供新体验的功能的压力。通过消除进入壁垒,云计算加剧了竞争。这迫使软件团队适应高绩效开发人员,这些开发人员每天至少部署一次甚至一小时的软件。请注意,精英执行者每天能够多次部署按需软件。

  • 自动化和开发运营的上升

自动化对企业具有吸引力,因为它减少了低价值的重复性任务,同时提高了可靠性。在云架构中,软件控制技术堆栈的各个方面;整个表面积可以编程。由于软件为整个自动化过程提供了动力,请注意它仍然容易出现故障。

公司越来越多地选择让自治团队进行端到端的软件设计、服务运营和交付。他们选择利用内部团队提供的通用工具和平台。

软件团队应监控 CI/CD 以及所有其他自动化工具,就像监控直接为客户提供服务的应用程序一样。应定期收集系统中每个组件的数据,这是可观察性的本质。

推动可观察性的关键因素

在很大程度上,可观察性是由对更大复杂性的需求驱动的。虽然云技术改变了开发人员创建、操作和交付应用程序的方式,但技术也导致了软件团队的复杂性。云技术附带一个动态基础架构,允许开发人员频繁部署其应用程序。这增加了风险,使回滚和即时检测成为必要。

解决开发人员可能存在的技能差距的需求给软件团队带来了挑战。许多可用的微服务架构要求软件开发人员重新思考他们的应用程序设计、创建和部署过程,因为团队的每个成员都应该能够理解甚至排除他们从一开始就没有使用的应用程序的故障。

结论

监控和可观察性是软件开发的重要方面。然而,监控在过去效果很好,而可观察性在当今高度复杂和高风险的技术世界中更为相关,因为它解决了重要的软件开发问题,包括高客户期望,弥合技能差距的需求以及对自动化的需求。

给TA打赏
共{{data.count}}人
人已打赏
.NET

宣布发布Entity Framework 7 预览版 5

2022-6-15 17:51:13

.NET

.NET云原生挑战赛直播课-第十三课【郝冠军-实现云原生时代的软件可观察性 OpenTelemetry】

2022-6-21 10:23:42

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索