Cloud basis of cloud computing is simply

Cloud computing is quickly becoming one of the most important concepts in data management. The concept itself is relatively straightforward. A user moves data to the “cloud” and then accesses it when needed. The concept of a “cloud” comes from the habit of drawing the Internet as a fluffy cloud in network diagrams. The cloud therefore refers to many types of data storage done over the Internet. A similar concept was formulated by John McCarthy in the 1960s: he proposed a time-sharing computing server that served multiple users. 20 years ago, when PCs came into widespread use, information was widely stored in local resources.
At the current stage, cloud computing is still evolving and there exists no widely accepted definition, but a working definition is as follows:
Cloud computing consists of a set of network enabled services, providing personalized, inexpensive computing platforms, which could be accessed in a simple way.
The basis of cloud computing is simply a set of services that an organization provides to a consumer with the ability to tailor their service requirements based on customer demand. Usually cloud computing services are offered by a third party who owns the necessary infrastructure. There are two types of basic cloud models, each with several sub-models. The first is called the service model and the other is the deployment model.
The service model is usually classified into three services: Infrastructure as a Service, Platform as a Service, and Software as a Service.
Infrastructure as a service: The defining concept that runs with this model is virtualization. Virtualization is the process of creating a virtual environment of a computer platform as opposed to the actual version. Users have a virtual desktop and consume resources supplied by a cloud service provider. Examples: AmazonS3, Amazon EBS etc.
Platform as a service: It refers to the platform providing the runtime environment. A platform service is an environment where software can be developed, then tested and even deployed. Often an entire piece of software can be made on a platform service. This service model is mainly used by administrators, deployers, developers, and testers. Examples: Google App Engine, Microsoft Azure, etc.
Software as a service: Customers consume the software application services over a network according to an on-demand basis. For example, Flickr is a software service owned by Yahoo. Yahoo is the provider and the users are consumers. The most familiar and widespread method of cloud computing is by the software as a service model.
There are four primary cloud computing deployment models.
Public cloud: This model allows an environment to be publicly accessible. Public cloud runs off the premise that various techniques and enterprises can easily be used to deliver the services to users by taking it from a third party.
Private cloud: This model refers to an environment which is managed by a company to provide control over cloud infrastructure and services. Private clouds are built specifically to provide the services in an organization a sense of security and privacy.
Hybrid cloud: This model combines public and private cloud models. A cloud computing environment is managed by a third party but some dedicated resources are privately used only by an organization.
Community model: It allows a cloud computing environment which is managed by a number of related companies.
Cloud systems have several advantages as well as challenges. Cloud computing has many opportunities that will enable much reduced developing time for different types of applications and services. Cloud computing has certain characteristics that differentiate it from non-cloud computing environments. It’s infinitely scalable (at least insofar as computing resources allows), cost saving, utilizes a higher amount of resources, is typically faster to distribute data, easier to back up, and is location independent.
There are five essential characteristics that all cloud computing must have, according to NIST, the National Institute of Standards and Technology.
“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. 
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 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.”
While reducing IT costs is one of the main reasons for organizations adopting cloud computing, there are also other reasons that encourage organizations to adopt it. Cloud computing switches where the resource location is to reduce any costs associated with having too many resources, not using resources to an adequate degree, and having too few resources in general. In addition, it reduces the time required to allocate resources efficiently, which allows applications to scale their utilization as the workload demands. A common example are university websites, which have to be able to handle their peak load times during certain hours, such as when students access their exam scores. In traditional environments, over-provisioning can rarely be avoided. The costs of over-provisioning and under-utilization are easily figured out. However, the costs of under-provisioning are more difficult to figure out because it can lead to a loss of revenue and users.
Cloud computing has many reasons that are attractive for adopting it, but there is still a long way to go for cloud computing to completely prove itself according to many organization’s trust. There are many factors explaining why an organization may be wary of immediately adopting cloud computing.
Security issues have been the most important reason in why cloud computing isn’t universally accepted. Security issues that are possible in cloud computing are: availability, confidentiality, data access, privacy, recovery, etc. Solutions to these security issues are resolved through a variety of different methods, such as cryptography.
It’s not particularly easy to move some applications from an enterprise to various cloud computing environments or even sometimes within other cloud computing platforms primarily because different cloud providers are supported by different application architectures that are also different from other application architectures.
Cloud computing services rely fully on the availability of the Internet that works as a carrier in between the consumer and an Internet service provider.
In business, down time is a very common concern because every second of down time is time which important applications can’t be performed. Scalability is by far the best solution to maintaining performance in most cloud computing environments. However, one of the main challenges of a cloud computing environment is vertical scalability because in a cloud computing environment, scalability isn’t only restricted to horizontal scaling. Horizontal scaling goes through the addition of more devices or machines to handle the increased demand. Vertical scaling, however, is the ability to scale the size of a data server. Vertical scaling can usually handle most sudden, unexpected peaks in application demand on cloud infrastructures. Traditionally, most businesses have been best served by using vertical scaling methods as much as they possibly can, and then scaling other parts of their applications horizontally. But in a cloud computing environment the scenario is changed somewhat and most businesses are usually served by using horizontal scaling because the most common operating systems do not support changes that are made on-the-fly on the  CPU to support this vertical scaling. Vertical scaling typically involves making many drastic changes to a server’s core configuration. Therefore, it’s better usually to perform such changes by themselves. When horizontal scaling is combined with vertical scaling, it ends up with an infrastructure that makes the best use of computing resources.