基于 Kyma 的企业级云原生应用的扩展案例分享 1

简介: 基于 Kyma 的企业级云原生应用的扩展案例分享

什么是 Kyma?其官网的定义是,Kyma 是一个开源的云原生应用开发平台和运行时,底层基于 Kubernetes,借助一系列包括 Istio, NATS, Serverless 和 Prometheus 在内的其他优秀开源项目和组件,能够开发、运行和操作云原生应用程序,支持对传统的 On-Premises(本地部署)应用程序和云原生应用基于事件驱动模式的松耦合扩展。


本文分为两部分,分别给大家介绍使用 Kyma 对本地部署的传统应用和企业级云原生应用进行扩展的案例。

使用 Kyma 扩展本地部署的 WordPress 应用

WordPress 是一个基于 PHP 的开源内容管理系统,很多朋友喜欢使用 WordPress 搭建自己的个人博客网站。


设想这样一个场景:某程序员是一个社交媒体达人,喜欢将自己的见闻经历,同步到 Twitter,Facebook,Youtube,微信等多个社交媒体上。手动登录一个个媒体平台然后逐一更新状态,无疑是一件费时费力的事情。


还好我们是程序员,可以充分发挥自己的动手能力。


假设我们自己的 WordPress 网站可以同 Kyma 连接,每当 WordPress 有新的动态(比如一篇博客)发布时,会给 Kyma 发送一个 post.published 事件。Kyma 接收到该事件后,触发注册在该事件上的监听函数,逐一调用社交媒体平台的 API,创建对应的动态即可。


我们本地部署的 WordPress,扮演的就是下图左边 Business Solution 代表的角色。


安装 Kyma for WordPress 的插件之后,我们能够在 WordPress Settings 标签页里,看到一个新的 Kyma Connector Settings 页面,维护 Kyma 实例的 url,登录用户名和密码等信息。


在上图 Kyma Connection 字段里维护的 url,会被 Kyma Application Connector 解析,并在 WordPress 和 Kyma 间建立互相信任的连接。


在 Kyma 控制台创建一个新应用,点击 Connection Application 按钮,把弹出的 url 维护到 WordPress Kyma Connection 字段。

如果把该 url 直接粘贴到浏览器里,可以看到以下内容:


  • csrUrl(Certificate Signing Request) 和 certificate:用来生成在 WordPress 和 Kyma 之间建立 SSL 连接所必需的数字证书
  • api:Kyma Service Catalog 注册的 endpoint

我们通过单步调式 WordPress 的方式,来深入了解 WordPress 与 Kyma 建立安全连接的技术细节。


WordPress 向传入的 url 发起 HTTP GET 请求(下图第 22 行代码的 wp_remote_get),获取到 CSR Certificate 和 API end point,存储在第 32 行的变量 $body_json 内。


第 73 行从变量 $body_json 的 csrUrl 字段拿到 Kyma 的 CSR(Certificate Signning Request)url,第 75 行向该 url 发送一个 POST 请求,拿到响应:


将 HTTP 响应数据另存为WordPress 目录下的三个本地文件:

  • crt.pem
  • clientCrt.pem
  • caCrt.pem


接下来 WordPress 同 Kyma 的安全连接,就是基于这些本地数字证书文件来完成。

建立了安全连接后,下一步需要将 WordPress 指定的事件发布到 Kyma 上去。


点击上图 Save Changes 之后,WordPress 的 Kyma 插件会将用户维护的待注册事件,拼装成对应的 JSON 字符串,通过 HTTP POST 请求 向 Kyma 发送:


事件注册成功后,在 Kyma Application 控制台,就能看到发起连接请求的 WordPress 实例的对应记录:

同时在 Kyma Service Catalog 里,也能看到 WordPress 通过注册事件暴露出来的可访问 API 入口:

WordPress 事件发布成功后,这些事件就会出现在 Kyma 实例控制台的 Service Catalog(服务目录)界面里,如下图所示。


