Service Fabric アプリケーションのシナリオService Fabric application scenarios

Azure Service Fabric はさまざまな種類のビジネス アプリケーションやサービスを作成し実行できる信頼性の高い柔軟なプラットフォームを提供します。Azure Service Fabric offers a reliable and flexible platform where you can write and run many types of business applications and services. これらのアプリケーションとマイクロサービスはステートレスまたはステートフルが考えられますが、最大限に効率化するために仮想マシン間でリソース分散されます。These applications and microservices can be stateless or stateful, and they're resource-balanced across virtual machines to maximize efficiency.

Service Fabric 独自のアーキテクチャでは、リアルタイムに近いデータ分析、メモリ内のコンピューティング、並列トランザクション、アプリケーションでのイベント処理を実行できます。The unique architecture of Service Fabric enables you to perform near real-time data analysis, in-memory computation, parallel transactions, and event processing in your applications. リソース要件の変化に応じて、アプリケーションを簡単にスケール アップまたはスケール ダウン (実際にはスケール インまたはスケール アウト) できます。You can easily scale your applications up or down (really in or out), depending on your changing resource requirements.

アプリケーションの構築での設計のガイダンスについては、「Azure Service Fabric でのマイクロサービス アーキテクチャ」 および「Service Fabric を使用したアプリケーションの設計に関するベスト プラクティス」をご覧ください。For design guidance on building applications, read Microservices architecture on Azure Service Fabric and Best practices for application design using Service Fabric.

次の種類のアプリケーションに Service Fabric プラットフォームを使用することを検討してください。Consider using the Service Fabric platform for the following types of applications:

  • データの収集、処理、IoT: Service Fabric では大規模な処理が行われ、そのステートフル サービスによって待機時間が短縮されます。Data gathering, processing, and IoT: Service Fabric handles large scale and has low latency through its stateful services. これは、デバイスのデータと計算用のデータが併置されている多数のデバイスでのデータ処理に役立ちます。It can help process data on millions of devices where the data for the device and the computation are colocated.

    Service Fabric を利用して IoT サービスを構築されているお客様としては、HoneywellPCL ConstructionCrestronBMWSchneider ElectricMesh Systems などがあります。Customers who have built IoT services by using Service Fabric include Honeywell, PCL Construction, Crestron, BMW, Schneider Electric, and Mesh Systems.

  • ゲームおよびセッション ベースの対話型アプリケーション: オンライン ゲームやインスタント メッセージングなど、低待機時間の読み取りと書き込みが必要なアプリケーションの場合は、Service Fabric が有用です。Gaming and session-based interactive applications: Service Fabric is useful if your application requires low-latency reads and writes, such as in online gaming or instant messaging. Service Fabric では、専用のストアやキャッシュを作成する必要なしに、対話型のステートフルなアプリケーションを構築できます。Service Fabric enables you to build these interactive, stateful applications without having to create a separate store or cache. ゲーム サービスでの Service Fabric の使用に関する設計ガイダンスについては、Azure のゲーム ソリューションに関するページをご覧ください。Visit Azure gaming solutions for design guidance on using Service Fabric in gaming services.

    ゲーム サービスを構築されているお客様としては、Next GamesDigamore などがあります。Customers who have built gaming services include Next Games and Digamore. 対話型セッションを構築されているお客様としては、Honeywell with Hololens などがありますCustomers who have built interactive sessions include Honeywell with Hololens.

  • データ分析とワークフロー処理: イベントやデータのストリームを確実に処理する必要のあるアプリケーションには、Service Fabric での最適化された読み取りや書き込みによるメリットがあります。Data analytics and workflow processing: Applications that must reliably process events or streams of data benefit from the optimized reads and writes in Service Fabric. また、Service Fabric では、信頼できる結果を、損失なく次の処理ステージに渡す必要がある、アプリケーション処理パイプラインがサポートされています。Service Fabric also supports application processing pipelines, where results must be reliable and passed on to the next processing stage without any loss. これらのパイプラインには、データの一貫性と確実な計算が不可欠となる取引システムや金融システムが含まれます。These pipelines include transactional and financial systems, where data consistency and computation guarantees are essential.

    ビジネス ワークフロー サービスを構築されているお客様としては、Zeiss GroupQuorum Business Solutions、および Société General などがあります。Customers who have built business workflow services include Zeiss Group, Quorum Business Solutions, and Société General.

  • データの計算: Service Fabric では、集中型のデータ計算処理を行うステートフル アプリケーションを構築できます。Computation on data: Service Fabric enables you to build stateful applications that do intensive data computation. Service Fabric では、アプリケーションでの処理 (計算) とデータの併置を実現できます。Service Fabric allows the colocation of processing (computation) and data in applications.

    通常、アプリケーションでデータにアクセスする必要があるときは、外部のデータ キャッシュまたはストレージ階層に関連するネットワーク待機時間により、計算時間が制限されます。Normally, when your application requires access to data, network latency associated with an external data cache or storage tier limits the computation time. ステートフルな Service Fabric サービスでは、その待機時間をなくして、いっそう最適化された読み取りと書き込みを実現できます。Stateful Service Fabric services eliminate that latency, enabling more optimized reads and writes.

    たとえば、顧客に対してリアルタイムに近い推奨選択を実行するアプリケーションがあり、そのラウンド トリップ時間の要件が 100 ミリ秒未満であるとします。For example, consider an application that performs near real-time recommendation selections for customers, with a round-trip time requirement of less than 100 milliseconds. リモート ストレージから必要なデータを取得する必要がある標準的な実装モデルの場合と比較して、Service Fabric サービスの待機時間とパフォーマンスの特性は、ユーザーに応答性の高いエクスペリエンスを提供します。The latency and performance characteristics of Service Fabric services provide a responsive experience to the user, compared with the standard implementation model of having to fetch the necessary data from remote storage. 推奨選択の計算がデータおよび規則と併置されているため、システムの応答性は高くなります。The system is more responsive because the computation of recommendation selection is colocated with the data and rules.

    計算サービスを構築されているお客様としては、Solidsoft ReplyInfosupport などがあります。Customers who have built computation services include Solidsoft Reply and Infosupport.

  • 高可用性サービス: Service Fabric では、複数のセカンダリ サービス レプリカを作成することによって、高速のフェールオーバーが提供されます。Highly available services: Service Fabric provides fast failover by creating multiple secondary service replicas. ハードウェアまたはその他の障害によってノード、プロセス、または個々のサービスがダウンした場合、セカンダリ レプリカの 1 つが最小限のサービス中断でプライマリ レプリカに昇格されます。If a node, process, or individual service goes down due to hardware or other failure, one of the secondary replicas is promoted to a primary replica with minimal loss of service.

  • スケーラブルなサービス: クラスター間でスケールアウトの状態になれるよう個々のサービスをパーティション分割できます。Scalable services: Individual services can be partitioned, allowing for state to be scaled out across the cluster. 個々のサービスは、その場で作成したり削除したりすることもできます。Individual services can also be created and removed on the fly. 数個のノード上の数個のインスタンスから、多数のノード上の数千個のインスタンスまで、サービスをスケールアウトし、必要に応じて再びそれらをスケールインすることができます。You can scale out services from a few instances on a few nodes to thousands of instances on many nodes, and then scale them in again as needed. Service Fabric を使用することで、このようなサービスを構築し、その完全なライフサイクルを管理することができます。You can use Service Fabric to build these services and manage their complete life cycles.

