What is a Cloud?
There is an interesting discussion on focus.com - a new site that is dedicated to discussions and sharing of information, as well as providing access to subject matter experts - whether Facebook is a cloud. The discussion was initiated by the question asked by Lori Janjigian:
... I was trying to get a better understanding of what the real definition of cloud computing is. Everyone had different answers, and people also had very different opinions about whether Facebook is its own cloud. Is it? Or is does it just have the capability to scale at a moment's notice? If it is, what makes it so?
An immediate answer, provided by Ben Kepes, was:
Facebook have their own infrastructure rather than using a third party cloud provider. That said, they have the scale to "do" cloud properly with their own resources. For the purposes of a functional discussion about what cloud is, yes, Facebook are cloud.
His logic is - Facebook provides a scalable elastic infrastructure for its own applications - hence its underlying infrastructure is a cloud. His opinion is shared by Andrew Clay Shafer, who asserts that:
Facebook has built a highly automated, highly scalable, highly available distributed system providing on demand services to users and essentially provides a platform as a service internally to developers.
Dave Roberts, on another hand, said that despite the fact that a Facebook is a second largest web site on the internet behind Google, in order to answer the question, it is necessary to define what cloud really is:
Whether Facebook *IS* a cloud, that's a judgement call. The company basically runs a single, large Internet application. Users interact with that application through the Facebook UI, implemented on a number of devices (web, mobile, etc.). At best, you could say that Facebook is a SaaS-based social networking application, but then the question is what makes something a SaaS application? Is Google a SaaS application for Internet search? Is Mapquest a SaaS application for mapping and directions? Is Yahoo Finance a SaaS application for financial news?... If those sites are all SaaS applications, then what's the difference between a SaaS application and a plain ol' web site (old school)?
His opinion is shared by Robert Keahey, according to whom, an attempt to answer the question brings out the nature of the "marketing-hype beast" we are dealing with these days:
Facebook is not a cloud. It's not SaaS. It's a social networking application. Just like the Bank of America web site that provides access to my checking account. I log on to it and it provides a service. Plain and simple... Salesforce.com - is it a cloud? Again, no IMO. It's a SaaS platform that I rent on an as-needed basis... We get caught up in nuances, and this creates great marketing and sales opportunities. Let's look at the Gartner definition for cloud computing: "A style of computing where scalable and elastic IT-enabled capabilities are delivered as a service to customers using Internet technologies." Their definition tends to narrow it down to more of an IT flavor. I can go buy compute cycles and storage from somebody else to reduce my costs and improve my IT responsiveness.
Following up on this discussion JP Morgenthal wrote:
... how Facebook chooses to implement their application is mostly irrelevant to us as a consumer of that application. To make assumptions about their application’s architecture... into our decision to call Facebook cloud acts to introduce irrelevant information into the discussion. To incorporate SaaS or any application under the moniker of cloud merely begs the question of the value of the term to the industry and the role marketing is playing on formulating this industry... Software-as-a-Service is merely a consumer of cloud computing and not a component of cloud computing. Or, as we like to say in the architecture world, SaaS uses cloud, not SaaS is a cloud. Hence, the Facebook application is not cloud.
Like with SOA several years ago, everyone now days wants to be a cloud. So people continue to extend/modify cloud definition to be included in the "hottest" thing in the industry. As Dave Roberts commented in the Facebook discussion - "I'm a little concerned that we're starting to call any web-based application a "cloud," mostly to meet the PR hype-cycle demand of looking cool"
NIST definition around deployment models provides an answer
"Multitenancy" is a mandatory characteristic of cloud
Sharing i.e. multitenancy has to exist at some level - infrastructure, platform or application, to call it as cloud. Multitenancy mandates webscale i.e. scalable elastic infrastructure & not the other way around: manidoraisamy.blogspot.com/2011/04/multitenancy...
The cloud is the internet
It can be argued that Facebook is also a platform, and therefore call it a PaaS (Platform as a Service). But you don't really deploy apps to Facebook, you need to host them and run them on your own server. All you get is the Facebook chrome and an API, so I wouldn't' consider it PaaS...
If you want to learn a bit more about the cloud, take a look at this free ebook (no registration required)
(Disclaimer, I work for OutSystems and was very much involved in writing this ebook)
Shane Hastie on Distributed Agile Teams, Product Ownership and the Agile Manifesto Translation Program
Shane Hastie Apr 17, 2015