Learning AWS(Second Edition)
上QQ阅读APP看书,第一时间看更新

Designing for parallel processing

It is a lot easier to design for parallelization on the cloud platform. You need to use parallel designs throughout your architecture from data ingestion to its processing. So, use multithreading for parallelizing your cloud service requests, distribute load using load balancing, ensure multiple processing components or service endpoints are available via horizontal scaling, and so on.

Exploit both multithreading and multi-node processing. For example, using multiple concurrent threads for fetching objects from cloud data storage service is a lot faster than fetching them sequentially. In the pre-cloud or non-cloud environments, parallel processing across a large number of nodes was a difficult and expensive problem to solve. However, with the advent of cloud it has become very easy to provision a large number of compute instances within minutes. These instances can be provisioned, used and then released using APIs. In addition, frameworks such as Apache Spark and Hadoop have reduced the earlier complexity and expenses involved in building large-scale distributed applications.