这种事件注册机制,确保了 WordPress 和 Kyma 的松耦合关系:在 Kyma 平台上编写事件监听函数的开发人员,完全不需要了解关于 WordPress 的任何技术细节,这些事件监听函数在 Kyma 上的载体就是一个个 Lambda Function,开发人员可以用自己喜欢的编程语言来实现函数。

创建一个 Lambda Function,为 WordPress 暴露给 Kyma 的 post.published 事件实现监听函数的逻辑。

函数实现的技术栈,选择 Node.js:


Select Function Trigger 即触发方式选择,我们选择 WordPress 暴露给 Kyma 的 post.published 事件。这样当 WordPress 里有新的 post 创建时,WordPress 会发送 post.published 事件,连同 post 的具体内容,传给 Kyma,后者会自动调用创建好的基于 Serverless 的 Lambda Function.

剩下的 Lambda Function 的实现工作就是纯粹的 Node.js 编程:从事件参数 event 对象里将 WordPress 传入的 post 内容解析出来,调用 axios 工具库将此条 post 进行转发。

Lambda Function 实现里,我选择了调用微信 Open API,将该条 post 推送给一个用于测试的硬编码的微信用户:

以上就是使用 Kyma 将 WordPress 里发布的内容自动 “同步” 到其他社交媒体平台比如微信的步骤。我们简单回顾一下思路:


(1) 通过 Kyma Application Connector 与 WordPress 建立互相信任的安全连接。


(2) 将 WordPress 暴露出的 post.published 事件,发布到 Kyma Service Catalog 里。


(3) 实现 Kyma Lambda Function,监听 WordPress 所发布的 post.published 事件,实现对应的内容转发到社交媒体平台的功能。如果除了微信之后,还希望转发到其他社交媒体平台上,只需再创建一个新的 Lambda Function,然后调用其他的社交媒体平台的发布 API 即可。


以上步骤同样适用于通过 Kyma 对其他的云原生应用进行扩展。


按照上述三个步骤,对 WordPress 进行扩展之后,发布一条新的帖子,关于影片《切尔诺贝利》的观后感:

单步调试 WordPress 的帖子发布功能,发现发布的帖子内容被推送到了 Kyma API Gateway 对应的 url:

回到 Kyma Lambda Function 函数的控制台,确认 WordPress 发送的事件内容,已经成功被 Kyma 接收到了:

最后我的微信号上成功收到了 Kyma Lambda Function 里调用微信 Open API 发送的消息:

