このドキュメントでは、IBM Spectrum Symphony と Google Cloudの間の連携を提供する Google Cloud向け Symphony コネクタについて説明します。この連携によって、 Google Cloud リソースを Symphony クラスタの柔軟なコンピュート キャパシティとして利用できるようになります。Symphony は、ホスト ファクトリーを使用してクラスタを管理します。ホスト ファクトリーは IBM Spectrum Symphony のコンポーネントの一つで、 Google Cloud などのクラウド プロバイダからコンピューティング ホストを追加し、Symphony クラスタのリソース需要に応じてクラスタを拡張することができます。
Google Cloud 向け Symphony コネクタを使用することで、既存のクラウド インフラストラクチャを柔軟なGoogle Cloud リソースで補うことができます。これは特に、ハイ パフォーマンス コンピューティング(HPC)ワークロードに適しています。 Google Cloud 向け Symphony コネクタは、Compute Engine と Google Kubernetes Engine の両方のサービスをサポートしています。
Google Cloud向け Symphony コネクタを使用するケース
Google Cloud 向け Symphony コネクタは、Symphony のホスト ファクトリー サービスと Google Cloudの各種サービスの間をつなぐために設計されています。次のような状況でGoogle Cloud 向け Symphony コネクタを使用します。
クラウド バースト機能: オンプレミス環境のクラスタ リソースが不足したときに、Symphony のワークロードを Google Cloud に動的にスケーリングして、追加のコンピューティング リソースを利用できるようにします。 Google Cloud向け Symphony Connector を使用すると、既存の Symphony ジョブ スケジューリングと連携して、必要に応じてリソースを自動的にプロビジョニングできます。
ハイブリッド クラウド デプロイ: オンプレミスと Google Cloud インフラストラクチャの両方で Symphony ワークロードを実行している場合は、このソリューションを使用することで、Symphony のホスト ファクトリー フレームワークを通じてリソース管理を一元化することができます。このアプローチにより、ジョブの投入やモニタリングの操作を統一的に行えるようになり、リソースの柔軟な割り当てが可能になります。
費用の最適化: Google Cloudの柔軟なインスタンス タイプと料金モデル(Spot VM(プリエンプティブル VM)など)を使用して、コストに敏感なワークロードを実行します。
開発とテスト: 開発やテストのワークフロー向けに一時的なコンピューティング リソースをプロビジョニングする場合は、 Google Cloud向け Symphony コネクタを使うことで、環境の構築や削除をすばやく行えます。また、自動的なリソースのクリーンアップ機能により、コストを最適化できます。
統合管理: Symphony で使用される GKE Pod と Compute Engine インスタンスの両方を一貫した方法で管理できるように、ホスト ファクトリーを使用して統一的なインターフェースを作成します。
シームレスなエンタープライズ統合: このソリューションを使用することで、大きなアーキテクチャ変更を行うことなく、既存の Symphony のデプロイを Google Cloud へ拡張できます。
Google Cloud 向け Symphony コネクタの仕組み
Google Cloud 向け Symphony コネクタは、Google Cloud をホスト ファクトリー用のプロバイダにするために必要なコンポーネントを提供します。
次の図は、Google Cloud向け Symphony コネクタのアーキテクチャを示したものです。

上の図に示すように、このアーキテクチャには、IBM Spectrum Symphony 環境、 Google Cloud ホスト ファクトリ プロバイダ レイヤ、 Google Cloud サービスという 3 つの主要なグループが含まれています。Symphony 環境には、ホスト ファクトリーとプロバイダのスクリプトが含まれています。このアーキテクチャでは、リクエストを変換するために Google Cloud ホスト ファクトリー プロバイダの CLI ツールレイヤを使用します。これにより、Symphony のスクリプトが Compute Engine リソースや、 GKE 上で動作している Kubernetes オペレータを制御できるようになります。
以降のセクションでは、 Google Cloud向け Symphony コネクタの主なコンポーネントについて説明します。
IBM Spectrum Symphony ホスト ファクトリー
ワークロードの需要に基づいて、さまざまなプロバイダのコンピューティング ホストのライフサイクルを管理する IBM Spectrum Symphony サービス。この Symphony コンポーネントは、 Google Cloud が連携するソフトウェアです。
プロバイダ スクリプト
Symphony ホスト ファクトリー サービスは、クラウド プロバイダと連携するために一連のシェル スクリプトを使用します。これらのスクリプトは、リソースの要求や返却などのアクションを実行します。
デフォルトでは、Symphony には Google Cloud用のホスト ファクトリー プロバイダは含まれていません。
Google Cloud ホスト ファクトリー プロバイダにより、Symphony のホスト ファクトリー フレームワークが Google Cloudと通信できるようになります。
次の表に、 Google Cloud 向け Symphony コネクタで使用されるスクリプトを示します。
| 名前 | 説明 | IBM のドキュメント | 
|---|---|---|
getAvailableTemplates.sh | 
      プロバイダ構成で定義されている使用可能なリソース テンプレートを取得します。ホスト ファクトリーは、どの種類のリソースを要求できるかを知るために getAvailableTemplates.sh を呼び出します。 | 
    getAvailableTemplates | 
requestMachines.sh | 
      Google Cloudから新しいコンピューティング リソースをプロビジョニングします。テンプレートと数量を指定する JSON ペイロードを受け取ります。 | requestMachines | 
