1. An apparatus for optimization of a virtual machine, the apparatus comprising: a memory device storing instructions; and a computing device communicatively coupled to a first virtual machine, the computing device including a processor operably coupled to the memory device, the processor executing the instructions to: receive a virtual machine event request, the virtual machine event request being at least one of a start virtual machine request, a stop virtual machine request, a pause virtual machine request, a move virtual machine request, a clone virtual machine request, a create new virtual machine request, a deploy virtual machine from template request, a snapshot virtual machine request, a register virtual machine request, and a suspend virtual machine request; detect an adaptation of the first virtual machine, the adaption including at least one of software that has been installed on the first virtual machine, software that has been removed from the first virtual machine, and software that has been updated on the first virtual machine; suggest a variant of the first virtual machine that includes the adaptation; and derive the variant of the first virtual machine to create a second different virtual machine, wherein the first virtual machine is evolved to become the second virtual machine.