摘要:今天我们来说说DLI是如何实现监控告警来提升整体运维能力,从而为客户更好的提供Serverless的DLI。
DLI是支持多模引擎的Serverless大数据计算服务,免运维也是其作为Serverless云服务面向客户时的一个重要的特性。那么对于服务本身我们是如何实现整个服务的运维呢?今天我们来说说DLI是如何实现监控告警来提升整体运维能力,从而为客户更好的提供Serverless的DLI。
上图是DLI服务的整体部署架构,作为Serverless服务其全面拥抱云原生技术,无论是对外提供任务管理的微服务还是最终执行任务的计算单元,其都是基于Kubernetes来部署,这也更好的实现了Serverless的快速弹性伸缩。
对于DLI服务的监控告警我们当前主要从以下几个方面来考虑:
1.全局维度,主要是整体API的QPS、成功率和响应时延
DLI作为Serverless大数据计算服务,其对外均以REST API的形式提供服务,因此API的QPS和响应时延直接反映了服务对外的能力,而成功率更是服务SLA的直接体现。
2.OS维度,主要是容器宿主的CPU使用率、内存使用率、磁盘使用率、上下行流量
无论部署的架构、技术如何演进,对基础资源的监控都是最基本和必须的。
3.容器维度,主要是CPU使用率、内存使用率、K8s空间和用户空间使用率、POD的健康度
容器是虚拟机的演进,因此对于容器的资源监控也是最基本的。我们的微服务或计算单元都是以容器运行在Kubernetes集群上,因此对于POD的健康状态的监控也是必须的。
4.微服务维度,主要是流量、性能、健康检查和关键日志等
监控是为了更好的发现和解决问题,因此核心还是业务层面的监控。DLI是一个复杂的分布式Serverless应用,其内部根据不同领域模型又分为不同的微服务,因此对于微服务内部的流量、性能等的监控则是衡量各微服务可靠性的重要指标。一个好的系统往往有完善的日志体系,通过对关键日志进行监控则能够帮助我们快速发现和定位问题,因此这也是我们在业务维度的监控上的重点。
上述几个方面的监控,是我们实现云服务自动化运维的一些关键步骤,通过这些我们能够做到更好的先于客户发现问题,保障服务SLA。当然这些远远不够,正所谓“路漫漫其修远兮,吾将上下而求索”,更加自动化、智能化的运维才是Serverless服务的目标。