Kubernetes, Kafka微服务架构模式讲解及相关用户案例

Kubernetes, Kafka微服务架构模式讲解及相关用户案例

问题导读

1.微服务有什么特点?
2.本文介绍了哪些案例?
3.你认为事件驱动的微服务、容器、Kubernetes和机器学习结合可以有哪些应用?

随着当今业务和技术的快速变化,开发人员,数据科学家和IT运营部门正在共同构建具有新技术和动态架构的智能应用程序,因为它们具有灵活性,交付速度和可维护性。 这篇文章将介绍有助于进化架构的技术:containers,Kubernetes和Kafka API。 然后我们将看一些Kafka 架构模式和用户案例.

Kubernetes, Kafka微服务架构模式讲解及相关用户案例_第1张图片

容器架构
容器简化了从开发到部署的过程,无需担心可移植性或可重复性。 开发人员可以将应用程序及其执行应用程序所需的所有依赖项,库和配置文件打包到容器镜像中。 容器是可运行的镜像实例,可以部署到任何位置:笔记本电脑,本地服务器或云端。

Kubernetes, Kafka微服务架构模式讲解及相关用户案例_第2张图片

与虚拟机相比,容器具有类似的资源和隔离优势,但重量更轻,因为容器虚拟化操作系统而不是硬件。 容器更便携,更高效,占用更少的空间,使用更少的系统资源。

Kubernetes, Kafka微服务架构模式讲解及相关用户案例_第3张图片

Kubernetes 架构
Kubernetes提供了一个配置,自动化和管理的平台:

  • 容器的智能和平衡调度
  • 容器的创建,删除和移动
  • 易于扩展容器
  • 监测和自我修复能力

Kubernetes集群由至少一个管理集群的主节点和多个工作节点组成,其中容器化应用程序使用Pod运行。 Pod是一个或多个容器的逻辑分组,它们一起安排并共享资源。 Pod允许多个容器在主机上运行并共享资源,例如:存储,网络和容器运行时信息。

Kubernetes, Kafka微服务架构模式讲解及相关用户案例_第4张图片

主节点以这种方式管理集群:

  • API服务器解析YAML配置并将配置存储在etcd键值存储中。
  • etcd存储并复制当前配置和集群的运行状态。
  • 调度程序调度工作节点上的pod。
  • controller 管理器管理非终止控制循环的状态,例如pod副本。

微服务架构风格是一种将应用程序开发为围绕特定业务功能构建的一组小型企业可部署服务的方法。 微服务方法与容器和Kubernetes完全一致。 通过跨多个节点部署服务,您可以获得模块化,广泛的并行性和经济高效的扩展。 微服务模块化有助于独立更新/部署,并有助于避免单点故障,这有助于防止大规模中断。

MapR Data Fabric包含一个本机集成的Kubernetes卷驱动程序,可提供持久存储卷,以访问本地,跨云和边缘的任何数据。 有状态应用程序可用于生产用例,机器学习管道和多租户用例的容器中。

Kubernetes, Kafka微服务架构模式讲解及相关用户案例_第5张图片

事件驱动的微服务架构
大多数业务数据是作为一系列事件或事件流生成的:例如,Web或移动应用程序交互,传感器数据,银行交易和医疗设备。 微服务通常具有事件驱动架构,使用仅附加事件流,例如Kafka或MapR事件流(提供Kafka API)。

Kubernetes, Kafka微服务架构模式讲解及相关用户案例_第6张图片

使用MapR-ES(或Kafka),事件被分组为称为“topics”的事件的逻辑集合。 主题【topics】被分区并行处理。

Kubernetes, Kafka微服务架构模式讲解及相关用户案例_第7张图片
Kubernetes, Kafka微服务架构模式讲解及相关用户案例_第8张图片

与队列不同,事件在传递后不会被删除,而是保留在分区上,可供其它消费者使用。

Kubernetes, Kafka微服务架构模式讲解及相关用户案例_第9张图片

基于流的有效时间设置,旧的消息会被删除。如果设置为0,则永远不会被删除。

Kubernetes, Kafka微服务架构模式讲解及相关用户案例_第10张图片

在读取时,消息不会从主题中删除,并且主题可以具有多个不同的消费者;这允许不同的消费者针对不同的目的处理相同的消息。Pipelining 也是可能的,其中消费者将event 发布到另一个主题。

Kubernetes, Kafka微服务架构模式讲解及相关用户案例_第11张图片

MAPR ES提供可扩展的高性能消息传递,在普通硬件上每秒发送数百万条消息。发布/订阅kafka API提供解耦的通信,使得在不破坏现有进程的情况下很容易添加新的listeners 或新publishers 。

