What is Cloud Computing?
Cloud computing is a complicated term used to describe a variety of paradigms. Its historical timeline is still hotly debated.
In the world of IT, the industry seems abuzz with the phrase “cloud computing”. In 2007, Dell tried to trademark the term (it was rejected by the USPTO) and Larry Ellison of Oracle said, “It’s what we’ve been doing all along.”
So if it’s not new and not novel enough to be granted a trademark to an individual company, what is it?
For businesses, cloud computing permits the deployment of enterprise-level software and hardware applications – even those that were once prohibitively expensive for all but the largest companies.
For consumers, cloud computing means that social networking, rich phone applications and video games will be more readily available. Ultimately, it will facilitate the emergence of many micro-payment economies. That means the trend of people buying applications from iTunes, ringtones, and “virtual goods” on games such as FarmVille and World of Warcraft will likely increase – dramatically – over the next five years.
For the economy, cloud computing means that both businesses and consumers can expect a dizzying array of new online services, ideas and industries.
In a technical-jargon nutshell, cloud computing leverages the power of a network of computers and delivers it to end-users as a service. This falls into three main categories of cloud-computing scenarios:
- Software as a Service (SaaS): It used to be that enterprise software came on a CD with a serial or license number to authenticate the validity of the user. The software rested on the user’s machine and used that computer to process the code that was necessary to deliver the feature functionality to said user. Essentially, the user’s computer was both the server (processing the code) and the client (requesting and receiving the computational requests).
- In the SaaS model, computers sit in a co-location facility or data center. Computational requests and processes are delivered via a “thick client” (web browser) to the end-user. In this manner, a single server in a single location could deliver software features and functionality to a wide array of users, spread across multiple geographic locations.
- In order for SaaS to exist, it had to first wait for a common thick client (the first being Netscape’s browser) and the ability for software to be “multi-tenant.” That is, software had to allow multiple instances of an application running within a single server.
- While SaaS is touted by some as being a relatively new industry (Salesforce.com being the brand leader in this space), a company called ADP had been doing it for decades (even before the rise of the internet) by providing its users telnet gateways as Clients (otherwise known as dumb terminals).
- Software Development Platforms as a Service (PaaS): A few years ago, the clever folks at Google released an API (Application Programming Interface) that granted a “developer token” by Google which gave them access. Third-party developers were then able to use a massive amount of servers on an application development framework that allowed engineers to “rent” these resources to create new applications.
- In the current climate, each of the development frameworks (cloud platforms) are distinct; there are no standardized APIs, and building an application for one platform does not mean you can carry it over to another platform.
- Infrastructure as a Service (IaaS): While there has been a lot of coverage for Amazon‘s decision to allow third parties to rent their own servers and data storage devices, managed hosting companies have also been doing this for quite some time. Co-location space rentals, MeetMe Rooms, Managed Hosting and even Dedicated Virtual Hosting means the physical infrastructure of servers, electricity, data storage units and even disaster proofing could be managed by one entity and rented out to another. Anyone can have a “cage” in a secure, costly data center by renting its resources virtually over the internet. On a holistic level, one could then create a Platform as a Service (PaaS) framework, rent a co-location’s resources to host it and then use this platform to create an SaaS application to run on this platform.
Like how this example ties it all together? Think of it this way – we can now build a startup by creating a PaaS framework which allows developers to create software applications. We then take this framework and place it onto servers and resources we rent (not buy) at a co-location facility so we can have Hardware as a Service (HaaS). Using our own PaaS framework which sits on our rented HaaS infrastructure, we can build an SaaS application that delivers feature functionality to end clients. Voila! All three major types of cloud computing in one single scenario!