热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

无服务器_云原生数据湖架构中的无服务器Kafka

篇首语:本文由编程笔记#小编为大家整理,主要介绍了云原生数据湖架构中的无服务器Kafka相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了云原生数据湖架构中的无服务器 Kafka相关的知识,希望对你有一定的参考价值。








云原生数据湖架构中的无服务器 Kafka






Apache Kafka 成为处理动态数据的事实标准。Kafka 是开放、灵活和可扩展的。不幸的是,后者使运营成为许多团队的挑战。理想情况下,团队可以使用无服务器 Kafka SaaS 产品来专注于业务逻辑。然而,混合场景需要一个云原生平台,该平台提供自动化和弹性工具来减轻运营负担。这篇博文探讨了如何在混合云架构中利用云原生和无服务器 Kafka 产品。我们从静态数据的角度和数据湖开始,探索它与 Kafka 的动态数据的关系。
























静态数据 - 仍然是正确的方法吗?



静态数据是指将数据存储在数据库、数据仓库或数据湖中。这意味着在许多用例中数据处理得太晚了 - 即使实时流组件(如 Kafka)摄取了数据。数据处理仍然是 Web 服务调用、SQL 查询或 map-reduce 批处理,而不是为您的问题提供结果。不要误会我的意思。静止数据并不是一件坏事。报告(商业智能)、分析(批处理)和模型训练(机器学习)等几个用例需要这种方法......如果你做对了!



Cloudera数据湖的错误做法



多年前,Cloudera 和 Hortonworks(以及 IBM 等几个合作伙伴)向大多数企业引入了数据湖。大多数公司都有大数据愿景(但他们不知道如何从中获得商业价值)。数据湖由 20 多个不同的开源框架组成。新框架出现时会添加,以便数据湖是最新的。唯一的问题?仍然没有商业价值。加上没有良好商业模式的供应商。仅仅销售支持是行不通的,尤其是当两个非常相似的供应商相互竞争时。结果是 Cloudera/Hortonworks 合并。几年后,转向私募股权。


2021 年,Cloudera 仍然支持这么多不同的框架,包括许多数据湖技术,还有诸如 Storm、Kafka、Spark Streaming 和 Flink 等事件流平台。我很惊讶一家相对较小的公司如何做到这一点。好吧,老实说,我并不感到惊讶。TL;DR:他们不能!他们对每个框架都有一点了解(而且只有垂死的 Hadoop 生态系统非常了解)。这种商业模式行不通。而且,到了 2021 年,Cloudera 仍然没有真正的 SaaS 产品。这也不足为奇。围绕 20 多个框架构建真正的 SaaS 产品并不容易。因此,我的观点得到证实:如果您是一家相对较小的公司,最好只做一件事,而不是试图做所有的事情。 



AWS 的 Lake House 策略



这就是今天与其他供应商一起构建数据湖的原因:主要的云提供商(AWS、GCP、Azure、阿里巴巴)、MongoDB、Databricks 和 Snowflake。他们每个人都有自己的特定用例和权衡。然而,他们的共同点是,他们的数据湖都有云优先策略和无服务器 SaaS 产品。


让我们更深入地了解 AWS,以了解具有良好商业模式的现代云原生战略在 2021 年会是什么样子。AWS 是公共云基础设施的市场领导者。此外,AWS 会定期发明新的基础设施类别。例如,EC2 实例开启了云时代,并启用了敏捷和弹性的计算能力。S3 成为对象存储的事实上的标准。如今,AWS 拥有数百种创新的 SaaS 服务。



AWS 的数据湖策略基于新的流行语 Lake House:


云原生数据湖架构中的无服务器 Kafka




如您所见,关键信息是一种解决方案无法解决所有问题。然而,更重要的是,所有这些问题都可以通过云原生、无服务器 AWS 解决方案解决:


云原生数据湖架构中的无服务器 Kafka





这就是公共云中的云原生数据湖产品的外观。显然,像 GCP 和 Azure 等其他超大规模厂商的无服务器产品也朝着相同的方向发展。不幸的是,由于延迟、安全性和成本原因,公共云并不是解决所有问题的正确选择。



