- 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 also addresses the significant challenges in developing and managing cloud native applications.
- You can avoid complex infrastructure problems and focus on implementing mission-critical, demanding workloads that are scalable, reliable, and manageable.
- Service Fabric represents the next-generation platform for building and managing these enterprise-class, tier-1, cloud-scale applications running in containers.
Applications Composed of Microservices
- 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 is a microservices platform that gives every microservice (or container) a unique name that can be either stateless or stateful.
- It hosts microservices inside containers that are deployed and activated across the Service Fabric cluster.
- A move from virtual machines to containers makes possible an order-of-magnitude increase in density.
- Similarly, another order of magnitude in density becomes possible when you move from containers to microservices in these containers.
- 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. Each database is a Service Fabric stateful microservice.
- Service Fabric is Microsoft's container orchestrator deploying microservices across a cluster of machines.
- Service Fabric runs everywhere. You can create clusters for Service Fabric in many environments. (Azure/Other Clouds/on premises, Windows Server/Linux).
- In addition, the development environment in the SDK is identical to the production environment, with no emulators involved.
- You can deploy different versions of the same application side by side, and upgrade each application independently.
- You can manage the lifecycle of your applications without any downtime, including breaking and non-breaking upgrades.
- Scale out or scale in the number of nodes in a cluster.
- As you scale nodes, your applications automatically scale.
Stateless and Stateful Microservices
- 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 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.
- A key feature of Service Fabric is building stateful services, either with the built-in programming models or with containerized stateful services.
Application Life-Cycle Management
- Most applications consist of a combination of stateless and stateful microservices, containers, and other executables that are deployed together.
- By having strong types on the applications, Service Fabric enables the deployment of multiple application instances.
- Each instance is managed and upgraded independently.