The promise that Cloud Computing brings is that of a ubiquitous compute infrastructure that provides services accessible over the internet from anywhere, by any device, and as such Cloud Computing is currently getting lots of air-time on the web news services.
The challenge at present is much like in real life every cloud is different offering different services, different tools to manage, different SLA's different charging models etc - basically all clouds are unique.
Before embarking into the great unknown of Could Computing enterprise IT managers need to fully understand what they are being offered and to look closely at their current infrastructure to determine how best to utilise Cloud Computing. Its key to understand what apps and/or workload may be suitable for placing into the cloud, for many IT departments today this starts with assessing non-mission/business critical workloads - initail targets for deploying in the cloud could be travel expenses, job search, benefits packages etc.
Another consideration is whether to move directly to using an external cloud service or to utilise resources within ones own data centres to setup 'internal clouds'. For many IT departments this is a logical extension of the ongoing work to virtualize their existing infrastructure and provides a valuable learning platform before setting out into the great unknown of the external 'public' cloud infrastructure.
Some questions IT managers need to ask when evaluating Cloud Computing offerings
- What's the SLA being offered - how reliable is the service, what's the guaranteed uptime, what's the response time to fix failures ( nearly every week there are reports of cloud failures ), whats the financial impact of loss of cloud services and how would this be recompensed.
- What's the application latency/response time
- How secure is the service - backup policy for data, how secure is my data, what's the isolation between my app/data and other customers in a multi-tenanted cloud.
- Where is my app/data located - what's the impact on local data protection laws,
& the list goes on . . .
Something else that needs to be thought about when looking at utilizing Cloud computing is the interoperability between cloud vendors?
Today most vendors offering 'Platform as a Service'* have developed their own cloud platforms based around open source or commercially available hypervisors and these require specific tools and stack formatting to utilise the virtualised compute resources. Cloud vendors are also offering higher level application/web frameworks enabling the use of higher levels of abstraction e.g. Python, Ruby or .Net . All of this further drives the uniqueness of every cloud offering. This will no doubt change over time as the major virtualisation vendors make inroads into this space and standards get developed for packaging virtual machines to be loaded into the cloud and services interfaces.
But today there is little/limited interoperability between Cloud providers and this can limit the flexibility and usability of the Cloud.
Theres a good white paper here from Intel's IT folks on developing a Cloud Computing startegy with the enterprise.
So great promises, and lots of challenges, but as the saying goes 'every cloud has a silver lining' - IT just needs to work out how to extract the benefit before the sun comes out and the clouds float away.
* Platform as a Service - rent a 'hardware platform' in the cloud and load on to this hardware your own software stack, usually paid for by the hour for specific amount of CPU/memory/IO capacity as opposed to 'Software as a Service' - some element of software, either a building block to utilise within your own application ( e.g. credit card checking ) or a fully blown application, such as a CRM app, accessible via the web .