华为云数据湖探索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的部署和运维有何奥秘?相关推荐

  1. CI Weekly #5 | 微服务架构下的持续部署与交付

    CI Weekly 围绕『 软件工程效率提升』 进行一系列技术内容分享,包括国内外持续集成.持续交付,持续部署.自动化测试. DevOps 等实践教程.工具与资源,以及一些工程师文化相关的程序员 Ti ...

  2. GAF安装部署-微服务架构下的云原生部署

    GAF安装部署指南-微服务架构下的云原生部署 从上一篇文章<GAF简介-基于SuperMap GIS基础软件的GIS应用框架>我们知道SuperMap GAF分为社区版和企业版,本篇文章主 ...

  3. 如何在微服务架构下进行数据设计?

    作者:唐建法 && Mongoing中文社区 来自:http://www.mongoing.com/ 微服务是一个软件架构模式,对微服务的讨论大多集中在容器或其他技术是否能很好的实施微 ...

  4. 微服务架构下的运维知识体系

    微服务架构下的运维知识体系 基础设施与应用的标准化 微服务技术体系下的应用指的是以什么呢? 软件架构服务化的过程,就是我们根据业务模型进行细化的过程,在这个过程中切分出一个个具备不同职责的业务逻辑模块 ...

  5. 在微服务架构下基于 Prometheus 构建一体化监控平台的最佳实践

    欢迎关注方志朋的博客,回复"666"获面试宝典 随着 Prometheus 逐渐成为云原生时代的可观测事实标准,那么今天为大家带来在微服务架构下基于 Prometheus 构建一体 ...

  6. 微服务架构下静态数据通用缓存机制

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源 |  my.oschina.net/u/3971241/bl ...

  7. 微服务架构下的静态数据通用缓存机制!

    什么是静态数据 为什么需要缓存 通用缓存机制 总结 后记 在分布式系统中,特别是最近很火的微服务架构下,有没有或者能不能总结出一个业务静态数据的通用缓存处理机制或方案,这篇文章将结合一些实际的研发经验 ...

  8. 微服务架构下的测试之道

    作者:袁慎建,崇尚简约,热爱编程 && 运动健身 && 知识分享,擅长敏捷开发实践,持续集成 && 持续交付,关注代码整洁 && TDD ...

  9. 用友云微服务架构下配置文件管理利器:配置中心

    微服务架构是这几年IT领域的一个高频词汇,越来越多的项目和应用正在以微服务的思想进行重构.相比于单体应用和SOA架构,微服务优势也逐渐凸显,被广大架构师和技术人员引入和推崇.当然,单体应用.SOA.微 ...

最新文章

  1. webpack版本查看_浅谈webpack技术
  2. Android Activity Launch Mode 启动模式详解
  3. 04.内置analyzer和analyze-API使用
  4. P4827-[国家集训队]Crash 的文明世界【树形dp,换根法,斯特林数】
  5. 用户体验可视化指南pdf_R中增强可视化的初学者指南
  6. 写给大数据从业者:数据科学的5个陷阱与缺陷
  7. Spark+Python+Pycharm在Windows下的配置
  8. dedeampz-php环境整合套件,DedeAMPZ官方下载
  9. Cream Finance关于提高三个v2 yVaults的质押系数的提案已经完成
  10. 老吴做了15年电商,从简单的卖货,到卖供应链
  11. windows做软件界面
  12. ffmpeg转码文件输出rtsp流
  13. xjoi 3561查找某数出现位置
  14. Marlin2.0.7的configuration.h中文说明
  15. oracle11g查看数据库名称,oracle11g系列 事物和常用数据库对象
  16. Gtarcade的Hunger Heroes游戏马拉松即将开始
  17. r语言做绘制精美pcoa图_R语言:Bary-Curtis PCoA
  18. C语言明显优于其它高级语言
  19. oracle中正则表达式规则,Oracle SQL 正则表达式
  20. 提问技巧(特别适用IT)

热门文章

  1. 推荐算法实现java_利用Java写开源库 覆盖70多种推荐算法
  2. go json数据出现unicode_【Android】OkHttp、Retrofit拿到的json是Unicode,我要的是UTF-8呀...
  3. 2怎么开机_MacBook如何取消开盖自动开机
  4. python如何调用xpath_Python案例:使用XPath的爬虫
  5. python数据分类聚类案例_Python实现的KMeans聚类算法实例分析
  6. char* 赋值 const char* 释放_嵌入式Linux开发《C语言专题(十:彻底搞懂“关键字”const)》...
  7. java调试报告_java实验一报告
  8. java excel条件格式_Java 使用条件格式高亮Excel单元格
  9. JavaScript get set方法 ES5/ES6写法
  10. 2017-4-20实体类,数据访问类.字符串攻击.防攻击