当将这些消息传递能力与微服务相结合时,可以极大地增强构建、部署和维护复杂数据管道的灵活性。通过简单地链接多个微服务来构建流水线,每个微服务监听某些数据的到达,执行指定的任务,并且可选地将其自己的消息发布到一个主题。

流是记录系统
事件源是一种体系结构模式,其中应用程序的状态由一系列事件决定,每个事件都记录在仅追加事件存储或则流中。 例如,假设每个“事件”是对数据库中条目的增量更新。 在这种情况下,特定条目的状态仅仅是与该条目有关的事件的累积。在下面的示例中,流保存所有存款和取款事件的队列,数据库表保存当前帐户余额。

Kubernetes, Kafka微服务架构模式讲解及相关用户案例_第12张图片

流或数据库,哪一个是更好的记录系统?流中的事件可以用来重建数据库中的账户余额,而数据库却不能反过。

Kubernetes, Kafka微服务架构模式讲解及相关用户案例_第13张图片

微服务添加到单片银行应用程序
银行通常有大型机应用程序,这些应用程序运行成本高,难于更新,也难于完全替换。让我们来看看如何将事件驱动的微服务添加到一个整体银行应用程序中,该应用程序包括支付事务和批处理作业,用于欺诈检测、报表和促销邮件。

在如下所示的设计中,来自单片数据库提交日志的支付事务被发布到流中,流被设置为永不丢弃数据。不变事件存储(流)成为记录系统,事件由不同的数据管道根据用例处理。事件数据管道通向多种语言持久性、不同的数据存储技术,每一种技术都提供不同的物化视图:MapR-DB HBase和MapR-DB JSON文档、图形和搜索数据库,因此,微服务总是以最合适的格式显示其数据的最新视图。使用命令查询责任分离模式。

Kubernetes, Kafka微服务架构模式讲解及相关用户案例_第14张图片

事件存储通过在流中重新运行事件来提供重建状态——这是事件来源模式。事件可以重新处理,以创建新的索引、缓存或数据视图。

Kubernetes, Kafka微服务架构模式讲解及相关用户案例_第15张图片

consumer简单的读取从最旧的消息到最新的创建一个数据视图

Kubernetes, Kafka微服务架构模式讲解及相关用户案例_第16张图片

现在支付交易来自实时,使用Spark Machine Learning和Streaming进行实时欺诈检测可能比以前更容易,如数据流所示:

Kubernetes, Kafka微服务架构模式讲解及相关用户案例_第17张图片

对于流中的事件具有较长的保留时间允许更多的分析和功能被添加。

通过添加事件和微服务来开发体系结构
随着更多的事件源,可以添加流处理和机器学习以提供新的功能。跨范围的交互(包括点击流、点击率、呼叫中心报告、客户偏好和购买数据)的机器学习技术可以用来提供见解,例如:财务建议、预测、警报和相关优惠。例如,可以将Web点击流分析与购买历史相结合,将共享行为亲和力的客户分组,以便更好地针对广告。当客户点击目标提供,触发MAPR DB中的客户配置文件更新,并向前景自动运动时,可以将领先事件添加到流中。

Kubernetes, Kafka微服务架构模式讲解及相关用户案例_第18张图片

医疗保健实例
现在让我们来看看如何实现流优先架构。 来自某医院,供应商和实验室的数据。 MapR-ES解决了HIPAA合规性的数据沿袭问题,因为流成为每个数据变化的无限,不可变日志的记录系统。 多语言持久性解决了存储多种数据格式的问题。 可以为不同的用例提供,探索和分析MapR-DB HBase API / MapR-DB JSON API,图形和搜索数据库,物化视图。

Kubernetes, Kafka微服务架构模式讲解及相关用户案例_第19张图片

零售示例
一家大型零售商希望提高季节敏捷性和库存纪律,以便对需求变化作出反应并减少降价。

Kubernetes, Kafka微服务架构模式讲解及相关用户案例_第20张图片

数据收集自销售交易、库存状况和定价、竞争情报、社交媒体、天气和客户(去掉个人身份识别),以便集中分析与改善业务相关的相关性和模式。大数据算法分析店内和在线购物、Twitter趋势、本地体育赛事和天气购买模式,构建个性化客户体验的创新应用程序,同时提高物流效率。销售点交易被分析以提供产品推荐或折扣,基于哪些产品是一起购买的,或者是在其他产品之前。预测分析是用来知道在某些特定的日子里,哪些产品在某些特定的商店里卖得更多,以减少库存过剩,并保持对最需要的产品的适当储备,从而帮助优化供应链。

