Service Fabric
(continued)
Part 2 compared
Paxos and Raft. Part 3 discussed
SF-Ring and Part 4 discussed its
architecture. This article describes its usage scenarios.
Service Fabric supports a
wide variety of business applications and services. These applications and
services can be stateless or stateful. They are run with high efficiency and
load balancing. It supports real-time data analysis, in-memory computation,
parallel transactions, and event processing in the applications. Applications
can be scaled in or out depending on the changing resource requirements.
Service Fabric handles hosts
stateful services that must support large scale and low latency. It can help
process data on millions of devices where the data for the device and the
computation are co-located. It is equally effective for both core and edge
services and scales to IoT traffic.
Service Fabric is also
useful for scenarios that require low-latency reads and writes, such as in
online gaming or instant messaging. Applications can be built to be interactive
and stateful without having to create a separate store or cache. Gaming and
instant messaging are some examples of this scenario.
Applications that must
reliably process events or streams of data run well on Service Fabric with its optimized
reads and writes. Service Fabric 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.
Stateful applications that
perform intensive data computation and require the colocation of processing
(computation) and data in applications benefit from Service Fabric as well. Stateful
Service Fabric services eliminate that latency, enabling more optimized reads
and writes. As an example, real-time recommendation selections for customers
that require a round trip-time latency of less than hundred milliseconds are
handled with ease.
Service Fabric also
supports highly available services and provides fast failover by creating multiple
secondary service replicas. 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.
Individual services can also
be partitioned where services are hosted by different hosts. Individual
services can also be created and removed on the fly. Services can be scaled from
a few instances on a few nodes to thousands of instances on several nodes and
dialed down as well. Service Fabric helps with the complete life cycles.
Examples of stateless
services include Azure Cloud Services and that for stateful microservices that
must maintain authoritative state beyond the request and its response include
ASP.Net and node.js services Service Fabric provides high availability and
consistency of state through simple APIs that provide transactional guarantees
backed by replication.
Stateful services in
Service Fabric bring high availability to all types of applications and not
just those that depend on a database or a data store. This covers both
relational and big data stores. Applications can have both their state and data
managed for additional performance gains without sacrificing reliability,
consistency or availability
Apps and services are all
deployed in the same Service Fabric cluster through the Service Fabric
deployment commands and yet each of them is independently scaled and made
reliable with guarantees for resources. This independence improves agility and
flexibility.
Stateful microservices
simplify application design because they remove the need for the additional
queues and caches and have traditionally been required to address the
availability and latency requirements of purely stateless applications. Service
Fabric provides reliable services and reliable actors programming models and
reduce the application complexity while achieving high throughput and low
latency.
No comments:
Post a Comment