Does every cloud have a silver lining?

Today it seems that everywhere you turn and everyone you talk to is extolling the virtues of Cloud computing and the benefits it can bring to your organisation. Is it just the latest buzz-word and fad, or is it really a paradigm shift in how we deploy and utilise IT systems?

Before we can talk about that, it’s important to understand what Cloud computing is, and equally important, what it isn’t.

History Lesson

Back in the early pioneering days of I.T., when I was a (very) young lad, and when computers were first really starting to make an impact in business there existed a thing called a Bureau. The Bureau was a service that allowed its business customers to purchase time on their computer system (often, a mini-computer) for processing payments and transactions in batches – i.e. batch processing. The data to be processed was sent to the bureau, processed on the computer, and the results then sent back. The customer would normally have been charged for the amount of computer resource or time used to perform their processing. Many people argue that this was in fact the first instance of cloud computing.

Moving on, we have IT hosting companies who will allow you to host a computer in their data centres with their connectivity, or more commonly rent or buy a computer from them and have them host it for you.

Then there’s the typical IT department who maintain and run their own IT infrastructure. Shared compute resource has been around since the dawn of IT – mainframes, resource-sharing, time-sharing, symmetric multi-processing – all of these, it could be argued, are forms of cloud computing – computer resources that are available and accessible for different applications by different users.

Going on further, we have the Application Service Providers (ASPs) who offer applications via the internet or private wire networks so you can use applications without having to buy and run the infrastructure yourself.

So what really makes a cloud a cloud?

Forms of Cloud

To help uncover this it’s a good idea to understand the various types of cloud and then to see what elements they all have in common.

I, personally, like to distinguish cloud infrastructure from applications, such as Yammer, Twitter, Facebook, etc, that are hosted on cloud infrastructure. To me, these applications sit fairly and squarely in the ASP camp and while they utilise cloud computing they are not, in themselves, cloud computing.

So, back to the types of cloud. I think that there are several different types:

  • Internal v. External Hosted
    • Internal clouds are those hosted, run and operated privately by a company or organisation.
    • External clouds are those hosted, run and operated by other 3rd parties for use by a company or organisation.
  • Public or Private
    • Public clouds are those that are accessible or useable by many individuals or organisations.
    • Private clouds are used only by one, or a limited number of organisations
    • There are also two common variations on this theme – Hybrid clouds which are a mixture of public and private and Community clouds which are public, but to a specific user community.
  • Shared v. Dedicated Infrastructure
    • Shared infrastructure indicates that the cloud compute resource is shared amongst multiple customers. Shared infrastructure enables the supplier to offer lower priced services as a result of increasing the utilisation of the servers and storage by running multiple customers workloads simultaneously.
    • Dedicate infrastructure implies that the cloud computer resource – the servers and storage – is allocated only to one customer. This is more unusual, and almost certainly more expensive than shared infrastructure.
  • IaaS, PaaS, and SaaS
    • Infrastructure-as-a-Service (IaaS). The provision of basic compute resource and/or storage – typically on a consumption (pay-per-use) pricing model.
    • Platform-as-a-Service (PaaS): The next-level up from IaaS, delivering a platform on which applications can be deployed. This normally includes APIs and a framework for application development and deployment, and includes base functionality like web presentation, business logic, databases, etc.
    • Software-as-a-Service (SaaS): Supply of a software product – while it can be argued that this is a type of cloud computing, I would say that this is more akin to an Application service Provider who hosts their software in the cloud. Examples of this include Salesforce.com, Yammer, Uservoice, and Google Apps.

Cloud Attributes

In addition to the types of cloud, there are various aspects and attributes of cloud computing that are common:

  • Scalability
    • Cloud compute services are typically able to adjust in capacity and performance on demand to meet growing or shrinking business needs.
  • Agility
    • The ability to turn-on and add new server instances rapidly and on-demand, or to be able to turn them off again just as easily.
  • Multi-tenancy
    • Clouds run multiple applications and host multiple user communities on the cloud infrastructure.

Definition of a Cloud

So, a Cloud is in its simplest form the agile provisioning of scalable compute resource to a pool of users.

This is, of course, a considerable simplification of the intricacies of cloud computing, but will suffice for the purposes of this discussion.

Benefits

So, we now have a definition of what makes a Cloud, but what are the benefits. Well, the benefits really depend on who the customer is, and what they’re trying to achieve.

