这几年大家会发现业界内频繁地提到可观测,也有很多人会问可观测跟之前传统的监测到底有什么区别?可观测并不是一个新的概念,它其实是传统监测的扩展。传统监测领域更多是基于外部的视角去看一个系统,去看一些系统的行为,从而规划整个系统的失败模型,它更多的是从运维的视角来看。今天,我们把这个概念从监测扩展到可观测,其实更多是从系统内部的白盒化思路去看系统内部的运行状况,是由内往外的,同时结合多种观测手段,包括我们传统说的 Metrics 指标,从而做一个非常深入的分析,了解整个系统运行状态的根因。
另外从使用者角度来讲,传统监测更多是从运维角度,一些传统的 Metric 维度指标,从外部进行观测来得知里面发生了什么。云原生可观测贯穿了整个应用,甚至整个应用开发的生命周期,包括开发、测试、上线、部署、发布。所有的生命周期不仅会通过 Metrics,还会有系统日志、业务日志、链路追踪等方式来进行整个全方位 360 度无死角的监测。换句话说,更多是从内往外来诊断出系统内部产生问题的根因,究竟出现了什么样的问题,发生的原因,以及一些对应的恢复手段,这些是我们整个可观测核心关注的点。
云原生时代对稳定性提出更高要求
ALIWARE
随着容器、微服务逐渐流行起来,我们进入到了云原生时代。传统企业要做云原生转型,对整个监测以及稳定性方面提出了更高的要求:
第一,支撑业务快速迭代。举个例子,阿里巴巴内部有将近 8000 到 9000 个应用,每天会做将近 4000 次的应用发布,这样频繁快速的迭代,对系统的稳定性、可观测、运维等方面提出了极高的要求,要求通过各种手段完成稳健的支撑。
第二,复杂的调用拓扑。随着整个微服务化的兴起,传统的大型单体应用在微服务化之后,带来非常好的弹性、便捷的服务,但同时也导致整个应用的链路会变得非常复杂。今天如果按照传统的方式来做的话,我们可能只需要依赖于一些专家的经验去看个别问题,这本质上是一个瓶颈类型的问题。
第三,极致的用户体验。今天企业拥抱云原生时代,对数字化转型有强烈的诉求,需要一个更极致的 IT 方面的体验。比如说故障响应必须要更快,一个问题从发现到恢复也希望更快,处理的时间更要加快,这是一个挑战。
最后,高效的运维协同。通过传统的工单方式有时候的效率会偏低,如何解决组织协同的问题,这也是我们关注的一个方向。
云原生可观测覆盖场景
ALIWARE
云原生可观测重点包括以下几个场景:
1、应用发布部署。在特定的场景下我们需要能支撑非常场景化的监测和观测能力。
2、全景监测。这个很好理解,因为今天无论从应用的前端,从用户侧到应用侧,再到中间件,还是再到底层的 IaaS、基础设施层,从端到端,这其中所有的链路都需要纳入到企业的监测体系中做一个全景监测,这是企业应该致力于做的事。
3、智能告警。如今仅是把所有的观测做好了是远远不够的,我们需要引入一些更高级的玩法。阿里内部这么多年将一些人工智能技术引入到我们的观测领域来,是为了能够帮助减轻整个运维的负担,这也是后面会详细分享的部分。
4、性能诊断。在发现问题或者说在性能压测的时候,如何快速地诊