Azure Service Fabric の概要Overview of Azure Service Fabric

Azure Service Fabric は、スケーラブルで信頼性に優れたマイクロサービスとコンテナーのパッケージ化とデプロイ、管理を簡単に行うことができる分散システム プラットフォームです。Azure Service Fabric is a distributed systems platform that makes it easy to package, deploy, and manage scalable and reliable microservices and containers. Service Fabric は、クラウド ネイティブ アプリケーションの開発と管理における重要な課題にも対処します。Service Fabric also addresses the significant challenges in developing and managing cloud native applications. 開発者と管理者は複雑なインフラストラクチャの問題を避けることができ、スケーラブルで信頼性が高く、管理しやすい、ミッション クリティカルで要求の厳しいワークロードの実装に重点を置くことができます。Developers and administrators can avoid complex infrastructure problems and focus on implementing mission-critical, demanding workloads that are scalable, reliable, and manageable. Service Fabric は、コンテナーで実行するこれらのエンタープライズ クラスの Tier-1 クラウド スケール アプリケーションを構築して管理するための次世代プラットフォームの代表例です。Service Fabric represents the next-generation platform for building and managing these enterprise-class, tier-1, cloud-scale applications running in containers.

こちらの短いビデオでは、Service Fabric とマイクロサービスを紹介しています。This short video introduces Service Fabric and microservices:

コンプライアンスCompliance

Azure Service Fabric リソース プロバイダーは、すべての Azure リージョンで利用でき、Azure が持っているすべてのコンプライアンス証明書に準拠しています。これには、SOC、ISO、PCI DSS、HIPAA、および GDPR が含まれます。Azure Service Fabric Resource Provider is available in all Azure regions and is compliant with all compliance certs that Azure has; this includes the following: SOC, ISO, PCI DSS, HIPAA, and GDPR. コンプライアンス証明書の完全な一覧については、「コンプライアンス認証」を参照してください。Please review the following for a complete list of compliance certs: Compliance Offerings

マイクロサービスで構成されたアプリケーションApplications composed of microservices

Service Fabric を使用すると、マシンの共有プール (クラスターと呼ばれる) 上で高密度で実行されるマイクロサービスで構成された、スケーラブルで信頼性の高いアプリケーションを構築して管理することができます。Service Fabric enables you to build and manage scalable and reliable applications composed of microservices that run at high density on a shared pool of machines, which is referred to as a cluster. コンテナーで実行する分散型のスケーラブルなステートレスおよびステートフル マイクロサービスを構築するための高度な軽量ランタイムを提供します。It provides a sophisticated, lightweight runtime to build distributed, scalable, stateless, and stateful microservices running in containers. また、コンテナー化されたサービスを含むデプロイ済みのアプリケーションをプロビジョニング、デプロイ、監視、アップグレード/修正、削除するための包括的なアプリケーション管理機能も提供します。It also provides comprehensive application management capabilities to provision, deploy, monitor, upgrade/patch, and delete deployed applications including containerized services.

現在、Service Fabric は、Azure SQL Database、Azure Cosmos DB、Cortana、Microsoft Power BI、Microsoft Intune、Azure Event Hubs、Azure IoT Hub、Dynamics 365、Skype for Business、などの Azure の核となる多くのサービスを含む、さまざまな Microsoft サービスで使用されています。Service Fabric powers many Microsoft services today, including Azure SQL Database, Azure Cosmos DB, Cortana, Microsoft Power BI, Microsoft Intune, Azure Event Hubs, Azure IoT Hub, Dynamics 365, Skype for Business, and many core Azure services.

Service Fabric は、クラウド ネイティブのサービスの作成用に調整されています。これらのサービスは、必要に応じて小規模で開始し、数百または数千ものコンピューターを含むとても大きなスケールまで拡張することができます。Service Fabric is tailored to create cloud native services that can start small, as needed, and grow to massive scale with hundreds or thousands of machines.

