, , , , , ,

Some days ago (I’ve left enough days in order people that meets me wasn’t be able to find out what event was) I assisted to an event about Cloud Computing that was developed in the campus of an important Spanish university and organized by an international organization created for fostering business around Cloud Computing (let me not mention its name, because I think they don’t do their best in moderating and focusing the meeting). Most of the assistant was local entrepreneurs or technical staff. Besides, all but one of the speakers was local people, including a University chairman; in the other side, the organizer representative was foreigner (non local people) and supposed expert, or al least knower, in the subject to be treated. In that meeting I listened, and nobody contradicts or opposites them (nor the organizer, nor other speakers, nor university teachers that was present, probably because they want to be polite), some statements that I disagree (unfortunately I couldn’t, nor wished, to stay until the final open round table).

First of all, let me summarize some opinions (in fact I am not its owner, I just copied them from a lot of experts with who I share their point of view):

  • Cloud Computing is an open and evolving concept that probably will be redefined in coming years in function of:
    • the way Clients (companies, organizations or persons) use its services and demands new ones,
    • Providers imagine and develops new services
    • and, also, Technical Advances enable new ideas or services
  • Historically the use of its name, “cloud computing”, comes from:
    •  the “cloud” that was used to represent the abstraction of Internet connecting everything
    • The verb “to compute” used in its utmost widest meaning, I mean, not only the calculation itself but also everything needed for the calculation: storage, communications, and so on.
  • In order to have a “reference”, the most used and accepted definition of Cloud Computing is the one of NIST that, without regarding the Service Model (IaaS, PaaS or Saas) and the Deployment Model (Private, Community, Public or Hybrid), states 5 Essential Characteristics for a CloudComputing services (see that I copy below because it’s worth remembering them:
    • On-demand self-service. A consumer can unilaterally provision computing capabilities, such as server time and network storage, as needed automatically without requiring human interaction with each service provider.
    • Broad network access. Capabilities are available over the network and accessed through standard mechanisms that promote use by heterogeneous thin or thick client platforms (e.g., mobile phones, tablets, laptops, and workstations).
    • Resource pooling (multi-tenant). The provider’s computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to consumer demand. There is a sense of location independence in that the customer generally has no control or knowledge over the exact location of the provided resources but may be able to specify location at a higher level of abstraction (e.g., country, state, or datacenter). Examples of resources include storage, processing, memory, and network bandwidth.
    • Rapid elasticity. Capabilities can be elastically provisioned and released, in some cases automatically, to scale rapidly outward and inward commensurate with demand. To the consumer, the capabilities available for provisioning often appear to be unlimited and can be appropriated in any quantity at any time.
    • Measured service. Cloud systems automatically control and optimize resource use by leveraging a metering capability at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency for both the provider and consumer of the utilized service.
  • Computer Virtualization is a technology that enables cloud computing of processing (calculating) resources: it’s currently needed for developing a Cloud solution, but it’s only about a subset of resources (computing, but also storage and communications must be faced up, and these 2 last are not afforded by virtualization) and it’s only part of tool and features needed (for example self-service feature isn’t used to be provided by most of existing virtualization products).
  • Internet based application accessed by a browser is not necessarily a cloud computing service.

So when I earth that someone is doing Cloud Computing since firsts 2000s I think, I believe that he is wrong or he misunderstand the concept (or simply hi’s taking advantage of a buzz-world).

So when I listen to someone to state that its “vertical” application (not a generalist horizontal service as e-mail, CRM, and so on) is SaaS since 5 years ago I think he is wrong: maybe you only need a browser to use his application, maybe the service is sold in a pay-per-use basis and even maybe is on a multi-tenant platform; however a 5 year old vertical application (neither modified, nor migrated to some cloud service as the provided by RightScale, nor migrated to a PaaS, nor so) probably will not scale fast up (or down) to provides enough resources to incoming users (or when user log out).

I agree that so far it has been a purist discussion (in some way an academic point of view). However, it’s more worrying if you find out that the application you use in a pseudo-cloud-service way is hosted in a server, maybe a big server, even a mainframe, or even a clustered platform, but the application is “anchored” to a specific existent platform been not able to move to other or to increase when more compute or storage or broadband is needed.

I also agree that for most SaaS users (mainly citizens and SME) the difference is neither perceptible nor important. They only want the service, as cheaper as possible and paying for the use they do of it and they trust, or hope, the promised SLAs will be met (or not?).

So, the tradeoff is: in one hand, a Real Cloud Service Provider will probably serves you better; in the other hand, Real Could Service Providers use to be more expensive than the fake one.

In one side, a Real Cloud Service Provider will probably serves you better; of course, Real Cloud Providers have a big platform, but it is limited, and in general they overbook its capabilities, and that it is also possible they do not meet SLAs (in fact it happens seldom). In the other side, it was quite difficult you lose service for days in a Real Cloud Servicer as it seldom happens in a fake “buzz-worded” Cloud Service, losing data even, and so on.

Finally, it’s also known some important companies (RIM, Google, …) failed in delivering some of its services for a few days (by the way, let me another academic question: are they Real Cloud Service Providers?)

Therefore, my question is: is it worth paying the difference? or when?