VerrazzanoおよびOpen Application Model
Open Application Model (OAM)は、クラウド・ネイティブ・アプリケーションを定義するためのランタイムに依存しない仕様です。開発者は特定のランタイム・インフラストラクチャの複雑性ではなくアプリケーションに集中できます。OAMは、ランタイムが解釈するためのいくつかのファイル形式とルールの仕様を提供します。Verrazzanoは、OAMを使用してコンポジット・アプリケーションの抽象化の定義を有効にし、VerrazzanoApplication
YAMLファイル内でOAM構成を使用できるようにします。Verrazzanoは、必要なものを組み合わせてマルチクラウドを有効にする柔軟性を提供します。コンポーネント、スコープおよびトレイトのセットをカプセル化し、選択したクラスタにデプロイするための手段としてVerrazzanoApplication
を使用します。
OAMのワークロードの概念により、様々なワークロード・タイプを簡単に使用できます。Verrazzanoには、WebLogic、Coherence、Helidonなど、特定のワークロード・タイプが含まれており、これらのタイプをデプロイおよび管理するための特別な処理を備えています。OAMの柔軟性により、1つの単位として管理されるグループを作成できますが、各コンポーネントは個別にスケーリングまたは更新できます。
OAMの仕組み
OAMには5つの主要な概念があります:
- ワークロード - プラットフォームでサポートされているリソースの種類とそのリソースのOpenAPIスキーマの宣言。ほとんどのKubernetes CRDはワークロードとして公開できます。標準のKubernetesリソース・タイプも使用できます(Deployment、Service、Pod、ConfigMappなど)。
- コンポーネント - OAM固有のメタデータ内でワークロード・リソースの仕様データをラップします。
- アプリケーション構成 - アプリケーションを構成するコンポーネントのコレクションを記述します。これは、各コンポーネントのカスタマイズ(環境など)が行われる場所でもあります。カスタマイズは、スコープとトレイトを使用して実現されます。
- スコープ - カスタマイズを複数のコンポーネントに適用します。
- トレイト - カスタマイズを単一のコンポーネントに適用します。