  Cloud Computing offers virtualized computing, storage, and networking
resources, over the Internet, to organizations and individual users in a
completely dynamic way. These cloud resources are cheaper, easier to manage,
and more elastic than sets of local, physical, ones. This encourages customers
to outsource their applications and services to the cloud. The migration of
both data and applications outside the administrative domain of customers into
a shared environment imposes transversal, functional problems across distinct
platforms and technologies. This article provides a contemporary discussion of
the most relevant functional problems associated with the current evolution of
Cloud Computing, mainly from the network perspective. The paper also gives a
concise description of Cloud Computing concepts and technologies. It starts
with a brief history about cloud computing, tracing its roots. Then,
architectural models of cloud services are described, and the most relevant
products for Cloud Computing are briefly discussed along with a comprehensive
literature review. The paper highlights and analyzes the most pertinent and
practical network issues of relevance to the provision of high-assurance cloud
services through the Internet, including security. Finally, trends and future
research directions are also presented.
