微服务架构下,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的最好时机,感受一下它的智能化部署和运维。
- 微服务架构下,DLI的部署和运维有何奥秘?
- 微服务架构深度解析与最佳实践 - 第六部分:七个应对策略之测试部署、运维监控
- 架构运维篇(三):Centos7/Linux安装部署Nginx+多Tomcat负载均衡入门实践
- 自动化运维之Ansible服务部署
- 运维架构服务监控Open-Falcon
- 基于dubbo从传统MVC架构转向SOA架构分布式设计4--(服务部署集群搭建及负载均衡)
- 手把手教你实践Service Mesh微服务架构 - 基础部署部分
- 运维自动化部署Cobbler之服务安装篇 推荐
- 自动化运维工具SaltStack详细部署及用SaltStack实现自动部署lamp架构
- L09-10老男孩Linux运维实战培训-Nginx服务生产实战应用指南05(架构解决方案)
- 实践中的微服务:从架构到部署
- Docker部署微服务应用的架构设计
- 自动化运维之Ansible服务部署详述
- 部署DHCP服务--运维笔记
- 百万PV架构中redis缓存服务群集部署
- 自动化运维工具Ansible架构部署应用及playbooks简单应用
- 最新微服务云中部署应用与服务实战课程 微服务架构核心-容器新技术微服务系统实战课程
- 微服务架构 - CentOS7离线部署docker
- Atitit 关于微服务的思考与理解 attilax总结 1.1. 架构的历史 微服务发展历史 Web》soa》msa 1 1.2. 微服务最大特点 独立部署 1 2. 微服务的优点 1 2.1.
- 自动化运维工具Puppet服务安装和部署详解