アプリケーション設計のケース スタディApplication design case studies

アプリケーション設計における Service Fabric の使用方法を示すケース スタディが、顧客事例サイトと Azure のマイクロサービス サイトで公開されています。Case studies that show how Service Fabric is used to design applications are published on the Customer stories and Microservices in Azure sites.

ステートレスとステートフルなマイクロサービスから成るアプリケーションを設計するDesigning applications composed of stateless and stateful microservices

Azure Cloud Services worker ロールでのアプリケーションの構築は、ステートレス サービスの一例です。Building applications with Azure Cloud Services worker roles is an example of a stateless service. 対照的に、ステートフルなマイクロサービスは、要求とその応答を超える権限のある状態を維持します。In contrast, stateful microservices maintain their authoritative state beyond the request and its response. この機能では、レプリケーションによって裏付けられたトランザクションの保証を提供するシンプルな API により、状態の高可用性と一貫性が実現されます。This functionality provides high availability and consistency of the state through simple APIs that provide transactional guarantees backed by replication.

Service Fabric のステートフル サービスは、データベースや他のデータ ストアだけでなく、すべての種類のアプリケーションに高可用性をもたらします。Stateful services in Service Fabric bring high availability to all types of applications, not just databases and other data stores. これは自然な進展です。This is a natural progression. アプリケーションは既に、高可用性のための純粋なリレーショナル データベースから NoSQL データベースに移っています。Applications have already moved from using purely relational databases for high availability to NoSQL databases. アプリケーション自体を「ホット」な状態にして、データを中で管理し、信頼性、一貫性、可用性を犠牲にすることなく、パフォーマンスを上げることができるようになりました。Now the applications themselves can have their "hot" state and data managed within them for additional performance gains without sacrificing reliability, consistency, or availability.

マイクロサービスから成るアプリケーションを構築している場合、通常、ステートレスとステートフルなビジネス中間層サービスを呼び出すステートレスな Web アプリの組み合わせ (ASP.NET と Node.js など) があります。When you're building applications that consist of microservices, you typically have a combination of stateless web apps (like ASP.NET and Node.js) calling onto stateless and stateful business middle-tier services. アプリとサービスは、Service Fabric のデプロイ コマンドを使用して、すべて同じ Service Fabric クラスターにデプロイされます。The apps and services are all deployed in the same Service Fabric cluster through the Service Fabric deployment commands. これらの各サービスは、スケール、信頼性、およびリソースの使用に関して独立しています。Each of these services is independent with regard to scale, reliability, and resource usage. この独立性により、開発およびライフサイクル管理での俊敏性と柔軟性が向上します。This independence improves agility and flexibility in development and life-cycle management.

純粋にステートレスなアプリケーションの可用性と待機時間の要件に対応するために従来必要だった追加のキューとキャッシュは、ステートフル マイクロサービスでは不要になるため、アプリケーション設計が単純化されます。Stateful microservices simplify application designs because they remove the need for the additional queues and caches that have traditionally been required to address the availability and latency requirements of purely stateless applications. ステートフル サービスは可用性が高く待機時間が短いため、アプリケーションで管理すべき詳細は少なくなります。Because stateful services have high availability and low latency, there are fewer details to manage in your application.

次の図では、ステートレスとステートフルなアプリケーション設計の違いを示しています。The following diagrams illustrate the differences between designing an application that's stateless and one that's stateful. Reliable ServicesReliable Actors のプログラミング モデルを利用することで、高スループットと低待機時間を実現しながら、ステートフル サービスによりアプリケーションの複雑さが軽減されます。By taking advantage of the Reliable Services and Reliable Actors programming models, stateful services reduce application complexity while achieving high throughput and low latency.

ステートレス サービスを使用するアプリケーション例を次に示します。ステートレス サービスを使用するアプリケーションHere's an example application that uses stateless services: Application that uses stateless services

ステートフル サービスを使用するアプリケーション例を次に示します。ステートフル サービスを使用するアプリケーションHere's an example application that uses stateful services: Application that uses stateful services

次の手順Next steps