An Introduction to Cloud Computing
Cloud Computing in Simple Language
Cloud Computing is a buzz word across industry these days. With my a few years of experience of Cloud Computing, I had come across two distinct types of people due to emergence of Cloud Computing. One who understands Cloud very well and know when to use Cloud and Why? There is another set of people who do not quite understand Cloud but still want to move to Cloud considering its hype and these people do not want to leave behind in the Race. With this set of experience I thought to explain Cloud Computing in some simple language.
What is my understanding of Cloud Computing?
If you go to Wikipedia or Gartner or when you google, it is likely that you come across many definitions or different of opinions. So what is real Cloud Computing definition? As a technologist, I believe if you just want to talk theoretical ways you should go with definition provided by NIST but do you think it’s easy to understand? Even if you read the definition does it mean every virtualized or web application is Cloud Computing? If your answer is “No” then how do you define an application as Cloud Service?
I started with lots of questions but if you have noticed, I switched to one word very carefully. It is “Cloud Service”. If you want to understand (Again I am not using word Define as I am not providing and definition) Cloud Computing, the easiest way is
“Any Business Service which is elastic, available
EVERYWHERE on-demand uses resource pooling and offered to you as a pay as you is a Cloud Service”.
Does it make sense or is it still confusing?
Let me go step wise to make understanding clear:
- Elastic : It should be able to scale up or down its services as per requirement automatically
- Available on-demand : The service should be available whenever required
EVERYWHERE: The service should be available from anywhere but only when it is publicly offered. There are some Clouds (Private, Hybrid, Community) which may not fall in to this category
- Resource Pooling : The service can be offered to multiple clients (preferably tenants) with optimal resource utilization
- Pay-as-you go model : The service should charge you only for the amount you have used or consumed therefore it should have some measuring mechanism
Now with these 5 tenants of Cloud Computing let’s understand business service. Here Business service can be anything from hosting application, infrastructure, CRM, collaboration, email, data processing, database and many more
So if we connect the dots and put everything in example
- A business service which offers infrastructure on-demand with 4 other tenants Cloud Service. E.g. Amazon Web Service, Google Compute Engine, RackSpace, Microsoft Azure and many more
- A business service which offers Email to multiple tenants with 4 other tenants is Cloud Service. E.g. Gmail, Outlook, Yahoomail and many more
- A business service which offers collaboration (sharing of information) with pay-as-you go model including 4 other tenants is Cloud Service. E.g. Webex, GotoMeeting, messanger like MS link, google hangout
- A business Service which offers elastic data storage service is Cloud Service such as Dropbox, Flickr & instagram for photos, Google Drive, Microsoft OneDrive etc.
See, I used different tenants to highlight our understanding and for one more time I am putting everything in very simple example.
A user needs a Travel Service (Business Service) to travel from one place to another.
This service can be achieved either by user owning a luxusrious car and drive to the location or user does car pooling with someone or by just hiring a taxi. I put each as three categories. Note: If your sole purpose is travel you do not care how you travel.
Organization Data Center
(The user owns luxurious car)
You own & manage everything
You have the best of the product but its costly and not scalable when you have more than 5 travellers.
Third party provider Service
(The user does car pooling)
You do not own but you share resources with someone. This is cheaper but you have to pay for this even if you use or you do not use.
This is also not scalable when you have more than 5-6. It’s also not on-demand as it depends on owner of the car when service is available.
(The user hires a taxi)
Your sole purpose is travel. This is scalable as you can call as many taxis as possible. This is on-demand as whenever you need you call for it. It’s cheaper as you pay for only amount you travel.
I hope above explanation helps you understand Cloud Computing better.
By the way the 5 tenants we mentioned are nothing but 5 attributes of Cloud Computing defined by NIST. These 5 attributes play a key role in defining a Cloud Computing. If you make any business service (one application can be one service or one application can have multiple services) which supports most of these 5 basic attributes of Cloud Computing it makes your service as Cloud Service or it is Cloud enabled.