1. A computer-implemented method of providing an application architecture, comprising: generating, by one or more processors, a plurality of layers of the application architecture, each of the plurality of layers having different functionalities and being configured to perform respective operations; receiving, at an application layer of the plurality of layers, and by the one or more processors, a user input comprising data that specifies a functionality of the application architecture; selecting, at a transformation layer of the plurality of layers, and by the one or more processors, a computing platform having a capability to provide the functionality of the application architecture; transforming, at the transformation layer of the plurality of layers, and by the one or more processors, the data to platform-specific content that is compatible with the computing platform; selecting, at a control layer of the plurality of layers, and by the one or more processors, one or more vendors to provide one or more virtual machines that are appropriate for provisioning of the computing platform; generating, at a virtualization layer of the plurality of layers, and by the one or more processors, the one or more virtual machines based on outputs provided by an instantiation layer and an appliance layer of the plurality of layers and based on one or more physical resources that are maintained at a physical layer of the plurality of layers and that support computing operations; and provisioning, by the one or more processors, the computing platform on the one or more virtual machines based on specifications of the one or more vendors.