現在のインターネット規模のサービスは、マイクロサービスで構築されています。Today's Internet-scale services are built of microservices. マイクロサービスの例としては、プロトコル ゲートウェイ、ユーザー プロファイル、ショッピング カート、インベントリ処理、キュー、キャッシュなどが挙げられます。Examples of microservices include protocol gateways, user profiles, shopping carts, inventory processing, queues, and caches. Service Fabric は、すべてのマイクロサービス (またはコンテナー) にステートレスまたはステートフルな一意の名前を指定するマイクロサービス プラットフォームです。Service Fabric is a microservices platform that gives every microservice (or container) a unique name that can be either stateless or stateful.

Service Fabric は、これらのマイクロサービスで構成されたアプリケーションに対して、包括的なランタイムおよびライフサイクル管理機能を提供します。Service Fabric provides comprehensive runtime and lifecycle management capabilities to applications that are composed of these microservices. Service Fabric クラスター間にわたってデプロイされアクティブ化されるマイクロサービスを、コンテナー内にホストします。It hosts microservices inside containers that are deployed and activated across the Service Fabric cluster. 仮想マシンからコンテナーへの移行によって密度を 1 桁増やすことができます。A move from virtual machines to containers makes possible an order-of-magnitude increase in density. 同様に、コンテナーからコンテナー内のマイクロサービスへの移行によっても、密度を 1 桁増やすことができます。Similarly, another order of magnitude in density becomes possible when you move from containers to microservices in these containers. たとえば、単一の Azure SQL Database クラスターは、合計数十万のデータベースをホストする数万のコンテナーを実行する数百のマシンで構成されます。For example, a single cluster for Azure SQL Database comprises hundreds of machines running tens of thousands of containers that host a total of hundreds of thousands of databases. 各データベースは Service Fabric ステートフル マイクロサービスです。Each database is a Service Fabric stateful microservice.

マイクロサービスの手法について詳しくは、「 マイクロサービスの手法でアプリケーションを構築する理由は何ですか。For more on the microservices approach, read Why a microservices approach to building applications?

コンテナーのデプロイとオーケストレーションContainer deployment and orchestration

Service Fabric は、マシン クラスター全体にマイクロサービスをデプロイする Microsoft のコンテナー オーケストレーターです。Service Fabric is Microsoft's container orchestrator deploying microservices across a cluster of machines. Service Fabric プログラミング モデルASP.NET Core の使用から任意のコードのデプロイまで、多くの方法でマイクロサービスを開発することができます。Microservices can be developed in many ways from using the Service Fabric programming models, ASP.NET Core, to deploying any code of your choice. 重要なこととして、プロセスとしてのサービスとコンテナー内のサービスの両方を同じアプリケーション内で混在させることができます。Importantly, you can mix both services in processes and services in containers in the same application. コンテナーのデプロイと管理だけを行う場合は、Service Fabric がコンテナー オーケストレーターとして最適な選択肢です。If you just want to deploy and manage containers, Service Fabric is a perfect choice as a container orchestrator.

すべての OS、すべてのクラウドAny OS, any cloud

Service Fabric はどこでも動きます。Service Fabric runs everywhere. Azure、オンプレミス、Windows Server、Linux を含むさまざまな環境で Service Fabric クラスターを作成できます。You can create clusters for Service Fabric in many environments, including Azure or on premises, on Windows Server, or on Linux. 他のパブリック クラウド上にクラスターを作成することさえできます。You can even create clusters on other public clouds. さらに、SDK の開発環境は、エミュレーターが含まれない運用環境と同一です。In addition, the development environment in the SDK is identical to the production environment, with no emulators involved. つまり、ローカルの開発クラスターで実行した場合、他の環境内のクラスターにデプロイされます。In other words, what runs on your local development cluster deploys to the clusters in other environments.

Service Fabric platform

Windows 開発の場合、Service Fabric .NET SDK は、Visual Studio と PowerShell に統合されています。For Windows development, the Service Fabric .NET SDK is integrated with Visual Studio and Powershell. 開発環境を準備する」を参照してください。See Prepare your development environment on Windows. Linux 開発の場合、Service Fabric Java SDK が Eclipse に統合されており、Java、.NET Core、およびコンテナー アプリケーション用のテンプレートを生成する必要はありませんFor Linux development, the Service Fabric Java SDK is integrated with Eclipse, and Yeoman is used to generate templates for Java, .NET Core, and container applications. Linux で開発環境を準備する」を参照してください。See Prepare your development environment on Linux

