Ok, lets rap about automation and deployment.
I’m setting up a web application, and I’m done testing the fiddly bits on local servers. Time to scale up!
Normally, I find a datacenter, order some parts, build everything out, send someone out to oversee setup, and in a few weeks/months I have one site set up.
With a cloud solution, I can get similar functionality and deploy to 1 “datacenter” (in AWS, these are called “zones”) in a matter of minutes. Once that’s done, I can deploy into multiple zones (“near-ish” datacenters) for better availability and disaster recovery. If I’ve set things up right, this is basically just uploading a file and clicking “go” (ok, it can be more or less complicated than that… continuous deployment alone will keep us all arguing for months).
From there, I can probably spend a few weeks of development time to figure out how to drop my application in different parts of the world (in AWS, these are called “Regions”) to solve latency and data sovereignty issues.
I’m basically proposing that we could release our new app globally in a matter of months, while only dealing with one or two vendors. I don’t have to watch drive health, power needs, etc.
Back at our private Datacenter, I have to have a staff dedicated to negotiating with datacenters across the globe. I have to carefully consider updates and changes before sending (or contracting) real people to go out and do the work in-person. I have to monitor the hardware and replace it. The list goes on.
And that’s not even TOUCHING the security angle.