云提供商支持 - SAP、IBM、AWS、Azure、Cloud Foundry、Docker | Mendix 评估指南

Skip navigation

Cloud Providers

哪些云提供商可用于 Mendix?

Mendix 兼容所有知名的云提供商:IBM Cloud、SAP Cloud Platform、Microsoft Azure、AWS、Redhat Openshift 以及 Google Cloud Platform。

此外,Mendix 还与 SAP、IBM、Microsoft 和 AWS 建立了正式的合作伙伴关系。SAP 作为 Mendix 的官方经销商,将 Mendix 视为 SAP 云平台的扩展。

下表概述了每个提供商的部署选项:

提供商 / 部署

公有 Cloud Foundry 公有云托管 Kubernetes Docker 容器服务 (虚拟)基于服务 虚拟私有云 私有云(本地部署)
IBM
SAP
Azure
AWS
Openshift
Google

Mendix 如何为 Cloud Foundry 提供支持?

2014 年,Mendix 采用 Cloud Foundry (CF) 作为 Mendix Cloud 的基础。这也是 Mendix 加入 Cloud Foundry 基金会开源项目为社区贡献力量的一年。

尽管某些分析师将 Cloud Foundry 定位为应用程序平台即服务 (aPaaS),但 Cloud Foundry 是一种平台即服务 (PaaS)。Cloud Foundry 在 IaaS(Vmware、Openstack、Azure 或 AWS 等)之上提供一个抽象层,这样,您无需处理服务器、网络、路由或存储,即可提供相应的服务和应用程序。

Cloud Foundry 的主要优势是用户治理、高度控制与自助服务功能结合、自动扩展、自动修复和自动配置。这样可以降低运行这些应用程序的总维护成本,并允许您的 DevOps 团队自行维护这些应用程序。

应用程序在完全隔离的容器中运行,使用与该容器连接的各种特定服务。要在 Cloud Foundry 上部署应用程序,您需要获取兼容的 Buildpack,用于编译、构建和在 Cloud Foundry 上运行该应用程序。

Mendix Cloud 基于 Cloud Foundry,因此可从 获得 Buildpack,从而将 Mendix 应用程序部署至任意 Cloud Foundry 产品上。https://github.com/mendix/cf-mendix-buildpack这个 Buildpack 属于开源 Cloud Foundry 社区,由 Mendix 提供官方支持。有关更多信息,请参见 cf-mendix-buildpack 存储库文档

Cloud Foundry 中构建的容器包含用于运行应用程序所需的完整运行时设置。结合数据库服务以及存储服务(可选),您就可以在 Cloud Foundry 上运行自己的应用程序了。

  • 如何在脱机模式下使用 Mendix Cloud Foundry Buildpack?

    默认情况下,Mendix Cloud Foundry Buildpack 会下载依赖项,用于从 Mendix 内容交付网络构建容器。如果您在本地无 Internet 的情况下运行 Mendix,则可以完全脱机运行 Buildpack。在这种情况下,所有依赖项都需要存储在本地网络的 Web 服务器上。在执行 Buildpack 时,需要使用环境参数设置依赖项的备用下载位置。

  • 如何在 Cloud Foundry 上扩展 Mendix 应用程序?

    由于 Mendix Runtime 是无状态的,因此 Cloud Foundry 的标准扩展功能可用于 Mendix 应用程序。这意味着添加水平扩展并增加单个容器的内存以进行垂直扩展就像添加容器实例一样简单。对于需要在单个节点上运行的进程(例如计划的事件),集群的第一个容器将执行这些任务(也称为集群 ID 0)。一旦该容器停止运行,Cloud Foundry 会自动将其重启。

如何在 Mendix 应用程序中使用 Docker?

Mendix 在 2017 年增加了对 Docker 的官方支持。这意味着可以参照已建模的 Mendix 应用程序创建 Docker 镜像并使用 Docker Hub 存储库分发镜像,这样您就可以在 Docker Desktop、Swarm、Enterprise、DCOS 和 Kubernetes 等平台上运行此镜像了。

Mendix 提供了一个 Docker Buildpack 作为通用的 Docker 构建文件。这个 Buildpack 继承自 Mendix Cloud Foundry Buildpack,因此具有 Cloud Foundry Buildpack 中提供的所有功能。

对于构建 Docker 镜像,可以使用标准的 Docker 构建命令,这样会生成一个其中包含应用程序完整运行时设置的镜像。

结合数据库服务以及存储服务(可选),您就可以运行自己的应用程序了。

有关更多信息,请参见 Mendix 开发人员门户指南中的如何运行 Mendix Docker 映像

Mendix 如何在 Kubernetes 上运行?

Mendix 在 2017 年增加了对 Kubernetes 的官方支持。Kubernetes 是一个容器编排层,也被认为是 aPaaS 或 PaaS,通常用于支持 DevOps 团队和微服务架构。结合 Mendix Docker 支持,Mendix 应用程序非常适合在 Kubernetes 集群上运行。

要在 Kubernetes 集群上运行高可用性 Mendix 应用程序,该应用程序必须至少通过两个 Pod 部署到 StatefulSet 中。这样,您就可以根据自己的需求扩展应用程序,同时保持对单个进程(如计划的事件)的控制。Pod 需要访问数据库。该数据库也可以在 Kubernetes 集群上运行,也可以由诸如 Azure SQL、AWS RDS PostgreSQL、IBM Compose PostgreSQL 或 IBM DB2 之类的底层云提供服务。

如果应用程序需要文件存储,则可以使用分类为 StatefulSet 的标准存储或使用 AWS S3 存储、Azure Blob 存储或 IBM Swift 存储等云服务来附加文件存储。