With most public cloud providers, you get two broad categories of service to choose from: Platform as a Service (PaaS) or Infrastructure as a Service (IaaS). Or, broadly and more simply, “do you want a website” or “do you want a VM?” I’d argue that many people have a gut instinct to opt for IaaS, and that they’re often wrong for doing so.
Now, let’s get some caveats out of the way, first.
- If your cloud goal is to simply move some VMs to someone else’s infrastructure, then obviously, IaaS is your thing. But your only advantage is literally moving infrastructure – you still gotta manage all those VMs.
- If your cloud goal is migrating some legacy application that can’t be re-architected in any way – again, IaaS. But again, there are few advantages to the business here, apart from not managing your own infrastructure.
IaaS is not the big selling point for using public cloud. PaaS is.
The whole point of PaaS is that you outsource everything except your actual application. You don’t maintain the hardware. Or the network. Or the storage. Or the operating systems. Or anything. It’s all done for you. This obviously requires a somewhat different kind of application – one designed for an n-tier model, which is something not many of our internal applications were built for.
The cloud “execution model,” if you will, is to built APIs that talk over – ideally – HTTP or HTTPS. These services – or “micro services,” if you prefer – encapsulate your business logic and communicate with your back-end data, just like middleware of yore. But if you’re careful about breaking each API into a separate… well, “website,” so to speak, then each becomes a distinct cloud object that can exist, be maintained, and be scaled independently. In that kind of design, the cloud – via PaaS – really makes a ton of sense. Scaling a given service endpoint becomes trivial – your cloud provide will more or less do it for you. You never have to patch an OS or monitor CPU utilization. You just deploy your code and let it happen.
So as you look at cloud opportunities, don’t think of it solely as a place for VMs to run. And if you’re just not grokking why all the cloud fuss – well, it’s likely you’re thinking only of IaaS, where there isn’t much fuss. IaaS, in many ways, does miss the point of cloud.