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 要实现的主要目的是:一个基于容器的平台,允许您在可重复的生命周期内构建整个应用程序。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.