混合和多云成为常态



近年来,许多新的创新解决方案针对另一个市场:边缘和内部基础设施。一些示例包括 AWS 本地区域、AWS Outposts、AWS Wavelength。我非常喜欢 AWS 设置新基础设施和软件类别的创新方法。大多数云提供商都有非常相似的产品,但 AWS 在许多情况下推出了它,而其他人通常或多或少地复制它。因此,我在这篇文章中关注 AWS。


话虽如此,每个云提供商都有特定的优势。GCP 以其在 Kubernetes、TensorFlow 等开源服务方面的领先地位而闻名。IBM 和 Oracle 最擅长为自己的产品提供服务和基础设施。我看到到处都有对多个云提供商的需求。我交谈过的大多数客户都有使用 AWS 和其他供应商(如 Azure、GCP、IBM、甲骨文或阿里巴巴)的多云战略。使用不同的云供应商存在充分的理由,包括成本、数据本地性、跨供应商的灾难恢复、供应商独立性、历史原因和专用的特定于云的服务。


幸运的是,无服务器 Kafka SaaS Confluent Cloud 可用于所有主要云。因此,类似的示例可用于将完全托管的 Kafka 生态系统与 Azure 和 GCP 一起使用。现在,让我们最终转到这篇文章的 Kafka 部分... :-)



从“静态数据”到“动态数据”



在进行了长时间的介绍之后,我们现在实际上又回到了无服务器 Kafka。只有具备背景知识,才有可能了解动态数据的兴起以及对云原生和无服务器服务的需求。



让我们从要指出的关键信息开始:


1. 在跨行业的大多数用例中,实时数据优于慢速数据。


2. 对于事件流,需要与现代数据湖相同的云原生方法。


3. 事件流和数据湖/湖库技术是互补的,而不是竞争性的。





由 Apache Kafka 提供支持的事件驱动架构和动态数据的兴起使企业能够构建实时基础设施和应用程序。



Apache Kafka:动态数据的事实标准



我不会在这篇文章中探讨 Kafka 成功的原因和用例。相反,请查看我关于跨行业 Kafka 用例的概述以获取更多详细信息,或阅读我的一些特定于垂直行业的博客文章。


简而言之,大多数附加值来自处理相关的动态数据,而不是存储静态数据并稍后(或为时已晚)处理。Forrester 的 Mike Gualtieri 的下图很好地说明了这一点:

云原生数据湖架构中的无服务器 Kafka




在卡夫卡API是在运动的事实标准API数据如Amazon S3的对象存储:


云原生数据湖架构中的无服务器 Kafka





虽然我知道 Snowflake 和 MongoDB 等供应商希望进入动态数据业务,但我怀疑这是否有意义。正如前面 Cloudera 部分所讨论的,最好专注于一件事并且做得很好。这就是为什么 Confluent 不仅与云提供商,而且与 Snowflake 和 MongoDB 建立了牢固的合作伙伴关系的原因。


Apache Kafka 是经过实战测试且可扩展的开源框架,用于处理动态数据。然而,它更像是一个汽车引擎。



一个完整的无服务器 Kafka 平台



当我谈论云、无服务器、AWS 等时,您可能会问自己:“如果您可以简单地使用 Amazon MSK,为什么还要考虑 AWS 上的 Kafka?” 这是强制性的,合理的问题!简短的回答:Amazon MSK 是 PaaS,而不是完全托管和无服务器的 Kafka SaaS 产品。



这是一个简单的反问:您更喜欢购买其中的哪一个?



1. 经过实战考验的汽车发动机(没有轮子、刹车、灯等)


2. 一辆完整的汽车(包括成熟和自动化的安全、安全和维护)


3. 自动驾驶汽车(包括无需转向、加油、换刹车、产品召回等的安全自动驾驶)

云原生数据湖架构中的无服务器 Kafka





在 Kafka 的世界里,你只能从 Confluent 获得一辆自动驾驶汽车。这不是销售或营销宣传,而是事实。所有其他云产品都为您提供自我管理的产品,您需要自己选择代理、修复错误、进行性能调整等。亚马逊 MSK 也是如此。因此,我建议评估不同的产品,以了解“完全托管”或“无服务器”是否只是营销术语或现实。查看“开源 Apache Kafka 与包括 Confluent、Cloudera、Red Hat、Amazon MSK 在内的供应商的比较”以获取更多详细信息。