Let’s take, for example, a young internet entrepreneur who is trying to establish a new service on the Internet. It’s highly unlikely that in this scenario the person would have access to a computer room, servers, storage, support staff, power/cooling, massive connectivity, etc. Nor would they have the funds to purchase a system for hosting at a 3rd party data centre. Add to this the lack of predictability of new internet start-ups – should the solution be scaled for 50 users, or 50,000?

In this scenario, Cloud computing has very substantial benefits. It is really quite simple to purchase some compute resource on a cloud, provision your service, release it to the public and then monitor how it’s adopted – enabling you to scale the service up or down as required to meet demand, and all for a fraction of the cost of buying your own server hardware.

At the other end of the scale is the major corporation who has an established IT department, with many servers, support staff, data centres, etc. You would be excused for asking why such an entity would even entertain cloud computing, but there are still some distinct advantages.

Firstly, many major corporations tend not to be the most agile and dynamic of places, encumbered by processes and paperwork it can take days, weeks or even months to procure and install new servers. In the Internet age, this can cripple a company or at the very least put them on the back-foot compared to their competitors and the marketplace.

Secondly, there is substantial overhead in hosting and managing your own computer environment. Major corporations typically have infrastructure strategists and architects (like me), designers, delivery staff, operational acceptance teams, monitoring teams, service-desks, support teams, incident and problem managers, change managers, configuration and asset managers, financial accountants, procurement and supplier management, project management, service level management, and many many more other roles. Putting solutions into the cloud can reduce the requirement for many of these as these functions can effectively be out-tasked to the cloud provider.

Thirdly, the scalability of cloud services can offer substantial benefits in terms of reducing the risk of the unknown. For example, when launching a new product to market, much like the internet entrepreneur, the uptake can be very unpredictable and the clouds ability to scale rapidly and dynamically can be absolutely vital and can reduce the need to massively over-spec the hardware requirements.

Finally, the ad-hoc need for development and test environments can be readily satisfied by cloud computing without the need for a permanent investment in IT hardware.

Challenges

Of course, such a flexible, dynamic solution doesn’t come without it’s own challenges.

In an effort to cut costs, the cloud service providers will streamline their operations as much as possible, offering a very limited number of variations of hardware and service levels. They make their money through volume, selling hundreds of thousands of server instances to customers across the globe.

The likes of Google, Amazon, Dell and Microsoft all use bespoke server designs that have been highly optimised for cloud computing environments. These are not your typical servers that would be installed in a small business or in a corporate data centre. They are optimised for maximum efficiency, reducing unnecessary components, designing for optimal cooling and power efficiency, ease of management and support, etc. In many cases they aren’t even fixed when broken – merely ripped-out and replaced as this is the most efficient way to support such a large number of servers.

For service levels, a very small number of levels will be on offer, and often these will be very restrictive with no real guarantee of performance or availability. It is therefore essential that firstly, the lack of guaranteed service availability or performance are considered and that secondly the solution is designed to accommodate and anticipate any potential outages.

Another significant consideration is your own ability to get at your data. What happens if you are ordered by a court to provide access to your data, or if you need to recall all your data for reporting, audit or recovery purposes – how does the cloud provider support you on this, and what ability will you have to get at your own data.

Coupled with this goes the absolutely vital aspect of security. Of course, the major cloud vendors will all insist that they have the utmost levels of security in place, but will this satisfy your IT security personnel? Will they be satisfied and allow you to run your applications on shared infrastructure in the cloud? Also, do you really want to place one of your most valuable assets – your data – in a place where it could potentially be open to access from the internet and where you yourself have little control? Often, major corporates will host the presentation and application layers of their solution stack in the cloud, but keep the data local for exactly these reasons.

Along with security, availability needs to be a key consideration. Applications in the cloud typically have to be designed to operate in a cloud environment, and to handle failures in a certain way. In addition to this, consider what happens if the cloud providers data centre suffers a disaster – what steps do they and you need to take to ensure your systems are protected and recoverable? Does the cloud provider offer backups? Remote site duplication and replication? What are the service levels and charges for this?

Yet further challenges await those that have to comply with various government, financial or legal regulation. If you handle credit card payments, then you may need to be PCI DSS compliant. If you’re listed on the US stock exchange, then Sarbanes Oxley will apply. Each of these have requirements for your IT infrastructure – are you sure that your cloud provider can meet these requirements and have the appropriate accreditations? You may be hosting information for government agencies, or subject to a contact that prevents you from hosting data or applications off-shore – do you know where the cloud provider is hosting your environment? Many use off-shore locations, such as Ireland, in a further effort to reduce costs.

The final challenge with cloud computing is that of vendor lock-in. Once you have put critical applications and data into the cloud, are you then stuck with that cloud provider forever more? It’s important to consider how you can get your data and service back, and up-and-running elsewhere should the cloud provider go under, or one or other of you decides to terminate your contract or go into dispute.

