既存の実行可能ファイルを Service Fabric にデプロイするDeploy an existing executable to Service Fabric

Node.js、Java、C++ など、あらゆる種類のコードをサービスとして Azure Service Fabric 内で実行できます。You can run any type of code, such as Node.js, Java, or C++ in Azure Service Fabric as a service. このようなサービスを Service Fabric ではゲスト実行可能ファイルと呼びます。Service Fabric refers to these types of services as guest executables.

Service Fabric は、ゲスト実行可能ファイルをステートレス サービスと同様に扱います。Guest executables are treated by Service Fabric like stateless services. これにより、ゲスト実行可能ファイルは可用性などのメトリックに基づいてクラスター内のノードに配置されます。As a result, they are placed on nodes in a cluster, based on availability and other metrics. この記事を読むと、Visual Studio またはコマンド ライン ユーティリティを使用して、ゲスト実行可能ファイルをパッケージ化し、Service Fabric クラスターにデプロイする方法を理解できます。This article describes how to package and deploy a guest executable to a Service Fabric cluster, by using Visual Studio or a command-line utility.

Service Fabric でゲスト実行可能ファイルを実行するメリットBenefits of running a guest executable in Service Fabric

Service Fabric クラスターでゲスト実行可能ファイルを実行するメリットはいくつかあります。There are several advantages to running a guest executable in a Service Fabric cluster:

  • 高可用性:High availability. アプリケーションを Service Fabric で実行すると、可用性が向上します。Applications that run in Service Fabric are made highly available. Service Fabric によって、アプリケーションのインスタンスが常に稼動している状態が維持されます。Service Fabric ensures that instances of an application are running.
  • 正常性の監視:Health monitoring. Service Fabric の正常性監視機能により、アプリケーションが稼動しているかどうかが検出され、障害が発生した場合は診断情報が提供されます。Service Fabric health monitoring detects if an application is running, and provides diagnostic information if there is a failure.
  • アプリケーション ライフサイクル管理:Application lifecycle management. Service Fabric を使用すると、ダウンタイムなしでアップグレードを実行できるだけでなく、アップグレード中に正常性に問題が発生したことが報告された場合は前のバージョンに自動的にロールバックされます。Besides providing upgrades with no downtime, Service Fabric provides automatic rollback to the previous version if there is a bad health event reported during an upgrade.
  • 密度:Density. 各アプリケーションを専用のハードウェアで実行する必要がないクラスターで複数のアプリケーションを実行できます。You can run multiple applications in a cluster, which eliminates the need for each application to run on its own hardware.
  • 探索可能性: REST を使って Service Fabric Naming Service を呼び出し、クラスター内の他のサービスを発見できます。Discoverability: Using REST you can call the Service Fabric Naming service to find other services in the cluster.

サンプルSamples

アプリケーション マニフェスト ファイルとサービス マニフェスト ファイルの概要Overview of application and service manifest files

