Elastic Resource Capacity (Erl, Naserpour)
How can the processing capacity of virtual servers be dynamically scaled in response to fluctuating IT resource usage requirements?
ProblemWhen IT resources hosted by a virtual server impose processing requirements that exceed the virtual server’s capacity, the performance and reliability of the hosted IT resources and the virtual server itself may be compromised.
SolutionAn elastic provisioning system is established to dynamically allocate and reclaim CPUs and RAM for a virtual server in response to the fluctuating processing requirements of its hosted IT resources.
ApplicationResource pools are utilized by scaling technology that interacts with the hypervisor or VIM to retrieve and return CPU and RAM resources at runtime, as per necessary processing capacity.
MechanismsAutomated Scaling Listener, Cloud Usage Monitor, Hypervisor, Pay-Per-Use Monitor, Resource Replication, Virtual Server
Compound PatternsBurst In, Burst Out to Private Cloud, Burst Out to Public Cloud, Cloud Balancing, Elastic Environment, Infrastructure-as-a-Service (IaaS), Multitenant Environment, Platform-as-a-Service (PaaS), Private Cloud, Public Cloud, Resilient Environment, Software-as-a-Service (SaaS)
When the processing capacity of a virtual server is reached at runtime, it becomes unavailable, resulting in scalability limitations and inhibiting the performance and reliability of its hosted IT resources.
Figure 1 - After the virtual server hosting the cloud service reaches its processing limit, subsequent cloud service consumer requests cannot not be fulfilled.
Pools of CPUs and RAM are established for shared allocation. The runtime processing of a virtual server is monitored so that prior to capacity thresholds being met, additional processing power from the resource pool can be leveraged via dynamic allocation to the virtual server. This vertically scales the virtual server and, consequently, its hosted applications and IT resources as well.
The Resource Pool pattern is applied to provision the necessary IT resource pools, and the Dynamic Scalability pattern is applied to establish the automated scaling listener mechanism as an intermediary between cloud service consumers and any IT resources hosted by the virtual server that need to be accessed. The Automated Administration pattern is further applied because intelligent automation engine scripts are needed to signal scaling requirements to the resource pool.
Figure 2 - The application of the Elastic Resource Capacity pattern on a sample cloud architecture (Part 1).
- Resource pools providing CPUs and RAM memory have been implemented and configured.
- Cloud service consumer are actively sending requests.
- The automated scaling listener is monitoring the requests.
- An intelligent automation engine script is deployed with workflow logic capable of notifying the resource pool using allocation requests.
Figure 3 - The application of the Elastic Resource Capacity pattern on a sample cloud architecture (Part 2).
- Cloud service consumer requests increase.
- The automated scaling listener signals the intelligent automation engine to execute the script.
- The script runs the workflow logic that signals the hypervisor to allocate more IT resources from the resource pools.
- The hypervisor allocates additional CPU and RAM to the virtual server, enabling it to handle the increased workload.
This type of cloud architecture may also be designed so that the intelligent automation engine script sends its scaling request via the VIM instead of directly to the hypervisor. Furthermore, in order to support dynamic resource allocation, virtual servers participating in elastic resource allocation systems may need to be rebooted for the allocation to take effect.
NIST Reference Architecture Mapping
This pattern relates to the highlighted parts of the NIST reference architecture, as follows: