既存の実行可能ファイルを Service Fabric にデプロイする
Node.js、Java、C++ など、あらゆる種類のコードをサービスとして Azure Service Fabric 内で実行できます。 このようなサービスを Service Fabric ではゲスト実行可能ファイルと呼びます。
Service Fabric は、ゲスト実行可能ファイルをステートレス サービスと同様に扱います。 これにより、ゲスト実行可能ファイルは可用性などのメトリックに基づいてクラスター内のノードに配置されます。 この記事を読むと、Visual Studio またはコマンド ライン ユーティリティを使用して、ゲスト実行可能ファイルをパッケージ化し、Service Fabric クラスターにデプロイする方法を理解できます。
Note
Service Fabric クラスターはシングル テナントとして設計されており、ホストされるアプリケーションは信頼できるものと見なされます。 信頼されていないアプリケーションのホストを検討している場合は、「Service Fabric クラスターでの信頼されていないアプリケーションのホスト」をご覧ください。
Service Fabric でゲスト実行可能ファイルを実行するメリット
Service Fabric クラスターでゲスト実行可能ファイルを実行するメリットはいくつかあります。
- 高可用性: アプリケーションを Service Fabric で実行すると、可用性が向上します。 Service Fabric によって、アプリケーションのインスタンスが常に稼動している状態が維持されます。
- 正常性状態の監視。 Service Fabric の正常性監視機能により、アプリケーションが稼動しているかどうかが検出され、障害が発生した場合は診断情報が提供されます。
- アプリケーション ライフサイクル管理: Service Fabric を使用すると、ダウンタイムなしでアップグレードを実行できるだけでなく、アップグレード中に正常性に問題が発生したことが報告された場合は前のバージョンに自動的にロールバックされます。
- 密度: 各アプリケーションを専用のハードウェアで実行する必要がないクラスターで複数のアプリケーションを実行できます。
- 探索可能性: REST を使って Service Fabric Naming Service を呼び出し、クラスター内の他のサービスを発見できます。
サンプル
アプリケーション マニフェスト ファイルとサービス マニフェスト ファイルの概要
ゲスト実行可能ファイルのデプロイの一環として、アプリケーション モデルに関するページに目を通し、Service Fabric のパッケージ化とデプロイのモデルについて理解しておくと役立ちます。 Service Fabric パッケージ化モデルでは、アプリケーション マニフェストとサービス マニフェストの 2 つの XML ファイルを使用します。 ApplicationManifest.xml ファイルと ServiceManifest.xml ファイルのスキーマ定義が、Service Fabric SDK と共に C:\Program Files\Microsoft SDKs\Service Fabric\schemas\ServiceFabricServiceModel.xsd にインストールされています。
アプリケーション マニフェスト: アプリケーション マニフェストは、アプリケーションについて記述するために使用されます。 このファイルには、アプリケーションを構成する複数のサービスとその他のパラメーター (インスタンス数など) が列挙されています。パラメーターは、個々のサービスや複数のサービスをデプロイする方法を定義するために使用されます。
Service Fabric では、デプロイとアップグレードを行う際に 1 つのアプリケーションをユニットとして扱います。 アプリケーションは 1 つのユニットとしてアップグレードすることができ、エラー (およびロールバック) が発生した場合も 1 つのユニットとして管理されます。 Service Fabric は、アップグレード プロセスが正常完了した場合だけでなく、失敗した場合でも、アプリケーションが不明または不安定な状態にならないことを保証します。
サービス マニフェスト : サービス マニフェストは、サービスのコンポーネントを記述するために使用されます。 このファイルには、サービスの名前と種類、そのコード、構成などの情報が記載されています。 また、サービスのデプロイ後の構成に使用できるその他のパラメーターも含まれます。
アプリケーション パッケージ ファイルの構造
Service Fabric にアプリケーションをデプロイするには、事前に定義されたディレクトリ構造にアプリケーションが従っている必要があります。 この構造の例を次に示します。
|-- ApplicationPackageRoot
|-- GuestService1Pkg
|-- Code
|-- existingapp.exe
|-- Config
|-- Settings.xml
|-- Data
|-- ServiceManifest.xml
|-- ApplicationManifest.xml
ApplicationPackageRoot には、アプリケーションを定義する ApplicationManifest.xm ファイルが含まれています。 アプリケーションに含まれる各サービスのサブディレクトリには、サービスに必要なすべてのアーティファクトが含まれています。 これらのサブディレクトリは、ServiceManifest.xml と一般的に次のディレクトリです。
- Code。 このディレクトリにはサービス コードが含まれています。
- Config:settings.xml ファイル (および、必要に応じてその他のファイル) が含まれています。実行時にサービスがこのファイルにアクセスし、特定の構成設定を取得します。
- データ。 サービスでこのデータが必要になる場合があります。 データは、一時的なデータのみを格納します。 フェールオーバー中など、サービスの再配置が必要な場合、Service Fabric ではこのデータ ディレクトリには変更がコピー/レプリケートされません。
Note
config
ディレクトリと data
ディレクトリは、必要がなければ作成する必要はありません。
次のステップ
関連する情報やタスクは、次の記事を参照してください。