The application has 2 parts : 1)On-demand infrastructure 2)Elastic infrastructure. On-demand infratsruture: It has an on-demand provide and release mechanism as a base service, it also has the ability to snapshot a VM and then restore the snapshot as and when required. It persists data on a persistent storage. It uses CloudWatch to detect when machines are idle. Elastic infrastructure: Everytime the usage goes above a particular percentage, it creates a new instance for the user and if the machine is idle then the instance is terminated.