Patent attributes
Embodiments disclosed herein utilize Habitats to perform incremental updates on virtual machines (VMs) over time. A VM Habitat comprises a collection of VMs and a specification shared between these VMs. Each Habitat specification may define an image name, processing power, etc. A Habitat specification may exist across a cluster of servers. In some embodiments, to dynamically update a Habitat specification, only “spare” VMs in the Habitat are updated, subject to some scheduling parameters and server concurrency limit. As spare VMs are updated, they move towards the new Habitat specification. Eventually, all VMs reach this goal over time, given sufficient spare VM resources. This approach can allow the service provided by the VMs to remain operational, thus maintaining the service level required for its users. This automated process can also eliminate or otherwise reduce human error either in the server removal/insertion from/to the cluster or in the VM update itself.