从 CI/CD 部署 IBM App Connect 企业应用程序

推荐2年前 (2022)发布 AI工具箱
10 0 0

每日分享最新,最流行的软件开发知识与最新行业趋势,希望大家能够一键三连,多多支持,跪求关注,点赞,留言。

共享用于将 IBM App Connect Enterprise 应用程序部署到 Red Hat OpenShift 的示例 Tekton 管道

这篇文章是关于我在 GitHub 上共享的存储库dalelane/app-connect-tekton-pipeline。它包含一个示例,说明如何使用Tekton创建 CI/CD 管道,用于构建App Connect Enterprise应用程序并将其部署到Red Hat OpenShift。

该管道使用IBM App Connect Operator轻松构建、部署和管理容器中的应用程序。该管道在 OpenShift 上运行,使其能够轻松集成到自动化的持续交付工作流中,而无需从开发人员的工作站在本地构建任何东西。

有关 Operator 的背景信息,以及此管道将创建的不同类型的 Kubernetes 资源(例如IntegrationServer和Configuration),请参阅以下博客文章:

  • 什么是 Operator,我们为什么要为 IBM App Connect 创建一个 Operator?
  • 探索 IBM App Connect Operator 的 IntegrationServer 资源

管道

该管道构建并部署您的 App Connect Enterprise 应用程序。每次您的应用程序发生更改并且您希望将新版本部署到 OpenShift 时,您都需要运行它。

在容器中运行 App Connect Enterprise 时,您可以灵活选择将多少应用程序构建到容器映像中,以及在容器启动时提供多少应用程序。

有关某些选项的背景阅读以及关于它们的一些注意事项,请参阅博客文章:Comparing styles of container-based deployment for IBM App Connect Enterprise。当容器启动时,此管道在运行时提供应用程序的几乎所有部分。唯一嵌入到映像中的组件是应用程序 BAR 文件。

将 BAR 文件烘焙到自定义 App Connect 图像中可以避免运行专用内容服务器来托管 BAR 文件的需要,但是,如果您愿意这样做,请参阅关于向集成服务器提供 BAR 文件的机制的文档,以了解有关如何提供 BAR 文件的更多详细信息去做这个。(存储库中的管道使用该文档中描述为“自定义图像”的方法。)

运行管道

  • 管道规格:
    • pipeline.yaml
  • 示例管道运行:
    • simple-pipelinerun.yaml
    • complex-pipelinerun.yaml
  • 帮助脚本:
    • 1-deploy-simple-integration-server.sh
    • 1-deploy-complex-integration-server.sh

管道的作用

构建您的 IBM App Connect Enterprise 应用程序并将其部署到 OpenShift 集群。

运行管道的结果

您的应用程序的新版本以零停机时间部署 – 一旦准备就绪,将替换任何现有版本的应用程序。

背景

如上所述,您的大部分应用程序配置将在运行时由 Operator 使用Configuration资源提供给您的应用程序容器。

如上面的屏幕截图所示,此示例管道目前支持许多但不是全部类型的配置资源:

  • 环回数据源类型
  • 政策项目类型
  • setdbparms.txt 类型
  • server.conf.yaml 类型
  • 信任库类型

有关其他配置类型的更多信息,请参阅有关集成服务器配置类型的文档。添加对任何这些附加类型的支持将涉及向存储库中提供的任务添加附加任务- 对现有任务进行注释以帮助完成此操作。

这些配置资源中的每一个都是单独可选的。提供了两个示例 App Connect 应用程序来展示管道如何支持不同的应用程序类型。

简单的独立应用程序

管道可用于部署没有配置依赖性的独立应用程序。

  • 示例应用程序
    • 简单演示
  • 管道运行配置
    • simple-pipelinerun.yaml
  • 演示脚本:
    • 1-deploy-simple-integration-server.sh

这是一个没有外部配置的简单 App Connect 应用程序。

部署它时,管道会跳过所有配置任务:

观察管道运行看起来像这样(除了它需要更长的时间)。

复杂应用

