I thought it about time that I put together my thoughts on cloud computing (if only so I can remember them), below is a subset of my thoughts based on numerous articles I’ve read on the interweb). Whilst many people may pontificate on what “cloud computing” actually is and where it is applicable to certain businesses i.e. the *aaS’s, the simplest definition is that “the cloud” is simply a bunch of internal or external resources (i.e. hardware or software) that can be utilised on demand to provide services to internal or external users/applications.

Obviously the use of the cloud is dependant on the type of business you run, the benefits of the cloud for a start-up company are fairly well understood and is the most prevalent use in place today. Most start-ups use of the cloud has little need to integrate software running within the cloud with software running outside of it and is therefore ideal for green field applications. The fact that there are a number of pre-built OS/Application stacks including App Servers, DB’s in almost every possible configuration means that it’s fairly trivial to deploy your application onto the cloud for this type of application.

However for the Enterprise CIO, things are somewhat more problematic. Enterprises have a number of requirements that distinguish them from cloud computing’s early adopters. Enterprises typically have a significant existing base of infrastructure and applications, the majority of which are carried as capital assets. It’s out of the scope of this post to get into the arguments of capital expenditure vs. operating expenditure but it’s likely that enterprises will have a need to utilise both in order to “protect their investments”. This means that they’ll need to find ways to integrate and leverage the cloud in order to provide economical ways of dynamically adding capacity to existing environments.

There are however a number of questions that an organisation should be asking themselves before implementing “enterprise cloud computing”.

One: Why – what are the benefits. One of the big wins for an enterprise to use cloud computing is agility, i.e. time to market. There may of course be other benefits, such as reduced costs, but the primary benefit in my view is agility. Enterprises typically have long lead times in provisioning hardware and environments, in many cases these can take weeks or even months to be deployed. In environments where developers have a need for extended capacity (i.e. for scalability, testing, new technology etc), development and testing etc is clearly hindered. Cloud computing brings with it the possibility of provisioning resources on a time based scale, and doesn’t bind developers to needing capital assets. The ability to switch virtual servers on and then off when no longer needed (thereby accruing no further costs) enables enterprises to have significant time advantage in exploiting resources over those who for whatever reason do not.

Two: Security. This is often the biggest obstacle within an enterprise, though talking to developers in a big enterprise about “security”, and they’re usually talking about authentication and authorisation based around Active Directory or LDAP to control access to resources. Considerations like encryption i.e the stuff that IT Security and hackers tend to think about when you say the word “security” to them are usually secondary. Integration with existing access control mechanisms is key as will be things like data encryption, but that will only be one part of the overall solution.

Three: Integration Do you need to integrate cloud-based resources with existing resources. Do you need to hook up an internal data centre to these cloud-based resources, and be able to use them as if they were just another resource in the internal data centre. That has lots of implications, the most significant one being: all of the things that I’ve already done in my data centre to meet the security needs alluded to in point number two need to apply to the new cloud resources as well. Are the means available to transparently integrate internal resources with resources in the cloud — the lower the barrier to adoption is, the better.

Four: Costs Not all applications will have a cost benefit to running within the cloud for reasons detailed below. It’s easy to listen to evangalists espousing the virtues of cloud computing and a number of them seem to think that costs will be a major driver, this may well be true and for applications that may have a cost benefit are those that have a need for more “grunt” at specific times of day such as batch processes. Grid computing is an ideal candidate as (in my experience) there is usually a large requirement for compute power across multiple applications running at the same times of the day. It’s also interesting to note that companies such as GigaSpaces now offer a pay per use license fee as below (note: this is in addition to the Amazon charges).

  1. $0.20 for GigaSpaces running on Amazon Small Instances
  2. $0.80 for GigaSpaces running on Amazon Large Instances
  3. $1.60 for GigaSpaces running on Amazon Extra-Large Instances
  4. $0.20 for GigaSpaces running on Amazon High-CPU Medium Instances
  5. $1.60 for GigaSpaces running on Amazon High-CPU Extra Large Instances
  6. *Pricing is per GigaSpaces Amazon Machine Image (AMI) instance-hour consumed for each instance type. Partial instance-hours are billed as full hours.

One EC2 instance is equivalent to a 1.2GHz CPU, so using 4 extra large EC2 instances would give 4 EC2 compute units (2 cores and 2 instances).

The charge for each large GigaSpaces instance is .80 cents per hour, for a year this would work out as:

$1.6 *7 *24 = $268.8 for 1 week

or $13977.60 per year per EC2 instance – for 4 large instances this is 13977.6 *4 = $55910.4

The in-house subscription cost has support built in whereas there is a $5000 charge for the equivalent Gold support for the cloud. This makes deploying to the cloud using subscription and deploying internally using subscription costs approximately the same.

Although it may seem that utilising the cloud is not necessarily cheaper, the price advantage comes from the utility compute or compute on demand model. You only pay for what you use, when you use it; so in reality using the cloud should work out cheaper as utilisation and usage changes over differing times of the year. This means less hardware and software (i.e. license costs) are used which in effect give a two fold saving. Be aware that there are also bandwidth charges which need to be factored into the equation dependant on your needs.

So the summary of this post is to do your homework before you dive into cloud computing, you really need to work out what benefits you’re trying to acheive and if its cost savings only then you really need to do your homework. Cloud vendors charge for cpu, storage, upload, download and bandwidth and if you’re utilising these 24/7 you could well end up paying more than you do presently.
I personally see the main benefit as agility and see cost savings as a secondary benefit, of course for some enterprises moving from a capital expenditure to an operating expenditure could have enough benefits in itself to make this worthwhile.