Service Scalability and
Reliability
These are some observations about scalability and
reliability of a cloud based service.
The primary consideration is between the tradeoffs for
compute versus data optimizations.
The
scale-out of the computational tasks is achieved by their discrete, isolated,
and finite nature where some input is taken in raw form and processed into an
output. The scale out can be adjusted to suit the demands of the workload and
the outputs can be conflated as is customary with map-reduce problems.
Since the tasks are run independently and in parallel, they are tightly
coupled. Network latency for message exchanges between tasks is kept to a
minimum.
Compute-oriented improvements have the following benefits: 1)
high performance due to the parallelization of tasks. 2) ability to scale out
to arbitrarily large number of cores, 3) ability to utilize a wide variety of
compute units and 4) dynamic allocation and deallocation of compute.
Some of the best practices demonstrated by this approach
include the following: It exposes a well-designed API to the client. It can
auto-scale to handle changes in the load. It caches semi-static data. It uses
polyglot persistence when appropriate. It partitions data to improve scalability,
reduce contention, and optimize performance. There are Kusto endpoints for
read-only data in USNat, USSec and public cloud.
The storage approach leans on multiple persistence and larger
volume of data so that services can stage processing and analysis both of which
have different patterns. The data continues to be made available in real-time
but there is a separation of read-only and read-write. Copy-on-Write mechanism
is provided by default and versioning is supported.
Some of the benefits of this approach include the following:
The ability to mix technology choices, achieving performance through efficiency
in data processing, queuing on the service side, and interoperability with
existing service technology stacks.
Some of the best practices with this architectural style
leverage parallelism, partition data, apply schema-on read semantics, process
data in place, balance utilization and time costs, separate cluster resources,
orchestrate data ingestion and scrub sensitive data.
Some of the architectural guidance and best practice for
implementing cloud services is found via the reference documentation online and
as presented in this article
No comments:
Post a Comment