This article was first published on Medium. You can take a look at it here.
Cloud Computing is a very popular buzzword in the tech industry. Nowadays, everyone is "moving to the cloud". But I still get asked, "What is cloud computing? What does that actually mean?" How did cloud computing come about? Here’s a quick 5 minute high-level overview of cloud computing.
The idea of Cloud Computing started in 1996 by Sean O’Sullivan and George Favaloro. These two men had a vision that business software would not just move to the web, but consumer file storage on the Internet would become much more common. The idea didn’t really catch on until the mid-2000’s, but to understand why it didn’t catch on, we have to go back to the 80's.
In the 80’s, you could have thousands of visitors in a day and your app would be considered to be extremely successful. Now, there are millions of people across the world on the internet who can access your app in one part of the day. You can’t really plan for that, so scalability has become an issue. One server can’t handle millions of people, but having hundreds of servers during one part of the day is not an ideal solution.
This leads us to our current definition of cloud computing. Cloud computing is essentially a large number of computers connected through the Internet. It’s not just the computers storing info on their hard-drive. It’s computers storing and accessing data through the Internet. Essentially, it’s an extra layer of abstraction.
Why and how is this useful to our lives? Let’s walk through an example. Imagine if Bob was launching an ecommerce application. In the old days, he would have to buy the right hardware and software for his business and every time he hires more people, or the application becomes more popular, he would have to buy more resources. Bob would be spending a lot of money. But now, using cloud computing, Bob’s employees can log into web-based services that host all the programs that they need. Bob will save money because he will only pay for what he needs. He can start one server and then overnight become famous and scale up to a whole datacenter. When it fails, he can scale back to one server. And that’s why cloud computing is so cool!
But let’s take a second to talk about the key characteristics of cloud computing. The major characteristic is that cloud computing is on-demand. A consumer can unilaterally provision computing capabilities such as server time and network storage. They can do so without any human interaction with the service provider.
The next characteristic is that cloud computing provides broad network access. Capabilities are available over the network and accessed through standard mechanisms that promote use by thin or thick client platforms. A thin or thick client can be a mobile phone, tablet, laptop, workstation, etc.
The third characteristic is resource pooling. This characteristic, in my opinion, is super awesome. The provider has huge clusters that have a lot of resources pooled together. The user however, is given a small slice of that resource pool. The user sees nothing except for the resources they are given and the provider sees thousands of users, utilizing their resource pool.
The next characteristic is rapid elasticity which means that resources can be elastically provisioned and released. In the eyes of the user, resources that are available for provisioning often appear to be unlimited and can be appropriated in any quantity at any time.
The last characteristic, measured service is probably the most beneficial for users on a budget. Finally, computing power is available the same way electricity is. Very simply, you pay for what you use. Resource usage can be monitored, controlled and reported. This provides transparency for the provider and the user.
At this point, you may be thinking, this is all useful information, but so what? Why is cloud computing so useful for applications. Here is the TL;DR version of the benefits of cloud computing:
- It lowers the cost of access to computing power
- It provides virtual access to many different computers and operating systems
- It makes it easier to build customer trust on established cloud systems
- It makes it faster for companies to develop applications
- It allows business to scale quickly and be ‘elastic’
- It allows small companies to compete in a bigger market than they would have otherwise
- The quick development allows quick pilots of solutions without long term capital cost commitments
I hope this quick overview was useful in establishing the benefits of cloud computing. There are many cloud computing providers so I encourage you to pick one and play with the services it offers to learn more about the power of cloud computing! Here are some additional resources:
This is my first post in my "What is" tech blog series. I'll be writing more every week here and on my blog!