AI智能
改变未来

微服务架构下,DLI的部署和运维有何奥秘?

摘要:探讨DLI两个问题:如何在生产环境中部署与运维实现快速迭代上线,如何实现监控告警来提升整体运维能力。

华为云数据湖探索DLI是支持多模引擎的Serverless大数据计算服务,其很好的实现了Serverless的特性:

1.弱化了存储和计算之间的联系;

2.代码的执行不再需要手动分配资源;

3.按使用量计费。

那么如何才能更好的实现Serverless化的服务,同时又避免成为传统单体分布式的应用,微服务架构无疑是最优的选择。DLI基于微服务架构模式下的整体部署架构如下:

即对外以纯API形式提供服务,通过以API Gateway作为应用的入口,基于领域模型按子域进行微服务划分,从而实现Serverless化的大数据计算服务。

对于这样一个基于微服务架构实现的Serverless服务,我们是如何在生产环境来部署与运维,从而在保证服务SLA的前提下实现快速迭代上线的呢?

DLI部署的关键

随着技术的发展,部署的流程和架构都发生了根本性的变化,如今已经走入了轻量级、短生命周期的技术时代。

从最初部署在物理机上的大数据计算平台,到基于公有云的弹性计算云服务器部署大数据平台,再到DLI这样的Serverless服务,其很好展现了大数据计算服务的演变。那么如何才能更好的实现Serverless化的大数据计算服务的部署呢,DLI的答案就是基于Kubernetes+Docker来部署各微服务。

Kubernetes部署是在不停机的情况下部署服务的好方法,但是如何应对在接收生产流量后出现的错误,使新版本的服务更可靠呢?这可以通过将问题一分为二来看:

1.部署,即将服务上线到生产环境中运行;

2.发布,即使服务可用于处理生产流量。

传统上,分离部署流程与发布流程一直是一个挑战。但现在我们有了很好的选择,那就是基于服务网格。在DLI的部署中我们结合了Kubernetes+Istio,利用Istio的流量管理实现了服务发现、流量路由,从而轻松的将部署与发布分开,使新版本的服务更加可靠。

监控告警提升整体运维能力

免运维也是DLI作为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服务的目标。

华为云828企业上云节,可能是入手DLI的最好时机,感受一下它的智能化部署和运维。

点击关注,第一时间了解华为云新鲜技术~

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » 微服务架构下,DLI的部署和运维有何奥秘?