Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

4.3. 应用程序

应用程序仍然是 OpenShift 的焦点。在 OpenShift v2 中,应用程序是一个单独的单元,由一个 Web 框架组成,它不包含多个 cartridge 类型。例如,某个应用程序可能有一个 PHP 和一个 MySQL,但它不能有一个 Ruby、一个 PHP 和两个 MySQL。它本身也不能是一个数据库 cartridge(如 MySQL)。

这限制了应用程序的范围,意味着 OpenShift 会使用环境变量为应用程序中的所有组件执行无缝的连接。例如,每个 Web 框架都知道如何使用 OPENSHIFT_MYSQL_DB_HOSTOPENSHIFT_MYSQL_DB_PORT 变量连接到 MySQL。然而,这种连接会被限制在一个应用程序中,且只能在一个设计为一起工作的 cartridge 才可以正常工作。它无法实现跨应用程序组件的连接,比如在两个应用程序间共享 MySQL 实例。

虽然大多数其他 PaaSes 将自身限制在 Web 框架内,其他类型的组件需要依赖外部服务,但 OpenShift v3 可让更多应用程序拓扑结构成为可能并可以进行管理。

OpenShift v3 使用术语"应用程序(application)"来代表将服务连接在一起这一概念。根据需要,您可以在一个项目(project)中包括多个组件并将它们灵活地连接。另外,还可以使用标记(label)提供分组或结构功能。这可以实现一个独立的 MySQL 实例,或在 JBoss 组件间共享一个 MySQL 实例。

这种灵活的连接意味着可以将任意两个组件连接在一起。只要一个组件可以导出环境变量,另一个组件就可以使用这些环境变量的值,且有对变量名称进行转换的可能。这样,就可以将任何两个组件连接在一起,而无需更改它们所基于的镜像。因此,您所需数据库和 Web 框架的最佳容器化实施可直接使用,而不必重新部署并配置它们以使它们可以相互兼容。

这意味着您可以在 OpenShift 上构建任何内容。OpenShift 要实现的主要目的是:一个基于容器的平台,允许您在可重复的生命周期内构建整个应用程序。