BASICS OF CLOUD COMPUTING
Introduction
Cloud Computing is the future of technology said by various CEO of IT industry. It works on the principle that the user must pay according the time for which it is using the resources from various cloud providers. It is well known that it is not easy to handle large resources. It is very costly in terms of money as well. So Cloud Computing is the best answer to these challenging problems.
Cloud Computing is answer to almost every problem faced by many Industries which are directly or indirectly related to the Information Technology. This field is growing very fastly as many of the big players in the Information Technology field like Microsoft, Google, Amazon, SAP are investing a lot of money to get improved results. They feel that it is the future of technology.
CLOUD COMPUTING- THE CONCEPT
Cloud computing is Internet ("cloud") based development and use of computer technology ("computing"). It is a style of computing in which dynamically scalable and often virtualized resources are provided as a service over the Internet. Users need not have knowledge of, expertise in, or control over the technology infrastructure "in the cloud" that supports them.
The concept incorporates infrastructure as a service (IaaS), platform as a service (PaaS) and software as a service (SaaS) as well as Web 2.0 and other recent technology trends which have the common theme of reliance on the Internet for satisfying the computing needs of the users. Examples of SaaS vendors include Salesforce.com and Google Apps which provide common business applications online that are accessed from a web browser, while the software and data are stored on the servers.
The term cloud is used as a metaphor for the Internet, based on how the Internet is depicted in computer network diagrams, and is an abstraction for the complex infrastructure it conceals.
COMPARISON
Cloud computing is often confused with grid computing ("a form of distributed computing whereby a 'super and virtual computer' is composed of a cluster of networked, loosely-coupled computers, acting in concert to perform very large tasks"), utility computing (the "packaging of computing resources, such as computation and storage, as a metered service similar to a traditional public utility such as electricity") and autonomic computing ("computer systems capable of self-management").
Indeed many cloud computing deployments as of 2009 depend on grids, have autonomic characteristics and bill like utilities ' but cloud computing can be seen as a natural next step from the grid-utility model. Some successful cloud architectures have little or no centralized infrastructure or billing systems whatsoever, including peer-to-peer networks like Bit Torrent and Skype and volunteer computing like
Implementation
The majority of cloud computing infrastructure as of 2009 consists of reliable services delivered through data centers and built on servers with different levels of virtualization technologies. The services are accessible anywhere that has access to networking infrastructure. The Cloud appears as a single point of access for all the computing needs of consumers. Commercial offerings need to meet the quality of service requirements of customers and typically offer service level agreements. Open standards are critical to the growth of cloud computing and open source software has provided the foundation for many cloud computing implementations.
CHARACTERISTICS
As customers generally do not own the infrastructure, they merely access or rent, they can avoid capital expenditure and consume resources as a service, paying instead for what they use. Many cloud-computing offerings have adopted the utility computing model, which is analogous to how traditional utilities like electricity are consumed, while others are billed on a subscription basis. Sharing "perishable and intangible" computing power among multiple tenants can improve utilization rates, as servers are not left idle, which can reduce costs significantly while increasing the speed of application development. A side effect of this approach is that "computer capacity rises dramatically" as customers do not have to engineer for peak loads. Adoption has been enabled by "increased high-speed bandwidth" which makes it possible to receive the same response times from centralized infrastructure at other sites.
Related Technologies
Cloud computing typically has characteristics of all these technologies [3]:
' Grid computing
' Virtualization
' Utility Computing
' Autonomic Computing
A quick overview of these technologies is given here.
Grid Computing- Grid Computing involves a network of computers that are utilized together to gain large supercomputing type computing resources. Using this network of computers large and complex computing operations can be performed. In grid computing these network of computers may be present in different locations.
A famous Grid Computing project is Folding@Home. The project involves utilizing unused computing powers of thousands of computers to perform a complex scientific problem. The goal of the project is "to understand protein folding, misfolding, and related diseases".
Virtualization- In general sense, a traditional multiprogramming operating system, such as Linux is also a form of virtualization. Linux allows each user process to access system resources without interfering to other processes. The abstraction provided to each process is the set of operating system, system calls and hardware instructions set accessible to user level processes. User mode linux offer a more complete virtual abstraction where each user is not even aware of other user's processes [1]. At a higher level of abstraction are virtual machines based on high level language, such as the Java Virtual Machine (JVM). It runs as an operating system process, but provides a system independent abstraction of the machine to an application written in Java language.
Utility Computing- Utility Computing defines a "pay-peruse" model for using computing services. In utility computing, billing model of computing resources is similar to how utilities likeelectricity are traditionally billed. When we procure electricity from a vendor, the init ial cost
required is minimal. Based upon the usage of electricity, electricity companies bills the customer (typically monthly). In utility computing billing is done using a similar protocol. Various billing models are being explored. A few common ones are:
1) Billing per user count. As an example if an organization of 100 people uses Google's gmail or Microsoft Live as their internal email system with email residing on servers in the cloud, Google/Microsoft may bill the organization on per user basis.
2) Billing per Gigabyte. If an organization is using Amazon to host their data on the cloud, Amazon may bill the organization on the disk space usage.
3) Billing per hour/day. As an example a user may pay for usage of virtual servers by time utilized in hours.
ECONOMICS
Cloud computing users can avoid capital expenditure (CapEx) on hardware, software and services, rather paying a provider only for what they use. Consumption is billed on a utility (e.g. resources consumed, like electricity) or subscription (e.g. time based, like a newspaper) basis with little or no upfront cost. Other benefits of this time sharing style approach are low barriers to entry, shared infrastructure and costs, low management overhead and immediate access to a broad range of applications. Users can generally terminate the contract at any time (thereby avoiding return on investment risk and uncertainty) and the services are often covered by service level agreements with financial penalties.
According to Nicholas Carr the strategic importance of information technology is diminishing as it becomes standardized and cheaper. He argues that the cloud computing paradigm shift is similar to the displacement of electricity generators by electricity grids early in the 20th century.
Fig:2.1 Cost Comparison of Cloud & IT Infrastructure
COMPANIES:
Providers including Amazon, Microsoft, Google, Sun and Yahoo exemplify the use of cloud computing. It is being adopted by individual users through large enterprises including General Electric, L'Or''al, and Procter & Gamble.
History
The Cloud is a term with a long history in telephony, which has in the past decade, been adopted as a metaphor for internet based services, with a common depiction in network diagrams as a cloud outline.
The underlying concept dates back to 1960 when John McCarthy opined that "computation may someday be organized as a public utility"; indeed it shares characteristics with service bureaus which date back to the 1960s. The term cloud had already come into commercial use in the early 1990s to refer to large ATM networks. By the turn of the 21st century, the term "cloud computing" had started to appear, although most of the focus at this time was on Software as a service (SaaS).
In 1999, Salesforce.com was established by Marc Benioff, Parker Harris, and his fellows. They applied many technologies of consumer web sites like Google and Yahoo! to business applications. They also provided the concept of "On demand" and "SaaS" with their real business and successful customers. The key for SaaS is being customizable by customer alone or with a small amount of help. Flexibility and speed for application development have been drastically welcomed and accepted by business users.
IBM extended these concepts in 2001, as detailed in the Autonomic Computing Manifesto — which described advanced automation techniques such as self-monitoring, self-healing, self-configuring, and self-optimizing in the management of complex IT systems with heterogeneous storage, servers, applications, networks, security mechanisms, and other system elements that can be virtualized across an enterprise.
Amazon.com played a key role in the development of cloud computing by modernizing their data centers after the dot-com bubble and, having found that the new cloud architecture resulted in significant internal efficiency improvements, providing access to their systems by way of Amazon Web Services in 2005 on a utility computing basis.
2007 saw increased activity, with Google, IBM, and a number of universities embarking on a large scale cloud computing research project, around the time the term started gaining popularity in the mainstream press. It was a hot topic by mid-2008 and numerous cloud computing events had been scheduled.
In August 2008, Gartner Research observed that "organizations are switching from company-owned hardware and software assets to per-use service-based models" and that the "projected shift to cloud computing will result in dramatic growth in IT products in some areas and in significant reductions in other areas."
DELIVERY MODELS
The NIST definition of cloud computing defines three delivery models:
SOFTWARE AS A SERVICE (SAAS):
The consumer uses an application, but does not control the operating system, hardware or network infrastructure on which it's running.
PLATFORM AS A SERVICE (PAAS)
The consumer uses a hosting environment for their applications. The consumer controls the applications that run in the environment (and possibly has some control over the hosting environment),but does not control the operating system, hardware or network infrastructure on which they are running. The platform is typically an application framework.
INFRASTRUCTURE AS A SERVICE (IAAS)
The consumer uses "fundamental computing resources" such as processing power, storage, networking components or middleware. The consumer can control the operating system, storage, deployed applications and possibly networking components such as firewalls and load balancers, but not the cloud infrastructure beneath them.
components such as firewalls and load balancers, but not the cloud infrastructure beneath them.
DEPLOYMENT MODELS
The NIST definition defines four deployment models:
PUBLIC CLOUD
In simple terms, public cloud services are characterized as being available to clients from a third party service provider via the Internet. The term 'public' does not always mean free, even though it can be free or fairly inexpensive to use. A public cloud does not mean that a user's data is publically visible; public cloud vendors typically provide an access control mechanism for their users. Public clouds provide an elastic, cost effective means to deploy solutions. Public clouds are owned and operated by third parties; they deliver superior economies of scale to customers, as the infrastructure costs are spread among a mix of users, giving each individual client an attractive low-cost, 'Pay-as-you-go' model. All customers share the same infrastructure pool with limited configuration, security protections, and availability variances. These are managed and supported by the cloud provider. One of the advantages of a Public cloud is that they may be larger than an enterprises cloud, thus providing the ability to scale seamlessly, on demand.
PRIVATE CLOUD:
A private cloud offers many of the benefits of a public cloud computing environment, such as being elastic and service based. The difference between a private cloud and a public cloud is that in a private cloud-based service, data and processes are managed within the
organization without the restrictions of network bandwidth, security exposures and legal requirements that using public cloud services might entail. In addition, private cloud services offer the provider and the user greater control of the cloud infrastructure, improving security and
resiliency because user access and the networks used are restricted and designated.
The Private Cloud use case is different from the others in that the cloud is contained within the enterprise. This is useful for larger enterprises. For example, if the payroll department has a surge in workload on the 15th and 30th of each month, they need enough computing power to handle the maximum workload, even though their everyday workload for the rest of the month is much lower. With a private cloud, computing power is spread across the enterprise. The payroll department gets extra cycles when they need it and other departments get extra cycles when they need it. This can deliver significant savings across the enterprise.
COMMUNITY CLOUD:
A community cloud is controlled and used by a group of organizations that have shared interests, such as specific security requirements or a common mission. The members of the community share access to the data and applications in the cloud.
HYBRID CLOUD
A hybrid cloud is a combination of a public and private cloud that interoperates. In this model users typically outsource nonbusiness- critical information and processing to the public cloud, while keeping business-critical services and data in their control.
This use case involves multiple clouds working together, including both public and private clouds. A hybrid cloud can be delivered by a federated cloud provider that combines its own resources with those of other providers. A broker can also deliver a hybrid cloud; the difference is that a broker does not have any cloud resources of its own. The provider of the hybrid cloud must manage cloud resources based on the consumer's terms.
ESSENTIAL CHARACTERISTICS:
ON-DEMAND SELF-SERVICE
A consumer can unilaterally provision computing capabilities, such as server time and network storage, as needed automatically without requiring human interaction with each service provider.
BROAD NETWORK ACCESS
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, tablets, laptops, and workstations).
RESOURCE POOLING.
The provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to consumer demand. There is a sense of location independence in that the customer generally has no control or knowledge 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). Examples of resources include storage, processing, memory, and network bandwidth.
RAPID ELASTICITY
Capabilities can be elastically provisioned and released, in some cases automatically, to scale rapidly outward and inward commensurate with demand. To the consumer, the capabilities available for provisioning often appear to be unlimited and can be appropriated in any quantity at any time.
MEASURED SERVICE.
Cloud systems automatically control and optimize resource use by leveraging a metering capability at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency for both the provider and consumer of the utilized service.
CLOUD COMPUTING ARCHITECTURE
The Cloud Computing architecture works on a layered approach. It has several actors like Cloud Consumer, Cloud Provider, Cloud Auditor, Cloud Broker, Cloud Carrier. The combination of all these actors create the architecture of Cloud Computing [3]. It is a very vast area that's why it is not easy to understand how everything is happening but this reference architecture gives a great overview.
Figure 2.2: Cloud Computing Architecture
Each actor play a very big role in the cloud computing working model. They have to play their part to get the job done and satisfy the customer [1]. The different cloud consumers are defined below:-
CLOUD CONSUMER
Cloud Consumer are the actors which consumes the services provided by the cloud provider. They can directly avail services from the providers or they can contact the cloud broker to get the services. They will pay according to the time for which they have the services from the provider [4]. They can have different services like SaaS, Paas, Iaas.
Figure 2.3: Cloud Consumer
CLOUD PROVIDER
Cloud Provider are the actors which provides the services to the consumers. The services can be SaaS, PaaS, IaaS. The big players like google, amazon etc are able to provide Infrastructure as a service. Else all other small players are only working on providing SaaS or to the some extent PaaS. The Cloud Provider also charges the money according to the time for which the services are availed by the consumers.
In SaaS service cloud provides the consumers to host the service i.e the software at their end(on their resources). This helps the consumers for not to buy the resources to run the software. All the security aspects are also handled by the providers itself.
In PaaS the provider provides a toolkit to the consumers like different IDE or SDK to compile their software and host them on the providers resources [5]. This helps the consumer to have a fair control over the resources provided by the Cloud Provider.
In IaaS the consumer has the total control over the resources provided by the Cloud Provider [6]. The low level programming can be done in IaaS. Some of the issues like response time, memory usage and Disk Access can easily be addressed using IaaS as a service.
Figure 2.4: Cloud Provider
CLOUD AUDITOR
Cloud Auditor is the actor which takes care of all the pricing and accounting aspects of the whole cloud computing scenario [7]. If any sort of conflict happens in terms of pricing then it is resolved by Cloud Auditor [8].
Table : 2.1 Definition of Members of Cloud Architecture
CLOUD BROKER
Cloud Broker is the actor which acts in between the Cloud Consumer and Cloud Provider [9]. It helps the customers to choose the efficient and the best cloud provider. It plays a very vital role in negotiating the deal between the provider and consumer. If any kind of conflict happens then that conflict is resolved by the Broker [10].
Cloud Broker provides services in the following way:-
1. Service Intermediation It acts as a intermediate in providing services from provider to the consumer.
2. Service Aggregation It combines the services provided by di_erent Cloud Providers and then delivers those services to the Cloud Consumers.
3. Service Arbitrage It enhances the services provided by the cloud provider and then provide that as a service to the di_erent Cloud Consumers [11].
CLOUD CARRIER
Cloud Carrier is just a medium through which the cloud services are provided. It is basically the connection provider for example aitel, MTNL, BSNL, Vodafone etc [12].