クラスター作成の詳細については、Windows Server または Linux でのクラスターの作成に関する記事を参照してください。また、Azure でのクラスター作成の詳細については、Azure Portal を使用したクラスターの作成に関する記事を参照してください。For more information on creating clusters, read creating a cluster on Windows Server or Linux or for Azure creating a cluster via the Azure portal.

Service Fabric 用のステートレス マイクロサービスとステートフル マイクロサービスStateless and stateful microservices for Service Fabric

Service Fabric では、マイクロサービスまたはコンテナーで構成されるアプリケーションを構築することができます。Service Fabric enables you to build applications that consist of microservices or containers. ステートレス マイクロサービス (プロトコル ゲートウェイや Web プロキシなど) では、要求およびそのサービスからの応答以外では変更可能な状態が維持されません。Stateless microservices (such as protocol gateways and web proxies) do not maintain a mutable state outside a request and its response from the service. Azure Cloud Services worker ロールは、ステートレス サービスの一例です。Azure Cloud Services worker roles are an example of a stateless service. ステートフル マイクロサービス (ユーザー アカウント、データベース、デバイス、ショッピング カート、キューなど) では、要求およびその応答以外でも変更可能な認証状態が維持されます。Stateful microservices (such as user accounts, databases, devices, shopping carts, and queues) maintain a mutable, authoritative state beyond the request and its response. 今日のインターネット規模のアプリケーションは、ステートレス マイクロサービスとステートフル マイクロサービスの組み合わせで構成されています。Today's Internet-scale applications consist of a combination of stateless and stateful microservices.

Service Fabric との重要な違いは、組み込みプログラミング モデルまたはコンテナー化されたステートフル サービスで、ステートフル サービスの構築に大きな重点が置かれていることです。A key differentiation with Service Fabric is its strong focus on building stateful services, either with the built-in programming models or with containerized stateful services. アプリケーション シナリオでは、ステートフル サービスが使われるシナリオについて説明されています。The application scenarios describe the scenarios where stateful services are used.

アプリケーション ライフサイクル管理Application lifecycle management

Service Fabric では、コンテナーを含むクラウド アプリケーションの完全なアプリケーション ライフ サイクルと CI/CD のサポートが提供されます。Service Fabric provides support for the full application lifecycle and CI/CD of cloud applications including containers. このライフ サイクルには、開発、展開、日常的な管理、保守、最終的な廃棄が含まれています。This lifecycle includes development through deployment, daily management, and maintenance to eventual decommissioning.

Service Fabric ライフサイクル管理機能を使用すると、アプリケーション管理者および IT オペレーターは単純なロータッチ ワークフローを使用して、アプリケーションをプロビジョニング、デプロイ、修正、および監視することができます。Service Fabric application lifecycle management capabilities enable application administrators and IT operators to use simple, low-touch workflows to provision, deploy, patch, and monitor applications. これらの組み込みワークフローにより、アプリケーションを継続的に使用可能に保つために IT オペレーターにかかる負担が大幅に軽減されます。These built-in workflows greatly reduce the burden on IT operators to keep applications continuously available.

ほとんどのアプリケーションは、ステートレスとステートフルのマイクロサービス、コンテナー、および一緒にデプロイされる他の実行可能ファイルの組み合わせで構成されます。Most applications consist of a combination of stateless and stateful microservices, containers, and other executables that are deployed together. Service Fabric は、アプリケーションの厳密な型を備えており、複数のアプリケーション インスタンスのデプロイが可能です。By having strong types on the applications, Service Fabric enables the deployment of multiple application instances. インスタンスは個別に管理およびアップグレードできます。Each instance is managed and upgraded independently. 重要なのは、Service Fabric はコンテナーまたは任意の実行可能ファイルをデプロイし、それらを信頼性の高いものにすることができる点です。Importantly, Service Fabric can deploy containers or any executables and make them reliable. たとえば、Service Fabric は、.NET、ASP.NET Core、node.js、Windows コンテナー、Linux コンテナー、Java 仮想マシン、スクリプト、Angular、またはアプリケーションを構成する文字通りすべてのものをデプロイできます。For example, Service Fabric can deploy .NET, ASP.NET Core, node.js, Windows containers, Linux containers, Java virtual machines, scripts, Angular, or literally anything that makes up your application.

