使用 KafkaDebezium 和 Kubernetes 实现应用现代化的模式

Posted InfoQ 架构头条

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用 KafkaDebezium 和 Kubernetes 实现应用现代化的模式相关的知识,希望对你有一定的参考价值。

作者|Bilgin Ibryam
译者|张卫滨
策划|辛晓亮

本文最初发表于 RedHat 的开发者站点,经原作者 Bilgin Ibryam 许可,由 InfoQ 中文站翻译分享。

应用现代化概述

应用现代化(Application modernization)指的是对现有遗留应用的基础设施(内部架构)进行现代化的过程,以提高新特性的交付速度、改善性能和可扩展性以及为新的使用场景提供功能等等。对应用程序的现代化和迁移类型已经有了很好的分类,如图 1 所示。

Strangler 模式

在应用程序迁移方面,Strangler 是最流行的技术。Martin Fowler 以 Strangler Fig Application 的名称介绍并普及了这种模式,它的灵感来自于一种无花果(fig),这种植物能够在一棵树的上部枝条上播种,并逐渐围绕原来的树生长,最终将原来的树取而代之。与应用迁移同时要做的事情是,我们的新服务最初被设置为包裹现有系统。通过这种方式,新旧系统可以共存,从而给新系统以成长的时间,并试图逐渐取代旧的系统。图 3 展示了遗留应用程序迁移时 Strangler 模式的主要组件。

迁移之后:应用现代化的挑战

考虑采用 Strangler 模式进行迁移的最重要原因是降低风险。这种模式可以稳定地提供价值,并允许我们通过频繁的发布来展示进展。但是,如果仅仅是迁移,没有任何功能增强或新的“商业价值”,是很难说服一些利益相关者的。在长期的现代化过程中,我们还希望能够增强现有的服务并增加新的服务。在进行应用现代化的最初设想中,我们通常也会有一项任务就是为构建后续的现代应用奠定基础和最佳实践。通过迁移越来越多的服务并增加新的服务,以及总体上向微服务架构过渡,新的挑战将会出现,包括:

  • 自动部署和运维大量的服务。

  • 以可靠和可扩展的方式执行双重写入和协调长期运行的业务流程。

  • 解决对分析和报告的需求。

  • 这些挑战在传统的应用中可能并不存在。接下来,我们讨论一下,如何组合使用设计模式和技术来解决其中的一些问题。

    结论

    Strangler 模式、Outbox 模式和 Saga 模式可以帮助我们从遗留系统中迁移出来,同时它们也可以帮助我们建立全新的、现代的、事件驱动的服务,这些服务是面向未来的。

    Kubernetes、Apache Kafka 和 Debezium 是开源项目,已经变成了各自领域中的事实标准。你可以用它们来创建标准化的解决方案,它们都有丰富的生态系统,包括支撑工具和最佳实践。

    从这篇文章以及我在 2021 年 Red Hat 峰会上的演讲中得到的一个启发是,我意识到现代软件系统就像城市一样。它们随着时间的推移,会在遗留系统的基础上不断发展。使用成熟的模式、标准化的工具和开放的生态系统将帮助我们创建持久的系统,并且能够随着你的需求而成长和变化。

    原文链接:

    https://developers.redhat.com/articles/2021/06/14/application-modernization-patterns-apache-kafka-debezium-and-kubernetes

    今日文章推荐:

    重磅!CNCF 2021 年度调查报告出炉

    60 年屹立不倒,COBOL 或将借助云重焕生机

    亚马逊工程师:我在职业生涯中学到的 8 个重要经验

    GitHub 良心操作:推出仅供赞助者使用的存储库

    大佬手把手带你复刻 Netflix

    Kubernetes imagePullPolicy 拉取策略

            Always

            总是拉取 pull

    imagePullPolicy: Always

            IfNotPresent

            默认值,本地有则使用本地镜像,不拉取

    imagePullPolicy: IfNotPresent
    

            Never

            只使用本地镜像,从不拉取

    imagePullPolicy: Never
    

            到此 Kubernetes imagePullPolicy 拉取策略介绍完成。

    以上是关于使用 KafkaDebezium 和 Kubernetes 实现应用现代化的模式的主要内容,如果未能解决你的问题,请参考以下文章

    Kubernetes imagePullPolicy 拉取策略

    Kubernetes imagePullPolicy 拉取策略

    (KAFKA Oracle DEBEZIUM)无法连接:无法解析Oracle数据库版本

    2020年软件开发趋势

    Kubernetes 集群日志 和 EFK 架构日志方案

    2021年年度最优质开源软件