The National Institute of Standards and Technology (NIST) defines Cloud Computing as follows:
Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.
As we will see, although Cloud Computing should meet the above definition, there are also other requirements that should be considered before selecting a service provider.
Understanding IaaS, Infrastructure as a Service
It is important to understand what is meant by Infrastructure as a Service as we delve into whats available in the commercial marketplace. IaaS could be described as the foundation or lowest tier in the Cloud Computing stack. In short, it refers to the deployment of traditional infrastructure components such as servers and storage. Today this usually means virtual infrastructure, as the need to have dedicated servers is diminishing rapidly. However, it is not a requirement for Cloud Computing to be deployed with a virtualized environment.
Using Infrastructure as a Service has a number of distinct benefits:
It enables the customer to understand the provided resources in terms of components they would traditionally deploy in their own data centers. This means existing skill sets around server, database and application administration can all be retained and re-used.
It provides a degree of portability between service providers and the customers own existing infrastructure as deployment takes place on standard platforms such as Windows and Linux.
There is no requirement to learn new application or programming frameworks as there is with PaaS and SaaS.
The isolation of resources at the virtual server level means the customer has control over the storage of data, including additional encryption and security measures.
IaaS is therefore a low risk way to evaluate and dip a toe into the Cloud Computing universe. In order to evaluate which provider best suits your requirements, there are a number of considerations to weigh.
Most IaaS providers operate from multiple locations. If they dont then they are probably not worth considering because (as well discuss later), operating out of a single data center presents issues around availability.
As an example, Amazon Web Services (AWS) is available in 5 regions globally; Northern Virginia and Northern California in the USA (known as US East and US West respectively), Ireland in Europe and Singapore and Tokyo in Asia Pacific. This geographic diversity allows applications to be provided globally with minimal latency impact.
Look for service providers that can provide services in your region and the business continuity they provide for those locations.
In the event of a single data center location, it should be possible to restart applications in another part of the availability zone. Unfortunately a recent AWS outage highlighted the fact that the region and availability model was not infallible. Deploying across multiple regions or locations can increase availability.
Infrastructure providers are unlikely to offer services to enable the automated failover and management of applications, therefore it will be incumbent on the customer to look at how geographic resiliency can be implemented.