ゲスト実行可能ファイルのデプロイの一環として、アプリケーション モデルに関するページに目を通し、Service Fabric のパッケージ化とデプロイのモデルについて理解しておくと役立ちます。As part of deploying a guest executable, it is useful to understand the Service Fabric packaging and deployment model as described in application model. Service Fabric パッケージ化モデルでは、アプリケーション マニフェストとサービス マニフェストの 2 つの XML ファイルを使用します。The Service Fabric packaging model relies on two XML files: the application and service manifests. ApplicationManifest.xml ファイルと ServiceManifest.xml ファイルのスキーマ定義が、Service Fabric SDK と共に C:\Program Files\Microsoft SDKs\Service Fabric\schemas\ServiceFabricServiceModel.xsd にインストールされています。The schema definition for the ApplicationManifest.xml and ServiceManifest.xml files is installed with the Service Fabric SDK into C:\Program Files\Microsoft SDKs\Service Fabric\schemas\ServiceFabricServiceModel.xsd.

  • アプリケーション マニフェスト: アプリケーション マニフェストは、アプリケーションについて記述するために使用されます。Application manifest The application manifest is used to describe the application. このファイルには、アプリケーションを構成する複数のサービスとその他のパラメーター (インスタンス数など) が列挙されています。パラメーターは、個々のサービスや複数のサービスをデプロイする方法を定義するために使用されます。It lists the services that compose it, and other parameters that are used to define how one or more services should be deployed, such as the number of instances.

    Service Fabric では、デプロイとアップグレードを行う際に 1 つのアプリケーションをユニットとして扱います。In Service Fabric, an application is a unit of deployment and upgrade. アプリケーションは 1 つのユニットとしてアップグレードすることができ、エラー (およびロールバック) が発生した場合も 1 つのユニットとして管理されます。An application can be upgraded as a single unit where potential failures and potential rollbacks are managed. Service Fabric は、アップグレード プロセスが正常完了した場合だけでなく、失敗した場合でも、アプリケーションが不明または不安定な状態にならないことを保証します。Service Fabric guarantees that the upgrade process is either successful, or, if the upgrade fails, does not leave the application in an unknown or unstable state.

  • サービス マニフェスト : サービス マニフェストは、サービスのコンポーネントを記述するために使用されます。Service manifest The service manifest describes the components of a service. このファイルには、サービスの名前と種類、そのコード、構成などの情報が記載されています。It includes data, such as the name and type of service, and its code and configuration. また、サービスのデプロイ後の構成に使用できるその他のパラメーターも含まれます。The service manifest also includes some additional parameters that can be used to configure the service once it is deployed.

アプリケーション パッケージ ファイルの構造Application package file structure

Service Fabric にアプリケーションをデプロイするには、事前に定義されたディレクトリ構造にアプリケーションが従っている必要があります。To deploy an application to Service Fabric, the application should follow a predefined directory structure. この構造の例を次に示します。The following is an example of that structure.

|-- ApplicationPackageRoot
    |-- GuestService1Pkg
        |-- Code
            |-- existingapp.exe
        |-- Config
            |-- Settings.xml
        |-- Data
        |-- ServiceManifest.xml
    |-- ApplicationManifest.xml

ApplicationPackageRoot には、アプリケーションを定義する ApplicationManifest.xm ファイルが含まれています。The ApplicationPackageRoot contains the ApplicationManifest.xml file that defines the application. アプリケーションに含まれる各サービスのサブディレクトリには、サービスに必要なすべてのアーティファクトが含まれています。A subdirectory for each service included in the application is used to contain all the artifacts that the service requires. これらのサブディレクトリは、ServiceManifest.xml と一般的に次のディレクトリです。These subdirectories are the ServiceManifest.xml and, typically, the following:

  • CodeCode. このディレクトリにはサービス コードが含まれています。This directory contains the service code.
  • Config:settings.xml ファイル (および、必要に応じてその他のファイル) が含まれています。実行時にサービスがこのファイルにアクセスし、特定の構成設定を取得します。Config. This directory contains a Settings.xml file (and other files if necessary) that the service can access at runtime to retrieve specific configuration settings.
  • Data:追加のローカル データが格納されている追加ディレクトリ。Data. サービスでこのデータが必要になる場合があります。This is an additional directory to store additional local data that the service may need. データは、一時的なデータのみを格納します。Data should be used to store only ephemeral data. フェールオーバー中など、サービスの再配置が必要な場合、Service Fabric ではこのデータ ディレクトリには変更がコピー/レプリケートされません。Service Fabric does not copy or replicate changes to the data directory if the service needs to be relocated (for example, during failover).

注意

config ディレクトリと data ディレクトリは、必要がなければ作成する必要はありません。You don't have to create the config and data directories if you don't need them.

次の手順Next steps

関連する情報やタスクは、次の記事を参照してください。See the following articles for related information and tasks.