Various definitions and interpretations of “clouds” and /
or “cloud computing” exist.
With particular respect to the various usage scopes
the term is employed to, we will try to give a representative (as opposed to
complete) set of
definitions as recommendation towards
future usage in
the cloud computing related
research space. This report does not claim completeness with this respect, as
it does not introduce
a new terminology,
but tries to capture an
abstract term in
a way that
best represents the technological aspects and issues related to it.
Cloud computing is a marketing term for technologies that
provide computation, software, data access, and storage services that do not
require end-user knowledge of the physical location and configuration of the
system that delivers the services. A parallel to this concept can be drawn with
the electricity grid, wherein end-users consume power without needing to
understand the component devices or infrastructure required to provide the
service.
Also, it is a delivery model for IT, the services based on
Internet protocols, and it typically involves provisioning of dynamically scalable
and often virtualized resources. It is a byproduct and consequence of the
ease-of-access to remote computing sites provided by the Internet. This may
take the form of web-based tools or applications that users can access and use
through a web browser as if the programs were installed locally on their own
computers.
A. Terminology
In its broadest form, we can
define
a 'cloud' is
an elastic execution
environment of resources
involving multiple
stakeholders and
providing a metered
service at multiple
granularities for a specified level of quality (of service). Cloud computing is a
marketing term for technologies that provide computation, software, data
access, and storage services that do not require end-user knowledge of the
physical location and configuration of the system that delivers the services.
In other
words, clouds as we understand
them in the
context of this document
are primarily platforms that
allow execution in
various forms.
Cloud computing is the delivery of computing as a service rather
than a product, whereby shared resources, software, and information are
provided to computers and other devices as a metered service over a network
(typically the Internet).
Cloud
computing is a marketing term for technologies that provide computation,
software, data access, and storage services that do not require end-user
knowledge of the physical location and configuration of the system that
delivers the services.
It is a technology that uses the internet and central remote servers
to maintain data and applications. It allows consumers and businesses to use
applications without installation and access their personal files at any
computer with internet access. This technology allows for much more efficient
computing by centralizing storage, memory, processing and bandwidth.
B. LAYERS
Once an
internet protocol connection is established among several computers, it is
possible to share services within any one of the following layers.
CLIENT
A cloud client
consists of computer hardware and/or computer software that relies on cloud computing
for application delivery and that is in essence useless without it. Examples
include some computers (example: Chromebooks), phones (example: Google Nexus
series) and other devices, operating systems (example: Google Chrome OS), and
browsers.
APPLICATION
Cloud application
services or "Software as a Service (SaaS)" deliver software as a
service over the Internet, eliminating the need to install and run the
application on the customer's own computers and simplifying maintenance and
support.
A cloud application
is software provided as a service. It consists of the following: a package of
interrelated tasks, the definition of these tasks, and the configuration files,
which contain dynamic information about tasks at run-time. Cloud tasks provide
compute, storage, communication and management capabilities. Tasks can be
cloned into multiple virtual machines, and are accessible through application
programmable interfaces (API).
PLATFORM
Cloud platform services, also known as platform as a service
(PaaS), deliver a computing platform and/or solution stack as a service, often
consuming cloud infrastructure and sustaining cloud applications. It
facilitates deployment of applications without the cost and complexity of
buying and managing the underlying hardware and software layers. Cloud computing is becoming a major change in
our industry, and one of the most important parts of this change is the shift
of cloud platforms.
INFRASTRUCTURE
Cloud infrastructure services, also known as
"infrastructure as a service" (IaaS), deliver computer infrastructure
– typically a platform virtualization environment as a service, along with raw
(block) storage and networking. Rather than purchasing servers, software,
data-center space or network equipment, clients instead buy those resources as
a fully outsourced service. Suppliers typically bill such services on a utility
computing basis; the amount of resources consumed (and therefore the cost) will
typically reflect the level of activity.
SERVERS
The servers layer consists of computer hardware and/or computer
software products that are specifically designed for the delivery of cloud
services, including multi-core processors, cloud-specific operating systems and
combined offerings.
C. Deployment Models
PUBLIC CLOUD
A public cloud is one based on the
standard cloud computing model, in which a service provider makes resources,
such as applications and storage, available to the general public over the
Internet. Public cloud services may be free or offered on a pay-per-usage
model.
COMMUNITY CLOUD
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.
HYBRID CLOUD
Hybrid cloud is a composition of
two or more clouds (private, community, or public) that remain unique entities
but are bound together, offering the benefits of multiple deployment models.
PRIVATE CLOUD
Private cloud is infrastructure
operated solely for a single organization, whether managed internally or by a
third-party and hosted internally or externally.
D. Example
A simple
example of cloud computing is Yahoo email, Gmail, or Hotmail etc. You don’t
need software or a server to use them. All a consumer would need is just an
internet connection and you can start sending emails. The server and email
management software is all on the cloud (internet) and is totally managed by
the cloud service provider Yahoo, Google etc. The consumer gets to use the
software alone and enjoy the benefits.
Cloud
computing is broken down into three segments: "application" "storage" and "connectivity." Each segment
serves a different purpose and offers different products for businesses and
individuals around the world.
I. Cloud Computing Architecture
A.
Introduction
The Cloud Computing Architecture of a
cloud solution is the structure of the system, which comprises on-premise and
cloud resources, services, middleware, and software components, geo-location,
the externally visible properties of those, and the relationships between them.
The term also refers to documentation of a system's cloud computing
architecture. Documenting facilitates communication between stakeholders,
documents early decisions about high-level design, and allows reuse of design
components and patterns between projects.
B.
Major building blocks
Reference Architecture
·
Basis
for documentation, project communication
·
Stakeholder
and team communication
·
Payment,
contract, and cost models
Technical Architecture
·
Structuring
according to XaaS Stack
·
Adopting
Cloud Platform paradigms
·
Structuring
cloud services and cloud components
·
Showing
relationships and external endpoints
·
Middleware
and communication
·
Management
and security
Deployment Operation Architecture
·
Geo-location
check (Legal issues, export control)
·
Operation
and monitoring.
C.
Examples
There
are plenty of
examples of applications
that could utilize the
power of Cloud
Architectures. These range from
back-office bulk processing
systems to web applications. Some are listed below:
Processing Pipelines
·
Document
processing pipelines convert hundreds of
thousands of documents
from MS Word to PDF,
OCR millions of pages/images into raw searchable text
·
Image
processing pipelines –
create thumbnails or low
resolution variants of
an image, resize millions of images
·
Video
transcoding pipelines
– transcode AVI to
MPEG movies
·
Indexing – create an index of web crawl data
·
Data
mining – perform
search over millions
of records
Batch Processing Systems
·
Back-office
applications (in financial,
insurance or retail
sectors)
·
Log
analysis – analyze
and generate daily/weekly reports
·
Nightly
builds – perform
nightly automated builds
of source code
repository every night
in parallel
·
Automated Unit Testing and Deployment Testing –
Test and deploy
and perform automated
unit testing (functional, load,
quality) on different deployment configurations every
night
Websites
·
Websites
that ―sleep‖ at
night and auto-scale during
the day
·
Instant Websites – websites for conferences or events (Super Bowl, sports tournaments)
·
Promotion websites
·
―Seasonal
Websites‖ - websites
that only run during
the tax
season or the
holiday season.