コラム

クラウドプロバイダー

2023/09/06

1 Mendixにはどのクラウドプロバイダーを使用できますか?

Mendixは、IBMクラウド、SAPクラウドプラットフォーム、Microsoft Azure、アマゾンウェブサービス(AWS)、Redhat Openshift、Google Cloud Platformなどの有名なクラウドプロバイダーと互換性があります。

さらに、MendixはSAP、IBM、Microsoft、AWSと正式なパートナーシップを結んでいます。 SAPはどちらも公式の再販業者であり、Mendixを独自のクラウド製品の拡張と見なしています。

次の表に、各プロバイダーの展開オプションの概要を示します。

2 MendixはCloud Foundryのサポートをどのように提供しますか?

2014年、MendixはCloud Foundry(CF)をMendix Cloudの基盤として採用しました。これは、MendixがCloud Foundry Foundationオープンソースプロジェクトに参加してコミュニティに貢献した年でもありました。

Cloud Foundryはサービスとしてのプラットフォーム(PaaS)ですが、一部のアナリストはサービスとしてのプラットフォーム(aPaaS)として位置付けています。 Cloud Foundryは、Vmware、Openstack、Azure、AWSなどのIaaSの上に抽象化レイヤーを提供します。これにより、サーバー、ネットワーク、ルーティング、またはストレージを扱うことなく、サービスとアプリケーションをプロビジョニングできます。

Cloud Foundryを使用する主な利点は、ユーザーガバナンス、セルフサービス機能と組み合わせた高度な制御、自動スケーリング、自動修復、および自動プロビジョニングです。これにより、大量のアプリケーションを実行するための全体的なメンテナンスコストが削減され、DevOpsチームがこれらのアプリケーションを自分でメンテナンスできます。

アプリケーションは完全に分離されたコンテナで実行され、このコンテナに接続されている特定のサービスを消費します。 Cloud Foundryにアプリケーションをデプロイするには、Cloud Foundryでアプリケーションをコンパイル、ビルド、実行する互換性のあるビルドパックが利用可能である必要があります。

Mendix CloudはCloud Foundryをベースにしているため、MendixアプリケーションをCloud Foundryオファリングにデプロイするためのビルドパックがhttps://github.com/mendix/cf-mendix-buildpackで入手できます。このビルドパックは、オープンソースのCloud Foundryコミュニティの一部であり、Mendixによって公式にサポートされています。詳細については、cf-mendix-buildpackリポジトリのドキュメントを参照してください。

Cloud Foundry内のコンテナビルドには、アプリケーションを実行するための完全なランタイムセットアップが含まれています。データベースサービスとオプションのストレージサービスを組み合わせて、Cloud Foundryでアプリケーションを実行できます。

2.1 Mendix Cloud Foundry Buildpackをオフラインモードで使用するにはどうすればよいですか?

Mendix Cloud Foundryビルドパックは、デフォルトでMendixコンテンツ配信ネットワークからコンテナを構築するための依存関係をダウンロードします。インターネットにアクセスせずにオンプレミスでMendixを実行している場合、ビルドパックを完全にオフラインで実行できます。その場合、すべての依存関係をローカルネットワークのWebサーバーに保存する必要があります。ビルドパックの実行中に、環境パラメーターが依存関係の代替ダウンロード場所を設定します。

2.2 Cloud FoundryでMendixアプリケーションをスケーリングするにはどうすればよいですか?

Mendixランタイムはステートレスであるため、Cloud Foundryの標準スケーリング機能をMendixアプリケーションに使用できます。つまり、水平スケーリングを追加し、垂直スケーリングのために単一のコンテナのメモリを増やすことは、コンテナのインスタンスを追加するのと同じくらい簡単です。単一ノードで実行する必要があるプロセス(スケジュールされたイベントなど)の場合、クラスターの最初のコンテナーがこれらのタスクを実行します(クラスターID 0としても指定されます)。このコンテナが停止した場合、Cloud Foundryは自動的に再起動します。

3 どうすればMendixアプリケーションにDockerを使用できますか?

Mendixは2017年にDockerの公式サポートを追加しました。これは、Docker Desktop、Swarm、Enterprise、DCOS、Kubernetesなどのプラットフォームで実行できるように、モデル化したMendixアプリケーションからDockerイメージを作成し、Docker Hubリポジトリを使って配布できることを意味します。

Mendixは、一般的なDockerビルドファイルとしてDocker buildpackを提供します。このビルドパックはMendix Cloud Foundryビルドパックを継承しているため、Cloud Foundryビルドパックで既に提供されているすべての機能を備えています。

Dockerイメージをビルドするには、標準のDockerビルドコマンドを使用できます。これにより、アプリケーションの完全なランタイム設定を含むイメージが作成されます。

データベースとオプションのストレージサービスに加えて、アプリケーションを実行できます。
詳細については、Mendix Developer Portal Guideの「How to Run a Mendix Docker Image」を参照してください。

3.1 KubernetesでのMendixの実行方法

Mendixは2017年にKubernetesの公式サポートを追加しました。Kubernetesはコンテナオーケストレーションレイヤーであり、aPaaSまたはPaaSとしても位置付けられています。通常、DevOpsチームとマイクロサービスアーキテクチャをサポートするために使用されます。 Mendix Dockerサポートの組み合わせでは、MendixアプリケーションはKubernetesクラスターでの実行にスムーズに適合します。

Kubernetesクラスターで高可用性を備えたMendixアプリケーションを実行するには、アプリを少なくとも2つのポッドのStatefulSetにデプロイする必要があります。これにより、スケジュールされたイベントなどの単一プロセスの制御を維持しながら、アプリケーションを独自のニーズに合わせて水平方向にスケーリングできます。ポッドはデータベースにアクセスする必要があります。このデータベースはKubernetesクラスターで実行することも、Azure SQL、AWS RDS PostgreSQL、IBM Compose PostgreSQL、IBM DB2などの基盤となるクラウドで提供することもできます。

アプリケーションにファイルストレージが必要な場合、StatefullSetに分類された標準ストレージを使用するか、AWS S3ストレージ、Azure Blobストレージ、IBM Swiftストレージなどのクラウドサービスを使用して、これをアタッチできます。
詳細については、Mendix Developer Portal GuideのHow to Run Mendix on Kubernetesを参照してください。

翻訳元:https://www.mendix.com/evaluation-guide/app-capabilities/cloud-providers

一覧へ戻る icon