IBM Cloud Docs
迁移服务绑定

迁移服务绑定

让我们采用遵循 12 因子应用程序原则的通用云原生应用程序,简化和更新代码,并创建 Cloud Foundry 和 Code Engine 版本。 这些版本是讨论迁移步骤和部署方面的示例。

样本应用程序是使用 Node.js (JavaScript) 编写并使用 Express Web 框架的典型 Web 应用程序。 IBM Cloudant NoSQL 数据库充当支持服务,用于存储应用程序显示的数据。 作为云原生的 12 因子应用的典型应用,样本应用基于可复用的离散组件,这些组件充当微服务,以构成整体应用。 已部署的 Node.js 程序和数据库都可以独立缩放,改进甚至替换。 由于组件的配置方式以及使用明确定义的 API,因此这些组件协同工作。

具有后端数据库服务的简单云本机应用程序。
Simple cloud-native app with backend database service.

可以将 IBM Cloudant 数据库配置为与部署到 Cloud Foundry 和 Code Engine的应用程序版本一起作为附加资源工作。 为了简单起见,该解决方案保留了这两个组件。

创建服务绑定

此样本应用程序需要 Cloudant 数据库来存储内容。 您可以通过手动注入环境变量来配置对 Cloudant 的访问权,但典型过程是通过 服务绑定。 明确声明了应用程序与其支持服务之间的关系,因此将创建凭证并将其自动注入到运行时环境中。 Cloud Foundry 提供凭证作为 VCAP_SERVICES 对象的一部分。Code Engine 通过其 CE_SERVICES 环境变量来模拟此对象。

Cloud Foundry 和 Code Engine 应用程序都连接到数据库服务。 可以将部署到 Code Engine 的代码视为 Cloud Foundry 应用程序的不同较新版本。 它继续绑定到同一数据库服务,但通过其他方式。

要将应用程序的 Code Engine 版本绑定到服务,

  1. 访问 Cloudant 数据库实例。 如果没有,请创建一个。
  2. 使用描述性名称为 Cloudant 实例创建服务凭证 (IAM 服务密钥)。 指定应用程序的 IAM 角色 (ManagerWriterReader)。 选择具有应用程序所需的最低级别特权的角色。
  3. 使用现有凭证将服务绑定到应用程序。Code Engine 可以在绑定服务时为您创建凭证。 但是,通过创建您自己的凭证,您可以独立于 Code Engine来跟踪甚至更改特权。

对于将 Cloudant 作为数据库服务的此样本应用程序,运行以下命令以创建具有 Manager 角色的服务密钥 Cloudant-CF2CE-Manager,然后使用它来绑定服务。

ibmcloud resource service-key-create Cloudant-CF2CE-Manager Manager --instance-name Cloudant-CF2CE
ibmcloud ce app bind --name cf2ce-app --service-instance Cloudant-CF2CE --service-credential Cloudant-CF2CE-Manager

如果 Cloud Foundry 应用程序通过 用户提供的服务连接到服务,请为 Code Engine创建使用 私钥configmaps 的应用程序。 通过使用私钥和 configmap,您可以将服务凭证注入到运行时环境中,并将其作为 Code Engine 项目中的指定对象进行管理。

迁移代码

通常,代码迁移是直进的。 例如,您的代码必须从 CE_SERVICES for Code Engine读取,而不是从名为 VCAP_SERVICES for Cloud Foundry的环境变量中读取。 此外,由于通过 Cloud Foundry 的代理程序以及 Code Engine的基于 IAM 的资源管理提供服务的方法,请注意如何命名服务的细微差异。

根据编程语言,您的代码可能使用代码库或模块来访问 Cloud Foundry 运行时环境,本地注入的配置 ("dotenv") 等。 这些章节必须加以修改。

在这两个应用程序示例中比较 server.js 文件中的代码。

登台应用程序迁移

如果应用程序在从 Cloud Foundry 移动到 Code Engine时无法关闭,请考虑使用中间步骤执行代码迁移。

  • 1cloudfoundry_base: Cloud Foundry 代码库作为初始源。 此应用程序仅在 Cloud Foundry中运行。
  • 2cf_ce_中级混合: 添加代码以同时支持 Code Engine 部署。 此应用程序同时在 Cloud Foundry 和 Code Engine中运行。
  • 3codeengine_target: 最后,在实际项目迁移完成后,移至仅 Code Engine代码库。 此应用程序仅在 Code Engine中运行。

此方法是有益的,因为您可以在迁移过程中继续维护或增强代码库,而不依赖于部署环境。

构建代码并运行应用程序

当您完成设置服务绑定,迁移代码以及准备登台迁移时,是时候构建代码了。 遵循 第一个迁移教程 中的步骤从本地源构建代码。 如果要使用控制台来构建代码,那么代码必须位于 Git-hub 中。 有关更多信息,请参阅 从源代码部署应用程序

后续步骤

  1. 刚开始迁移? 请查看 入门
  2. 将 Cloud Foundry 术语与 Code Engine 进行比较。
  3. 使用本地构建教程试用 Code Engine
  4. 迁移服务绑定 (当前页面)
  5. 了解 缩放和流量管理
  6. 查找 Code Engine 等效于 Cloud Foundry 命令
  7. 仍然有疑问? 尝试 将 Cloud Foundry 应用程序迁移到 Code Engine 常见问题解答

其他信息