Dynamic Vertical Scaling CAT
The Dynamic Vertical Scaling CAT provides a structure for a system that can dynamically scale resources up and down to facilitate the processing of varying workload. That is, the processing capacity of a single resource is adjusted to the current workload. It is initiated by a controller that monitors the resource utilization and evaluates predefined performance criteria against a threshold that triggers an up or down scaling.
Assume a book shop system that consists of three components: The book shop frontend, the book shop management and the book shop database, which is vertically scalable. That is, the CPU frequency can be increased to 4.0 GHz in case the response time is greather than 3.0 seconds.
The roles‘ constraints assure the characteristics of dynamic vertical scaling:
- The components, whose resources are scaled up and down, are running in a VM.
A system that has to deal with varying workload.
A system has to deal with a varying workload, i.e. periodic or random and unexpected workload. A static scaling of the system would lead to an under- or overprovision of resources. In turn, this leads to a performance lack or in high costs for the costumer as he pays for resources in non-peak phases that are not needed. Another option would be to reject requests that are not processable because the resources are fully utilized. However, from the costumers view it is not desirable as he looses clients and therefore profit. Also, the provider could add resources when a peak load occurs. However, it is not beneficial as the provision of further resources results in a latency until they can be used. In the worst case, the resource is available when the peak phase is over. Furthermore, the removal of the resources after workload decrease produces additional costs and effort.
Use a cloud environment with VMs in which the components of the system are running. The VMs include a controller monitoring the resource utilization and checks whether a predefined performance criterion exceeds a threshold. When a component needs more capacity of a resource, the VM adds free capacity for this component. In case, the workload decreases and the component doesn’t need the whole resource capacity, the VM can delete resources, so that they are available for other components.
In the following figure, we provide the CAT type for Dynamic Vertical Scaling:
Assume a system implemented according the Dynamic Vertical Scaling structure. Suddenly a high amount of requests occur aiming at the vertically scalable component. Depending on which resource can be scaled up (add CPU core, increse CPU frequency, increase memory) and how much of the resource is currently physical available on the server, the VM would add resources for the processing of the requests. When the load decreases and the VM doens’t need the additional resources anymore, these resources are freed and therefore made available for other VMs running on the server.
We identified the following benefits for Dynamic Vertical Scaling:
- Fast provision of more resources.
- Lower resource and configuration costs.
We are aware of the following liabilities for Dynamic Horizontal Scaling:
- Limited by the amount of the physical servers‘ free resources on which the VM is running.
- Whether the system has to reboot after VM resizing depends on the operating system. In this case, the latency is high till the resource is available.