Cloud computing is the use of computing resources (hardware and software) which are available in a remote location and accessible over a internet. End users access cloud-based applications through a web browser or a light-weight desktop or mobile app while the business software and user’s data are stored on servers at a remote location

Cloud Computing as a computing model, not a technology. In this model “customers” plug into the “cloud” to access IT resources which are priced and provided “on-demand”.
Essentially, IT resources are rented and shared among multiple tenants much as office space, apartments, or storage spaces are used by tenants. Delivered over an Internet connection, the “cloud” replaces the company data center or server providing the same service. Thus, Cloud Computing is simply IT services sold and delivered over the Internet.

The main enabling technology for cloud computing is virtualization. Virtualization abstracts the physical infrastructure, which is the most rigid component, and makes it available as a soft component that is easy to use and manage

Cloud Computing vendors combine virtualization (one computer hosting several “virtual” servers), automated provisioning (servers have software installed automatically), and Internet connectivity technologies to provide the service. These are not new technologies but a new name applied to a collection of older (albeit updated) technologies that are packaged, sold and delivered in a new way.


The following list identifies the main types of clouds (currently in use):

Infrastructure as a Service (IaaS):

(Cloud) Infrastructure as a Service (IaaS) also referred to as Resource Clouds, provide (managed and scalable) resources as services to the user – in other words, they basically provide enhanced virtualisation capabilities.
IaaS offer computers – physical or (more often) virtual machines – and other resources. (A hypervisor, such as Xen or KVM, runs the virtual machines as guests).

IaaS clouds often offer additional resources such as a virtual-machine disk images library, raw (block) and file-based storage, firewalls, load balancers, IP addresses, virtual local area networks (VLANs), and software bundles.

cloud users install operating-system images and their application software on the cloud infrastructure. In this model, the cloud user patches and maintains the operating systems and the application software. Cloud providers typically bill IaaS services on a utility computing basis cost reflects the amount of resources allocated and consumed

Examples: Amazon EC2, rackspace, HP cloud.


Platform as a Service (PaaS):

In the PaaS model, cloud providers deliver a computing platform typically including operating system, programming language execution environment, database, and web server. Application developers can develop and run their software solutions on a cloud platform without the cost and complexity of buying and managing the underlying hardware and software layers

In Paas model, provide computational resources via a platform upon which applications and services can be developed and hosted. PaaS typically makes use of dedicated APIs to control the behaviour of a server hosting engine which executes and replicates the execution according to user requests (e.g. access rate). As each provider exposes his / her own API according geto the respective key capabilities, applications developed for one specific cloud provider cannot be moved to another cloud host – there are however attempts to extend generic programming models with cloud capabilities (such as MS Azure).

Examples:, Google App Engine, Windows Azure (Platform).


Software as a Service (SaaS):

(Clouds) Software as a Service (SaaS), also sometimes referred to as Service or Application Cloudsare offering implementations of specific business functions and business processes that are provided with specific cloud capabilities, i.e. they provide applications / services using a cloud infrastructure or platform, rather than providing cloud features themselves. Often, kind of standard application software functionality is offered within a cloud.

In the business model using software as a service (SaaS), users are provided access to application software and databases. Cloud providers manage the infrastructure and platforms that run the applications. SaaS is sometimes referred to as “on-demand software” and is usually priced on a pay-per-use basis. SaaS providers generally price applications using a subscription fee.
SaaS allows a business the potential to reduce IT operational costs by outsourcing hardware and software maintenance and support to the cloud provider. One drawback of SaaS is that the users’ data are stored on the cloud provider’s server. As a result, there could be unauthorized access to the data.
In the SaaS model, cloud providers install and operate application software in the cloud and cloud users access the software from cloud clients. Cloud users do not manage the cloud infrastructure and platform where the application runs.

Examples: Google Docs, Salesforce CRM, SAP Business by Design.



Overall, Cloud Computing is not restricted to Infrastructure / Platform / Software as a Service systems, even though it provides enhanced capabilities which act as (vertical) enablers to these systems. As such, I/P/SaaS can be considered specific “usage patterns” for cloud systems which relate to models already approached by Grid, Web Services etc. Cloud systems are a promising way to implement these models and extend them further.
Cloud Computing Infrastructure Models:


Public, private, and hybrid clouds:

IT organizations can choose to deploy applications on public, private, or hybridclouds, each of which has its trade-offs. The terms public, private, and hybrid do not dictate location.

While public clouds are typically “out there” on the Internet and private clouds are typically located on premises, a private cloud might be hosted at acolocation facility as well.
Companies may make a number of considerations with regard to which cloud computing model they choose to employ, and they might use more than one model to solve different problems. An application needed on a temporary basis might be best suited for deployment in a public cloud because it helps to avoid the need to purchase additional equipment to solve a temporary need. Likewise, a permanent application, or one that has specific requirements on quality of service or location of data, might best be deployed in a private or hybrid cloud.


Public clouds:

Public clouds are run by third parties, and applications from different customers are likely to be mixed together on the cloud’s servers, storage systems, and networks Public clouds are most often hosted away from customer premises, and they provide a way to reduce customer risk and cost by providing a flexible, even temporary extension to enterprise infrastructure. If a public cloud is implemented with performance, security, and data locality in mind, the existence of other applications running in the cloud should be transparent to both cloud architects and end users.

Public cloud applications, storage, and other resources are made available to the general public by a service provider. These services are free or offered on a pay-per-use model. Generally, public cloud service providers like Amazon AWS, Microsoft and Google own and operate the infrastructure and offer access only via Internet.

Indeed, one of the benefits of public clouds is that they can be much larger than a company’s private cloud might be, offering the ability to scale up and down on demand, and shifting infrastructure risks from the enterprise to the cloud provider, if even just temporarily. Portions of a public cloud can be carved out for the exclusive use of a single client, creating a virtual private datacentre.

Rather than being limited to deploying virtual machine images in a public cloud, a virtual private data center gives customers greater visibility into its infrastructure. Now customers can manipulate not just virtual machine images, but also servers, storage systems, network devices, and network topology. Creating a virtual private datacenter with all components located in the same facility helps to lessen the issue of data locality because bandwidth is abundant and typically free when connecting resources within the same facility.

Amazon initiated a new product development effort to provide cloud computing to external customers, and launched Amazon Web Service(AWS) on a utility computing basis.



Private clouds:

Private clouds are built for the exclusive use of one client, providing the utmostcontrol over data, security, and quality of service. The company owns theinfrastructure and has control over how applications are deployed on it. Privateclouds may be deployed in an enterprise datacenter, and they also may be deployedat a colocation facility.

Private clouds can be built and managed by a company’s own IT organization orby a cloud provider. In this “hosted private” model, a company such as Sun caninstall, configure, and operate the infrastructure to support a private cloud within acompany’s enterprise datacenter. This model gives companies a high level of controlover the use of cloud resources while bringing in the expertise needed to establishand operate the environment

Private cloud is cloud infrastructure operated solely for a single organization, whether managed internally or by a third-party and hosted internally or externally. Private cloud is computing architecture that provides hosted services to a limited number of people behind a firewall

In early 2008, Eucalyptus became the first open-source, AWS API-compatible platform for deploying private clouds.



Hybrid cloud:

Hybrid cloud is a composition of two or more clouds (private, community or public) that remain unique entities but are bound together, offering the benefits of multiple deployment models.Such composition expands deployment options for cloud services, allowing IT organizations to use public cloud computing resources to meet temporary needs. This capability enables hybrid clouds to employ cloud bursting for scaling across clouds

Cloud bursting is an application deployment model in which an application runs in a private cloud or data center and “bursts” to a public cloud when the demand for computing capacity increases. A primary advantage of cloud bursting and a hybrid cloud model is that an organization only pays for extra compute resources when they are needed.

Cloud bursting enables data centers to create an in-house IT infrastructure that supports average workloads, and use cloud resources from public or private clouds, during spikes in processing demands.

By utilizing “hybrid cloud” architecture, companies and individuals are able to obtain degrees of fault tolerance combined with locally immediate usability without dependency on internet connectivity. Hybrid cloud architecture requires both on-premises resources and off-site (remote) server-based cloud infrastructure.

Hybrid clouds lack the flexibility, security and certainty of in-house applications.Hybrid cloud provides the flexibility of in house applications with the fault tolerance and scalability of cloud based services.

In early 2008, OpenNebula, enhanced in the RESERVOIR European Commission-funded project, became the first open-source software for deploying private and hybrid clouds