Saturday, March 26, 2022

 

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