Cloud computing is loose term encompassing a number of technologies all of which result in the delivery of computing as a service rather than a product. So, shared resources, software, and information are delivered to computers and other devices (smartphones, dumb terminals etc.) as a utility, analogous to the electricity grid over a network, usually the Internet.
If you have used a Web-based e-mail like Hotmail, Yahoo! Mail or Gmail, then you have used one form of cloud computing. Such systems work by the user logging into a Web e-mail account remotely instead of running an e-mail program on your computer. The software and storage for your mail do not exist on your computer; instead they reside on the service provider’s computer cloud.
Users access cloud based applications through a web browser or lightweight desktop/mobile app while their data and business software are held on servers at a remote location, typically a data centre. It is the goal of cloud application providers give the same or better service and performance versus software programs installed locally on end-user computers.
The term "cloud" is a metaphor for the Internet, dating back to the cloud depiction historically used to represent the telephone network, and more recently to represent the Internet in computer network diagrams.
Widespread adoption has been founded upon widespread availability of high bandwidth capacity networks, low cost computers and storage plus widespread adoption of virtualisation and service-oriented architecture.
Two terms are required to understand how “the cloud” continues its rapid adoption, firstly autonomic computing is where systems are self-managing. Secondly, utility computing, where computing resources, typically computation and storage are packaged as a metered service again analogous to traditional public utilities, such as electricity.
Cloud computing providers use three basic models: Infrastructure as a service (IaaS), platform as a service (PaaS), and software as a service (SaaS). IaaS is simplest and each higher model builds on features of the lower models.
Infrastructure as a Service (IaaS)
This is the most basic cloud service model where cloud providers offer computers physical or virtual machines, storage, firewalls, load balancers, and networks. Under IaaS these resources are delivered on demand from large pools installed in data centers. Local area networks plus IP addresses are part of the offer. For the wide area connectivity, the Internet can be used or dedicated virtual private networks can be configured.
To deploy applications, cloud users install operating system images on the machines plus their application software. Under this model, the cloud user is responsible for patching and maintaining the OS and application software. IaaS services are typically billed on a utility computing basis, so cost reflects the resources allocated and consumed.
Platform as a Service (PaaS)
Under the PaaS model, cloud providers deliver a computing platform typically including OS, database, and web server. This allows application developers to run their software solutions on a cloud platform without the cost and complexity of buying and managing the underlying hardware and software. In some PaaS offerings, the available computing and storage resources scale automatically to match application demand meaning the cloud user does not have to allocate resources manually.
Software as a Service (SaaS)
Here cloud providers install and operate application software in the cloud with cloud users accessing the software from cloud clients. A significant benefit is that users do not manage the cloud infrastructure or the platform running the application thus eliminating the need to install and run the application their own computers so simplifying maintenance and support. What differentiates a cloud application from other types of applications is its elasticity which is achieved by cloning tasks on to multiple virtual machines as demand requires it. Load balancers distribute the work over these virtual machines with this process being transparent to the user who sees simply a single access point. This leads to another characteristic of cloud computing which is that in order to accommodate large numbers of users, cloud applications can be multitenant, meaning any machine serves more than one cloud user organization. Commonly these types of cloud based application software are referred to generically as desktop as a service, business process as a service, Test Environment as a Service or communication as a service.
Typically the pricing model for SaaS applications is monthly or yearly flat fee per user.
In public cloud applications, storage and other resources are deployed to world at large by a service provider. Such services are free or pay-per-use. Generally, public cloud service providers like Microsoft and Google own and operate the infrastructure and offer access only via Internet and direct connectivity is not offered.
Community cloud shares infrastructure between several organizations from a specific community with common concerns (security, compliance, jurisdiction, etc.), whether managed internally or by a third-party and hosted internally or externally. The costs are spread over fewer users than a public cloud (but more than a private cloud), so only some of the cost savings potential of cloud computing are realized
Hybrid cloud consists of two or more clouds (private, community or public) that each endure as separate entities but are bound together delivering the benefits of multiple deployment models. Utilizing "hybrid cloud" architecture delivers fault tolerance with locally instantaneous usability without being dependent on internet connectivity. Hybrid Cloud architecture requires both on-premise resource plus off-site (remote) server based cloud infrastructure.
Hybrid clouds lack the flexibility, security and certainty of in-house applications, but can deliver the flexibility of in house applications with the fault tolerance and scalability of cloud based services.
Private cloud whether managed internally or by a third-party and hosted internally or externally is cloud infrastructure operated exclusively for a single organization. They are potentially open to criticism as users still need to buy, build, and manage them and thus do not benefit from less hands-on management essentially lacking the economic justification made for cloud computing as a rule.