无论您是要构建数据湖/湖屋架构,与其他 3rd 方应用程序集成,还是构建新的自定义业务应用程序:Serverless 都是云中的必经之路!



无服务器、完全托管的 Kafka



如果您在公共云中,完全托管的无服务器产品是最佳选择。无需担心运营工作。相反,应使用即用即付模型以及基于消费的定价和关键任务 SLA 和支持来关注业务问题。

云原生数据湖架构中的无服务器 Kafka





真正完全托管的无服务器产品不会让您访问服务器基础架构。您是否可以访问您的 AWS S3 对象存储或 Snowflake 服务器配置?不,因为那样您将不得不担心操作并可能影响甚至破坏集群。



自我管理的云原生 Kafka



并非每个 Kafka 集群都在公共云中运行。因此,一些 Kafka 集群需要由自己的运维团队进行部分管理。我见过很多企业自己都在为 Kafka 操作而苦苦挣扎,特别是如果用例不仅仅是将数据摄取到数据湖中,而是任务关键的事务或分析工作负载。


云原生 Kafka 通过自动化支持运营团队。这减少了风险和努力。例如,自平衡 集群接管分区的重新平衡。自动滚动升级允许您升级到每个新版本,而不是运行昂贵且有风险的迁移项目(通常会导致不迁移到新版本)。计算和存储的分离(使用分层存储)支持大型但经济高效的 Kafka 集群,其中包含万亿字节甚至 PB 级的数据,等等。


哦,顺便说一句:云原生 Kafka 集群不必在 Kubernetes 上运行。Ansible 或普通容器/裸机部署是在您自己的数据中心或边缘部署 Kafka 的其他常见选项。但是 Kubernetes 绝对提供了关于具有弹性规模的自动化的最佳云原生体验。因此,过去几年开发了各种 Kafka Operator(基于 CRD),例如 Confluent for Kubernetes 或 Red Hat 的 Strimzi。



Kafka 不仅仅是消息传递和数据摄取



最后但同样重要的是,让我们明确一点:Kafka 不仅仅是消息传递和数据摄取。我看到 今天大多数Kafka 项目也利用 Kafka Connect 进行数据集成和/或 Kafka Streams/ksqlDB 进行连续数据处理。因此,借助 Kafka,一个单一的(分布式和可扩展的)基础设施可以实现数据的消息传递、存储、集成和处理:

云原生数据湖架构中的无服务器 Kafka





一个完全托管的 Kafka 平台不仅运营 Kafka,还运营整个生态系统。例如,完全托管的连接器支持与原生 AWS 服务(如 S3、Redshift 或 Lambda)以及非 AWS 系统(如 MongoDB Atlas、Salesforce 或 Snowflake)进行无服务器数据集成。此外,使用 ksqlDB 的完全托管流分析支持大规模连续数据处理。


一个完整的 Kafka 平台提供了整个生态系统,包括安全性(基于角色的访问控制、加密、审计日志)、数据治理(模式注册、数据质量、数据目录、数据沿袭)以及许多其他特性,如全球弹性、灵活的 DevOps自动化、指标和监控。



示例 1:事件流 + 数据湖 / Lake House



以下示例展示了如何使用一个完整的平台通过各种 Confluent 组件以及与 AWS 湖屋服务的集成来进行实时分析:

云原生数据湖架构中的无服务器 Kafka




摄取和处理



使用 Schema Registry 捕获具有一致数据结构的事件流,使用 ksqlDB 使用轻量级 SQL 语法开发实时 ETL 管道,并使用 Kafka Connect 连接器通过批处理统一实时流。



存储和分析



使用预先构建的 Confluent 连接器将数据流式传输到您的 AWS 数据湖或数据仓库中,以对大量流式数据执行查询,以进行实时和批量分析。这个例子很好地展示了数据湖或湖屋服务和事件流如何相互补充。所有服务都是SaaS。甚至集成(由 Kafka Connect 提供支持)也是无服务器的。



