Introduction
What is Cloud computing?
“Cloud computing is a term used to describe both a platform and type of application. A cloud
computing platform dynamically provisions, configures, reconfigures, and deprovisions servers as
needed. Servers in the cloud can be physical machines or virtual machines. Advanced clouds
typically include other computing resources such as storage area networks (SANs), network
equipment, firewall and other security devices.
computing platform dynamically provisions, configures, reconfigures, and deprovisions servers as
needed. Servers in the cloud can be physical machines or virtual machines. Advanced clouds
typically include other computing resources such as storage area networks (SANs), network
equipment, firewall and other security devices.
Cloud computing also describes applications that are extended to be accessible through the
Internet. These cloud applications use large data canters and powerful servers that host Web
applications and Web services. Anyone with a suitable Internet connection and a standard
browser can access a cloud application.”
Internet. These cloud applications use large data canters and powerful servers that host Web
applications and Web services. Anyone with a suitable Internet connection and a standard
browser can access a cloud application.”
Cloud computing is location independent computing, whereby shared servers provide resources, software, and data to computers and other devices on demand, as with the electricity grid. Or more simply, remote computing. Cloud computing is a natural evolution of the widespread adoption of virtualization, service-oriented architecture and utility computing. Details are abstracted from consumers, who no longer have need for expertise in, or control over, the technology infrastructure "in the cloud" that supports them.
Cloud computing describes a new supplement, consumption, and delivery model for IT services based on the Internet, and it typically involves over-the-Internet provision of dynamically scalable and often virtualized resources. It is a byproduct and consequence of the ease-of-access to remote computing sites provided by the Internet. This frequently takes the form of web-based tools or applications that users can access and use through a web browser as if it were a program installed locally on their own compute
More and more companies and universities are getting involved in newly emerging cloud computing model. Google & IBM announced a multi million dollar collaborative research project based on Cloud Computing with universities. Microsoft and Sun Microsystems have also been promoting and researching on Cloud computing since a long time.
Definition
Cloud computing: cloud computing is the model for enabling ubiquitous, convenient, on demand network access to shared pool of configurable computing resources (e.g., networks, servers, storage, application and services) that can be rapidly provisioned and released with minimal management efforts or service provider interaction. (This definition is form the latest draft of NIST Working Definition of Cloud Computing published by U.S. Government’s National Institute of Standard and Technology. )
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 Service (PaaS): the consumer uses a hosting environment for their applications. The consumer control the applications that run in the environment (and possibly as 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 operating system, storage, deployed application and possibly networking 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 term, public cloud services are characterized as being available to client from a third party service provider via Internet. The term “public” does not always means free, even though it can be free or fairly inexpensive to use. A public cloud vendor typically provides an access control mechanism for their users. Public clouds provide and elastic, cost effective means to deploy solutions
· 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 the in private cloud-based service, data processes are managed within the organization without restriction of network bandwidth, security exposures and legal requirement that using public 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.
· 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 combination of public and private cloud that interoperates. In this models users typically outsource non-business-critical information and processing to the public cloud, while keeping business-critical service data in their control.
Characteristics
The NIST definition describes five essential characteristics of cloud computing.
· Rapid Elasticity: Elasticity is defined as the ability to scale resources both up and down as needed. To the consumer, the cloud appears to be infinite, and the consumer can purchase as much or as little computing power as they need. This is one of the essential characteristics of cloud computing in the NIST definition.
· Measured Service: in a measured service, aspects of the cloud service are controlled and monitored by the cloud provider. This is crucial for billing, access control, resource optimization, capacity planning and other tasks.
· On-Demand Self-Service: the on-demand and self-service aspects of cloud computing means that a consumer can use cloud services as needed without any human interaction with the cloud provider.
· Ubiquitous Network Access: Ubiquitous network access means that the cloud provider’s capabilities are available over the network and can be accessed through standard mechanisms by both thick and thin clients.
· Resources Pooling : Resources pooling allows a cloud provider to serve its consumers via a multi-tenant model. Physical and virtual resources are assigned and reassigned according to consumer demand. There is a sense of location independence is 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).
Architecture
Cloud architecture, the systems architecture of the systems involved in the delivery of cloud computing, typically involves multiple cloud components communicating with each other over application programming interfaces, usually web services. This resembles the UNIX philosophy of having multiple programs each doing one thing well and working together over universal interfaces. Complexity is controlled and the resulting systems are more manageable than their monolithic counterparts.
The two most significant components of cloud computing architecture are known as the front end and the back end. The front end is the part seen by the client, i.e. the computer user. This includes the client’s network (or computer) and the applications used to access the cloud via a user interface such as a web browser. The back end of the cloud computing architecture is the ‘cloud’ itself, comprising various computers, servers and data storage devices.
How Cloud Computing Works
A basic definition of cloud computing is the use of the Internet for the tasks you perform on your computer. The "cloud" represents the Internet
Let's say you're an executive at a large corporation. Your particular responsibilities include making sure that all of your employees have the right hardware and software they need to do their jobs. Buying computers for everyone isn't enough -- you also have to purchase software or software licenses to give employees the tools they require. Whenever you have a new hire, you have to buy more software or make sure your current software license allows another user. It's so stressful that you find it difficult to go to sleep on your huge pile of money every night.
Soon, there may be an alternative for executives like you. Instead of installing a suite of software for each computer, you'd only have to load one application. That application would allow workers to log into a Web-based service which hosts all the programs the user would need for his or her job. Remote machines owned by another company would run everything from e-mail to word processing to complex data analysis programs. It's called cloud computing, and it could change the entire computer industry.
In a cloud computing system, there's a significant workload shift. Local computers no longer have to do all the heavy lifting when it comes to running applications. The network of computers that make up the cloud handles them instead. Hardware and software demands on the user's side decrease. The only thing the user's computer needs to be able to run is the cloud computing system's interface software, which can be as simple as a Web browser, and the cloud's network takes care of the rest.
There's a good chance you've already used some form of cloud computing. If you have an e-mail account with a Web-based e-mail service like Hotmail, Yahoo! Mail or Gmail, then you've had some experience with cloud computing. Instead of running an e-mail program on your computer, you log in to a Web e-mail account remotely. The software and storage for your account doesn't exist on your computer -- it's on the service's computer cloud
The Benefits of Cloud Computing
Specialization: There is greatest deal of specialization knowledge require to set up and operate system to address security, platform maintenance (patches, update), data maintenance (backups) and more. In a traditional model, each development effort had to include this expertise on staff. Cloud computing enables these capabilities to be staffs by experts who are shared across many customers. Instead of hiring that one person who does a decent job across all of these elements, cloud computing entities can hire individuals with deep expertise in each area, in each area, and then amortize this expense across a large number of customers. This degree of specialization enables a variety of benefits that are driving cloud computing.
Economies of Scale: This is also a powerful driver for cloud computing. The ideal platform is very expensive to build. The servers, networking equipment, data storage/ backup, power, redundant high speed connectivity, etc. can result in a huge start-up cost for a single product or project. Add to this the fact that most development efforts fail, and the economics simply don’t make sense for investment of this level in each project. Cloud computing enjoys economies of scale, because that same investment can be amortized over number of project. If one project fails, it can be replaced by a number of new project that continue to amortize the initial investment
Key Benefits of Cloud Computing:
· Lover costs: All resources, including expensive networking equipment, servers, IT personnel, etc. are shared, resulting in reduced costs, especially for small to mid- sized applications and prototypes.
· Shifting CapEx to Opex: Cloud computing enables companies to shift money from capital expenses (CapEx) to Operating expenses (OpEx), enabling the customer to focus on adding value in their of core competence, such as business and process insight, instead of building and maintaining IT infrastructure. In short, cloud computing allows you to focus your money and resources on innovating .
· Agility: Provision-on-demand enables faster set-up and tear-down of resources on an as needed basis. When a project is funded, you initiate service, then if the project is killed, you simply terminate the cloud contract.
· Dynamic Scalability: Most application experience spikes in traffic. Instead of over-buying your own equipment to accommodate these spikes, many cloud services can smoothly and efficiently scale to handle these spikes with a most cost-effective pay-as-you-go model. This is known as elasticity and is behind Amazon’s name Elastic Computing Cloud (EC2).
· Simplified Maintenance: Patches and upgrades are rapidly deployed across the shared infrastructure, as are backups.
· Large Scale Prototyping/Load Testing: Cloud computing makes large scale prototyping and load testing much easier. You can easily spawn 1,000 servers in the cloud to test your application and then release then as soon as you are done, try doing that with owned or corporate servers.
· Diverse Platform Support: Many cloud computing offer built in support for rich collection of client platforms, including browsers, mobiles, and more. This diverse platform support enables applications to reach a broader base of users right out of the gate.
· Faster Management Approval: This is closely aligned with cost saving. Since cloud computing has very low upfront costs, the management approval process is greatly accelerated, causing faster innovation. In fact, costs are so low, that individual can the expense personally to demonstrate the benefits of their solution, while avoiding organizational inertia.
· Faster Development: Cloud computing platforms provide many of the core services that, under traditional development models, would normally be built in house. This service, plus templates and other tools can significantly accelerate the development cycle.