Cloud Computing: MD Abul Kalam Azad
Cloud Computing: MD Abul Kalam Azad
Computing
Md Abul Kalam Azad
Associate Professor
2 Definition of Cloud Computing
Cloud computing refers to applications and services that run on a distributed network
using virtualized resources and accessed by common Internet protocols and networking
standards. It is distinguished by the notion that resources are virtual and limitless and that
details of the physical systems on which software runs are abstracted from the user.
2 different classes of clouds:
The deployment model tells you where the cloud is located and for what purpose. Public, private,
community, and hybrid clouds are deployment models.
Service models describe the type of service that the service provider is offering. Software as a
Service, Platform as a Service, and Infrastructure as a Servicethe SPI model.
Cloud computing makes the long-held dream of utility computing possible with a pay-as-
you-go, infinitely scalable, universally available system. With cloud computing, you can
start very small and become big very fast.
Abstraction: Cloud computing abstracts the details of system implementation from users
and developers. Applications run on physical systems that aren't specified, data is stored in
locations that are unknown, administration of systems is outsourced to others, and access
by users is ubiquitous.
Virtualization: Cloud computing virtualizes systems by pooling and sharing resources.
Systems and storage can be provisioned as needed from a centralized infrastructure, costs
are assessed on a metered basis, multi-tenancy is enabled, and resources are scalable with
agility.
The sourcing dimension addresses the deliverer of the service. What the Cloud Cube Model is meant to
show is that the traditional notion of a network boundary being the network's firewall no longer applies
in cloud computing.
Fundamentals of Cloud Computing
8 Deployment models
Public cloud: The public cloud infrastructure is available for public use alternatively for a
large industry group and is owned by an organization selling cloud services.
Private cloud: The private cloud infrastructure is operated for the exclusive use of an
organization. The cloud may be managed by that organization or a third party. Private
clouds may be either on- or off-premises.
Hybrid cloud: A hybrid cloud combines multiple clouds (private, community of public)
where those clouds retain their unique identities, but are bound together as a unit. A hybrid
cloud may offer standardized or proprietary access to data and applications, as well as
application portability.
Community cloud: A community cloud is one where the cloud has been organized to serve
a common function or purpose.
On Amazon EC2, considered the classic IaaS example, a client would provision a
computer in the form of a virtual machine image, provision storage, and then go on to
install the operating system and applications onto that virtual system.
Amazon has a number of operating systems and some enterprise applications that they
offer on a rental basis to customers in the form of a number of canned images, but
customers are free to install whatever software they want to run.
Amazon's responsibilities as expressed in its Service Level Agreement (SLA) contractually
obligates Amazon to provide a level of performance commensurate with the type of
resource chosen.
A PaaS service adds integration features, middleware, and other orchestration and
choreography services to the IaaS model. Examples of PaaS services are:
Force.com
GoGrid CloudCenter
Google AppEngine
Windows Azure Platform
When a cloud computing vendor offers software running in the cloud with use of the
application on a pay-as-you-go model, it is referred to as SaaS. With SaaS, the customer
uses the application as needed and is not responsible for the installation of the application,
its maintenance, or its upkeep. A good example of an SaaS offering is an online
accounting package.
On-demand self-service: A client can provision computer resources without the need for
interaction with cloud service provider personnel.
Broad network access: Access to resources in the cloud is available over the network using
standard methods in a manner that provides platform-independent access to clients of all
types.
This includes a mixture of heterogeneous operating systems, and thick and thin platforms such as
laptops, mobile phones, and PDA.
Resource pooling: A cloud service provider creates resources that are pooled together in a
system that supports multi-tenant usage.
Physical and virtual systems are dynamically allocated or reallocated as needed. Intrinsic in this
concept of pooling is the idea of abstraction that hides the location of resources such as virtual
machines, processing, memory, storage, and network bandwidth and connectivity.
Cloud does not give the necessary customization as you might want.
All cloud computing applications suffer from the inherent latency that is intrinsic in their
WAN connectivity.
Cloud computing is a stateless system, as is the Internet in general. The lack of state allows
messages to travel over different routes and for data to arrive out of sequence, and many
other characteristics allow the communication to succeed even when the medium is faulty.
When your data travels over and rests on systems that are no longer under your control,
you have increased risk due to the interception and malfeasance of others. You can't count
on a cloud provider maintaining your privacy in the face of government actions.
The laws of most regulatory agencies place the entire burden on the client. So when it
comes to compliance, cloud computing is still the Wild West of computing.
Applications built in the cloud often have the property of being built from a collection of
components, a feature referred to as composability. A composable system uses components
to assemble services that can be tailored for a specific purpose using standard parts. A
composable component must be:
Modular: It is a self-contained and independent unit that is cooperative, reusable, and replaceable.
Stateless: A transaction is executed without regard to other transactions or requests.
Although cloud computing doesn't require that hardware and software be composable, it is
a highly desirable characteristic from a developer or user's standpoint, because it makes
system design easier to implement and solutions more portable and interoperable.
A PaaS or SaaS service provider gets the same benefits from a composable system that a user
doesthese things, among others:
Easier to assemble systems
Cheaper system development
More reliable operation
A larger pool of qualified developers
A logical design methodology
The essence of a service oriented design is that services are constructed from a set of modules
using standard communications and service interfaces. An example of a set of widely used
standards describes the services themselves in terms of the Web Services Description Language
(WSDL), data exchange between services using some form of XML, and the communications
between the services using the SOAP protocol.
Most large Infrastructure as a Service (IaaS) providers rely on virtual machine technology
to deliver servers that can run applications.
Virtual servers described in terms of a machine image or instance have characteristics that
often can be described in terms of real servers delivering a certain number of
microprocessor (CPU) cycles, memory access, and network bandwidth to customers.
Virtual machines are containers that are assigned specific resources. The software that runs
in the virtual machines is what defines the utility of the cloud computing system.
The VMM component is the Virtual Machine Monitor, also called a hypervisor. This is the
low-level software that allows different operating systems to run in their own memory
space and manages I/O for the virtual machines.
The notion of a virtual server presents to an application developer a new way of thinking
about and programming applications.
For example, when a programmer is creating software that requires several different tasks
to be performed in parallel,
He might write an application that creates additional threads of execution that must be managed
by the application.
When a developer creates an application that uses a cloud service, the developer can attach to the
appropriate service(s) and allow the application itself to scale the program execution.
Thus, an application such as a three-dimensional rendering that might take a long time for a single
server to accomplish can be scaled in the cloud to many servers at once for a short period of time,
accomplishing the task at a similar or lower price but at a much faster rate.
A platform in the cloud is a software layer that is used to create higher levels of service.
Three of the major examples of PaaS:
Salesforce.com's Force.com Platform
Windows Azure Platform
Google Apps and the Google AppEngine
These three services offer all the hosted hardware and software needed to build and deploy
Web applications or services that are custom built by the developer within the context and
range of capabilities that the platform allows.
Platforms represent nearly the full cloud software stack, missing only the presentation
layer that represents the user interface.
Platforms often come replete with tools and utilities to aid in application design and
deployment.
Depending upon the vendor, you may find developer tools for team collaboration, testing
tools, instrumentation for measuring program performance and attributes, versioning,
database and Web service integration, and storage tools.
Most platforms begin by establishing a developer community to support the work done in
the environment.
Just as a virtual appliance may expose itself to users through an API, so too an application
built in the cloud using a platform service would encapsulate the service through its own
API. Users would then interact with the platform, consuming services through that API,
leaving the platform to manage and scale the service appropriately.
The Application Programming Interface (API) is one of the key differentiators separating cloud computing
from the older models of Internet applications, because it is the means for instantiating resources needed to
support applications.
An API can control data flow, communications, and other important aspects of the cloud application.
Applications such as a Web server or database server that can run on a virtual machine
image are referred to as virtual appliances.
Virtual appliances are software installed on virtual serversapplication modules that are
meant to run a particular machine instance or image type.
A virtual appliance is a platform instance. Therefore, virtual appliances occupy the middle
of the cloud computing stack.
Virtual appliances are far easier to install and run than an application that you must set up
yourself. However, virtual appliances are also much larger than the application themselves
would be because they are usually bundled with the operating system on which they are
meant to run.
Cloud computing arises from services available over the Internet communicating using the
standard Internet protocol suite underpinned by the HTTP and HTTPS transfer protocols.
In order to engage in interprocess communication (IPC) processes, many client/server
protocols have been applied to distributed networking over the years.
Various forms of RPC (Remote Procedure Call) implementations (including DCOM, Java
RMI, and CORBA) attempt to solve the problem of engaging services and managing
transactions over what is essentially a stateless network.
The first of the truly Web-centric RPC technologies was XML-RPC, which uses platform-
independent XML data to encode program calls that are transported over HTTP, the
networking transport to which nearly everyone is connected.
The most widely used message-passing standard at the moment is the Simple Object
Access Protocol (SOAP), which essentially replaces XML-RPC.
SOAP uses XML for its messages and uses RPC and HTTP for message passing. SOAP
forms the basis for most of the Web services stacks in use today.
If you examine the XML file used in a SOAP transaction, you find that it contains a
message and the instructions on how to use the message.
The message has a set of rules that are translated into application instances and datatypes,
and it defines the methods that must be used to initiate procedure calls and then return a
response.
Clients can connect to a cloud service in a number of different ways. These are the two
most common means:
A Web browser
A proprietary application
These applications can be running on a server, a PC, a mobile device, or a cell phone.
They are exchanging data over an inherently insecure and transient medium.
There are three basic methods for securely connecting over a connection:
Use a secure protocol to transfer data such as SSL (HTTPS), FTPS, or IPsec, or connect using a
secure shell such as SSH to connect a client to the cloud.
Create a virtual connection using a virtual private network (VPN), or with a remote data transfer
protocol such as Microsoft RDP or Citrix ICA, where the data is protected by a tunneling
mechanism.
Encrypt the data so that even if the data is intercepted or sniffed, the data will not be meaningful.
The best client connections use two or more of these techniques to communicate with the
cloud.
In current browser technology, clients rely on the Web service to make available secure
connections, but in the future, it is likely that cloud clients will be hardened so the client
itself enforces a secure connection.
THANKS