1Introduction. What is cloud computing

According to 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 [1]

A complementary definition is provided by the RAD Lab at the University of Berkeley [2]. The authors consider that cloud computing refers to both the applications delivered as services over the Internet and the hardware and systems software in the datacenters that provide those services.

Basically, cloud computing is a distributed computing paradigm that focuses on providing a wide range of users with distributed access to scalable, virtualized hardware and/or software infrastructure over Internet.

Cloud computing refers to the delivery of computing resources over the Internet. It consists of a collection of technologies that ensure, typically in the form of a service offered by a provider to the customer, a consistency storage or high performance data processing capabilities through the use of hardware/software distributed and virtualized network. The cloud provider can both own and house the hardware and software necessary to run the home or business applications.

Cloud computing is a complex and rapidly evolving concept. Cloud computing may be regarded as a distributed system that offers computing services via a computer communication network, usually the Internet. Resources in the cloud are transparent to the users, and the users do not need to know their exact location. They can be shared among a large number of users, who should be able to access applications and data from anywhere at anytime. A simple example of cloud computing is webmail. The webmail provider maintains the server space and provides access; the webmail user just plugs a web address into a browser and submits user information to access an account. The software and storage for her account does not exist on her computer – it’s on the service’s computer cloud.

The main objective of cloud computing is to make better use of these distributed resources and solve large-scale computation problems. The word "cloud" is a metaphor for describing the Web as a space where computing has been preinstalled and exists as a service [1]. Operating systems, applications, storage, data, and processing capacity all exist on the Web, ready to be shared among users.

The use of cloud computing entails that a user can benefit from data processing resources and storage that a company offers her as a service over the Internet, instead of using only the hardware and software of her computer or servers located within the corporate network. Generally, these services are offered in a completely transparent manner; the platforms hide the complexity and details of the underlying infrastructure from users and applications.

In the cloud computing model, computing power, software, storage services, and platforms are delivered on demand to external customers over the Internet. Potentially, all kind of applications from word processing software to customized computer programs could work on a cloud computing system. The access that this technology provides to resources and services can be scaled up or down to meet demand. Cloud computing providers typically charge customers on a pay-per-use model.

While the benefits of cloud computing are many, its disadvantages are just as numerous. If used properly, cloud computing is a technology with great opportunity for businesses of all sizes.

The major advantages of cloud computing are on-demand self-service, ubiquitous network access, location-independent resource pooling, and transference of risk. Additional advantages include lower running costs, ease of utilization, quality of service, and reliability, no large scale infrastructure investment, better agility and scalability and better peak demand management. For example, cloud computing can focus the power of thousands of computers on one problem, enabling researchers to do their work faster than ever.

Nowadays, the greatest challenges with cloud computing are privacy and security. Other disadvantages are the lack or limited control, the implicit dependency on the provider also known as “vendor lock-in“. It is difficult to migrate from a provider to another once a user have rolled with it

Vivek Kundra, Federal CIO and formerly technology chief of District of Columbia said: "The cloud will do for government what the Internet did in the '90s," [3]