大家好,我是 Jakub。你可能已经注意到,最近 Debezium UI 方面没有太多动静。然而,这只能算部分正确。我们欠大家一个解释,所以请耐心听我说。

让我们先谈谈**当前** UI 项目的状态。越来越清楚的是,虽然 Debezium 的 UI 是我们愿景的重要组成部分,但开发一个严格绑定于 Kafka Connect 的 UI 并不是正确方向。因此,我们决定冻结**当前** Web UI 项目的开发。做出这个决定的主要有两个原因:

  1. 团队没有精力(也没有意愿)去开发一个通用目的的 Kafka 连接器 UI,使其能够与现有的一些产品(例如 Lenses)相媲美。因此,我们的 UI 只能专门用于 Debezium 连接器。

  2. Debezium Server 的受欢迎程度日益增长,我们也希望能够提供一种用户友好的方式来管理这种形式的 Debezium。不幸的是,Debezium Server 的部署模式与将 Debezium 作为连接器部署的模式截然不同。

下一步是什么?

正如前一段提到的**当前** UI,我们并没有放弃这个想法,这可能并不令人意外。决策的一部分是探索创建新 UI 的可能性,该 UI 仍然完全专注于 Debezium,但将逐步支持多种部署模式。其想法是首先支持在 Kubernetes 上部署的 Debezium Server,然后是 Debezium Server 的裸金属部署。未来某个时候,我们希望能够回到 Kafka Connect,并支持将 Debezium 作为 Kafka Connect 连接器进行部署和操作。

Architecture

设计新 UI

我们在设计新平台时给自己定义的目标之一是简化对 Debezium 功能的理解。为此,我们将从底层部署模式中抽象出来。与其关注服务器和连接器,我们希望允许用户从数据流的角度来思考 Debezium。因此,新一代 UI 应该围绕数据管道进行操作——你定义源、目标和任何数据转换。

然后可以将它们组合成一个可部署的管道。根据目标环境(Kafka Connect、Kubernetes、裸金属),将使用相应的部署方式。

Initial Wireframe Design

当管道被部署到 Kubernetes 或裸金属机器时

  • Source 是 Debezium Source 连接器的配置。

  • Transformations 是常规的 SMT。

  • Destination 对应于 Debezium Server 的 Sink 的配置。

当管道被部署到 Kafka Connect 时

  • Source 是 Debezium Source 连接器的配置。

  • Transformations 是常规的 SMT。

  • Destination 始终是一个 Kafka 主题。

未来,我们还可以允许使用我们的 JDBC 和 MongoDB Sink 连接器作为目标,从而在以 Kafka Connect 为目标时实现真正端到端定义的管道。

我们目前的进展

我们正处于这段旅程的开始阶段。尽管如此,我们已经准备了一个粗略的 PoC 原型供您查阅。正如之前简要提到的,最初的计划是只支持 Kubernetes 作为部署环境,特别是 Kubernetes 上的 Debezium Server。这个选择使我们能够利用我们的 Debezium Operator。

Screenshot: Destination types list

我们打算逐步引入配置和功能支持。因此,配置是刻意带有主观性且简化的——目前所有管道只能使用临时存储。在此早期版本中,您还必须将所有配置属性设置为简单的键值对。我们打算在未来改变这一点,下一步,您可以期待属性名称的自动补全,最终,将呈现完全专业化的表单。

Screenshot: Create new source

您可以在 GitHub 上查看代码库的当前状态

我们需要您的帮助!

在这个简短的报告结束时,我们想请您试用这个早期的 PoC 并告诉我们您的看法。如果您能回答以下问题,我们将不胜感激:

  • 对您来说,哪些功能是必不可少的?

  • 您认为哪些功能是锦上添花的好功能?

  • 您的视觉印象如何?

感谢您,期待我们尽快为您带来更多更新!

Čecháček Jakub

Jakub 是 Red Hat 的首席软件工程师。他居住在捷克共和国。

   


关于 Debezium

Debezium 是一个开源的分布式平台,可以将现有数据库转变为事件流,使应用程序能够几乎即时地看到并响应数据库中已提交的每个行级更改。Debezium 构建在 Kafka 之上,并提供了 Kafka Connect 兼容的连接器,用于监控特定的数据库管理系统。Debezium 将数据更改的历史记录在 Kafka 日志中,这样您的应用程序可以随时停止和重新启动,并可以轻松地消费在未运行时错过的所有事件,确保所有事件都被正确且完整地处理。Debezium 在 Apache 许可证 2.0 下是 开源 的。

参与进来

我们希望您觉得 Debezium 有趣且有用,并希望尝试一下。在 Twitter @debezium 上关注我们,在 Zulip 上与我们聊天,或加入我们的 邮件列表 与社区交流。所有代码都在 GitHub 上开源,因此请在本地构建代码,帮助我们改进现有连接器并添加更多连接器。如果您发现问题或有改进 Debezium 的想法,请告诉我们或 记录一个问题

版权所有 © Debezium 及其作者。保留所有权利。有关我们的商标详情,请访问我们的 商标政策商标列表。第三方商标属于其各自所有者,在此提及并不表示任何认可或关联。
×