Service Fabric アプリケーションのライフサイクルService Fabric application lifecycle

通常は、その他のプラットフォームと同様に、Azure Service Fabric のアプリケーションは、デザイン、開発、テスト、デプロイ、アップグレード、保守、削除のフェーズを通過します。As with other platforms, an application on Azure Service Fabric usually goes through the following phases: design, development, testing, deployment, upgrading, maintenance, and removal. Service Fabric は、開発からデプロイ、日常的な管理、保守、最終的な使用停止に至るまで、クラウド アプリケーションの完全なアプリケーション ライフサイクルに対して高度なサポートを提供します。Service Fabric provides first-class support for the full application lifecycle of cloud applications, from development through deployment, daily management, and maintenance to eventual decommissioning. そのサービス モデルにより、アプリケーションのライフサイクルで個別に関与するさまざまな役割が有効になります。The service model enables several different roles to participate independently in the application lifecycle. この記事では、API の概要と、Service Fabric アプリケーション ライフサイクルのフェーズでさまざまなロールがその API をどのように使用するかを示します。This article provides an overview of the APIs and how they are used by the different roles throughout the phases of the Service Fabric application lifecycle.

重要

Service Fabric との交信に使用される CLI ユーティリティが 2 つあります。There are two CLI utilities used to interact with Service Fabric. Azure CLI は、Azure でホストされる Service Fabric クラスターなどの Azure リソースを管理するために使用します。Azure CLI is used to manage Azure resources, such as an Azure-hosted Service Fabric cluster. Service Fabric CLI は、Service Fabric クラスターに直接接続し (ホストされている場所に関係なく)、クラスター、アプリケーション、およびサービスを管理するために使用します。Service Fabric CLI is used to directly connect to the Service Fabric cluster (regardless of where it's hosted) and manage the cluster, applications, and services.

サービス モデルのロールService model roles

サービス モデルのロールは、次のとおりです。The service model roles are:

  • サービス開発者:同じ種類や別の種類の複数のアプリケーションで再利用、使用できるモジュールと汎用サービスを開発します。Service developer: Develops modular and generic services that can be repurposed and used in multiple applications of the same type or different types. たとえば、チケット発行のアプリケーション (ヘルプ デスク) または電子商取引アプリケーション (ショッピング カート) を作成するために Queue サービスを使用できます。For example, a queue service can be used for creating a ticketing application (helpdesk) or an e-commerce application (shopping cart).
  • アプリケーション開発者:特定の要件またはシナリオを満たすために、サービスのコレクションを統合してアプリケーションを作成します。Application developer: Creates applications by integrating a collection of services to satisfy certain specific requirements or scenarios. たとえば、電子商取引 Web サイトには、"JSON ステートレス フロントエンド サービス"、"オークション ステートフル サービス"、"ステートフル キュー サービス" を統合して、オークション ソリューションが構築されることがあります。For example, an e-commerce website might integrate “JSON Stateless Front-End Service,” “Auction Stateful Service,” and “Queue Stateful Service” to build an auctioning solution.
  • アプリケーション管理者:アプリケーションの構成 (テンプレートの構成パラメーターを入力)、デプロイ (使用可能なリソースへのマッピング)、およびサービスの品質を決定します。Application administrator: Makes decisions on the application configuration (filling in the configuration template parameters), deployment (mapping to available resources), and quality of service. たとえば、アプリケーション管理者は、アプリケーションの言語ロケール (米国には英語、日本には日本語) を決定します。For example, an application administrator decides the language locale (English for the United States or Japanese for Japan, for example) of the application. 別のデプロイされたアプリケーションには、さまざまな設定を含めることができます。A different deployed application can have different settings.
  • オペレーター:アプリケーションの構成に基づくアプリケーションと、アプリケーション管理者が指定する要件をデプロイします。Operator: Deploys applications based on the application configuration and requirements specified by the application administrator. たとえば、オペレーターはアプリケーションをプロビジョニングしてデプロイし、Azure で実行されていることを確認します。For example, an operator provisions and deploys the application and ensures that it is running in Azure. オペレーターは、アプリケーションの正常性とパフォーマンスの情報を監視し、必要に応じて、物理インフラストラクチャを管理します。Operators monitor application health and performance information and maintain the physical infrastructure as needed.

開発Develop

  1. "サービス開発者" は、Reliable Actors または Reliable Services プログラミング モデルを使用してさまざまな種類のサービスを開発します。A service developer develops different types of services using the Reliable Actors or Reliable Services programming model.
  2. サービス開発者 は、1 つ以上のコード、構成、データのパッケージで構成されるサービス マニフェスト ファイルで、開発したサービスの種類について宣言によって記述します。A service developer declaratively describes the developed service types in a service manifest file consisting of one or more code, configuration, and data packages.
  3. アプリケーション開発者 は、異なる種類のサービスを使用するアプリケーションを構築します。An application developer then builds an application using different service types.
  4. アプリケーション開発者 は、構成サービスのサービス マニフェストを参照し、異なる構成と構成サービスのデプロイ設定を適切にオーバーライドしてパラメーター化し、アプリケーション マニフェストでアプリケーションの種類を宣言によって記述します。An application developer declaratively describes the application type in an application manifest by referencing the service manifests of the constituent services and appropriately overriding and parameterizing different configuration and deployment settings of the constituent services.

例については、「Reliable Actors の使用」「Reliable Services の使用」を参照してください。See Get started with Reliable Actors and Get started with Reliable Services for examples.

デプロイDeploy

  1. アプリケーション管理者 は、アプリケーション マニフェストで ApplicationType 要素を指定して、Service Fabric クラスターにデプロイされるように、特定のアプリケーションに合わせてアプリケーションの種類を調整します。An application administrator tailors the application type to a specific application to be deployed to a Service Fabric cluster by specifying the appropriate parameters of the ApplicationType element in the application manifest.
  2. "オペレーター" は、CopyApplicationPackage メソッドまたは Copy-ServiceFabricApplicationPackage コマンドレットを使用して、クラスター イメージ ストアにアプリケーション パッケージをアップロードします。An operator uploads the application package to the cluster image store by using the CopyApplicationPackage method or the Copy-ServiceFabricApplicationPackage cmdlet. アプリケーション パッケージには、アプリケーション マニフェストとサービス パッケージのコレクションが含まれています。The application package contains the application manifest and the collection of service packages. Service Fabric は、Azure Blob ストアまたは Service Fabric のシステム サービスが対象となる、イメージ ストアに格納されているアプリケーション パッケージからアプリケーションをデプロイします。Service Fabric deploys applications from the application package stored in the image store, which can be an Azure blob store or the Service Fabric system service.
  3. "オペレーター" は、ProvisionApplicationAsync メソッドRegister-ServiceFabricApplicationType コマンドレットProvision an Application REST 操作を使用して、アップロードされたアプリケーション パッケージから対象のクラスターでアプリケーションの種類をプロビジョニングします。The operator then provisions the application type in the target cluster from the uploaded application package using the ProvisionApplicationAsync method, the Register-ServiceFabricApplicationType cmdlet, or the Provision an Application REST operation.
  4. アプリケーションをプロビジョニングした後、"オペレーター" は CreateApplicationAsync メソッドNew-ServiceFabricApplication コマンドレットCreate Application REST 操作を使用して、"アプリケーション管理者" によって提供されるパラメーターでアプリケーションを起動します。After provisioning the application, an operator starts the application with the parameters supplied by the application administrator using the CreateApplicationAsync method, the New-ServiceFabricApplication cmdlet, or the Create Application REST operation.
  5. アプリケーションをデプロイした後、"オペレーター" は CreateServiceAsync メソッドNew-ServiceFabricService コマンドレットCreate Service REST 操作を使用して、使用可能なサービスの種類に基づいて、アプリケーションの新しいサービス インスタンスを作成します。After the application has been deployed, an operator uses the CreateServiceAsync method, the New-ServiceFabricService cmdlet, or the Create Service REST operation to create new service instances for the application based on available service types.
  6. これで、Service Fabric のクラスターで、アプリケーションが実行されます。The application is now running in the Service Fabric cluster.

例については、「 Deploy an application (アプリケーションをデプロイする) 」を参照してください。See Deploy an application for examples.

テストTest

  1. ローカル開発クラスターまたはテスト クラスターにデプロイした後、"サービス開発者" は FailoverTestScenarioParametersFailoverTestScenario クラス、Invoke-ServiceFabricFailoverTestScenario コマンドレットを使用して、組み込みのフェールオーバー テスト シナリオを実行します。After deploying to the local development cluster or a test cluster, a service developer runs the built-in failover test scenario by using the FailoverTestScenarioParameters and FailoverTestScenario classes, or the Invoke-ServiceFabricFailoverTestScenario cmdlet. フェールオーバー テスト シナリオで、重要な切り替えとフェールオーバーを通して指定したサービスを実行して、引き続き利用可能で動作していることを確認します。The failover test scenario runs a specified service through important transitions and failovers to ensure that it's still available and working.
  2. 次に、"サービス開発者" は、ChaosTestScenarioParametersChaosTestScenario クラスまたは Invoke-ServiceFabricChaosTestScenario コマンドレットを使用して、組み込みの chaos テスト シナリオを実行します。The service developer then runs the built-in chaos test scenario using the ChaosTestScenarioParameters and ChaosTestScenario classes, or the Invoke-ServiceFabricChaosTestScenario cmdlet. chaos テスト シナリオは、複数のノード、コード パッケージ、レプリカのエラーをクラスターにランダムに誘導します。The chaos test scenario randomly induces multiple node, code package, and replica faults into the cluster.
  3. service developer サービス対サービスの通信をテスト します。The service developer tests service-to-service communication by authoring test scenarios that move primary replicas around the cluster.

詳細については、「 Introduction to the Fault Analysis Service (Fault Analysis サービスの概要) 」を参照してください。See Introduction to the Fault Analysis Service for more information.

アップグレードUpgrade

  1. サービス開発者 は、インスタンス化されたアプリケーションの構成サービスの更新、バグの修正を行い、サービス マニフェストの新しいバージョンを提供します。A service developer updates the constituent services of the instantiated application and/or fixes bugs and provides a new version of the service manifest.
  2. アプリケーション開発者 は、一貫性のあるサービスの構成とデプロイメント設定をオーバーライドしてパラメーター化し、新しいバージョンのアプリケーション マニフェストを提供します。An application developer overrides and parameterizes the configuration and deployment settings of the consistent services and provides a new version of the application manifest. アプリケーション開発者は、アプリケーションに新しいバージョンのサービス マニフェストを組み込み、更新されたアプリケーション パッケージで新しいバージョンのアプリケーションの種類を提供します。The application developer then incorporates the new versions of the service manifests into the application and provides a new version of the application type in an updated application package.
  3. アプリケーション管理者 は、適切なパラメーターを更新して、対象のアプリケーションに新しいバージョンのアプリケーションの種類を組み込みます。An application administrator incorporates the new version of the application type into the target application by updating the appropriate parameters.
  4. "オペレーター" は、CopyApplicationPackage メソッドまたは Copy-ServiceFabricApplicationPackage コマンドレットを使用して、クラスター イメージ ストアに更新されたアプリケーション パッケージをアップロードします。An operator uploads the updated application package to the cluster image store using the CopyApplicationPackage method or the Copy-ServiceFabricApplicationPackage cmdlet. アプリケーション パッケージには、アプリケーション マニフェストとサービス パッケージのコレクションが含まれています。The application package contains the application manifest and the collection of service packages.
  5. "オペレーター" は、ProvisionApplicationAsync メソッドRegister-ServiceFabricApplicationType コマンドレットProvision an Application REST 操作を使用して、対象のクラスターで新しいバージョンのアプリケーションをプロビジョニングします。An operator provisions the new version of the application in the target cluster by using the ProvisionApplicationAsync method, the Register-ServiceFabricApplicationType cmdlet, or the Provision an Application REST operation.
  6. "オペレーター" は、UpgradeApplicationAsync メソッドStart-ServiceFabricApplicationUpgrade コマンドレットUpgrade an Application REST 操作を使用して、対象のアプリケーションを新しいバージョンにアップグレードします。An operator upgrades the target application to the new version using the UpgradeApplicationAsync method, the Start-ServiceFabricApplicationUpgrade cmdlet, or the Upgrade an Application REST operation.
  7. "オペレーター" は、GetApplicationUpgradeProgressAsync メソッドGet-ServiceFabricApplicationUpgrade コマンドレットGet Application Upgrade Progress REST 操作を使用して、アップグレードの進行状況を確認します。An operator checks the progress of upgrade using the GetApplicationUpgradeProgressAsync method, the Get-ServiceFabricApplicationUpgrade cmdlet, or the Get Application Upgrade Progress REST operation.
  8. 必要に応じて、"オペレーター" は、UpdateApplicationUpgradeAsync メソッドUpdate-ServiceFabricApplicationUpgrade コマンドレットUpdate Application Upgrade REST 操作を使用して、現在のアプリケーション アップグレードのパラメーターを変更して再適用します。If necessary, the operator modifies and reapplies the parameters of the current application upgrade using the UpdateApplicationUpgradeAsync method, the Update-ServiceFabricApplicationUpgrade cmdlet, or the Update Application Upgrade REST operation.
  9. 必要に応じて、"オペレーター" は、RollbackApplicationUpgradeAsync メソッドStart-ServiceFabricApplicationRollback コマンドレットRollback Application Upgrade REST 操作を使用して、現在のアプリケーション アップグレードをロールバックします。If necessary, the operator rolls back the current application upgrade using the RollbackApplicationUpgradeAsync method, the Start-ServiceFabricApplicationRollback cmdlet, or the Rollback Application Upgrade REST operation.
  10. Service Fabric はその構成サービスのいずれかの可用性を失うことなく、クラスター内で実行されている対象アプリケーションをアップグレードします。Service Fabric upgrades the target application running in the cluster without losing the availability of any of its constituent services.

例については、「 アプリケーション アップグレードのチュートリアル 」を参照してください。See the Application upgrade tutorial for examples.

管理Maintain

  1. オペレーティング システムのアップグレードと修正プログラムに対しては、Service Fabric はクラスター内で実行しているすべてのアプリケーションの可用性を保証する Azure インフラストラクチャとつなぐインターフェイスです。For operating system upgrades and patches, Service Fabric interfaces with the Azure infrastructure to guarantee availability of all the applications running in the cluster.
  2. Service Fabric プラットフォームへのアップグレードと修正プログラムに対しては、クラスターで実行されているアプリケーションの可用性が失われることなく、Service Fabric 自体でアップグレードされます。For upgrades and patches to the Service Fabric platform, Service Fabric upgrades itself without losing availability of any of the applications running on the cluster.
  3. アプリケーション管理者 は、過去の容量使用率のデータと予測される将来の要求を分析した後、ノードの追加やクラスターからのノードの削除を承認します。An application administrator approves the addition or removal of nodes from a cluster after analyzing historical capacity utilization data and projected future demand.
  4. "オペレーター" は、"アプリケーション管理者" が指定したノードを追加、削除します。An operator adds and removes nodes specified by the application administrator.
  5. 新しいノードをクラスターに追加する、または既存のノードをクラスターから削除するとき、Service Fabric は最適なパフォーマンスを実現するために、クラスター内のすべてのノード間でアプリケーションを実行している負荷を自動的に分散します。When new nodes are added to or existing nodes are removed from the cluster, Service Fabric automatically load-balances the running applications across all nodes in the cluster to achieve optimal performance.

RemoveRemove

  1. "オペレーター" は、DeleteServiceAsync メソッドRemove-ServiceFabricService コマンドレットDelete Service REST 操作を使用して、アプリケーション全体を削除することなく、クラスター内の実行中のサービスの特定のインスタンスを削除できます。An operator can delete a specific instance of a running service in the cluster without removing the entire application using the DeleteServiceAsync method, the Remove-ServiceFabricService cmdlet, or the Delete Service REST operation.
  2. "オペレーター" は、DeleteApplicationAsync メソッドRemove-ServiceFabricApplication コマンドレットDelete Application REST 操作を使用して、アプリケーションのインスタンスとそのすべてのサービスも削除できます。An operator can also delete an application instance and all of its services using the DeleteApplicationAsync method, the Remove-ServiceFabricApplication cmdlet, or the Delete Application REST operation.
  3. アプリケーションとサービスが停止されると、"オペレーター" は UnprovisionApplicationAsync メソッドUnregister-ServiceFabricApplicationType コマンドレットUnprovision an Application REST 操作を使用して、アプリケーションの種類のプロビジョニングを解除できます。Once the application and services have stopped, the operator can unprovision the application type using the UnprovisionApplicationAsync method, the Unregister-ServiceFabricApplicationType cmdlet, or the Unprovision an Application REST operation. プロビジョニングを解除されたアプリケーションの種類の場合、ImageStore からアプリケーション パッケージが削除されません。Unprovisioning the application type does not remove the application package from the ImageStore. アプリケーション パッケージを手動で削除する必要があります。You must remove the application package manually.
  4. "オペレーター" は、RemoveApplicationPackage メソッドまたは Remove-ServiceFabricApplicationPackage コマンドレットを使用して、ImageStore からアプリケーション パッケージを削除します。An operator removes the application package from the ImageStore using the RemoveApplicationPackage method or the Remove-ServiceFabricApplicationPackage cmdlet.

例については、「 Deploy an application (アプリケーションをデプロイする) 」を参照してください。See Deploy an application for examples.

次の手順Next steps

Service Fabric アプリケーションとサービスの開発、テスト、管理に関する詳細については、以下を参照してください。For more information on developing, testing, and managing Service Fabric applications and services, see: