The use of virtual machines (VMs) in Cloud computing provides various benefits in the overall software engineering lifecycle. These include efficient elasticity mechanisms resulting in higher resource utilization and lower operational costs.
The VMs as software artifacts are created using provider‐specific templates, called virtual machine images (VMI), and are stored in proprietary or public repositories for further use. However, some technology‐specific choices can limit
the interoperability among various Cloud providers and bundle the VMIs with nonessential or redundant software packages, leading to increased storage size, prolonged VMI delivery, stagnant VMI instantiation, and ultimately vendor lock‐in.