Service Fabric (continued)
Part 2 compared
Paxos and Raft. Part 3 discussed
SF-Ring and Part 4 discussed its
architecture. This article describes compute planning and scaling.
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. 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.
Scalability considerations
depend on the initial configuration and whether scaling is required for the
number of nodes of each node type or if it is required for services.
Initial cluster
configuration is important for scalability. When the service fabric cluster is
created, the node types are determined, and each node type can scale
independently. A node type can be created for each group of services that have
different scalability or resource requirements. A node type for the system
services must first be configured. Then separate node types can be created for
public or front-end services and other node types as necessary for the backend.
Placement services can be specified so that services are only deployed to the
intended node types.
The durability tier for
each node type represents the ability for Service Fabric to influence virtual
machine scale set updates and maintenance operations. The production workloads requires
Silver or higher durability tier. If the bronze durability tier is used,
additional steps are required for scale-in.
Each node type can have a
maximum of 100 nodes. Anything more than that will require more node types. A
VMSS does not scale instantaneously so the delay must be tolerated during
autoscaling. Automatic scale in to reduce the number depends on silver or gold
durability tier.
Scaling services depend on
whether the services are stateful or stateless. Autoscaling of stateless
services can be done by using the average partition load trigger or setting
instance count to -1 in the service manifest. Stateful services require each
node to get adequate replicas. Dynamic creation or deletion of services or
whole application instances is also supported.
Average partition load trigger
allows us to scale up the number of nodes. The instanceCount in the service
manifest automatically creates and deletes service instances to match.
No comments:
Post a Comment