Deploying to the Cloud

A lot of the DevOps world seems to revolve around deploying to "the cloud," usually Amazon's AWS, Google, or Microsoft Azure. Is cloud inherent to DevOps? What alternatives exist to the cloud, and can DevOps apply there? What advantages makes the cloud so appealing? This article will try to give a coherent and balanced answer to all these questions.

What is the cloud?

The most basic question is: what makes something "the cloud?" We've identified three providers above. But what about other hosted solutions providers? What distinguishes cloud computing from something like a Virtual Private Server (VPS)?

The biggest distinguishing point of cloud computing is the on-demand nature of it. Typically, with VPS-style solutions, colocation, or other hosting options, machines are allocated for large periods of time, and have some significant ramp-up time before they are available. This leads to a mindset where a machine is expected to be provisioned, configured, and maintained.

Cloud computing challenged this paradigm. What if a machine could be rented by the hour, or the minute, or even the second? What if machines are intended to be ephemeral? What if your compute capacity scaled with demand?

This shift in mindset has led to many of the best practices in the DevOps world today, such as immutable infrastructure and auto-scaling. And therefore it's no surprise that cloud deployments are so commonly the focus of DevOps articles and services.

Can we use DevOps outside the cloud?

The short answer is yes. The primary principles behind DevOps, such as knocking down the wall between dev and ops, apply regardless of environment. And even things like immutable infrastructure can be achieved by using tools like containerization and Kubernetes on your self-managed machines.

Other cloud advantages

Beyond the on-demand nature of cloud, some additional benefits include:

Cloud disadvantages

The cloud does come with some trade-offs, however.

Learn more

If you're interested in learning more about using the cloud, or want to hear about using DevOps practices in your on-prem setups, check out our DevOps syllabus, read up on our training offerings, and learn about our consulting services.