By Eric Martinson, Senior Director of Technology
There are few terms in technology that have been more manipulated (or misunderstood) than Cloud Computing. While Machine Learning, Artificial Intelligence and Blockchain dominate the headlines today, they are a far cry from the impact Cloud Computing has had on everyone.
The reason for this is simple. Unlike those other terms, Cloud Computing isn’t some vague promise, it has delivered on a grand scale. It has led to some of the biggest advances in technology by driving down the costs of computing and making it accessible to developers worldwide.
That’s great and all, but what does it actually mean? The definition of Cloud Computing can vary wildly, depending on who you’re talking to. A good general definition is:
Cloud Computing is a general term for anything that involves delivering hosted services over the Internet. These services are broadly divided into three categories: Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS) and Software-as-a-Service (SaaS). The name Cloud Computing was inspired by the cloud symbol that's often used to represent the Internet in flowcharts and diagrams.
We sure do like our acronyms, don’t we? Since SaaS is the most widely recognized term, I’m going to focus on the other two.
While that definition is a good starting point, it only describes the what, not the how or why it lead to such big innovations. While on the surface it might seem like a whole lotta magic, the path to get where we are today has been fairly linear.
When I started in technology in the 90’s, everything you wanted to do on a network relied on physical servers. It could have been something as simple as the desktop computer you had under your desk, or something as complex as racks of servers in a data center. Almost every application you used was installed in one of these environments.
As an admin, you had direct control over that machine, but there were a lot of things that could go wrong between it and the client. The power could go out, taking your servers with it. The network could go down - like when road work cut a fiber cable next to your office (that happened many times to me). The server itself could also have an issue - one of mine actually caught on fire once.
Ahh, the good old days.
On top of that, all the hardware you needed was expensive. You also had to pay for everything you had online, even if it wasn’t being used (which was most of the time). Servers were very costly, and data centers weren’t cheap either. You could spend tens of thousands of dollars before you had anything even remotely ready for production.
As technology improved and servers got more powerful, virtualization was developed, where you could share resources on a physical machine with many virtual servers. You could divvy up memory, storage and processor capacity at will, giving each virtual instance the resources it needed without impacting others.
If you logged in to that virtual server, it would look like a physical server, which made the transition pretty easy for most IT shops.
This was a game changer because you no longer had to build servers for each function, paying for excess capacity “just in case”. Now you could buy a few larger servers and use virtual servers as needed, saving you a ton of time and money.
The Infrastructure-as-a-Service (IaaS) category was born from this innovation, separating servers and resources from their physical hardware at scale. You might be dealing with servers from an operational perspective, but since they were virtual instances, they could be copied, moved, and restarted very easily.
Where you once had to spend hours loading the Operating System (OS) and software, you could now just use a pre-made configuration to spin up a server in minutes. A few minutes tweaking some definitions, and you could have hundreds of servers running, then shut them down as soon as you were done with them.
Today, that virtualization has become very robust and complex, with capability that used to cost millions of dollars to deploy. This has been the driver for many of the innovations in this space.
Amazon Web Services (AWS) is the best example of this, where they made buying individual services like storage (S3) so easy anyone could use it. And they did, in droves.
Not only did that make them the leader in Cloud Computing, but also gave rise to some of the most well known companies in the world. Dropbox, Netflix, Instagram, Uber and Zillow all got their start on AWS. Without the ability to scale their application quickly and easily, many of these services would not have gotten out of the starting blocks to become household names.
The next wave of innovations have come from the Platform-as-a-Service (PaaS) vendors, specifically around Serverless infrastructure. They’ve done the IaaS solution one better: they got rid of the OS altogether.
Instead of configuring a virtual server with an OS (like Linux or Windows), you only create the exact service you are providing and use functions or containers of a hosting provider to serve your application.
Not only does this simplify development, because you don’t have to worry (or even know) about an OS, but it also levels the playing field so anyone can deploy apps at the click of a mouse. Make your app live and you have the resources of a global enterprise, whether you’re a student, a large company or somewhere in between.
From a business perspective, the benefits of Cloud Computing usually drive cost savings, since you are only paying for the resources you need, when you need them. Consequently, the cost for using those services should go down.
The biggest benefit in my mind isn’t cost, however, it is speed. What used to take days or even weeks in some cases can now be spun up in hours or even less. We now have automation that can take code deployments, run tests to make sure everything works, and then push to production without any user intervention. It means changes and updates can take minutes and be rolled back with a simple command. By wringing out complexity you can focus on the app you’re building and do it faster than ever before.
At the user level, it’s even better. Instead of an admin having to create and manage storage devices on a network, a user can get a Dropbox account and start sharing files immediately. You can sign up with Office365 or Gmail and get instant email service. You can sign up with an IP Phone vendor and be making calls the next minute.
At PlaceWise we’ve made the transition from physical servers to virtual and now on to containers that can run on any cloud provider. At each stage, we’ve seen costs decline and performance increase.
In delivering our service (in the SaaS model), we rely heavily on our IaaS and PaaS vendors, but unless you’re in the IT world or building applications, you will likely never deal directly with any of the services we use every day.
It’s our job to find the best-in-class solutions and integrate them into our product, so the end result for our clients is a seamless connection to the data and support they need.