Compute Resource Consolidation Pattern

Compute Resource Consolidation Pattern

The Compute Resource Consolidation Pattern is used to reduce costs by consolidating tasks when computational units are charged uniformly even in spite of low usage.

Posted on August 14, 2016 by Ernesto Garbarino

Introduction

Homer et al. (2014, p. 34) suggest the use of the Compute Resource Consolidation Pattern to reduce costs when multiple computational units are charged uniformly in spite of low usage.

Problem

According to Homer et al. (2014, p. 34), some applications that follow the design principle of separation of concerns result in an architecture in which various pieces of discrete computational units are hosted and deployed individually. This strategy “can increase runtime hosting costs and make management of the system more complex”. Furthermore, Homer et al. (2014) add: “Each computational unit consumes chargeable resources, even when it is idle or lightly used. Therefore, this approach may not always be the most cost-effective solution”.

Solution

The solution proposed by Homer et al. (2014, p. 35) is simply to “consolidate multiple tasks or operations into a single computational unit”. In terms of implementation, the recommendation is to identify tasks that have a similar profile in terms of scalability, lifetime, and processing requirements.

As an example of identifying tasks that can be grouped together, Homer et al. (2014) suggest to look at the difference between tasks that require high-scalability in reaction to high-volume bursts of network traffic and those that poll for infrequent, time-insensitive messages sent to a queue.

Considerations

Given the sheer number of caveats and assumptions mentioned by Homer et al. (2014, pp. 35–36), the author’s opinion is that, in most cases, this is an anti-pattern except in the concrete scenario of traditional IaaS-based cloud computing service in which the deployable (and chargeable) units of computation are of relatively coarse granularity. For example, it is hard to see why a pattern like this would be applied when using micro-virtualisation technology such as Docker.1

References

Homer, A., Sharp, J., Brader, L., Narumoto, M., Swanson, T., 2014. Cloud Design Patterns: Prescriptive Architecture Guidance for Cloud Applications. Microsoft.


  1. Docker http://www.docker.com