1) Writing code to manage configuration, deployment, and automatic provisioning.
2) Managing data centers with machine-readable definition files, rather than physical hardware configuration.
3) Ensuring all your servers and other infrastructure components are provisioned consistently and effortlessly.
4) Administering cloud computing environments, also known as infrastructure as a service (IaaS).