Service Fabric は、Azure PipelinesJenkinsOctopus Deploy などの CI/CD ツールと統合し、他のすべての一般的な CI/CD ツールで使うことができます。Service Fabric is integrated with CI/CD tools such as Azure Pipelines, Jenkins, and Octopus Deploy and can be used with any other popular CI/CD tool.

アプリケーション ライフサイクル管理の詳細については、アプリケーションのライフサイクルに関するページを参照してください。For more information about application lifecycle management, read Application lifecycle. 任意のコードをデプロイする方法について詳しくは、「Service Fabric へのゲスト実行可能ファイルのデプロイ」をご覧ください。For more about how to deploy any code, see deploy a guest executable.

主な機能Key capabilities

Service Fabric を使用すると、次の操作を実行できます。By using Service Fabric, you can:

  • コードを変更せずに、Azure にデプロイするか、Windows または Linux を実行しているオンプレミスのクラウドにデプロイします。Deploy to Azure or to on-premises datacenters that run Windows or Linux with zero code changes. 一度記述してから、任意の Service Fabric クラスターにデプロイします。Write once, and then deploy anywhere to any Service Fabric cluster.
  • Service Fabric プログラミング モデル、コンテナー、任意のコードを使って、マイクロサービスで構成されたスケーラブルなアプリケーションを開発します。Develop scalable applications that are composed of microservices by using the Service Fabric programming models, containers, or any code.
  • 信頼性の高いステートレスおよびステートフルなマイクロサービスを開発します。Develop highly reliable stateless and stateful microservices. ステートフル マイクロサービスを使って、アプリケーションの設計を簡略化します。Simplify the design of your application by using stateful microservices.
  • 新しい Reliable Actors プログラミング モデルを使って、自己完結型のコードと状態を備えたクラウド オブジェクトを作成します。Use the novel Reliable Actors programming model to create cloud objects with self contained code and state.
  • Windows コンテナーと Linux コンテナーを含むコンテナーをデプロイし、調整します。Deploy and orchestrate containers that include Windows containers and Linux containers. Service Fabric は、データ対応でステートフルなコンテナー オーケストレーターです。Service Fabric is a data aware, stateful, container orchestrator.
  • マシンあたり数百から数千のアプリケーションまたはコンテナーという高密度で、アプリケーションを短時間でデプロイします。Deploy applications in seconds, at high density with hundreds or thousands of applications or containers per machine.
  • それぞれ個別にアップグレード可能な、同じアプリケーションの異なるバージョンを並行してデプロイします。Deploy different versions of the same application side by side, and upgrade each application independently.
  • 重大なアップグレードと重大でないアップグレードを含め、アプリケーションのライフ サイクルをダウンタイムなく管理します。Manage the lifecycle of your applications without any downtime, including breaking and nonbreaking upgrades.
  • クラスター内のノード数をスケールアウトまたはスケールインします。Scale out or scale in the number of nodes in a cluster. ノードをスケーリングすると、アプリケーションが自動的にスケーリングします。As you scale nodes, your applications automatically scale.
  • アプリケーションの状態を監視および診断し、自動修復を実行するようにポリシーを設定します。Monitor and diagnose the health of your applications and set policies for performing automatic repairs.
  • クラスター内でアプリケーションの再配布を調整するリソース バランサーを監視します。Watch the resource balancer orchestrate the redistribution of applications across the cluster. Service Fabric は障害から回復し、利用可能なリソースに基づいて負荷分散を最適化します。Service Fabric recovers from failures and optimizes the distribution of load based on available resources.

次の手順Next steps