管道可用于部署具有多个配置依赖项并支持 Java 项目的复杂应用程序。

  • 示例应用程序
    • 示例王牌应用程序
  • 管道运行配置
    • complex-pipelinerun.yaml
  • 演示脚本:
    • 1-deploy-complex-integration-server.sh

这是一个 App Connect 应用程序示例,需要配置以连接到:

  • 一个 PostgreSQL 数据库
  • 外部 HTTP API
  • 一个 Apache Kafka 集群

部署时,管道会运行此应用程序所需的所有配置任务:

看着管道运行(也加速了!)它看起来像这样。

为避免需要将凭据与您的应用程序代码一起存储在 Git 中,管道会从 Kubernetes 机密中检索凭据。在为您的应用程序配置管道时(请参阅下面的部分),您需要指定它应该用来执行此操作的秘密。

示例应用程序

我已经在demo-pre-reqs/README.md中记录了我如何设置示例应用程序来演示管道,但是,这两个示例应用程序都不是特别有用,而是纯粹用于测试和演示管道。

如果您愿意,可以将它们导入App Connect Toolkit进行编辑:

  • 文件->导入… ->来自文件夹或存档的项目
  • 将ace-projects文件夹的位置作为Import source。
  • 勾选所有项目
  • 这将使您可以打开项目并在本地处理它们。如果您对他们的工作感到好奇,我将在下面附上一些简短的说明:

    简单的应用程序

    它提供了一个返回 Hello World 消息的 HTTP 端点。

    运行这个:

    壳1个curl http:// $(oc get route -nace-demo hello-world-http -o jsonpath='{.spec.host}’) /hello “

    返回这个:

    JSON1个{ “你好”:“世界” }

    复杂应用

    它提供了一个有意设计的事件驱动流程:

    • “卡夫卡消费者待办事项更新”
      • 从 Kafka 主题接收 JSON 消息
    • “从更新消息中获取 ID”
      • 解析 JSON 消息并从中提取 ID 号
      • 使用 ID 号为外部 API 创建 HTTP URL
    • “检索当前的待办事项详细信息”
      • 对外部 API 进行 HTTP GET 调用
    • “base64编码描述”
      • 使用自定义 Java 类转换来自外部 API 的响应
    • “插入数据库”
      • 将转换后的响应负载插入 PostgreSQL 数据库

    该应用程序的目的是演示需要各种配置资源的 ACE 应用程序。

    但这意味着运行这个:

    echo ‘{“id”: 1, “message”: “快速测试”}’ | kafka-console-producer.sh–bootstrap 服务器 $BOOTSTRAP–topic TODO.UPDATES–producer-property “security.protocol=SASL_SSL”–producer-property “sasl.mechanism=SCRAM-SHA-512”–producer-property “sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule 需要用户名=”appconnect-kafka-user” 密码=”$PASSWORD”;”–producer-property “ssl.truststore.location=ca.p12”–producer-property “ssl.truststore.type=PKCS12”–producer-property “ssl.truststore.password=$CA_PASSWORD”

    得到你这个:

    商店=#从待办事项中选择*; 编号 | 用户 ID | 标题 | 编码标题 | 完成了—-+——–+——————–+———— ———————-+———— 1 | 1 | 选择或 RU5DT0RFRDogZGVsZWN0dXMgYXV0IGF1dGVt | F(1 行)

    为您的 App Connect Enterprise 应用程序配置管道

    要为您自己的应用程序运行管道,您需要先创建一个PipelineRun.

    上面描述的示例管道运行为此提供了一个很好的起点,您可以根据自己的需要对其进行修改。您需要指定 App Connect Enterprise 应用程序代码和配置资源的位置。如果需要进一步指导,所有可用参数都记录在管道规范中。

    替代方法

    在容器中运行 App Connect Enterprise 非常适合各种 CI/CD 方法。这篇文章中描述的管道对我最近从事的项目很有用,但您可以找到各种其他管道方法来管理您的 ACE 应用程序。有关另一个不错的选择,请参阅github.com/ot4i/ace-demo-pipeline。

    © 版权声明

    相关文章