结论
几个不同的技术转移的融合极大地改变了应用程序的构建方式。事件驱动的微服务、容器、Kubernetes和机器学习数据管道的结合正在加速下一代智能应用的发展,这些应用正在利用现代计算基础设施所驱动的现代计算范例。MAPR融合数据平台集成了全球事件流、实时数据库能力和可扩展的企业存储,以及数据处理和分析引擎的集合,为新一代的数据处理流水线和智能应用提供动力。

Kubernetes, Kafka微服务架构模式讲解及相关用户案例_第21张图片

转载注明来自about云 本文链接 http://www.aboutyun.com/forum.php?mod=viewthread&tid=24783

精彩文章推荐:

【1】区块链零基础学习线路

【2】spark零基础学习线路指导【包括spark2】

【3】通俗易懂:彻底明白什么是神经网络

【4】小白与大神存在哪些差距

【5】腾讯大数据面试及参考答案

【6】kafka学习线路指导入门:包括理论、部署、实战知识汇总整理

【7】技术走向管理一些深度思考

原文发布于微信公众号 - about云(wwwaboutyuncom)

原文发表时间: 2018-07-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于 2018-07-262018-07-26 14:16:51
3
扫描二维码

扫码关注云+社区

about云

168 篇文章 50 人订阅
订阅专栏
  • 小白与大神存在哪些差距
  • 美国通过机器学习加速基因组医学并改善患者结果
  • 你会让人工智能为你做决定吗?
  • kafka sql入门
  • Kafka +深度学习+ MQTT搭建可扩展的物联网平台【附源码】

我来说两句

0 条评论
登录 后参与评论
  • 上一篇:如何在Ubuntu上使用Passenger安装Rails和nginx
  • 下一篇:Allied Market Research报告:全球MR市场价值预计到2024年将达53.62亿美元

相关文章

来自专栏 Android 开发者订阅

应用崩溃了?Android vitals 帮您精确诊断

辛苦开发的应用终于顺利在 Play Store 上线了? 恭喜!—— 但您的开发工作还没有结束。

141 3
来自专栏 编程订阅

Android程序员的救赎之路(二)

上回说到要举一个例子来说明,在看例子前,我们先来说说问题,有时我们会在工作中遇到很难的专业问题,如设计一个业务算法或用OpenGL做3D特效,这类的问题虽然不简...

197 8
来自专栏 云计算D1net订阅

云应用:混合云需要混合网络来支撑

在经过一番艰苦努力的之后,我最终调试解决了一个非常棘手的混合云网络问题。 虚拟私有云(VPC)提供了一个包含免费虚拟机(VM)使用时间的培训项目,学生可以跟随一...

299 4
来自专栏 云计算D1net订阅

如何应对混合云网络的复杂性?

在经过一番艰苦努力的之后,我最终调试解决了一个非常棘手的混合云网络问题。 虚拟私有云(VPC)提供了一个包含免费虚拟机(VM)使用时间的培训项目,学生可以跟随一...

356 6
来自专栏 软件测试经验与教训订阅

客户端流畅度测试

364 10
来自专栏 PPV课数据科学社区订阅

HBase在腾讯大数据的应用实践

前言 随着腾讯产品与技术的发展,几乎任何一个与用户相关的在线业务的数据量都在亿级别,每日系统调用次数从亿到百亿,对海量数据的高效插入和快速读取变得越来越重要。而...

389 10
来自专栏 北京马哥教育订阅

大神分享美团外卖订单中心演进之路

? 作者:何轼 来源: http://tech.meituan.com/mt_waimai_order_evolution.html 前言

美团外卖从20…

452 7
来自专栏 数据和云订阅

(文中有惊喜)走进云时代的数据库

最近几年,随着云计算相关技术的发展,各种不同类型的云层出不穷,服务越来越多不同类型的企业业务,传统企业也渐渐开始探索上云的道路。在云上,作为业务最核心的数据库,…

119 2
来自专栏 大数据文摘订阅

讲给普通人听的分布式数据存储

245 9
来自专栏 云计算D1net订阅

走好这四步,再将遗留组件迁移到SaaS应用程序

遗留系统含有成千上万个执行一大批业务功能的服务组件。比如说,假设贵企业运行的一个内部遗留系统中的一套组件向企业高管提供一份统计报告。为了赶在截至日之前获得这份每…

355 7

你可能感兴趣的:(前沿技术知识扩展,Kubernetes,Kafka,微服务架构,用户案例)