Typically, an engineer starts with a high-level design specification and then researches vendor-specific documentation and combines this with personal knowledge and experience to determine the necessary equipment, write a bill of material, create a low level design and then code implementation instructions. For each system to be deployed, the engineer executes the commands in the implementation instructions to create the systems. The engineer then creates operating instructions for operating the systems and executes those to place the system under operational management.
An alternate method is for an engineer to code the commands to be executed into a service catalog or a provisioning tool. The problem that this creates is that the engineer is manually mapping the high-level design to the individual commands necessary to implement that high-level design and then manually executing those commands. If the Enterprise decides to move the application from one technology (hypervisor, operating system) to another they must recreate this mapping. This may have to be done by a completely different engineer who has expertise on the new platform. Very little of the information gathered and generated for these deployments is retained and usable for subsequent projects.
Each application deployed on a cloud requires several layers of implementation. At the application layer the application must be deployed, configured and networked to other resources. User profiles are often deployed for custom attributes and authentication. Below that are the infrastructure layers which various vendors implement with different interface languages. For a private cloud this starts with a processing platform layer. Then one or more hypervisors are installed. In a public cloud a hypervisor equivalent is exposed through an API. On top of those, servers (VMs) and operating systems must be deployed configured and hardened. While there are many vendors offering automation tools to do infrastructure tasks, each of the 25 or more vendors perform these steps differently resulting in numerous different deployment routine.
If you are ready to work with us on some sample scripts go to this Free Trial page.