Cloud computing provides the next generation of internet based, highly scalable distributed computing systems in which computational resources are offered 'as a service'. The most widely used definition of the cloud computing model is introduced by NIST as “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”. The two main characteristics of the cloud model are multi-tenancy and elasticity. Multi-tenancy enables sharing the same service instance among different tenants and elasticity enables scaling up and down resources allocated to a service based on the current service demands. Both characteristics focus on improving resource utilization, cost, and service availability. The cloud model has encouraged industry and academia to adopt cloud computing to host a wide scope of applications ranging from high computationally intensive applications down to light weight services. he model is also well-suited for small and medium businesses because it helps adopting IT without upfront investments in infrastructure, software licenses and other relevant requirements. Moreover, Governments become more interested in the possibilities of using cloud computing to reduce IT costs and increase capabilities and reachability of their delivered services. Indeed, cloud computing provides several compelling features that make it attractive to business owners:
No up-front investment: cloud computing uses pay-as-you-go pricing model. A service provider need not invest in the infrastructure to start gaining benefit from cloud computing. It simply rents resources from the cloud according to its own needs and pay for the usage.
Lowering operating cost: Resources in a cloud environment can be rapidly allocated and de-allocated on demand. Hence, a service provider no longer needs to provision capacities according to the peak load. This provides huge savings since resources can be released to save on operating costs when service demand is low.Highly scalable: Infrastructure providers pool large amount of resources from data centres and make them easily accessible. A service provider can easily expand its service to large scales to handle rapid increase in service demands (e.g., flash-crowd effect). This model is sometimes called surge computing.
Easy access: Services hosted in the cloud are generally web-based. Therefore, they are easily accessible through a variety of devices with Internet connections. These devices not only include desktop and laptop computers, but also cell phones and PDAs.
Reducing business risks and maintenance expenses: By outsourcing the service infrastructure to the clouds, a service provider shifts its business risks (such as hardware failures) to infrastructure providers, who often have better expertise and are better equipped for managing these risks. In addition, a service provider can cut down the hardware maintenance and the staff training costs.
Other Related Technologies
Cloud computing is compared to the technologies which share certain aspects with it. Some of them are as follows:
Grid Computing: It is the collection of computer resources from multiple locations to reach a common goal. The grid can be thought of as a distributed system with non-interactive workloads that involve many files. Cloud computing is similar to Grid computing in that it also employs distributed resources to achieve application-level objectives. However, cloud computing takes one step further by leveraging virtualization technologies at multiple levels (hardware and application platform) to realize resource sharing and dynamic resource provisioning
Utility Computing: It is a service provisioning model in which a service provider makes computing resources and infrastructure management available to the customer as needed, and charges them for specific usage rather than a flat rate. Cloud computing can be perceived as a realization of utility computing. It adopts a utility-based pricing scheme entirely for economic reasons. With on-demand resource provisioning and utility based pricing, service providers can truly maximize resource utilization and minimize their operating costs.
Virtualization: In computing, virtualization means to create a virtual version of a device or resource, such as a server, storage device, network or even an operating system where the framework divides the resource into one or more execution environments. It forms the foundation of cloud computing, as it provides the capability of pooling computing resources from clusters of servers and dynamically assigning or reassigning virtual resources to applications on-demand.
Autonomic Computing: It refers to the self-managing characteristics of distributed computing resources, adapting to unpredictable changes while hiding intrinsic complexity to operators and users. Although cloud computing exhibits certain autonomic features such as automatic resource provisioning, its objective is to lower the resource cost rather than to reduce system complexity.
In summary, cloud computing leverages virtualization technology to accomplish the goal of providing computing resources as a utility. It shares certain aspects with grid computing and autonomic computing but is different from them in other aspects.
Cloud Deployment Models There are four primary cloud computing deployment models which are available to service consumers.
Private/Internal Cloud: This model referred to on premise cloud which is managed or owned by an organization to provide the high-level control over cloud services and infrastructure. In other words, private cloud is built specifically to provide the services within an organization for maintaining the security and privacy.
Public/External Cloud: This model allows cloud environment as openly or publicly accessible. Public cloud is off premise in which various enterprises can be used to deliver the services to users by taking it from third party.
Community Cloud: It allows the cloud computing environment which is shared or managed by number of related organizations.
Hybrid Cloud: This model compromised both private and public cloud models where cloud computing environment is hosted and managed by third party (off-premise) but, An organization privately only uses some dedicated resources.
Cloud Service Models Clouds offer services that can be grouped into three categories: software as a service (SaaS), platform as a service (PaaS), and infrastructure as a service (IaaS).
SaaS (Software as a Service): Sometimes referred to as ‘on-demand software’, SaaS is a software licensing and delivery model where a fully functional and complete software product is delivered to users over the web on a subscription basis. SaaS offerings are typically accessed by end users through a web browser and can be billed based on consumption or, more simply, with a flat monthly charge. SaaS offerings are the most widely visible of all the cloud computing service models. Popular products like Office365 and Salesforce have thrust SaaS offerings to the forefront of the workplace and are used by thousands of businesses every day.
PaaS (Platform as a Service): This is used to deliver a platform to users from which they can develop, initialize, and manage applications. PaaS offerings typically include a base operating system and a suite of applications and development tools. PaaS eliminates the need for organizations to build and maintain the infrastructure traditionally used to develop applications. PaaS is sometimes called ‘middleware’, referring to how it conceptually sits somewhere between SaaS and IaaS. Platform’s like Google’s App Engine, and Apache’s Stratos are popular PaaS products which are helping to streamline and democratize software development.
IaaS (Infrastructure as a Service): It is the lowest-level cloud service paradigm and arguably the most important. It simply enables access to the infrastructure needed to power or support that software. IaaS can provide extra storage for corporate data backups, network bandwidth for a company website server, or it can even enable access to high power computing which was previously only accessible to those with supercomputers. Popular IaaS offerings like Amazon EC2, and Google’s Compute Engine (GCE) are silently powering a huge portion of the backbone of the internet, whether users realize it or not.
Cloud Computing Layered Model The architecture of a cloud computing environment can be divided into 4 layers: the hardware/data centre layer, the infrastructure layer, the platform layer, and the application layer.
The hardware layer: This layer is responsible for managing the physical resources of the cloud, including physical servers, routers, switches, power, and cooling systems. In practice, the hardware layer is typically implemented in data centres. A data centre usually contains thousands of servers that are organized in racks and interconnected through switches, routers, or other fabrics. Typical issues at hardware layer include hardware configuration, fault-tolerance, traffic management, power, and cooling resource management.
The infrastructure layer: Also known as the virtualization layer, the infrastructure layer creates a pool of storage and computing resources by partitioning the physical resources using virtualization technologies such as Xen, KVM, and VMware. The infrastructure layer is an essential component of cloud computing, since many key features, such as dynamic resource assignment, are only made available through virtualization technologies.
The platform layer: Built on top of the infrastructure layer, the platform layer consists of operating systems and application frameworks. The purpose of the platform layer is to minimize the burden of deploying applications directly into VM containers. For example, Google App Engine operates at the platform layer to provide API support for implementing storage, database, and business logic of typical web applications.
The application layer: At the highest level of the hierarchy, the application layer consists of the actual cloud applications. Different from traditional applications, cloud applications can leverage the automatic-scaling feature to achieve better performance, availability, and lower operating cost.
Cloud computing has recently emerged as a compelling paradigm for managing and delivering services over the Internet. The rise of cloud computing is rapidly changing the landscape of information technology, and ultimately turning the long-held promise of utility computing into a reality. The cloud computing model is one of the promising computing models for service providers, cloud providers and cloud consumers. But to best utilize the model we need to block the existing security holes. It has several benefits over traditional (non- cloud) environment and have capability to handle most sudden, temporary peaks in application demand on cloud infrastructures. Virtualization technology provides good support to achieve aim of cloud computing like higher resource utilization, elasticity, reducing IT cost or capital expenditure to handle temporary loads as well as cloud computing have various flexible service and deployment models which is also one of the main issue of adopting this computing paradigm.