砥砺奋进谱新篇,且看旧貌换新颜。欢迎访问新的 IBM Developer 中文网站! 了解详情

云原生应用程序的后端可移植性

许多开发人员担心被锁定在一个云供应商。您的所有代码可能都托管在一个云环境中,然后当价格结构或其他方面发生变化,云就不再满足您的需求。

对于使用云产品的开发人员来说,在 Kubernetes 供应商之间迁移工作负载是必需的。但其可行性究竟如何?怎样才能轻松将各种应用迁入和迁出像 IBM Cloud 这样的云平台?对于其中的可移植性,我想要一探究竟,因此我着手寻找答案。

我发现,通过 Red Hat OpenShift 您可以使用其他云供应商,并以比我预期更简单的方式将应用程序移植到这些新的提供商。我从 Red Hat OpenShift on IBM Cloud 上的示例医疗保健应用程序开始,然后移至其他三个不同的云:Rackspace、OpenShift Online 和 Scalegrid。

利用示例医疗保险应用进行试验

首先我需要一个应用程序来进行尝试,因此我选择了一个 Code Pattern:即 Example Health 用例。Example Health 正如其名,是一个虚构医疗保健和保险公司的示例应用程序。此示例用例由三个主要部分组成:用户界面 (UI)、Java 主应用本身以及数据源。下图显示了 IBM Cloud 上设置的完整应用程序版本:

最新版本

为了证明可移植性,我提取了 Example Health Code Pattern 的业务逻辑部分,将其安装在另一个云平台 – 我使用的是 Red Hat OpenShift Online。(您可在此处获取一个月试用版)。

就像许多其他应用程序一样,Example Health Code Pattern 也需要数据源。 最初,我连接到 MySQL 数据库的现有实例,我将数据库复制到托管服务 Scalegrid(同样使用的是免费试用版本),并将应用程序指向该服务。

提交建议

最后一项任务是在另一个 OpenShift 提供商上设置患者 UI,这次采用的是 Red Hat OpenShift on IBM Cloud。部署 UI 后,我可以将其连接到应用程序其余部分,从而生成类似于如下截屏的结果:

截屏

全盘整合

我组织中优秀的伙伴们创建了 Example Health 应用程序以展示各种技术和实践。我们希望通过 Example Health 展示的主要功能之一是动态切换数据源。首次打开此应用程序的患者 UI 时,缺省情况下,它使用千篇一律的响应,但您可以通过 API Connect 或 OpenShift 上的 Java Liberty 将其与 z/OS 数据库集成,如前一节所示。要指定任一响应,请在 UI 中选中 settings 选项卡:

设置

在后端之间进行切换可以演示如下图所示的架构:

实际结果

结束语

这些示例演示了如何完全地将示例应用程序迁入和迁出 IBM Cloud。Example Health 还具有一些其他用户界面。您可以想象将其中任一界面放置在任何其他云上所实现的结果…

本文翻译自:Back-end portability for cloud-native applications(2019-09-19)