Pricing

So, we come to what is often the crunch point of any IT investment decision – the price. In reality, when considering the cost of cloud computing, we need to consider much more than the price.

The headline price of a server instance at a cloud provider may cost as little as $230 per year, and on the face of it this seems extremely good value, especially when compared to the cost of internal hosting, staffing, power, cooling, etc.

However, with cloud computing there is a lot more to the overall cost than just the headline price.

Cloud providers will generally want to charge not only for the server instance, but also for I/O – data sent both to and from the server. If you have a web-site that is quite small, but the amount of data being served expands radically, you may find yourself with a very expensive and unexpected bill for data, whereas in a corporate environment these costs are normally fixed and absorbed, to a point, by the entire IT estate.

Storage is another cost factor: again the cloud providers will want to charge – typically a cost per GB per month, or per ‘n’ I/O requests, or both. Again, unpredicted increases in I/O rates or storage volumes will dramatically increase your costs.

Of course, the other different is that internal IT is often procured on a Capital purchase (CAPEX) basis,whereas Cloud computing is normally an Operational (OPEX) expense, and as such the difference can have a direct impact on your companies bottom line – assets vs. profit.

If you do the calculations carefully you’re very likely to find that at the outset Cloud computing is indeed less expensive than internally hosted servers. However, given the incremental usage-based charging for CPU, I/O and storage an increase in any of these can make a substantial difference to the price – by far a greater percentage increase than the equivalent for an internally hosted solution. One recent example I worked on indicated a 10% increase in requirements led to a 6% rise in internal IT costs. The same rise in a cloud environment led to a 25% increate in annual cloud costs, so there very quickly comes a point where internal systems can be significantly more cost effective than cloud.

Use Scenarios

So, when should and shouldn’t cloud be used?

Use cloud when:

  • You have to launch a solution that starts small and needs the potential to grow rapidly, dynamically, and massively
  • If you are dealing with ad-hoc environments that are not required all the time – for example, development and test environments
  • If you do not want the hassle of managing your own servers and storage and can accept the potentially limited service level agreements and performance guarantees.
  • Your requirements are small and do not justify the investment in local IT
  • OPEX spend and consumption based pricing is preferred over CAPEX

Do not use cloud if:

  • You have sensitive data or business logic (keep this internal or use a hybrid cloud and keep this information private)
  • You are concerned about the security risks of cloud environments
  • You need to retain control over your data, systems and service levels
  • You are contractually obligated to ensure data remains in-country
  • Your requirements are considerable and, therefore, cloud can be expensive – use local IT or dedicated hosting instead
  • CAPEX spend is more acceptable than OPEX

The Future

Cloud computing seems to be far more than a passing fad. The advent of low-cost low-latency high-bandwidth connectivity, coupled with massive increases in processing power and storage capability have come together to make cloud computing a very real and viable mechanism for delivering IT.

As the market evolves, the offerings will become more comprehensive, and any deficiencies and weaknesses will be ironed out, making cloud computing not only more financially attractive, but also more technically viable and less risky.

Increasingly, major corporations as well as small businesses will take to cloud computing – initially for niche areas such as development, testing and initial product launches, and then as the cloud matures, becomes more cost effective to scale, and security concerns are addressed, it will be used for other areas too, including core business IT functions. This will both support and be supported by the business moving to more flexible ways of working which require more ubiquitous access to applications, regardless of location or terminal type.

Eventually, we may see the majority of IT being hosted in a cloud of one form or another – initially on a combination of external and internal (hybrid) clouds, and potentially moving more and more over time to robust external clouds. There could even come a time when everything moves to cloud computing, with only the most sensitive requirements being hosted internally, but this is still some way off.

Conclusion

There is a definite place in most organisations for one form of cloud computing or another. The key is to carefully assess when cloud is appropriate and when it’s not. Is it cost-effective? Does it deliver enhanced agility and scalability? Can it provide the appropriate levels of security and availability?

Any organisation today should be looking at how cloud computing fits into their organisation today, and starting to ask the pertinent questions to assess it’s suitability and viability. This should be seen as a starting point and setting the ground-work for the longer-term when cloud computing will inevitably be the logical approach to delivery for much of IT.

Caution, however, should be exercised – cloud computing is real and useful, but the full implications need to be carefully analysed and assessed and cloud entered into with a full awareness of not only the potential benefits, but also the risks and implications that accompany them.

  • Share/Bookmark
blog comments powered by Disqus