Custom Cloud VM Autoscaling System

Domains

Backend
Systems
Automation
Research
AcademicJanuary 1, 2022 - April 1, 2022
Custom Cloud VM Autoscaling System

Tech Stack

Python
libvirt
QEMU/KVM
Linux
Distributed Systems
Git

Project Summary

Abstract

Autoscaling is often treated as a managed-cloud abstraction, but the underlying mechanics are a useful systems problem in their own right.

This project implemented a small autoscaling loop directly against the virtualization layer using Python, libvirt, and QEMU/KVM to monitor load and trigger VM lifecycle events.

When CPU pressure stayed high, the system booted standby capacity and shifted work across instances, with guest startup scripts reducing manual intervention during scale-up.

What I Built

  • Direct libvirt control over QEMU/KVM made it possible to inspect VM load and trigger lifecycle events programmatically.
  • The prototype demonstrated the core autoscaling loop: monitor pressure, boot standby capacity, and shift work across instances.

Impact

  • Made autoscaling mechanics tangible by implementing them below the managed-platform layer.
  • Showed end-to-end systems control across monitoring, VM orchestration, and automated scale-up behavior.

Page Info

Hypervisor Integration

Integrated with QEMU/KVM through the libvirt Python binding to inspect active virtual machines and control VM lifecycle events through qemu:///system.

/projects/vm-autoscaling/logo.svg

Dynamic Scaling Logic

Continuously monitored CPU utilization on the active VM and booted a standby instance when sustained computational load crossed the threshold.

/projects/vm-autoscaling/logo.svg

Distributed Workload Simulation

Simulated pressure with repeated license-number generation and hashing, then shifted work across active instances after scale-up.

/projects/vm-autoscaling/logo.svg

    Custom Cloud VM Autoscaling System | Vimal Rajesh | Applied AI and Platform Engineer