Over the last few years, many IT professionals, business managers, and researchers have started to talk about a new phenomenon called cloud computing. Each of these groups defined cloud computing differently according to their understanding of its offerings. Although there was no agreement about what precisely constituted cloud computing, it still offered a promising paradigm that could enable businesses to face market volatility in an agile and cost-efficient manner 10. According to 11, Cloud computing is a system, where the resources of a data center are shared using virtualization technology, which also provides elastic, on-demand and instant services to its customers and charges customer usage as a utility bill.
The most widely accepted definition NIST 12, defined Cloud computing as” a model for enabling ubiquitous, 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”. Regarding its relations to other pre-existing computing models, cloud computing can be used in principle to deliver computing services, including grid computing services, high-performance computing services, etc. This does not imply that cloud computing is a replacement for grid computing, high-performance computing, or any other pre-existing computing model. Instead, cloud computing should be thought of as a new business model that aims at service delivery in a highly scalable and highly flexible manner. The difference between cloud computing and other pre-existing computing models can be better demonstrated by ways of using the characteristics, service, deployment models and its key enabling technologies of virtualization.
2.2.1. Characteristics of Cloud Computing
According to NIST 12, cloud computing exhibits its own essential characteristics such as; on-demand service, wide network approach, resource pooling, fast elasticity and measured service which demonstrate their relation to and differences from traditional computing approaches.
Cloud computing focuses on IT services which are driven by users’ requests. It provides a means of delivering computing services that make the underlying technology, beyond the user device almost invisible. Applying computing resources on-demand is one of the most desired capabilities for a large number of enterprises because it removes the need for scheduling ahead, purchasing, and installing the resources they will require at some point in the future. This allows the customer to avoid making a needless upfront investment in servers and computing resources. Furthermore, when comparing cloud computing with the traditional model of owning the servers, cloud computing will help to avoid the costs of having underused resources. Consequences of this feature of on-demand computing resources are a lowering of the entry barriers to some business models, as software vendors can develop applications without worrying beforehand of provisioning for a specific number of customers and then bear with the risk of greater success than planned, lead to the service not being available or worse, having very few users and a large capital expense caused by purchasing resources that are very underutilized.
Another new aspect of cloud computing is the application of usage-based billing model. Customers simply pay for the services they used, while providers bear the costs of hardware and software provision. Pricing may differ based on the time of day due to peaks in the request or varying electricity costs and organizations may, therefore, carry out certain activities when costs are cheaper. However, distributed cloud networks may enable providers to smooth out demand globally and offer uniform pricing strategies not dependent on timing.
Cloud capabilities are available over the network and accessed through standard mechanisms that promote use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs) as well as other traditional or cloud-based software services. Cloud computing extends the existing trend of making services available over the network. Virtually business organization can make available different applications to their internal and external customers using web-based interfaces. While enterprises are well aware of the ability to secure communications using Secure Socket Layer (SSL) encryption along with strong authentication, bootstrapping trust in a cloud computing environment requires carefully considering the differences between enterprise computing and cloud computing. When properly architected, internet service delivery can provide the flexibility and security required by enterprises of all sizes.
The cloud provider’s computing resources such as storage, processing, network bandwidth, and virtual machines are shared to serve many consumers using a multi-tenant model, thus, different physical and virtual resources dynamically allocated and reallocated according to consumer demand. Even private clouds tend to share resources between different parts of the same organization. There is no of location dependence in that the customer commonly has no management over the exact location of the provided resources but may be able to specify location at a higher level of abstraction (e.g., country, state, or datacenter).
Based on the specifics of a service level agreement, the cloud provider scales up or down the resources that are provided to meet the customer’s changing needs. This service level agreement must define the response time for the cloud provider to adapt the customer’s needs. Such an agreement is needed by the cloud provider, because the cloud provider does not, in fact, have infinite resources, so depending upon the service level agreement the cloud provider has to find a set of allocations of resources that satisfy the current demands of the aggregate of their users while meeting the various service level agreements of these customers, otherwise the service level agreement may specify a penalty that the cloud provider has to pay to each customer for not meeting the relevant service level agreement.
Cloud allows the dynamic integration and extraction of computing resources. Cloud services are existing for provisioning, often look to be limitless and can be obtained in any quantity at any time. Elasticity is an essential feature of cloud systems and circumscribes the capability of the underlying infrastructure to adopt changes. This cloud capability allows service users to create an elastic environment that can expand and target performance parameters. In general, it assumed that changes in the resource infrastructure needs are announced first to the middleware manager and then such changes can be maintained automatically.
Cloud system automatically control and optimize resource usage by leveraging a metering capability at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, or active user accounts). Resource usage can be managed, measured and reported to provide for both the provider and consumer of the service. Based on this metering and accounting capability of cloud computing, users pay only for service they are used. Thus, billing is based on resource consumptions such as CPU hours used, the volume of data moved, or gigabytes of data used.
Because the cloud provider rather than the customer maintains the computing resource, there is an effective outsourcing of maintenance tasks. Thus, the cloud provider maintains and updates the resources, whether the resource is hardware or software. Therefore, all repairs and replacement of the underlying hardware resources are transparent to the customer, as they do not affect the customer’s experience. While this might be true in the ideal case, there may be short intervals when a customer’s image is migrated from one hardware platform to another in order to perform maintenance or repair of a given physical platform, during this period of time the customer might not have any of the resources associated with this image available.