相关文章
|
1天前
|
运维 Cloud Native Devops
云原生技术:构建弹性、高效和可扩展的现代应用
在当今数字化时代,企业面临着日益复杂的市场需求和技术挑战。为了满足这些需求,许多企业转向了云原生技术。云原生是一种以云计算为基础的架构和方法论,旨在构建弹性、高效和可扩展的现代应用程序。本文将深入探讨云原生技术的核心概念、优势以及实施过程中的关键步骤,帮助读者更好地理解和应用这一前沿技术。
12 6
|
1天前
|
Cloud Native Devops 持续交付
云原生技术:构建现代应用的新范式##
在当今数字化时代,企业正面临着前所未有的挑战和机遇。随着云计算技术的不断发展,越来越多的企业开始采用云原生架构来构建和部署应用程序。本文将探讨云原生技术的关键概念、优势以及如何利用这些技术来推动业务创新和增长。我们将从微服务架构、容器化、持续集成/持续部署(CI/CD)等方面深入分析云原生技术的核心原理,并分享一些成功案例,帮助读者更好地理解和应用云原生技术。 ##
|
1天前
|
运维 Cloud Native API
探索云原生技术:构建现代应用的新范式
在当今这个数字化时代,云原生技术正迅速成为推动企业数字化转型的关键力量。它不仅重新定义了应用的构建、部署和运行方式,还为企业带来了前所未有的灵活性、可扩展性和弹性。本文旨在深入探讨云原生技术的精髓,通过解析其核心概念、关键技术和实践案例,揭示云原生如何引领我们进入一个更加高效、智能的应用开发新时代。不同于传统的技术综述,本文将以通俗易懂的语言,结合条理清晰的逻辑结构,带领读者一同领略云原生技术的奥秘与魅力。
|
1天前
|
运维 Cloud Native Devops
云原生技术:构建现代应用的基石
本文深入探讨了云原生技术的核心概念、主要特点及其在现代软件开发和运维中的重要性。通过分析云原生技术的十二要素、微服务架构以及DevOps实践,揭示了云原生如何助力企业实现高效、灵活和可扩展的应用部署。同时,本文还讨论了云原生技术在实际应用中的优势与挑战,并展望了其未来的发展趋势。
13 4
|
1天前
|
Cloud Native 持续交付 云计算
探索云原生架构:构建现代应用的新范式
在当今数字化浪潮中,云原生架构以其敏捷性、弹性和可扩展性成为企业技术转型的核心驱动力。本文将引领读者深入理解云原生的概念,剖析其关键技术组件——微服务、容器化、DevOps实践及持续交付/持续部署流程,并揭示这些技术如何相互协作,共同构建高效、可靠且易于管理的现代软件系统。通过对云原生架构的全面解读,我们旨在为开发者、架构师乃至企业决策者提供有价值的见解与指导,助力其在快速变化的市场环境中保持竞争力。
|
1天前
|
Kubernetes Cloud Native 持续交付
云原生技术:构建现代应用的基石
想象一下,如果我们的应用程序像水一样流动,自由地在各种环境中穿行,不受任何限制。这就是云原生技术的承诺——提供一种更加灵活、高效和可扩展的方法来构建和运行应用程序。本文将深入探讨云原生的核心概念、关键技术以及它如何改变我们的开发和部署方式,揭示这一技术如何成为现代应用不可或缺的基石。
|
1天前
|
运维 Cloud Native 云计算
云原生技术在现代企业中的应用与挑战
随着云计算技术的飞速发展,云原生(Cloud Native)技术逐渐成为现代企业实现数字化转型的重要手段。本文将深入探讨云原生技术的核心理念、主要特点及其在实际业务中的应用。通过分析云原生技术在提高开发效率、降低运维成本和增强系统弹性方面的优势,揭示企业在采用云原生技术过程中面临的挑战及应对策略。我们将从实际案例出发,展示云原生技术如何帮助企业在激烈的市场竞争中脱颖而出,并展望未来的发展趋势。希望通过本文的阐述,让读者对云原生技术有一个全面而深入的理解,助力其在业务场景中落地生根。
5 0
|
1天前
|
Cloud Native Devops 持续交付
探秘云原生架构:构建高效、灵活的现代应用
在当今数字化时代,企业面临着日益复杂的技术挑战和快速变化的业务需求。为了适应这种环境,云原生架构应运而生。本文将带您深入了解云原生的核心概念、关键技术和应用案例,揭示其在提升业务效率、降低运维成本方面的独特优势。通过阅读本文,您将获得关于如何利用云原生技术构建现代化应用的宝贵见解。
6 0
|
1天前
|
运维 Cloud Native 持续交付
云原生技术:构建现代应用的未来
在当今数字化时代,技术的快速迭代和业务需求的不断变化要求企业具备更高的灵活性和响应速度。云原生技术以其独特的优势,如微服务架构、持续集成/持续部署(CI/CD)、容器化等,成为现代企业实现敏捷开发和运维的重要手段。本文将深入探讨云原生技术的核心概念、关键技术以及其在不同应用场景中的优势和挑战。
5 0
|
8天前
|
运维 Cloud Native 安全
云原生技术:重塑现代IT架构的引擎
在当今数字化时代,企业正面临着前所未有的挑战与机遇。随着云计算技术的不断发展,云原生技术作为其核心驱动力之一,正在彻底改变企业的IT架构和运营模式。本文将深入探讨云原生技术的内涵、特点及其对企业数字化转型的影响,揭示其在现代IT架构中的核心地位和作用。同时,我们还将分析云原生技术面临的安全挑战,并展望未来的发展趋势,为企业在云原生领域的实践提供有益的参考。

热门文章

最新文章