禄丰新闻|禄丰新闻中心|禄丰新闻热点

您的位置:主页 > 禄丰新闻 >

SpringCloud应用在Kubernetes上的最佳实践

发布日期:2020-09-04 20:23   来源:未知   阅读:

  • 前言

    在应用发布上线的时候我们最担心的莫过于因为代码的bug引发业务的问题,虽然我们可以通过灰度的方式分批发布减小影响范围,但是如果能够在发布的过程中从实时监控中快速的发现问题进行回滚,那么就能缩短业务受影响的时间。因此我们可以看到灰度、监控、回滚是整个发布过程中不可或缺的三大利器,有了这三大利器后,我们能够做到随时发布,从而加快业务的迭代和上线速度。而监控作为基础设施的一个重要环节,是保障生产环境服务稳定不可或缺的一部分,目前EDAS提供了非常丰富的监控能力,下面我们从不同的场景来详细介绍一下这些监控能力。体系化监控能力搭建

    监控体系,最怕的就是有覆盖不到的地方,一个覆盖全面的监控应该是从基础设施到上层应用均有对应的手段去覆盖:

    首先,如果故障产生时,最先感知到的其实是业务的受损,如交易量下跌、登陆的 UV 下跌等等。

    而如果继续往下钻,如果业务集群很大的时候,我们最先需要定位到某一个服务或者某一台机器,这个过程如果没有相应的工具相佐犹如大海捞针,所以一个分布式链路级别的应用监控会是建设 Spring Cloud 应用的很好的配搭。

    等到我们找到了相应的服务要开始进行定位分析的时候,根据问题类型(是错是慢?)接下来需要开始分析 JVM、内存、CPU 等维度的指标。

    最后我们可能会发现这个问题是由于业务代码引起,也有可能由于基础设施引起,而在 K8S 中,Prometheus 目前是属于容器领域基础监控最厉害的军刀。

    如上图所示,目前 EDAS 结合阿里云上的某些云产品,完全能够满足日常的运维的需要并帮忙业务开发的同学快速的定位线上问题。EDAS常规监控能力

    系统监控

    应用实例的基础监控信息:

    上图功能提供了以应用实例的维度来查看每个实例的监控信息,提供的JVM/CPU/Load/内存等的监控信息也是我们经常需要关注的,当发现内存占用高,并且有频繁的FullGCC的情况时,我们可以通过创建内存快照进行分析来快速定位问题。SQL分析的能力也能快速帮助我们定位到慢查询用来排查问题。

    应用服务监控

    应用服务接口监控信息:

    这里提供了以接口维度的监控信息,可以详细的看到接口在最近一段时间的请求信息,这里重点介绍一下接口快照功能,通过接口快照我们可以看到该接口的请求耗时,以及请求的TraceId,根据这个TraceId我们可以详细的看到本次请求的调用链以及调用的方法栈。