应用程序工作负载

IBM Cloud® Code Engine 旨在满足希望其代码运行的开发者的需求。Code Engine 将在 Kubernetes 中构建,部署和管理工作负载的操作负担抽象化,以便开发者可以关注对他们最重要的内容: 源代码。 开发者可以通过将构建和管理工作负载的复杂性委派给 Code Engine来部署和扩展以任何框架或语言编写的应用程序。 了解如何Code Engine使用应用程序。

什么是应用程序工作负载?

应用程序或应用程序运行您的代码,为 HTTP 请求提供服务。 除了传统的 HTTP 请求,IBM Cloud® Code Engine 还支持使用 WebSockets 作为通信协议的应用程序。 将根据传入请求和配置设置自动向上或向下扩展应用程序的运行实例数 (为零)。 应用程序包含一个或多个修订版。 修订版表示应用程序的配置属性的不可改变版本。 每次更新应用程序配置属性都会创建应用程序的新修订版。

使用 Code Engine 应用程序有哪些关键功能?

查看以下主题以了解有关在 Code Engine中使用应用程序的更多信息。

隔离

Code Engine 是多租户区域服务,其中租户共享相同的网络和计算基础结构。 特别是,网络和计算基础结构是共享资源,某些管理组件是所有租户的公共组件。 但是,租户及其工作负载通过使用 Code Engine 项目相互隔离。Code Engine 阻止项目之间的通信,从而为多租户环境中的应用程序提供隔离。 此外,还有在资源级别上执行的访问控制,仅允许授权用户对项目资源 (例如应用程序或其他 Code Engine 工作负载) 执行某些操作。

有关工作负载隔离的更多信息,请参阅 Code Engine 工作负载隔离

日志记录

使用控制台处理 "Code Engine应用程序并启用日志记录时,日志会被转发到与 "Code Engine项目相关联的 "IBM Cloud Logs服务实例。 在IBM Cloud Logs服务实例中,日志被编入索引,可对所有生成的信息进行全文检索,并根据特定字段进行便捷查询。 请参阅 获取应用程序的日志

系统事件信息还有助于在运行作业时对问题进行故障诊断。 您可以使用 CLI 查看系统事件信息。 请参阅 获取应用程序的系统事件信息

有关日志记录的更多信息,请参阅 查看日志

运行应用程序

无论您的代码是作为本地文件或 Git 存储库中的源存在,还是您的代码是存在于公共或专用注册表中的容器映像,Code Engine 都为您提供了作为应用程序运行代码的简化方法。

您可以通过以下方式在 Code Engine 中部署和运行应用程序:

  • 从现有容器映像运行。 创建应用程序并提供在使用 Code Engine部署应用程序时要使用的映像的引用。

  • 从没有任何容器映像的现有源代码运行。 如果您是从位于 Git 存储库中或本地工作站上的源代码开始,那么可以指向源位置,而 Code Engine 负责为您构建映像。Code Engine 支持从 Dockerfile 和 Cloud Native Buildpack 进行构建,这将检查源代码以确定必须如何将其构建和打包为容器映像。

有关部署和运行应用程序的更多信息,请参阅 使用 Code Engine中的应用程序

缩放

Code Engine 应用程序根据入局请求向上或向下扩展。 应用程序遵循 scale-to-zero 模型,在此模型中,不会在没有流量的情况下创建任何实例,从而导致成本优化。 当有传入请求时,应用程序会自动从零开始扩展以适应工作负载。

通过 Code Engine,您可以通过设置最小实例数和最大实例数来控制自动缩放。 您还可以通过指定要对特定应用程序实例并行运行的请求数来指定应用程序的并行性,以帮助确定何时供应新实例。

有关缩放应用程序的更多信息,请参阅 配置应用程序缩放

安全性

Code Engine 为应用程序提供即时 DDOS 保护。Code Engine的 DDOS 保护由 Cloud Internet Services (CIS) 免费提供。 DDoS 防护涵盖系统互连 (OSI) 第 3 层和第 4 层(TCP/IP)协议攻击,但不包括第 7 层 HTTP )攻击。 参见 DDoS 防护

Code Engine 还提供服务网格以使用其网络层,这将在应用程序上启用相互传输层安全性 (TLS) 流量,从而保护 服务到服务用户到服务 通信。

有关安全性的更多信息,请参阅 Code Engine 和安全性

触发具有事件的应用程序

您可以配置 Code Engine 应用程序以接收 cron 事件,IBM Cloud Object Storage 事件或 Kafka 主题。 预订事件生产者时,必须指定要接收事件的目标应用程序的名称。

有关使用事件生产者的更多信息,请参阅 预订入门

可视性

通过 Code Engine,您可以通过定义可用于接收请求的端点或系统域映射来确定应用程序的正确可视性级别。 可以向因特网,IBM Cloud 专用网络公开应用程序,也可以仅向同一 Code Engine 项目中的其他资源公开应用程序。

缺省情况下,每个正在运行的应用程序都会获取其自己的 TLS 安全端点,您可以将该端点映射到自己的域。

此外,您还可以将自己的自定义域映射到 Code Engine 应用程序,以便将来自自定义 URL 的请求路由到您的应用程序。 如果要将应用程序与您拥有的域作为目标,那么可以使用定制域映射。 在 Code Engine 中设置自定义域名映射时,您将在项目中的完全合格域名(FQDN)和 Code Engine 应用程序之间定义 1-to-1映射。

有关可视性的更多信息,请参阅 Code Engine 应用程序的可视性选项为应用程序配置定制域映射

如何开始使用应用程序?

要使用 icr.io/codeengine/helloworld 样本映像部署简单 Code Engine 应用程序,请参阅 创建第一个 Code Engine 应用程序

此外,您还可以尝试应用程序教程,请参阅 部署和缩放应用程序

要深入了解如何使用应用程序,请参阅 在 Code Engine