Cloud Computing Defined:
Cloud Computing is the incremental provision of computing resources provided by a 3rd party entity.
Cloud Computing in layman’s terms
Cloud Computing provides access to computing resources to individuals and businesses to enable the running of applications without the need to setup complex hardware or software. These resources can be billed in increments of seconds or minutes similar to the way we are charged for power or water utilities.
A Brief Overview of Cloud Computing
We’ve found that Cloud Computing is really a continuum of the way systems have been deployed since the earliest times. A good summary of all this is available in our Cloud Deployment Models Video.
Advantages of Cloud Computing
Some advantages of using cloud computing rather than setting up your own systems:
- Security. Giving inbound and outbound access to any computer makes it vulnerable, cloud computing firms can give remote access to computing assets while protecting it from intrusion.
- Metered Billing. Setting up a dedicated computer (server) can cost easily over $1000, this maybe overkill if you need it to host a website that will only need 1% of the computing resources of the dedicated computer you’ve purchased. A cloud computing firm could sell you the needed computing resources for less than $10 per month depending on the amount of computing resources you will need.
- Universal Accessibility. Cloud computing resources can be reached from anywhere that has an internet connection. Opening up the internet to a computer on your own network (i.e. not using cloud computing) takes thoughtful planning and investment to ensure that only the resources you’d like to share are available to the world.
To really understand cloud computing, it’s helpful to know how computing started. Not necessarily how desktop computers worked but how organizations used applications that required the sharing of data. For instance This definition will make more sense with some historical context. If you wanted to deliver an application to employees, clients or to the world, it used to take purchasing a server (basically a computer with good specs) and installing the application on it. From there, you would expose the application to a network which allowed end users to login. So to really answer the question of what is cloud computing, we decided to go into this very long explanation of cloud computing before cloud computing existed in this form. Although one could easily argue that mainframes provided the function of cloud computing decades ago. More on that later.
The History of Enterprise Computing
To really understand Cloud Computing is, it’s best to understand what came before it to understand the relationship.
Note: This list is widely subject to debate and in some regards, we can look at almost any of these methods of application architecture as cloud computing if they were provided outside of a single office. But regardless, with the understanding of the background, the knowledge
|Section 1||Mainframe Computing|
|Section 2||Client Server Computing|
|Section 3||3 Tier Web Application Architecture|
|Section 4||3 Tier Web Application with Virtualization|
|Section 5||Microservices Architecture|
|Section 6||Serverless Computing|
Section 1 – Mainframe Computing
Out of all the technologies leading up to what we know as cloud computing now, Mainframes maybe the closest thing we have to modern day Cloud Computing although it’s several decades old. We say this because it’s a large centralized infrastructure and many clients connect to it with almost all the data processing happening on the Main Frame itself.
What is a Mainframe?
A Main Frame is a massive computer capable of running the operations of a large entity such as:
- large business
Mainframes were designed to run the operations of a large business or government and processed all the computations on is own hardware while allowing terminals to connect to it to interact with the applications and data. The terminals were usually a single color and did not computational work on their own. They were often referred to as dumb terminals as they were really just a window into the applications running on the mainframe.
Examples of Mainframe Computers
Mainframe computers were made by several firms but IBM is a notable Mainframe manufacturer during the Mainframe era. We also have an article that discusses what solutions are available for those still using Mainframes who want to modernize.
Section 2 – Client Server Computing
Bear through this example, it will give you an easy to understand example of how cloud computing really came into being and why it makes all the sense in the world. To demonstration the example we’ll start with a mock scenario below:
Server vs Computer
We will use server and computer interchangeably though out this series. A server is a computer with a good amount of processing power and is generally not directly accessed physically by a user. In many cases a server maybe locked in a special office, a server room or even a data center. In early client server application roll outs, what was functioning as a server could have been a regular computer in all regards.
Example – A Small Manufacturing Firm Circa 1992
Let’s say you run a small business that’s grown and you’ve just added an office manager in addition to your existing bookkeeper. Traditionally the bookkeeper had some accounting program installed on their computer and only they accessed it. When the owner of the business asked for it, the bookkeeper could product a bunch of reports and hand them to the owner, so the owner didn’t really need to have dedicated access to the accounting system.
So the new office manager comes in and wants to really make some dramatic changes to the office and really push the office operation to the next level. So the office manager sits with the bookkeeper and has a discussion that looks like this:
Office Manager: I’d really like to see how much we spent on office supplies and our coffee service. I am being asked to really understand where we can save money
Bookkeeper: Well, I can provide you reports on what we spent last quarter on office supplies and the coffee service, I’ll print it out and give them to you.
— 2 days later—
Office Manager: I forgot to ask, can you send me another report that includes our fuel costs on all the vehicles in the office?
Bookkeeper: Sure, I can do that, I’ll print it and give it to you shortly.
—2 days later—
Office Manager: The reports were interesting, can you give me the same reports going back for the past 2 years? I’d like to see how it changes quarter to quarter and by the way, with the bosses approval, do you think you could install the accounting system on my computer so I can run these reports without bugging you? I’d really like to understand how the accounting works so I can put together a budget for the owners.
Bookkeeper: I am not sure how that would work. If we install it on your computer, you couldn’t see the accounting records because they are on my computer only and there’s no way to really share that data. Talk to the boss to see if there’s a way that his computer guy can make this work on 2 machines so you can see the same accounting data that I see.
Meanwhile, the boss has brought in some technical expertise and they’ve transformed the accounting system. But let’s take a look at how the accounting department looked before the technical expert was brought in. You basically had:
- Single User
- Single Application
- Single Computer
- No outside connections
After the tech expert was called in, the application was setup in client server mode which means the application was installed on 2 computers with these parameters:
- Computer 1 has the application + the accounting data
- Computer 2 has the application and NO accounting data
- Computer 2 reads and writes to computer 1 as needed
- Computer 2 reads and writes to itself as needed
- Our model assumes that the software licensing permitted this type of use
- Our model assumes there was some simple network in the office (remember this was pre-internet!)
Assuming this office properly backed up computer 1 frequently and kept a copy of the data offsite in a secure space this generally worked ok for many organizations. A few issues though:
- Since the data was stored on computer 1, this machine had to be left on
- Poor usage habits of the user on computer 1 could corrupt the accounting data
- Backups had to be manually managed
So the business grows and let’s say this business has a warehouse manager who relied on the bookkeeper to print invoices but one day the boss decides it would be good for efficiency if the warehouse prints their own invoices so that shipments could go out faster in the morning. To do this, the model would look like this:
So in this model, there are 3 machines total. The application is installed on all 3 machines, the data resides on the original computer that was setup. As long as the computer that had the application data was secure and running, this worked well. But, the nature of computers aren’t so easily ignore. Out of nowhere, the app and data computer suffers a catastrophic hard drive loss. Of course, this business was savvy enough to store backups in the office as well as off site. So the office manager purchases a new hard drive, the computer is opened, a new hard drive is installed, all the applications are installed and the data from the accounting system is copied from backup onto this machine. This is good but no one could get access to the accounting data for hours and things got delayed and held up.
So we introduce the next iteration of client server computing where a 4th machine is introduced that we will call the accounting server. This machine has no user on it ever, it sits in a corner of the office and no one is supposed to directly touch this machine except for maintenance.
Here’s what that would look like:
Other Client Server Use Cases
We wanted to outline client server in a simple, relatable manner by using a small business. Interestingly enough, big businesses also used this same model but they used the model in Figure 4 above which includes a dedicated computer that stored all the data and rather than 3 “app only” computers, they could have hundreds. Additionally, they could connect other offices around the world using WAN (Wide Area Networks) which all tied back into that large Data only server.