About 2 weeks ago, I decided to meet a few of my friends in the Faculty of Electrical Engineering, Mathematics and Computer Science at the TU Delft. I thought, before the Christmas break it would be nice to say hello. Anyway, I love talking to them cause more often that not we have very engaging discussions. So there is a hint of selfishness in meeting them 😉
We were sitting in the cafeteria, and I made an analogy to ‘big data on the cloud’. My friend blinked and “Adi, what is this ‘big data‘ and ‘cloud‘?” I was taken aback. Here I was – sitting with a brilliant student, who has published several papers, made mathematical models and now closely looking at something in the Healthcare industry. Was it a trick question? Yet, I saw in her eyes a genuine ‘What-is-this-thing-you-just-said’ look. Although an ‘expert’ in her field she had no background (perhaps no interest) in IT.
For a split second I felt pompous and smart. This seemed a good point to give my thoughts around the cloud. Where do I see this industry going, what will change, how we need to look at the market…..
And then suddenly reality crashed upon me – would someone who just asked me “what is the cloud” understand terms like scalability, elasticity, hosting, IaaS / PaaS / SaaS, private / public / hybrid.
Truthfully, I did not have the official NIST definition at the top of my tongue, “cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.” But I doubt it would have made sense to her even if I did. Honestly, It took me several months before I felt I had a clue of what those words meant. Even the relatively simpler version from Gartner seemed like big jargon’s!
The 30 seconds I took to answer her seemed like eternity. I said “the cloud is.. ummm… basically… the cloud is the Internet. And though it’s not entirely this, cloud computing is providing certain types of services or applications on the cloud… I mean, over the internet”.
It was at that moment I appreciated (usually the man ‘scares’ me) Oracle CEO Larry Ellison for saying “People use the term ‘cloud computing’ to mean many different things. I find it confusing — I think a lot of people find it confusing”. It was then I understood why we still have not found a conclusive definition for the cloud. I had read a fair bit and posted on Twitter around this topic, yet I was finding it hard to explain in a single sentence and in absolutely simple terms – what was the cloud! And it was this question that compelled me into writing this post, which is like an introduction to the cloud. It’s for those who would like to familiarize themselves with the basics, in somewhat simple words, not technical, if you hear about the ‘cloud’ not feel like you have NO clue of what is being spoken about – and for me to be sure I know what I am speaking 🙂
Now what makes this ‘cloud’ special? Haven’t we been doing this for a while? In what way does it differ from what we were doing until a few years earlier? Any disadvantages? There are a number of such questions that might arise. Lets attempt to answer a few questions and hope many more arise 🙂
So coming back to our starting point – the cloud can be viewed as another term for the internet. And one of the reasons we find the cloud to be so disruptive is because it gives the opportunity for companies to increase their flexibility in their usage-capacity/patterns on-demand without very large investments into IT infrastructure or software and yet stay on the most updated release with access to data from any location.
Most of you might have this thought in your mind ‘Agreed it’s simple words but that’s a very long sentence Adi! Simplify. Bullets points!’ The terms I would highlight would be –
- Flexibility (of how and how-much to use)
- On-demand (control in the hands of the client than the service provider)
- Without large investments (cost savings in hardware and software)
- Updated release (No worries about upgrades and installations and maintenance)
- Access data (from any location and ‘any’ device)
A lot of advantages are associated with Cloud Computing. If I could list 3 of them, it would be –
Reduced Costs – Since the idea is “pay-as-you-use” (although this is a contentious point in my opinion. A number of factors determine ‘Reduced costs’ but we won’t touch upon that here)
Better use of people and resources – Since much of the hardware and software maintenance is now the ‘vendors’ onus
(sorry I cannot help but use the terms) Elasticity and Scalability – You can decide to upgrade or use lesser according to your business needs
You will find a LOT more like – Upgrades, Multi-Tenancy (multiple customers share a single application) etc but for now we’ll skip the whole list.
So the cloud is all perfect with no disadvantages? No. Like almost everything in the world there are disadvantages here too. If I could list 3 of them, it would be –
Security & Privacy – With the increasing use of the internet and data available 2 questions to ask will be – Who maintains data? Who accesses data?
Downtime – Everything is on the cloud – great! Now come to a location where there is no internet connectivity or you just suffered an outage! Good luck my friend 🙂
Costs – Does it really cost lesser? You sure save on cost of hardware & software licenses, but how many people actually understand the cloud and can integrate existing functions to this? how are “cloud” companies making profit – we will look into it later.
You will find many more such as Regulations (EU, US government legislation’s) and Green/Sustainability issues but for now we’ll skip this bit as well.
We have been using cloud computing (well, sort of) for a while now. E-mail is a classic example which helped me understand it and hope it will help you as well to gain an insight here. You may have an account on Google, Microsoft, Yahoo etc. What do you do – you go to the webpage and login. Then some server located in some part of the world says ‘ok’ and authenticates you. Neither is any type of software or are the emails stored on your system, yet you can access it. All you have is an internet connection and a web browser. This is a basic idea of how it works. There’s something called the front-end which is what you see and there is the back-end which consists of all the infrastructure and software needed to run whatever is on the front-end. The internet is what which enables this!
Now, there are 2 kinds of actors involved in this. 1 is the client (who asks for certain types of services. In case of Email it is “you – the user”) and the other is the service provider (who provides these services. In the case of Email it is “Google/Microsoft/Yahoo”). For those asking, it’s important to know what to ask and those giving it’s important to know how to give! Virtualization is one such important concept for providers. Virtualization is the creation/simulation of software or hardware on the machine. It’s the reproducing of hardware in software so that hardware can be efficiently used. A single machine can be used to run many servers. Partitioning your hard-disk (for instance your 100GB hard-disk is now split as 20GB in C drive, 50GB in D drive and 30 GB in E drive) or having Windows AND Linux Operating systems on your PC are examples you can relate to. We bring this term up since almost no ‘cloud discussion’ will escape the term Virtualization.
On the cloud, service providers deliver essentially 3 types of services – Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS), Software-as-a-Service (SaaS). You will hear many variants and newer terms but we’ll stick to these 3 to see what they mean.
SaaS is the most mature and well known of the 3 services with large number of players. Basically it is an application which is hosted in a central location and delivered via a browser or a secure software program given by the service provider. It typically doesn’t need installation, updates for everyone at the same time and has gained more popularity in the business world particularly because maintenance and support is the responsibility of the service provider. Dropbox and Google Docs are good examples of SaaS applications you can possibly relate to. Almost no discussion on SaaS will end without you hearing of this company named – Salesforce.com. Just FYI 😉
IaaS is the growing but more complex service offering. IaaS is about delivering computer infrastructure – storage, networking, hardware and servers. So for a client, it’s the ‘outsourcing’ of rather expensive but important IT assets and get charged only according to the usage. The service provider is responsible for the operations and maintenance of infrastructure. There are fewer players in this list since it is more expensive than SaaS. Amazon and Rackspace are two of the larger and more important names in the IaaS space.
PaaS is undoubtedly the most complex, difficult to understand and least explored of the 3 offerings. PaaS is a software-development platform that is hosted on a service provider’s infrastructure. It provides a framework for developers to develop or customize applications. It is very similar to IaaS but differentiates itself by providing the platform on top of the hardware/infrastructure. The difference between SaaS and PaaS is that in PaaS users have to manage their applications and hence the data also. Microsoft, Google and Salesforce.com are some of the biggest names here.
Apart from these services, the “cloud” itself comes in 3 forms – Private cloud, Public cloud and the Hybrid cloud. Each of these forms are chosen based on what is most suitable for the client. The service providers have their preferences and there continues to be a big discussion on which form of cloud to choose.
Public cloud is where the service provider makes applications and provides storage space to anyone who has access to the internet. It is highly optimal to share bandwidth and hardware. Consequently, costs are greatly reduced for the client as well as the service provider. Amazon, Microsoft and Google are examples of a public cloud.
When (you have a virtual data center behind a company firewall) and where the network is open only to a limited number of people, you see Private clouds. Security is the selling point here. Companies don’t need to entrust data into the hands of a vendor. VMware and Citrix are typical examples of private cloud providers.
A Hybrid cloud is a mix of Public and Private cloud with the public cloud being used strategically.
Additionally, you can read an explanation here on the forms of cloud.
This is only a start. Each of these topics are very detailed as well as very interesting. There are a whole host of firms I have deliberately left out (at the risk of getting my head bitten off).
It’s intricate and complex with the players going into each others domain. What is SAP & Oracle doing? How are companies like Capgemini and Accenture preparing themselves? Which are some of the exciting startup’s? iCloud by Apple – where does that fit in this whole maze? How is the cloud impacting other industries? Sometime later hopefully I’ll have a post answering these questions and more.
Hopefully it was not too heavy but a good guide to the basics and makes you want to go up on Cloud #9 😉
And just in case the post ‘clouds’ your thinking – then maybe it’s a good idea to deconcentrate for a little while:)