requestReturnMachines.sh | 
      ホスト ファクトリーは、Symphony クラスタで使用されていたコンピューティング リソースのプロビジョニングを解除します。その際、返すべきマシンを特定する JSON ペイロードを受け取ります。 | requestReturnMachines | 
getRequestStatus.sh | 
      ホスト ファクトリーは、requestMachines.sh によって開始された進行中のプロビジョニング リクエストのステータスをポーリングします。リクエスト ID を含む JSON ペイロードを受け取ります。 | 
      getRequestStatus | 
getReturnRequests.sh | 
      ホスト ファクトリーは、requestReturnMachines.sh によって開始された進行中のプロビジョニング解除リクエストのステータスをポーリングします。その際、リクエスト ID を含む JSON ペイロードを受け取ります。 |  getReturnRequests | 
Google Cloud ホスト ファクトリー プロバイダ
ホスト ファクトリー プロバイダは Google が作成したインターフェースで、IBM Spectrum Symphony のホスト ファクトリー フレームワークと統合されます。この Google Cloud プラグインには、Symphony がGoogle Cloud上のリソースをリクエストして管理する際に呼び出す CLI ツールが含まれており、Compute Engine と GKE の両方のワークロードに対応しています。 Google Cloud 向け Symphony コネクタは、これらの CLI ツールをプロバイダと呼びます。
- Compute Engine ワークロードの場合は、Compute Engine プロバイダを使用します。
 - GKE ワークロードの場合は、GKE プロバイダを使用します。GKE ワークロードの場合は、追加のオペレーターが必要です。この Kubernetes オペレータは GKE クラスタ内で実行され、GKE プロバイダを使用してリクエストされた IBM Spectrum Symphony コンピューティング Pod のライフサイクルを管理します。
 
これらの CLI ツールをインストールすると、Python を使用して Compute Engine と GKE プロバイダの CLI ツールを手動で呼び出すこともできます。CLI ツールは Python モジュールであり、Python インタープリタを使って実行できます。詳細については、GitHub の Python からの実行に関するドキュメントをご覧ください。
Compute Engine プロバイダ
Compute Engine プロバイダ(hf-gce)は、Symphony のホスト ファクトリーを Compute Engine と統合するために設計された CLI ツールです。Compute Engine プロバイダをインストールした後は、Symphony のホスト ファクトリー内で構成を行う必要があります。この構成が完了すると、ホスト ファクトリーは hf-gce CLI を使用するスクリプトを自動的に呼び出すことができます。
Compute Engine プロバイダは、Symphony の要求やプロバイダ インスタンスおよびテンプレートで定義された構成に基づいて VM インスタンスのライフサイクルを管理するために、Google Compute Engine API と直接やり取りを行います。このプロバイダは、Compute Engine の VM の作成、モニタリング、終了を処理し、それらの VM が Symphony クラスタのコンピューティング ノードとして参加できるようにします。
GKE プロバイダ
GKE プロバイダ(hf-gke)は、Symphony のホスト ファクトリー サービスと GKE を接続する CLI ツールです。ホスト ファクトリーは hf-gke CLI を呼び出すスクリプトを使用します。
GKE プロバイダは、GKE クラスタの API と連携して、カスタム リソース定義(CRD)(特に GCPSymphonyResource と MachineReturnRequest)を作成、クエリ、削除します。
GKE クラスタ内で実行されている Kubernetes オペレーターは、これらのカスタム リソースに基づいて実際の Pod ライフサイクル管理を処理します。GKE プロバイダは、Symphony のリソース リクエストと Kubernetes のカスタム リソースベースのオーケストレーションとの間の橋渡し役を果たします。
Google Cloud サービス
Compute Engine と Google Kubernetes Engine に接続できます。Compute Engine 接続用の追加コンポーネントはありません。Google Kubernetes Engine との接続には、Kubernetes オペレーターが存在します。
Kubernetes オペレーター
この追加のオペレーターは、GKE プロバイダを使用して実行する GKE ワークロードにのみ必要です。このオペレーターは GKE クラスタ内で実行され、GKE プロバイダを使ってリクエストされた Symphony コンピューティング用 Pod のライフサイクルを管理します。GKE プロバイダには次の機能があります。
- 非同期オペレーション: 高性能な非同期処理に対応しており、大規模な展開に適しています。
 - プリエンプションの処理: Spot VM のプリエンプションを自動で検出、管理します。
 - カスタム リソース定義: 
GCPSymphonyResourceとMachineReturnRequestのカスタム リソースを使用してリソースを管理します。 - リソースのクリーンアップ: 完了したリソースのクリーンアップを自動化し、保持期間を設定可能です。
 - ヘルス モニタリング: 組み込みのヘルスチェックとステータス レポートを使用して、GKE プロバイダの統合をモニタリングします。
 
制限事項
Google Cloud 向け Symphony コネクタには次の制限があります。
- Google Cloud は、IBM Spectrum Symphony ワークロードを作成、管理、スケジュール設定、実行しません。Symphony ソフトウェア内のすべてのワークロード管理はお客様の責任となります。
 
次のステップ
Google Cloud ホスト ファクトリ プロバイダをインストールして構成するには、GitHub のドキュメントを参照してください。