示例 2:无服务器应用程序和微服务集成



以下示例展示了如何使用完整的平台将现有的应用程序和无服务器微服务与各种 Confluent 和 AWS 服务集成并构建新的应用程序:

云原生数据湖架构中的无服务器 Kafka




无服务器集成



以可重复的方式连接现有的应用程序和数据存储,而无需管理和操作任何东西。Apache Kafka 和 Schema Registry 确保保持应用程序兼容性。ksqlDB 允许使用 SQL 语法开发实时应用程序。Kafka Connect 提供与 Lambda 和数据存储的轻松集成。



AWS 无服务器平台



停止为计算、数据库和存储等后端组件配置、维护或管理服务器,以便您可以专注于提高开发团队的敏捷性和创新。



Kafka 无处不在:云、本地、边缘



公共云是数据中心的未来。但是,有两个主要原因不能在公共云基础架构中运行所有内容:


1. 棕地架构:许多企业在数据中心拥有大量应用程序和基础设施。混合云架构是唯一的选择。以大型机为例。


2. 边缘用例:由于成本、延迟、安全或法律原因,某些场景在公共云中没有意义。以智能工厂为例。




Apache Kafka 的多集群和跨数据中心部署已成为常态而非例外。多个场景需要多集群解决方案,包括灾难恢复、分析聚合、云迁移、关键任务延伸部署和全球 Kafka。在博客文章“分布式、混合、边缘和全球 Apache Kafka 部署的架构模式”中了解更多相关信息。


各种 AWS 基础设施支持在公共云之外部署 Kafka。Confluent Platform 在 AWS Outposts 上获得认证,因此可以在各种 AWS 硬件产品上运行。



示例 3:与 Kafka-Native 集群链接的混合集成


以下是棕地现代化的示例:


云原生数据湖架构中的无服务器 Kafka





连接:预先构建的连接器不断从本地现有服务中获取有价值的数据,包括企业数据仓库、数据库和大型机。此外,在需要时也可以进行双向通信。


桥 :混合云流支持一致、可靠的实时复制,为新应用程序构建现代事件驱动架构以及与第一和第三方 SaaS 接口的集成。


现代化:公共云基础架构提高了将应用程序推向市场的敏捷性,并在释放资源以专注于创造价值的活动而不是管理服务器时降低了 TCO。



示例 4:在 AWS Wavelength 上使用云原生 5G 基础设施的低延迟 Kafka


低延迟数据流需要靠近边缘机器、设备、传感器、智能手机和其他接口运行的基础设施。AWS Wavelength 专为这些场景而构建。企业不必在边缘安装自己的 IT 基础设施。




以下架构显示了 Confluent、AWS 和 Verizon 构建的示例:


云原生数据湖架构中的无服务器 Kafka




在博客文章“使用 Apache Kafka 和云原生 5G 基础设施进行低延迟数据流”中了解有关动态数据低延迟用例的更多信息。




现场演示:混合云复制


我录制了一个现场演示来展示内部部署的 Kafka 集群和 Confluent Cloud 之间的流复制,包括使用ksqlDB 进行流处理以及与 Kafka Connect 的数据集成(使用完全托管的 AWS S3 连接器)。



我最近与 AWS 一起举办了一次网络研讨会,以展示结合 Confluent 和 AWS 服务的附加价值。这在过去几年成为许多事务和分析工作负载的标准模式。



反向 ETL 及其与数据湖和 Kafka 的关系



在结束这篇文章时,我想再探讨一个您可能听说过的术语。流行语仍处于早期阶段,但越来越多的供应商提出了一个新趋势:反向 ETL。简而言之,这意味着将 数据存储在您喜欢的长期存储(数据库/数据仓库/数据湖/湖屋)中,然后再次从那里取出数据以连接到其他业务系统。


在 Kafka 世界中,这与变更数据捕获 (CDC) 相同。因此,反向 ETL 并不是什么新鲜事物。Confluent 为许多相关系统提供 CDC 连接器,包括 Oracle、MongoDB 和 Salesforce。


