Cloud computing is a colloquial expression used to describe a variety of different computing concepts that involve a large number of computers that are connected through a real-time communication network (typically the Internet).

Cloud computing is a jargon term without a commonly accepted non-ambiguous scientific or technical definition. In science, cloud computing is a synonym for distributed computing over a network and means the ability to run a program on many connected computers at the same time.The popularity of the term can be attributed to its use in marketing to sell hosted services in the sense of application service provisioning that run client server software on a remote location. Cloud computing is the delivery of computing services over the Internet.

Cloud services allow individuals and businesses to use software and hardware that are managed by third parties at remote locations.Examples of cloud services include online file storage, social networking sites, webmail, and online business applications. The cloud computing model allows access to information and computer resources from anywhere that a network connection is available. Cloud computing provides a shared pool of resources, including data storage space, networks, computer processing power, and specialized corporate and user applications.

The following definition of cloud computing has been developed by the U. S.National Institute of Standards and Technology (NIST): Cloud computing is 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. This cloud model promotes availability and is composed of five essential characteristics, three service models, and four deployment models.

Public CloudThis is the deployment model that most commonly described as cloud computing. In this model, all of the physical resources are owned and operated by a third party cloud computing provider. The provider services multiple clients that may consist of individuals or corporations utilizing these resources through the public Internet. Services can be dynamically provisioned and are billed based on usage alone. This model provides the highest degree of cost savings while requiring the least amount of overhead.The spreading of a public cloud computing system is characterized on the one and by the public availability of the cloud service offering and on the other hand by the public network that is used to communicate with the cloud service.

The cloud services and cloud resources are procured from very large resource pools that are shared by all end users. These IT factories, which tend to be speci? cally built for running cloud computing systems, provision the resources precisely according to required quantities. By optimizing operation, support, and maintenance, the cloud provider can achieve signi? cant economies of scale, leading to low prices for cloud resources.In addition, public cloud portfolios employ techniques for resource optimization; however, these are transparent for end users and represent a potential threat to the security of the system.

If a cloud provider runs several data centers, for instance, resources can be assigned in such a way that the load is uniformly distributed between all centers. Some of the best-known examples of public cloud systems are Amazon Web Services (AWS) containing the Elastic Compute Cloud (EC2) and the Simple Storage Service (S3) which form an IaaS cloud offering and the Google App Engine with provides a PaaS to its customers.The customer relationship management (CRM) solution Salesforce. com is the best-known example in the area of SaaS cloud offerings.Private Cloud:A private cloud describes computer services delivered to a single organization. This model shares many of the characteristics of a traditional client-server architecture, while integrating features associated with other models cloud computing.

Like other cloud models, services are delivered on demand from a distributed infrastructure.Unlike the client-server computing model, users do not access a particular resource in a known location and there are minimal hardware and software requirements for their client computer. The cloud computing resources may be situated on or off-site, and they can either be managed in-house or by a third party. This model addresses the security and privacy concerns that are inherent in other cloud computing models. Private cloud computing systems emulate(to approach equality with) public cloud service offerings within an organization’s boundaries to make services accessible for one designated organization.Private cloud computing systems make use of virtualization solutions(Virtualization refers to technologies designed to provide a layer of abstraction between computer hardware systems and the software running on them.

By providing a logical view of computing resources, rather than a physical view, virtualization solutions make it possible to do a couple of very useful things . They allow you to run multiple operating systems simultaneously on a single machine) and focus on consolidating/uniting distributed IT services often within data centres belonging to the company.The chief advantage of these systems is that the enterprise retains full control over corporate data, security guidelines, and system performance. In contrast, private cloud offerings are usually not as large-scale as public cloud offerings resulting in worse economies of scale.Community CloudIn a community cloud, organizations with similar requirements share a cloud infrastructure. It may be understood as a generalization of a private cloud, a private cloud being an infrastructure which is only accessible by one certain organization.

A community cloud contains features of the public and private cloud models. Like a public cloud, the community cloud may contain software, data storage, and computing resources that are utilized by multiple organizations. Where this model differs from the public model is that the infrastructure is only utilized by a group of organizations that are known to each other. Similarly to a private cloud, these organizations are responsible for the operation of their own infrastructure.

