To do justice to the “An Introduction to…” technology series, it is important not to forget cloud computing. Cloud computing, the much talked-about technology, is nothing but a fancy word for “remote resources.” That’s it. That’s what the term cloud computing means.
Here’s a pretty decent definition for cloud computing to start with (any only to start with): The technology that involves services or resources being delivered to users from a remote location is called cloud computing.
Let’s simplify this stuff to get a clear picture of cloud computing. Cloud computing gives you the same services as traditional computing, but the services originate from a remote location and are delivered over the Internet. The term “cloud” basically refers to the “Internet.” Consider the difference between Microsoft Office & Google Docs (now a part of Google Drive, but don’t worry about that) to understand cloud computing:
Microsoft Office (the one installed on your system) has Microsoft PowerPoint, Word, Excel, and so on installed on your own computer (Traditional). On the other hand, Google Docs has their own software to create presentations and documents, installed on their server which we can use from our own system (Remotely), and we can use them via the Internet (Cloud).
Hence, Microsoft Office is an example of traditional computing while Google Docs is an example of Cloud Computing. Think of it like this: You can access Microsoft Office without the Internet but Google Docs can only be accessed over the Internet (the cloud). This is because Google Docs is cloud service and Microsoft Office is not.
Please note that we’re not talking about Office Web Apps by Microsoft which, like Google Docs, is a cloud computing version of Microsoft Office. So, here’s how it works: We get the Microsoft Office CD or executable and install it on our own system, and then run it. However, when it comes to Google Docs, the program files for Google Docs are all on Google’s server. We just use the service over the Internet. This is exactly the difference between traditional and cloud computing.
Let’s move on to a more intuitive understanding of Cloud Computing, and look at it from a different perspective. A really good analogy to understand the difference between traditional and cloud computing is the car-vs-taxi analogy.
Buying your own car is like traditional computing, while hiring a cab is like cloud computing. People who buy their own car have to pay for the maintenance and repair of the car, even though they may use it only a few times a month. On the other hand, people who hire a cab only pay for what they use. Cloud services are like hiring a cab, and are essentially pay-as-you-use services.
We will consider this analogy to understand cloud hosting services: Traditional web hosting services allow to you buy a web host with a fixed amount of web space+bandwidth for a fixed amount per month. Let’s say a hosting service gives you 10 GB space and some specified amount of bandwidth (which is needed to handle traffic) for 5 USD/month.
Now, on some days, your website may have a lot of traffic and use your complete bandwidth, and on other days, your bandwidth may not be used due to low traffic on your website. However, you are paying for the bandwidth for the whole month weather it is used or not. This is like buying a car.
On the other hand, cloud hosting services allow you to pay depending on the number of traffic on your website. Bandwidth is allotted depending on the amount of traffic on the website. Hence, you do not need to pay for what you don’t use — just like hiring a cab.
With the basic understanding of Cloud Computing, let’s move on to the types of cloud computing services. There are essentially three types of cloud computing services: SaaS (Software as a Service), PaaS (Platform as a Service), and IaaS (Infrastructure as a Service).
Software as a Service (SaaS): When you use a software provided by some company via the cloud (or internet). For example, your Gmail client is really a software on the cloud that you use as your email client and access it over the internet. Gmail is essentially a software by Google with all its files maintained, hosted, and created by Google, and located in Google servers. They maintain it, update it, and do everything else for you. You just have to use it. This is an example of SaaS.
Platform as a Service (PaaS): When you use a platform provided by some company via the cloud. Let’s say you have built an application and want to test it on various Operating Systems including Windows, Linux, etc. A service gives you a platform to test it on all these systems. Such a service is a PaaS. To understand this, consider the example of Force.com. Force.com allows you to test applications on various platforms and can be used via the internet (cloud). Hence, it provides multiple platforms to test your software. You do not have those platforms on your system, but you are accessing them via Force.com.
Infrastructure as a Service (IaaS): When you use infrastructure provided by some company via the cloud. A perfect example is the cloud hosting service. Hosting basically involves storing data on huge computers called servers. Hence, cloud hosting is a means by which you store your website data, using the hardware infrastructure provided by the host. Hence, cloud hosting is an example of IaaS.
The above three, together, constitute what is known as the SPI model of cloud computing. Other services provided by cloud computing are also written as XaaS in general (“X” being the type of service being provided).
Note: All cloud computing services are usually a combination of more than one of the above types. A SaaS could coincide with a IaaS at some level (like the software is actually hosted on the provider’s hardware infrastructure). Hence, the above examples also could fall into more than one categories. However, the examples are provided only to provide an insight into the types of services from a theoretical point of view. Practically, it is all cloud computing, and that’s all it is.
Cloud computing, hence, helps save on costs, provide a greater range of choice, and also provides advanced architectures. However, security is an important factor that must be considered before choosing a cloud service. Only cloud computing services reliable companies should be chosen. Another disadvantage of cloud computing is the lack of control. The software/infrastructure ultimately belongs to someone else, hence giving you more choice but less control at the same time.