正如我之前提到的,数据存储供应商试图进入动态数据业务。
我不确定这会去哪里。
就我个人而言,我相信事件流平台是企业架构中处理动态数据的正确位置。
通过这种方式,每个应用程序都可以实时使用数据——与另一个数据库或
数据湖分离。
但未来会显现。
我认为这篇博文是一个很好的结尾,以澄清这个新的流行语及其与 Kafka 的关系。
将来可能值得自己写一篇文章。



使用 AWS 和 Confluent 的无服务器和云原生 Kafka



云优先策略是当今的常态。无论用例是新的绿地项目、棕地遗留集成架构还是具有混合复制的现代边缘场景。Kafka 成为处理动态数据的事实标准。然而,卡夫卡只是拼图的一部分。大多数企业更喜欢完整的云原生服务。AWS 和 Confluent 是一个经过验证的组合,适用于跨行业的各种用例,可以在任何地方部署和运行 Kafka 环境,包括公共云中真正的无服务器 Kafka 和公共云之外的云原生 Kafka。当然,虽然这篇文章侧重于 Confluent 和 AWS 之间的关系,但 Confluent 与 GCP 和 Azure 也有类似的强大合作伙伴关系,以提供这些超大规模器上的动态数据。






——联系方式——




































云原生数据湖架构中的无服务器 Kafka













云原生数据湖架构中的无服务器 Kafka





官方网站








http://www.jintancn.com/













云原生数据湖架构中的无服务器 Kafka











24h在线 :17751719173   


               0512-36606771













云原生数据湖架构中的无服务器 Kafka





意见反馈








jintancn@163.com













云原生数据湖架构中的无服务器 Kafka











中国上海市嘉定区安亭地铁站附近500米
















云原生数据湖架构中的无服务器 Kafka





客服微信:






















推荐阅读
  • ejava,刘聪dejava
    本文目录一览:1、什么是Java?2、java ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 单点登录原理及实现方案详解
    本文详细介绍了单点登录的原理及实现方案,其中包括共享Session的方式,以及基于Redis的Session共享方案。同时,还分享了作者在应用环境中所遇到的问题和经验,希望对读者有所帮助。 ... [详细]
  • 众筹商城与传统商城的区别及php众筹网站的程序源码
    本文介绍了众筹商城与传统商城的区别,包括所售产品和玩法不同以及运营方式不同。同时还提到了php众筹网站的程序源码和方维众筹的安装和环境问题。 ... [详细]
  • GAMETECH腾讯云游戏行业技术沙龙成都站圆满落幕
    11月13日,由腾讯云主办、游戏茶馆协办的2020年首场GAME-TECH腾讯云游戏行业技术沙龙在成都圆满落幕。本次沙龙邀请了腾讯云游戏行业解决方案总监宋永周、腾讯云游戏行业高级解决方案架构师曾梓恩、腾讯云游戏行业高级产品架构师郑晓曦、腾讯云游戏行业高级解决方案架构师温球良和天美L1(王者荣耀)服务器技术副总监杨光,为参会同行们带来了干货满满的技术建议。本文介绍了腾讯云游戏云的优势和为不同游戏研运场景提供的服务。腾讯云在中国游戏云服务市场领跑,成为众多游戏开发者的合作伙伴。 ... [详细]
  • 企业数据应用挑战及元数据管理的重要性
    本文主要介绍了企业在日常经营管理过程中面临的数据应用挑战,包括数据找不到、数据读不懂、数据不可信等问题。针对这些挑战,通过元数据管理可以实现数据的可见、可懂、可用,帮助业务快速获取所需数据。文章提出了“灵魂”三问——元数据是什么、有什么用、又该怎么管,强调了元数据管理在企业数据治理中的基础和前提作用。 ... [详细]
  • 集成电路企业在进行跨隔离网数据交换时面临着安全性问题,传统的数据交换方式存在安全性堪忧、效率低下等问题。本文以《Ftrans跨网文件安全交换系统》为例,介绍了如何通过丰富的审批流程来满足企业的合规要求,保障数据交换的安全性。 ... [详细]
author-avatar
hashico_983
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有