1. A method, implemented by a server computing system programmed to perform the following, comprising: receiving, by the server computing system, a request to instantiate at least one virtual machine in a cloud; creating a minimal installation of an operating system as specified in a template associated with the request; executing the minimal operating system in a virtual machine guest and customizing the minimal installation of the operating system based on specifications in the template, wherein the specifications define at least one software package to be installed on the at least one virtual machine; and generating a virtual machine disk image of the customized minimal installation of the operating system, wherein the virtual machine disk image is used to instantiate the at least one virtual machine in the cloud and is a cloud generic virtual machine disk image that is configurable to instantiate at least one virtual machine in clouds provided by different cloud providers.