posted: September 15, 2018
tl;dr: Offloading infrastructure onto experts, with scale, is liberating times three...
I should have written this post three years ago. My feelings about cloud computing haven’t changed - they’ve only been affirmed - whereas conventional wisdom has changed. Years ago the cloud was much more controversial, and many were resisting moving into the cloud.
I jumped into cloud computing with both feet in 2015 by joining a Cloud SaaS startup company, Uprising Technology. At my previous employer we had done some initial tentative steps into cloud computing, but most of the applications we used and developed were run in a traditional corporate data center: restricted access, raised floors, fire suppression system, backup generator, the works. One of the key reasons I joined Uprising was to immerse myself fully in a cloud-first and cloud-only company.
Uprising had not a single server, not even a print server. Everything was in the cloud: both the business applications used by company personnel (we were big users of Google’s office suite) and the application being developed for sale by the company (initially deployed in Google App Engine and later, in version two, in Google Kubernetes Engine and also AWS).
The change in paradigm blew me away from the first moment that I connected my MacBook to the Wi-Fi network at 1871, entered my credentials to log into Google Cloud, and started looking at the Google Cloud console to check on the existing servers and applications and to start experimenting with new services. I was blown away again when I went home and did the same thing from home, and again when I went to Starbucks and did it. I could control the entire corporate application infrastructure from anyplace on Earth that had decent Internet access. There wasn’t even a need to VPN into the corporate LAN; there was no corporate LAN. This freedom of personal movement was the first degree of liberation.
The second major liberation was how easy it is to provision new servers, applications, and services in the cloud. Need a new server, or ten? They can be spun up in a minute or two. Need those servers to be automatically added as the usage of a distributed application scales? The cloud can be provisioned to do so automatically, without human intervention. When I compare this to the old days of filling out budgets and requisitions to get the company I worked for to purchase actual hardware servers, I just shudder.
The third major liberation was being unburdened from running and maintaining a data center. It’s hard work to maintain a proper data center 24 hours a day, 365 days a year. Someone always has to be on call in case something goes wrong. Monitoring equipment is needed, which sometimes generates false negatives. Backups have to be done and tested regularly.
It makes sense for both economics and quality to offload this onto the experts at Google, Amazon, Microsoft, and other cloud service providers. They probably have better physical security than at your old data center. They probably have a better redundant power system. They probably detect and recover from hardware failures faster. Their multiple data centers around the country and world provide geographic redundancy as well as allowing web applications to be hosted close to actual users. Cloud computing is a scale business, and few corporations have the scale to develop private infrastructure that can compete with the large cloud service providers.
I could go on about other benefits of cloud computing, but those are the main ones that I’ve experienced. The cloud is going to continue to grow and gain in acceptance in the future, even though in one way it harkens back to the past. Those of us who can remember the mainframe era, in particular timeshare computing, know that the way that cloud computing resources are billed is the same way that timeshare billing systems worked when many different departments were sharing a mainframe computer: you got billed for CPU time, storage charges, and a few other items based upon actual usage, which was closely tracked. It’s no different in cloud computing, and it’s not at all a bad business model: you have to pay for what you receive, no more and no less. It beats buying servers with cash up front, and then debating depreciation schedules with the company’s accountants during the year-end close process.