The community cloud model can provide greater cost savings than the private cloud while offering some of its security features.This model is best suited for organizations that share common requirements such as security or legal compliance policies. It can be managed by the member organizations or by a third party provider. Hybrid Cloud A hybrid cloud service deployment model implements the required processes by combining the cloud services of different cloud computing systems, e. g. private and public cloud services.

The hybrid model is also suitable for enterprises in which the transition to full outsourcing has already been completed, for instance, to combine community cloud services with public loud services.The hybrid cloud computing model employs aspects of all of the other cloud models and it is the most common method of cloud deployment within a large organization. A company may use internal resources in a private cloud maintain total control over its proprietary data. It can then use a public cloud storage provider for backing up less sensitive information. At the same time, it might share computing resources with other organizations that have similar needs.

By combining the advantages of the other models , the hybrid model offers organizations the most flexibility.Services provided; SaaS Let's start at the highest level: software applications that are only available online fall into the "Software-as-a-Service" category, also known as "SaaS". The simplest example to understand is e-mail. If someone have an Internet provider, they will need a desktop or mobile application to access that e-mail, else host it on your own servers.

Not only would they have to run an inbound mail server using protocols such as IMAP (or POP for older systems), but they would also need to run an SMTP or outbound mail server.Then you'd have to configure their desktop or mobile e-mail application to connect to those servers, add appropriate levels of security, quota management, etc. For personal e-mail, people typically select from a variety of free web-based e-mail servers such as Google's Gmail, Yahoo! Mail, or Microsoft's Hotmail, rather than setting up all of the above through their provider. Not only is it "free" (supported through advertising), but users are freed from any additional server maintenance.

Another example of SaaS from Google includes their Apps product: office productivity software hosted and run by Google online.Because these applications run (and store their data online), users no longer need to worry about managing, saving, and backing up their files. Of course, now it becomes Google's responsibility to ensure that your data is safe and secure. Other examples of SaaS include Salesforce, IBM's NetSuite, and online games.

The easiest way to think of SaaS is like this: it's software, but do you download and install it on your computer, or do you access it using a web browser or mobile app? If the latter, you've likely got a SaaS cloud application on your hands.Note that you don't have control of these applications, short of user-specific application settings. You can't fix bugs in the code or make changes to it. This is the responsibility of the vendor.

To some, this lack of control is unacceptable. IaaS On the opposite end of the spectrum, we have "Infrastructure-as-a-Service," or "IaaS," where you outsource the hardware. In such cases, it's not just the computing power that you rent; it also includes power, cooling, and networking. Furthermore, it's more than likely that you'll need storage as well. Generally IaaS is this combination of compute and cloud storage.When you choose to run your applications at this cloud service level, you're responsible for everything on the stack that is required to operate above it.

By this, we mean necessities such as the operating system followed by additional (yet optional services) like database servers, web servers, load-balancing, monitoring, reporting, logging, middleware, etc. Furthermore, you're responsible for all hardware and software upgrades, patches, security fixes, and licensing, any of which can affect your application's software stack in a major way. PaaS In the middle, we have "Platform-as-a-Service," or "PaaS.At this service level, the vendor takes care of the underlying infrastructure for you, giving you only a platform with which to (build and) host your application(s). While this service level is the least known or discussed, some feel that this is the most powerful of the three.

Gone are the hardware concerns of IaaS, yet with PaaS, you control the application — it's your code — unlike as the SaaS level where you're dependent on the cloud software vendor.The only thing you have to worry about is your application itself. Systems like Google App Engine, Salesforce's Heroku and force. om, Microsoft Azure, and VMwares Cloud Foundry, all fall under the PaaS umbrella. Not only do these systems provision the hardware for you, but generally, you don't have to worry about those other necessary infrastructure components such as software upgrades, patches, and licensing. Interestingly, when you use PaaS platforms, the types of apps you create with them are SaaS applications.

Users of these apps don't control the code and have just outsourced them to the developer, a PaaS user. You can even generalize this by saying that a PaaS user is a SaaS developer, and to stretch this