KEMBAR78
Notes 2023 | PDF | Cloud Computing | Virtual Machine
0% found this document useful (0 votes)
24 views43 pages

Notes 2023

Amdahl's law describes the theoretical speedup of a system when only part of the system is improved. It states that the maximum speedup is limited by the fraction of the workload that is not improved. HDFS allocates blocks and chunks to files based on their size to determine the number of blocks and chunks needed. Scheduling in distributed systems can be preemptive, non-preemptive, or with deadlines where tasks must complete within a committed time.

Uploaded by

selvabharathi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views43 pages

Notes 2023

Amdahl's law describes the theoretical speedup of a system when only part of the system is improved. It states that the maximum speedup is limited by the fraction of the workload that is not improved. HDFS allocates blocks and chunks to files based on their size to determine the number of blocks and chunks needed. Scheduling in distributed systems can be preemptive, non-preemptive, or with deadlines where tasks must complete within a committed time.

Uploaded by

selvabharathi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 43

Notes

Key Concepts

Topic Explanation Comments


Amdahls Law 1. Smax is the maximum possible improvement of the
overall system. It is expressed as a decimal
greater than 1. If the operation is improved to be
done in half the time, Smax = 2. Higher means a
greater improvement.

2. p is the part of the system to be improved,


expressed as a number between 0-1. If the part is
45% of the system, p = 0.45.

3. s is the improvement factor of p, expressed by


how many times faster p can be done. If it can be
done in 1/3rd the time, then s = 3.

HDFS Chunk #Blocks = File Size/ Block size Total Blocks and Total chunks can be used to derive the
Allocation #Chunks = File Size/ Chunk Size block & chunks required in a DFS system like HDFS

Scheduling BEL Premptive Means that a lease can be stopped and resumed
BEL Non Premptive Lease cannot be stopped and resumed
BEL with Deadlines Lease Can be stopped and resumed, but once lease is
started it should be completed in the time committed.
AR Advanced reservation, should start at the pre agreed time
or not at all

Lecture 1 Notes: Networked and Distributed Computing


(A) Networks and Distributed System (Source Internet and wikipedia)

Network computing is a term which refers to computers or nodes working together over a network.

A computer network, or simply a network, is collection of computers and other hardware devices
by links which allows sharing of resources and information. Data is transferred in the form of
packets. The connections between nodes can be established using either cable media or wireless
media. The best-known computer network is the Internet.

Although it may sound strange to some people, neither the Internet nor the World Wide Web is a
computer network. The quick answer is: the Internet is not a single network but a network of
networks and the Web is a distributed system that runs on top of the Internet.

Distributed System is a collection of independent computers that appears to its users as a single
system. Examples: Internet, Intranets etc

Objectives of distributed system:

1) Resource sharing
2) Make a illusion that there is single system even though its distributed in nature

3) Open ended

4) Scalability

There is considerable confusion in the literature between a computer network and a distributed
system. The key distinction is that in a distributed system, a collection of independent computers
appears to its users as a single coherent system. Usually, it has a single model or paradigm that it
presents to the users. Often a layer of software on top of the operating system, called middleware,
is responsible for implementing this model. A well-known example of a distributed system is the
World Wide Web, in which everything looks like a document (Web page).

(B) Computing paradigm (Source Internet and Wikipedia)

(B1) Parallel Computing

Parallel computing is a form of computation in which many calculations are carried out
simultaneously, operating on the principle that large problems can often be divided into smaller
ones, which are then solved concurrently ("in parallel").
Parallel computers can be roughly classified according to the level at which the hardware supports
parallelism, with multi-core and multi-processor computers having multiple processing elements
within a single machine, while clusters, MPPs, and grids use multiple computers to work on the
same task. Specialized parallel computer architectures are sometimes used alongside traditional
processors, for accelerating specific tasks.
Classes of parallel computers:

Parallel computers can be roughly classified according to the level at which the hardware supports
parallelism. This classification is broadly analogous to the distance between basic computing
nodes. These are not mutually exclusive; for example, clusters of symmetric multiprocessors are
relatively common.

1) Multi-core computing

A multi-core processor is a processor that includes multiple execution units ("cores") on


the same chip.

2) Symmetric multiprocessing

A symmetric multiprocessor (SMP) is a computer system with multiple identical processors


that share memory and connect via a bus. Bus contention prevents bus architectures from
scaling. As a result, SMPs generally do not comprise more than 32 processors.

3) Distributed computing

A distributed computer (also known as a distributed memory multiprocessor) is a


distributed memory computer system in which the processing elements are connected by a
network. Distributed computers are highly scalable.

4) Cluster computing

A cluster is a group of loosely coupled computers that work together closely, so that in
some respects they can be regarded as a single computer. Clusters are composed of multiple
standalone machines connected by a network. While machines in a cluster do not have to
be symmetric, load balancing is more difficult if they are not.

5) Massive parallel processing

A massively parallel processor (MPP) is a single computer with many networked


processors. MPPs have many of the same characteristics as clusters, but MPPs have
specialized interconnect networks (whereas clusters use commodity hardware for
networking). MPPs also tend to be larger than clusters, typically having "far more" than
100 processors. In a MPP, "each CPU contains its own memory and copy of the operating
system and application. Each subsystem communicates with the others via a high-speed
interconnect."

6) Grid computing

Grid computing is the most distributed form of parallel computing. It makes use of
computers communicating over the Internet to work on a given problem. Because of the
low bandwidth and extremely high latency available on the Internet, distributed computing
typically deals only with embarrassingly parallel problems. Many distributed computing
applications have been created, of which SETI@home and Folding@home are the best-
known examples.
(B2) Ubiquitous computing (Pervasive Computing)

Ubiquitous computing is a concept in software engineering and computer science where computing
is made to appear everywhere and anywhere. In contrast to desktop computing, ubiquitous
computing can occur using any device, in any location, and in any format. A user interacts with the
computer, which can exist in many different forms, including laptop computers, tablets and
terminals in everyday objects such as a fridge or a pair of glasses. The underlying technologies to
support ubiquitous computing include Internet, advanced middleware, operating system, mobile
code, sensors, microprocessors, new I/O and user interfaces, networks, mobile protocols, location
and positioning and new materials.
This new paradigm is also described as pervasive computing. Pervasive computing goes beyond
the realm of personal computers: it is the idea that almost any device, from clothing to tools to
appliances to cars to homes to the human body to your coffee mug, can be imbedded with chips to
connect the device to an infinite network of other devices. The goal of pervasive computing, which
combines current network technologies with wireless computing, voice recognition, Internet
capability and artificial intelligence, is to create an environment where the connectivity of devices
is embedded in such a way that the connectivity is unobtrusive and always available.

An example of a practical application of pervasive computing is the replacement of old electric


meters with smart meters. In the past, electric meters had to be manually read by a company
representative. Smart meters report usage in real-time over the Internet. They will also notify the
power company when there is an outage, reset thermostats according to the homeowner’s
directives, send messages to display units in the home and regulate the water heater.

(B3) Mobile Computing

Mobile computing is human–computer interaction by which a computer is expected to be


transported during normal usage. Mobile computing involves mobile communication, mobile
hardware, and mobile software. Communication issues include ad hoc and infrastructure networks
as well as communication properties, protocols, data formats and concrete technologies. Hardware
includes mobile devices or device components. Mobile software deals with the characteristics and
requirements of mobile applications.

Mobile Computing is "taking a computer and all necessary files and software out into the field".[1]
Mobile computing is any type of computing which use Internet or intranet and respective
communications links, as WAN, LAN, WLAN etc. Mobile computers may form a wireless
personal network.

Different classes of mobile computing items:


1) Portable computers, compacted lightweight units including a full character set keyboard and
primarily intended as hosts for software that may be parameterized, as laptops, notebooks,
notepads, etc.
2) Mobile phones including a restricted key set primarily intended but not restricted to for vocal
communications, as cell phones, smart phones etc.

3) Wearable computers mostly limited to functional keys and primarily intended as


incorporation of software agents, as watches, wristbands, necklaces, keyless implants, etc.

Limitations of mobile computing:

1) Range & Bandwidth


Mobile Internet access is generally slower than direct cable connections, using technologies
such as GPRS and EDGE, and more recently HSDPA and HSUPA 3G and 4G networks. These
networks are usually available within range of commercial cell phone towers. Higher speed
wireless LANs are inexpensive but have very limited range.

2) Security standards

When working mobile, one is dependent on public networks, requiring careful use of VPN.
Security is a major concern while concerning the mobile computing standards on the fleet. One
can easily attack the VPN through a huge number of networks interconnected through the line.

3) Power consumption: When a power outlet or portable generator is not available, mobile
computers must rely entirely on battery power. Combined with the compact size of many
mobile devices, this often means unusually expensive batteries must be used to obtain the
necessary battery life.

4) Transmission interferences

Weather, terrain, and the range from the nearest signal point can all interfere with signal
reception. Reception in tunnels, some buildings, and rural areas is often poor.

5) Potential health hazards

People who use mobile devices while driving are often distracted from driving and are thus
assumed more likely to be involved in traffic accidents(While this may seem obvious, there is
considerable discussion about whether banning mobile device use while driving reduces
accidents or not.) Cell phones may interfere with sensitive medical devices. Questions
concerning mobile phone radiation and health have been raised.

(B4) Autonomic Computing


Autonomic computing refers to the self-managing characteristics of distributed computing
resources, adapting to unpredictable changes while hiding intrinsic complexity to operators and
users. Started by IBM in 2001, this initiative ultimately aims to develop computer systems capable
of self-management, to overcome the rapidly growing complexity of computing systems
management, and to reduce the barrier that complexity poses to further growth.

The system makes decisions on its own, using high-level policies; it will constantly check and
optimize its status and automatically adapt itself to changing conditions. An autonomic computing
framework is composed of autonomic components (AC) interacting with each other. An AC can
be modeled in terms of two main control loops (local and global) with sensors (for self-monitoring),
effectors (for self-adjustment), knowledge and planner/adapter for exploiting policies based on self-
and environment awareness.

Characteristics

Even though the purpose and thus the behaviour of autonomic systems vary from system to system,
every autonomic system should be able to exhibit a minimum set of properties to achieve its
purpose:

1) Automatic
This essentially means being able to self-control its internal functions and operations. As
such, an autonomic system must be self-contained and able to start-up and operate without
any manual intervention or external help. Again, the knowledge required to bootstrap the
system (Know-how) must be inherent to the system.

2) Adaptive An autonomic system must be able to change its operation (i.e., its configuration,
state and functions). This will allow the system to cope with temporal and spatial changes
in its operational context either long term (environment customization/optimization) or
short term (exceptional conditions such as malicious attacks, faults, etc.).

3) Aware

An autonomic system must be able to monitor (sense) its operational context as well as its
internal state in order to be able to assess if its current operation serves its purpose.
Awareness will control adaptation of its operational behavior in response to context or state
changes.

(B5) Utility Computing

In 1960s John McCarthy talking about Computers of future proposed that computers can be used
as public utility services like electricity, public phone etc. It’s nothing but organizing computing
resources like storage, processors etc as a metered service where user is charged only for the amount
of service that is being utilized. The advantage is that no or very minimal cost is needed to acquire
the resources where resources are essentially rented.

(C ) Distributed system (Source Distributed System Tanenbaum)

A distributed system is a collection of independent computers that appear to the users of the system
as a single computer.

Advantages of distributed systems over Centralized systems

1) Economics : Microprocessors offer a better price/performance than mainframes

2) Speed : A distributed system may have more total computing power than a mainframe

3) Inherent distribution : Some applications involve spatially separated machines

4) Reliability : If one machine crashes, the system as a whole can still survive

5) Incremental growth : Computing power can be added in small increments

Advantages of distributed systems over personal computers

1) Data Sharing : Allow many users access to a common data base

2) Device Sharing : Allow many users to share expensive peripherals like printer

3) Communication : Make human to human communication easier for example email

4) Flexibility : Spread the workload over the available machines in the most cost effective way

(C1) System Architectures for distributed systems


Design considerations for distributed systems:

1) Responsiveness - how quickly does the system respond to requests?

2) Throughput - how many requests can the system handle (per second, for example)?

3) Load Distribution - are requests distributed evenly among components of the system?

4) Fault Tolerance - can the system continue to handle requests in the face of a failed
component?

5) Security - does the system ensure that sensitive resources are guarded against attack?

Common architectures for distributed systems:

1) Client-Server

The client-server model is probably the most popular paradigm. The server is responsible
for accepting, processing, and replying to requests. It is the producer. The client is purely
the consumer. It requests the services of the server and accepts the results. The basic web
follows the client-server model. Your browser is the client. It requests web pages from a
server (e.g., google.com), waits for results, and displays them for the user.

2) Multiple Servers

In reality, a web site is rarely supported with only one server. Such an implementation
would not be scalable or reliable. Instead, web sites such as Google or CNN are hosted on
many (many many) machines. Services are either replicated, which means that each
machine can perform the same task, or partitioned, which means that some machines
perform one set of tasks and some machines perform another set of tasks. For example, a
site like CNN might serve images from one set of machines and HTML from another set
of machines.

3) Proxies and Caches

To reduce latency, load on the origin server, and bandwidth usage, proxies and caches are
also used to deliver content. An end host (your browser) may cache content. In this case,
when you first request content, your browser stores a copy on your local machine.
Subsequent requests for the same content can be fulfilled by using the cache rather than
requesting the content from the origin server.

4) P2P

The peer-to-peer model assumes that each entity in the network has equivalent
functionality. In essence, it can play the role of a client or a server. Ideally, this reduces
bottlenecks and enables each entity to contribute resources to the system. Unfortunately, it
doesn't always work that way.

5) Mobile Code/Agents
The previous models assume that the client/server/peer entities exchange data. The mobile
code model assumes that components may exchange code. An example of this is Java
Applets. When your browser downloads and applet, it downloads some Java code that it
then runs locally. The big issue with this model is that it introduces security risks. No less
a security threat are mobile agents -- processes that can move from machine to machine.

6) Network Computers/Thin Clients

The network computer model assumes that the end user machine is a low-end computer
that maintains a minimal OS. When it boots, it retrieves the OS and files/applications from
a central server and runs applications locally. The thin client model is similar, though
assumes that the process runs remotely and the client machine simply displays results (e.g.,
X-windows and VNC).

7) Mobile Devices

There is an increasing need to develop distributed systems that can run atop devices such
as cell phones, cameras, and MP3 players. Unlike traditional distributed computing entities,
which communicate over the Internet or standard local area networks, these devices often
communicate via wireless technologies such as Bluetooth or other low bandwidth and/or
short range mechanisms. As a result, the geographic location of the devices impacts system
design.

(D) Grid and Cluster Computing

(D1) Grid Computing

Grid computing is focused on the ability to support computation across administrative domains sets
it apart from traditional computer clusters or traditional distributed computing. Grids offer a way
of using the information technology resources optimally inside an organization. In short, it involves
virtualizing computing resources. Functionally, one can classify grids into several types:
Computational Grids (including CPU scavenging grids), which focuses primarily on
computationally-intensive operations, and Data grids, or the controlled sharing and management of
large amounts of distributed data.

Grid computing can be defined as:

1) A service for sharing computer power and data storage capacity over the Internet

2) An ambitious and exciting global effort to develop an environment in which individual users
can access computers, databases and experimental facilities simply and transparently,
without having to consider where those facilities are located. [RealityGrid, Engineering &
Physical Sciences Research Council, UK 2001]
http://www.realitygrid.org/information.html
30T U U30T

3) A model for allowing companies to use a large number of computing resources on demand,
no matter where they are located.
www.informatica.com/solutions/resource_center/glossary/default.htm
30T 30T

Characteristics of Grid Computing:

1) Loosely coupled (Decentralization)

2) Diversity and Dynamism


3) Distributed Job Management & scheduling

Advantages of Grid computing


1) Availability of additional resources: Along with CPU and other storage resources, other
computing resources can be shared and made accessible easily.

2) Load Balancing: Grid consists of large number of systems on which a job can be
distributed to utilize the available systems properly.

3) Reliability - If the system which is part of Grid failed to do its assigned task, it can be
moved easily on other available system. This is very important for mission critical systems.
Disadvantages of Grid computing

1) Stability - Standards are evolving in nature, so its software and standards are not stable.

2) Internet connectivity - To get work completed on Grid a high internet connection is needed
in order to gather and assemble various resources present at various locations.

3) Admin domains - The systems are located in different administrator domains so managing
the different environment increases the overhead.

(D2) Cluster Computing

When two or more computers are used together to solve a problem, it is called a computer cluster.
Then there are several ways of implementing the cluster, Beowulf is maybe the most known way
to do it, but basically it is just cooperation between computers in order to solve a task or a problem.
Cluster Computing is then just the thing you do when you use a computer cluster.

Characteristics of Cluster computing

1) Tightly coupled systems

2) Single system image

3) Centralized Job management & scheduling system

Advantages of Cluster computing


1) Manageability - With clusters the management of large number of components becomes
easier.

2) Single system image - User is provided with a illusion that he is exclusive owner of system
and is abstracted from the complexities that are present while working on many systems.

3) Availability - As components are exactly similar, load balancing and fault handling
becomes very easy as the running job can be moved easily from one node to other one.

Disadvantages of Cluster computing

1) Integration issues - If the components are heterogeneous in nature, there diving and
assembling the work can lead to issues.

2) Fault finding - It becomes difficult to find out the place where fault has happened as many
nodes are involved.
(D3) Difference between Cluster Computing and Grid Computing

Grid computing is something similar to cluster computing, it makes use of several computers
connected is some way, to solve a large problem. There is often some confusion about the
difference between grids vs. cluster computing.
1) The big difference is that a cluster is homogenous while grids are heterogeneous. The
computers that are part of a grid can run different operating systems and have different
hardware whereas the cluster computers all have the same hardware and OS. A grid can
make use of spare computing power on a desktop computer while the machines in a cluster
are dedicated to work as a single unit and nothing else.

2) Grid is inherently distributed by its nature over a LAN, metropolitan or WAN. On the
other hand, the computers in the cluster are normally contained in a single location or
complex.

3) Another difference lies in the way resources are handled. In case of Cluster, the whole
system (all nodes) behaves like a single system view and resources are managed by
centralized resource manager. In case of Grid, every node is autonomous i.e. it has its own
resource manager and behaves like an independent entity.

Cloud Computing Introduction


(A) Cloud Computing

The applications and services that run on a distributed network using virtualized resources and
accessed by common Internet protocols and networking standards comes under Cloud computing.
Cloud computing converts the technology, services, and applications that are similar to those on
the Internet into a self-service utility. Cloud computing is based on the concept of pooling physical
resources and presenting them as a virtual resource. This computing model supports a new way of
provisioning resources, staging applications and for using applications. It’s basically brining
computing on internet scale. Cloud computing enables businesses to respond to the business
requirements dynamically by adapting their computing infrastructure, reduces complexities
involved in IT management, and brings the applications in the reach of the businesses.
The word “cloud” makes reference to the two concepts:
• Abstraction o It abstracts the details of system implementation from users and
developers. Applications run on unspecified physical systems with unknown
locations for data, with outsourced system administration of systems.

• Virtualization o The resourced are pooled and shared among the users giving them the
illusion that they are the sole owner of the resource. Also resources scales up/down in really
short time and without human intervention, charged on metered basis, with multi-tenancy
support.

The US National Institute of Standards (NIST) defines –


Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a
shared pool of configurable resources ( for example, networks, servers, storage, applications and
services) that can be rapidly provisioned and released with minimal management effort or service
provider interaction.
(A1) Cloud Components
A cloud computing solution is made up of several elements - clients, the datacenter, and distributed
servers.
• Clients

Clients are, in a cloud computing architecture, exactly similar to those present in LAN.
They can be laptops, tablet computers, mobile phones, or PDAs. Clients are the devices
that the end users interact with to manage their information on the cloud.
• Datacenter

The collection of servers where the application to which you subscribe is hosted is nothing
but datacenter. It could be a large space in the organization or a room full of servers located
any place on the earth that you access via the Internet.
• Distributed Servers

Servers in Datacenter can be spread across many locations. But to user, the cloud
subscriber, these servers act as if they’re humming away right next to each other.
(B) Characteristics of Cloud Computing

1. On demand self service

The services offered on cloud like storage, computing etc are self provisioned or auto
provisioned with zero or minimal human interaction.
2. Broad network access

The services offered on cloud can be accessed from any device which is connected to
the internet. Client just needs to have minimal setup at his end to access these services being
offered on cloud.
3. Resource pooling

To support huge number of concurrent users, the physical resources are shared among
the users by appropriately handling the data security and privacy issues.
4. Rapid elasticity

As and when needed cloud platform needs to meet the user requirement of resources
by appropriately scaling up or scaling down the number of resources.
5. Metered service

Pay as you go. Users are charged only for the services that are used by them.
(C ) Cloud computing models
Cloud computing can be categorized into two distinct sets of models:
• Deployment models o With reference to the location and management of the cloud's
infrastructure.

• Service models o with reference to the particular types of services that you

(C1) Deployment models


A deployment model defines the purpose of the cloud and the nature of how the cloud is located.
The NIST definition for the four deployment models is as follows:
• 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. It may be for one organization or for several organizations, but
they share common concerns such as their mission, policies, security, regulatory
compliance needs, and so on. A community cloud may be managed by the constituent
organization(s) or by a third party.
(C2) Service models (SPI Model)
The portfolio of services offered results into the service model.
Three service types have been universally accepted:
• Infrastructure as a Service (IaaS) o IaaS provides virtual machines, virtual storage,
virtual infrastructure, and other hardware assets as resources that clients can
provision.
o The service provider manages the entire infrastructure, while the client is responsible
for all other aspects of the deployment which can include the operating system,
applications, and user interactions with the system.
o IaaS service providers include:

Amazon Elastic Compute Cloud (EC2)


Eucalyptus
GoGrid
RackSpace Cloud
• Platform as a Service (PaaS) o PaaS provides virtual machines, operating systems,
applications, services, development frameworks, transactions, and control structures.
o The client can deploy its applications on the cloud infrastructure or use applications
that were programmed using languages and tools that are supported by the PaaS
service provider.
o The service provider manages the cloud infrastructure, the operating systems, and
the enabling software. The client is responsible for installing and managing the
application that it is deploying.
o PaaS services are:

Force.com
Google AppEngine
Windows Azure Platform
• Software as a Service (SaaS ) o SaaS is a complete operating environment with
applications, management, and the user interface.
o In the SaaS model, the application is provided to the client through a thin client
interface (a browser), and the customer's responsibility begins and ends with
entering and managing its data and user interaction.
o Everything from the application down to the infrastructure is the vendor's
responsibility.
o SaaS cloud service providers are:

GoogleApps
SalesForce.com
o Some of these applications include

Customer resource management (CRM)


Video conferencing
IT service management
Accounting
Web analytics
Web content management
(D) Advantages of Cloud Computing
1. Reduced costs

Significant cost reductions are achieved due to higher efficiencies and greater utilization of
cloud networks
2. Ease of utilization

The upfront cost involved in the purchase of hardware and software licenses is lowered a
lot. Due to that one can easily make utilization of cloud services.
3. Quality of Service

Service level agreements with vendor assure the Quality of service


4. Reliability

The resource scaling and load balancing with fault tolerance capabilities emphasize the
high availability of systems.
5. Outsourced IT management

It results into considerable reduction in IT management complexities and the associated


cost.
6. Simplified maintenance and upgrade

Always latest features are provided to the users removing the need of constant update and
up gradations.
7. Low Entry Barrier

Upfront infrastructure investments are not needed for moving to the cloud.
(E) Challenges in Cloud Computing

1. Scalability

The scale of cloud computing is much higher than traditional computing. Scalability of
storage and computing power is major challenge for all three service models. It requires
large amount of sharing of resources between the users.
2. Security and Privacy

As resources are shared to achieve high scalability, the issue of data security and privacy
becomes critical. The Multi tenancy or fine grained sharing of resources is needed.
3. High Availability

In such a large computing infrastructure, hardware failure and software issues are
frequently observed. Failure in one area can impact the other areas and may get propagated
further. Keeping system up in such scenarios is really a touch challenge to handle.
Lecture 3 Notes: Virtualization
(A) Virtualization

(A1) Virtual Machine


In 1960’s IBM introduced concept of Virtual Machine (VM) to provide parallel and interactive
access to Mainframes. VM is nothing but a single instance of a physical machine which gives the
user an illusion that user is interacting with the physical machine itself. The end user has the same
experience on a virtual machine as they would have on dedicated hardware. A VM was originally
defined by Popek and Goldberg as "an efficient, isolated duplicate of a real machine". A virtual
machine (VM) is a software implementation of a machine (for example, a computer) that executes
programs like a physical machine.
Each VM is fully protected and isolated copy of physical machine. It is used to share the expensive
hardware which helped to reduce costs and also helped to improve the productivity as many users
can concurrently used the same hardware. Virtualization allows installing more than one operating
systems on same physical machine. It abstracts the physical machine details from the users,
applications those interact with those resources. Apart from computing resources, storage also can
be virtualized. Storage virtualization hides the exact storage device which is actually used to store
the data. It enhances manageability of storage and improves the utilization of storage.
(A2) VM Classification
Virtual machines are separated into two major classes, based on their use and degree of
correspondence to any real machine:
1) A system virtual machine a. Provides a complete system platform which supports the
execution of a complete operating system (OS).
b. These usually emulate an existing architecture, and are built with the purpose of
either providing a platform to run programs where the real hardware is not
available for use (for example, executing on otherwise obsolete platforms), or of having
multiple instances of virtual machines leading to more efficient use of computing
resources, both in terms of energy consumption and cost effectiveness (known as
hardware virtualization, the key to a cloud computing environment), or both.

2) A process virtual machine (also, language virtual machine) a. Designed to run a


single program, which means that it supports a single process.
b. Such virtual machines are usually closely suited to one or more programming
languages and built with the purpose of providing program portability and
flexibility (amongst other things).
c. An essential characteristic of a virtual machine is that the software running inside is
limited to the resources and abstractions provided by the virtual machine—it cannot
break out of its virtual environment. Example JVM

(A3) Virtual machine advantages


1) Multiple OS environments can co-exist on the same primary hard drive. Regardless of
the system, all files are stored on the hard drive of the host OS.
2) Application provisioning, maintenance, high availability and disaster recovery are
inherent in the virtual machine software selected.
3) Can provide emulated hardware environments different from the host's instruction set
architecture (ISA), through emulation or by using just-in-time compilation.

(A4) VM disadvantages
1) A virtual machine is less efficient than an actual machine when it accesses the host hard
drive indirectly.
2) When multiple VMs are concurrently running on the hard drive of the actual host, adjunct
virtual machines may exhibit a varying and/or unstable performance (speed of
execution and malware protection). This depends on the data load imposed on the
system by other VMs, unless the selected VM software provides temporal isolation
among virtual machines.
3) Malware protections for VMs are not necessarily compatible with the "host", and may
require separate software.

(B) Virtualization

Virtualization is a technique by which the physical characteristics of computing resource like


hardware, storage etc are hidden (or abstracted) from the users and providing them another abstract
computing platform. Based on the computing resource that is virtualized, it can be classified as
A. Server Virtualization (hardware or platform virtualization)
B. Storage virtualization.
C.
(B1) Classification
1) Server virtualization
a) Abstracts the physical machine on which the software and operating system
is running on and provides an illusion that the software is running on a
virtual machine.
b) Enables Infrastructure as a service model.

2) Storage virtualization
a) Uses virtualization to enable better functionality and more advanced features in
computer data storage systems.
b) It can be defined as technique to abstract physical storage system from user’s
application and presented as logical entities hiding the complexities of
accessing them.
c) It enables Storage as a service model.

(C) Server virtualization

(C1) Reasons for server virtualization


1. In the case of server consolidation, many small physical servers are replaced by one larger
physical server to increase the utilization of costly hardware resources such as CPU.
2. Consolidating servers can also have the added benefit of reducing energy consumption.
3. A virtual machine can be more easily controlled and inspected from outside than a physical
one, and its configuration is more flexible.
4. A new virtual machine can be provisioned as needed without the need for an up-front
hardware purchase.
5. A virtual machine can easily be relocated from one physical machine to another as needed.

(C2) Classification
Server virtualization can be classified as
a) system virtualization
b) process virtualization

In process virtualization,
1) The virtual machine management software runs above the operating system and provides
user level instructions compatibility.
2) Example JVM, .Net platform.

In System virtualization,
1) The virtualization software is present in between the operating system and the physical
hardware.
2) Example VMWare
(C3) System virtualization
System virtualization can further be classified based on the software responsible for the
virtualization i.e. Virtual Machine Monitor (VMM) or hypervisor. Virtual machine consists of
user’s application and the operating system on top of which the application is running on. In server
virtualization, the host OS is not very important as it’s just confined to booting up and running the
VMs. As OS is not ideal for running multiple VMs and has a little role to play, there is a new breed
of software called Hypervisor that takes over the OS. Hypervisor is an efficient Virtual Machine
Manager (VMM) that is designed from the ground up to run multiple high performant VMs. So, a
Hypervisor is to VMs what an OS is to processes.
Hypervisor can be classified as -
1. Native hypervisor

Native hypervisor run directly on top of physical hardware providing the features
like IO etc required by the applications.
2. Hosted hypervisor

Hosted hypervisors runs on top of operating system and uses features of operating
system.
3. Hybrid hypervisor.

Hybrid hypervisors runs directly on top of hardware and uses features of operating
system.
(D) Storage Virtualization

(D1) Advantages of Storage virtualization


1) Non-disruptive data migration

One of the major benefits of abstracting the host or server from the actual storage is the ability
to migrate data while maintaining concurrent I/O access. The host only knows about the logical
disk (the mapped LUN) and so any changes to the meta-data mapping is transparent to the host.
2) Improved utilization

Utilization can be increased by virtue of the pooling, migration, and thin provisioning services.
This allows users to avoid over-buying and over provisioning storage solutions.
3) Fewer points of management

With storage virtualization, multiple independent storage devices, even if scattered across a
network, appear to be a single monolithic storage device and can be managed centrally.
(D2) Implementation approaches
1) Host-based
2) Storage device-based

3) Network-based
(D.2.1) Host-based storage virtualization
Host-based virtualization requires additional software running on the host, as a privileged task or
process. In some cases volume management is built into the operating system, and in other
instances it is offered as a separate product. Volumes (LUN's) presented to the host system are
handled by a traditional physical device driver. However, a software layer (the volume manager)
resides above the disk device driver intercepts the I/O requests, and provides the meta-data lookup
and I/O mapping.
Most modern operating systems have some form of logical volume management built-in (in Linux
called Logical Volume Manager or LVM; in Solaris and FreeBSD, ZFS's zpool layer; in Windows
called Logical Disk Manager or LDM), that performs virtualization tasks.
Pros
1) Simple to design and code
2) Supports any storage type
3) Improves storage utilization without thin provisioning restrictions

Cons
1) Storage utilization optimized only on a per host basis
2) Replication and data migration only possible locally to that host
3) Software is unique to each operating system
4) No easy way of keeping host instances in sync with other instances
5) Traditional Data Recovery following a server disk drive crash is impossible

(D.2.2) Storage device-based storage virtualization


Like host-based virtualization, several categories have existed for years and have only recently
been classified as virtualization. Simple data storage devices, like single hard disk drives, do not
provide any virtualization. But even the simplest disk arrays provide a logical to physical
abstraction, as they use RAID schemes to join multiple disks in a single array (and possibly later
divide the array it into smaller volumes).
Advanced disk arrays often feature cloning, snapshots and remote replication. Generally these
devices do not provide the benefits of data migration or replication across heterogeneous storage,
as each vendor tends to use their own proprietary protocols. A new breed of disk array controllers
allows the downstream attachment of other storage devices. For the purposes of this article we will
only discuss the later style which does actually virtualizes other storage devices.
A primary storage controller provides the services and allows the direct attachment of other storage
controllers. Depending on the implementation these may be from the same or different vendors.
The primary controller will provide the pooling and meta-data management services. It may also
provide replication and migration services across those controllers which it is.
Pros
1) No additional hardware or infrastructure requirements
2) Provides most of the benefits of storage virtualization
3) Does not add latency to individual I/Os
Cons
1) Storage utilization optimized only across the connected controllers
2) Replication and data migration only possible across the connected controllers and same
vendors device for long distance support
3) Downstream controller attachment limited to vendors support matrix
4) I/O Latency, non cache hits require the primary storage controller to issue a secondary
downstream I/O request
5) Increase in storage infrastructure resource, the primary storage controller requires the same
bandwidth as the secondary storage controllers to maintain the same throughput

(D.2.3) Network-based storage virtualization


Storage virtualization operating on a network based device (typically a standard server or smart
switch) and using iSCSI or FC Fibre channel networks to connect as a SAN. These types of devices
are the most commonly available and implemented form of virtualization. The virtualization device
sits in the SAN and provides the layer of abstraction between the hosts performing the I/O and the
storage controllers providing the storage capacity.
Pros
1) True heterogeneous storage virtualization
2) Caching of data (performance benefit) is possible when in-band
3) Single management interface for all virtualized storage
4) Replication services across heterogeneous devices

Cons
1) Complex interoperability matrices - limited by vendors support
2) Difficult to implement fast meta-data updates in switched-based devices
3) Out-of-band requires specific host based software
4) In-band may add latency to I/O
5) In-band the most complicated to design and code

Network based storage virtualization can be further classified as


1) Appliance-based
2) Switch-based

Both models can provide the same services,


1) disk management
2) metadata lookup
3) data migration
4) Replication

Both models also require some processing hardware to provide these services.
Appliance based devices
1) Are Dedicated hardware devices that provide SAN connectivity of one form or another.
2) These sit between the hosts and storage and in the case of in-band (symmetric) appliances
can provide all of the benefits and services discussed in this article. I/O requests are targeted
at the appliance itself, which performs the meta-data mapping before redirecting the I/O by
sending its own I/O request to the underlying storage.
3) The in-band appliance can also provide caching of data, and most implementations provide
some form of clustering of individual appliances to maintain an atomic view of the
metadata as well as cache data.

Switch based devices


1) Reside in the physical switch hardware used to connect the SAN devices.
2) These also sit between the hosts and storage but may use different techniques to provide the
metadata mapping, such as packet cracking to snoop on incoming I/O requests and perform
the I/O redirection.
3) It is much more difficult to ensure atomic updates of metadata in a switched environment
and services requiring fast updates of data and metadata may be limited in switched
implementations.

(D3) In-band vs. out-of-band


In-band, also known as symmetric, virtualization devices actually sit in the data path between the
host and storage. All I/O requests and their data pass through the device. Hosts perform I/O to the
virtualization device and never interact with the actual storage device. The virtualization device in
turn performs I/O to the storage device. Caching of data, statistics about data usage, replications
services, data migration and thin provisioning are all easily implemented in an in-band device.
Out-of-band, also known as asymmetric, virtualization devices are sometimes called meta-data
servers. These devices only perform the meta-data mapping functions. This requires additional
software in the host which knows to first request the location of the actual data. Therefore an I/O
request from the host is intercepted before it leaves the host, a meta-data lookup is requested from
the meta-data server (this may be through an interface other than the SAN) which returns the
physical location of the data to the host. The information is then retrieved through an actual I/O
request to the storage. Caching is not possible as the data never passes through the device.
Infrastructure as a Service
Source Amazon white papers
1. Defining IaaS
- The delivery of services such as hardware, software, storage, networking, data center space, and
various utility software elements on request. Both public and private versions of IaaS exist.
- In the public IaaS, the user needs a simple sign-up mechanism to acquire resources. When users
no longer need the resources, they simply de-provision them.
- In a private IaaS, the IT organization or an integrator creates an infrastructure designed to
provide resources on demand to internal users and sometimes partners.
- IaaS is the fundamental element used by other cloud models. Some customers bring their own
tools and software to create applications.
- Rather than purchase servers, software, racks, and having to pay for the datacenter space for
them, the service provider rents those resources.
- Additionally, the infrastructure can be dynamically scaled up or down, based on the application
resource needs.
- Multiple tenants can be on the equipment at the same time.
- Resources are typically billed based on a utility computing basis, so providers charge by how
many resources are consumed.

2. Amazon and Cloud Computing

Amazon has a long history of using a decentralized IT infrastructure. This arrangement enabled our
development teams to access compute and storage resources on demand, and it has increased overall
productivity and agility. By 2005, Amazon had spent over a decade and millions of dollars building and
managing the large-scale, reliable, and efficient IT infrastructure that powered one of the world’s
largest online retail platforms. Amazon launched Amazon Web Services (AWS) so that other
organizations could benefit from Amazon’s experience and investment in running a large-scale
distributed, transactional IT infrastructure. AWS has been operating since 2006, and today serves
hundreds of thousands of customers worldwide. Today Amazon.com runs a global web platform
serving millions of customers and managing billions of dollars’ worth of commerce every year.
Using AWS, you can requisition compute power, storage, and other services in minutes and have the
flexibility to choose the development platform or programming model that makes the most sense for
the problems they’re trying to solve. You pay only for what you use, with no up-front expenses or
long-term commitments, making AWS a cost-effective way to deliver applications.
Here are some of examples of how organizations, from research firms to large enterprises, use AWS
today:
- A large enterprise quickly and economically deploys new internal applications, such as HR
solutions, payroll applications, inventory management solutions, and online training to its
distributed workforce.
- An e-commerce website accommodates sudden demand for a “hot” product caused by viral buzz
from Facebook and Twitter without having to upgrade its infrastructure.
- A pharmaceutical research firm executes large-scale simulations using computing power
provided by AWS.
- Media companies serve unlimited video, music, and other media to their worldwide customer
base.

3. The Differences that Distinguish AWS

AWS is readily distinguished from other vendors in the traditional IT computing landscape because it
is:
Flexible
AWS enables organizations to use the programming models, operating systems, databases, and
architectures with which they are already familiar. In addition, this flexibility helps organizations mix
and match architectures in order to serve their diverse business needs.
Cost-effective
With AWS, organizations pay only for what they use, without up-front or long-term commitments.
Scalable and elastic
Organizations can quickly add and subtract AWS resources to their applications in order to meet
customer demand and manage costs.
Secure
In order to provide end-to-end security and end-to-end privacy, AWS builds services in accordance
with security best practices, provides the appropriate security features in those services, and
documents how to use those features.
Experienced
When using AWS, organizations can leverage Amazon’s more than fifteen years of experience
delivering large-scale, global infrastructure in a reliable, secure fashion.
4. Amazon Web Services Cloud Platform

AWS is a comprehensive cloud services platform that offers compute power, storage, content delivery,
and other functionality that organizations can use to deploy applications and services cost-
effectively—with flexibility, scalability, and reliability. AWS self-service means that you can proactively
address your internal plans and react to external demands when you choose.
5. Important AWS

5.1 ) Amazon Elastic Compute Cloud (Amazon EC2)


Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides resizable compute
capacity in the cloud. It is designed to make web-scale computing easier for developers and system
administrators.
Amazon EC2’s simple web service interface allows you to obtain and configure capacity with minimal
friction. It provides you with complete control of your computing resources and lets you run on
Amazon’s proven computing environment. Amazon EC2 reduces the time required to obtain and boot
new server instances to minutes, allowing you to quickly scale capacity, both up and down, as your
computing requirements change. Amazon EC2 changes the economics of computing by allowing you
to pay only for capacity that you actually use. Amazon EC2 provides developers and system
administrators the tools to build failure resilient applications and isolate themselves from common
failure scenarios.
5.2) Auto Scaling
Auto Scaling allows you to scale your Amazon EC2 capacity up or down automatically according to
conditions you define. With Auto Scaling, you can ensure that the number of Amazon EC2 instances
you’re using increases seamlessly during demand spikes to maintain performance, and decreases
automatically during demand lulls to minimize costs. Auto Scaling is particularly well suited for
applications that experience hourly, daily, or weekly variability in usage. Auto Scaling is enabled by
Amazon CloudWatch and available at no additional charge beyond Amazon CloudWatch fees.
5.3) Elastic Load Balancing
Elastic Load Balancing automatically distributes incoming application traffic across multiple Amazon
EC2 instances. It enables you to achieve even greater fault tolerance in your applications, seamlessly
providing the amount of load balancing capacity needed in response to incoming application traffic.
Elastic Load Balancing detects unhealthy instances and automatically reroutes traffic to healthy
instances until the unhealthy instances have been restored. Customers can enable Elastic Load
Balancing within a single Availability Zone or across multiple zones for even more consistent
application performance.
5.4) Amazon Virtual Private Cloud (Amazon VPC)
Amazon Virtual Private Cloud lets you provision a logically isolated section of the Amazon Web
Services (AWS) Cloud where you can launch AWS resources in a virtual network that you define. You
have complete control over your virtual networking environment, including selection of your own IP
address range, creation of subnets, and configuration of route tables and network gateways.
You can easily customize the network configuration for your Amazon VPC. For example, you can create
a public-facing subnet for your webservers that has access to the Internet, and place your backend
systems such as databases or application servers in a private-facing subnet with no Internet access.
You can leverage multiple layers of security (including security groups and network access control lists)
to help control access to Amazon EC2 instances in each subnet.
Additionally, you can create a hardware virtual private network (VPN) connection between your
corporate data center and your VPC and leverage the AWS cloud as an extension of your corporate
data center.
5.5) Amazon Route 53
Amazon Route 53 is a highly available and scalable Domain Name System (DNS) web service. It is
designed to give developers and businesses an extremely reliable and cost-effective way to route end
users to Internet applications by translating human readable names, such as www.example.com, into
the numeric IP addresses, such as 192.0.2.1, that computers use to connect to each other. Route 53
effectively connects user requests to infrastructure running in AWS, such as an EC2 instance, an elastic
load balancer, or an Amazon S3 bucket. Route 53 can also be used to route users to infrastructure
outside of AWS.
5.6) Amazon Simple Storage Service (Amazon S3)
Amazon S3 is storage for the Internet. It is designed to make web-scale computing easier for
developers.
Amazon S3 provides a simple web services interface that can be used to store and retrieve any amount
of data, at any time, from anywhere on the web. The container for objects stored in Amazon S3 is
called an Amazon S3 bucket. Amazon S3 gives any developer access to the same highly scalable,
reliable, secure, fast, inexpensive infrastructure that Amazon uses to run its own global network of
websites. The service aims to maximize benefits of scale and to pass those benefits on to developers.
5.7) Amazon Glacier
Amazon Glacier is an extremely low-cost storage service that provides secure and durable storage for
data archiving and backup. In order to keep costs low, Amazon Glacier is optimized for data that is
infrequently accessed and for which retrieval times of several hours are suitable. With Amazon Glacier,
customers can reliably store large or small amounts of data for as little as $0.01 per gigabyte per
month, a significant savings compared to on-premises solutions.
Companies typically over-pay for data archiving. First, they're forced to make an expensive upfront
payment for their archiving solution (which does not include the ongoing cost for operational expenses
such as power, facilities, staffing, and maintenance). Second, since companies have to guess what their
capacity requirements will be, they understandably over-provision to make sure they have enough
capacity for data redundancy and unexpected growth. This set of circumstances results in under-
utilized capacity and wasted money. With Amazon Glacier, you pay only for what you use. Amazon
Glacier changes the game for data archiving and backup because you pay nothing up front, pay a very
low price for storage, and can scale your usage up or down as needed, while AWS handles all of the
operational heavy lifting required to do data retention well. It only takes a few clicks in the AWS
Management Console to set up Amazon Glacier, and then you can upload any amount of data you
choose.
5.8) Amazon Elastic Block Storage (EBS)
Amazon Elastic Block Store (EBS) provides block level storage volumes for use with Amazon EC2
instances. Amazon EBS volumes are network-attached, and persist independently from the life of an
instance. Amazon EBS provides highly available, highly reliable, predictable storage volumes that can
be attached to a running Amazon EC2 instance and exposed as a device within the instance. Amazon
EBS is particularly suited for applications that require a database, file system, or access to raw block
level storage.
5.9) AWS Import/Export
AWS Import/Export accelerates moving large amounts of data into and out of AWS using portable
storage devices for transport. AWS transfers your data directly onto and off of storage devices using
Amazon’s high-speed internal network and bypassing the Internet. For significant data sets, AWS
Import/Export is often faster than Internet transfer and more cost effective than upgrading your
connectivity.
5.10) Amazon CloudFront
Amazon CloudFront is a content delivery web service. It integrates with other Amazon Web Services
to give developers and businesses an easy way to distribute content to end users with low latency,
high data transfer speeds, and no commitments.
Amazon CloudFront can be used to deliver your entire website, including dynamic, static and
streaming content using a global network of edge locations. Requests for objects are automatically
routed to the nearest edge location, so content is delivered with the best possible performance.
Amazon CloudFront is optimized to work with other Amazon Web Services, like Amazon S3 and
Amazon EC2. Amazon CloudFront also works seamlessly with any origin server, which stores the
original, definitive versions of your files. Like other Amazon Web Services, there are no contracts or
monthly commitments for using Amazon CloudFront—you pay only for as much or as little content as
you actually deliver through the service.
5.11) Amazon Relational Database Service (Amazon RDS)
Amazon Relational Database Service (Amazon RDS) is a web service that makes it easy to set up,
operate, and scale a relational database in the cloud. It provides cost-efficient and resizable capacity
while managing time-consuming database administration tasks, freeing you up to focus on your
applications and business.
Amazon RDS gives you access to the capabilities of a familiar MySQL, Oracle, SQL Server or PostgreSQL
database. This means that the code, applications, and tools you already use today with your existing
databases can be used with Amazon RDS. Amazon RDS automatically patches the database software
and backs up your database, storing the backups for a retention period that you define and enabling
point-in-time recovery. You benefit from the flexibility of being able to scale the compute resources
or storage capacity associated with your relational database instance by using a single API call. In
addition, Amazon RDS makes it easy to use replication to enhance availability and reliability for
production databases and to scale out beyond the capacity of a single database deployment for read-
heavy database workloads.
5.12) Amazon DynamoDB
Amazon DynamoDB is a fast, fully managed NoSQL database service that makes it simple and cost-
effective to store and retrieve any amount of data, and serve any level of request traffic. All data items
are stored on Solid State Drives (SSDs), and are replicated across 3 Availability Zones for high
availability and durability. With DynamoDB, you can offload the administrative burden of operating
and scaling a highly available distributed database cluster, while paying a low price for only what you
use
Amazon DynamoDB is designed to address the core problems of database management, performance,
scalability, and reliability. Developers can create a database table that can store and retrieve any
amount of data, and serve any level of request traffic. DynamoDB automatically spreads the data and
traffic for the table over a sufficient number of servers to handle the request capacity
specified by the customer and the amount of data stored, while maintaining consistent, fast
performance. All data items are stored on solid state drives (SSDs) and are automatically replicated
across multiple Availability Zones in a Region to provide built-in high availability and data durability.
Amazon DynamoDB enables customers to offload the administrative burden of operating and scaling
a highly available, distributed database cluster while only paying a low variable price for the resources
they consume.
5.13) Amazon ElastiCache
Amazon ElastiCache is a web service that makes it easy to deploy, operate, and scale an in-memory
cache in the cloud. The service improves the performance of web applications by allowing you to
retrieve information from a fast, managed, in-memory caching system, instead of relying entirely on
slower disk-based databases. ElastiCache supports two open-source caching engines.
Memcached - a widely adopted memory object caching system. ElastiCache is protocol compliant with
Memcached, so popular tools that you use today with existing Memcached environments will work
seamlessly with the service.
Redis a popular open-source in-memory key-value store that supports data structures such as sorted
sets and lists. ElastiCache supports Redis master / slave replication which can be used to achieve cross
AZ redundancy.
5.14) Amazon Simple Queue Service (Amazon SQS)
Amazon Simple Queue Service (Amazon SQS) is a fast, reliable, scalable, fully managed message
queuing service. SQS makes it simple and cost-effective to decouple the components of a cloud
application. You can use SQS to transmit any volume of data, at any level of throughput, without losing
messages or requiring other services to be always available. With SQS, you can offload the
administrative burden of operating and scaling a highly available messaging cluster, while paying a low
price for only what you use.
5.15) Amazon Simple Notification Service (Amazon SNS)
Amazon Simple Notification Service (Amazon SNS) Amazon Simple Notification Service (SNS) is a fast,
flexible, fully managed push messaging service. SNS makes it simple and cost-effective to push to
mobile devices such as iPhone, iPad, Android, Kindle Fire, and internet connected smart devices, as
well as pushing to other distributed services.
Besides pushing cloud notifications directly to mobile devices, SNS can also deliver notifications by
SMS text message or email, to Simple Queue Service (SQS) queues, or to any HTTP endpoint.
To prevent messages from being lost, all messages published to Amazon SNS are stored redundantly
across multiple availability zones.
5.16) Amazon Simple Email Service (Amazon SES)
Amazon Simple Email Service (Amazon SES) is a highly scalable and cost-effective bulk and
transactional email sending service for organizations and developers. Amazon SES eliminates the
complexity and expense of building an in-house email solution or licensing, installing, and operating a
third-party email service. The service integrates with other AWS services, making it easy to send emails
from applications that are hosted on services such as Amazon EC2. With Amazon SES there is no long-
term commitment, minimum spend, or negotiation required. Organizations can utilize a free usage
tier and after that enjoy low fees for the number of emails sent plus data transfer fees.
Building large-scale email solutions to send marketing and transactional messages is often a complex
and costly challenge for organizations. To optimize the percentage of emails that are successfully
delivered, organizations must deal with email server management and network configuration, plus
they must meet rigorous Internet service provider (ISP) standards for email content. Additionally,
many third-party email solutions require contract and price negotiations, as well as significant up-front
costs.
Amazon SES eliminates these challenges and enables organizations to benefit from the years of
experience and sophisticated email infrastructure Amazon.com has built to serve its own large-scale
customer base. Using SMTP or a simple API call, an organization can now access a high-quality, scalable
email infrastructure to efficiently and inexpensively communicate to their customers. For
high email deliverability, Amazon SES uses content filtering technologies to scan an organization’s
outgoing email messages to help ensure that the content meets ISP standards. The email message is
then either queued for sending or routed back to the sender for corrective action. To help
organizations further improve the quality of email communications with their customers, Amazon SES
provides a built-in feedback loop, which includes notifications of bounce backs, failed and successful
delivery attempts, and spam complaints.
5.17) Amazon CloudSearch
Amazon CloudSearch is a fully-managed service in the AWS Cloud that makes it easy to set up, manage,
and scale a search solution for your website or application. Amazon CloudSearch enables you to search
large collections of data such as web pages, document files, forum posts, or product information.
5.18) Amazon CloudWatch
Amazon CloudWatch provides monitoring for AWS cloud resources and the applications customers
run on AWS. Developers and system administrators can use it to collect and track metrics, gain insight,
and react immediately to keep their applications and businesses running smoothly. Amazon
CloudWatch monitors AWS resources such as Amazon EC2 and Amazon RDS DB Instances, and can
also monitor custom metrics generated by a customer’s applications and services. With Amazon
CloudWatch, you gain system-wide visibility into resource utilization, application performance, and
operational health.
Amazon CloudWatch provides a reliable, scalable, and flexible monitoring solution that you can start
using within minutes. You no longer need to set up, manage, or scale your own monitoring systems
and infrastructure. Using Amazon CloudWatch, you can easily monitor as much or as little metric data
as you need. Amazon CloudWatch lets you programmatically retrieve your monitoring data, view
graphs, and set alarms to help you troubleshoot, spot trends, and take automated action based on the
state of your cloud environment.
5.19) AWS Elastic Beanstalk
AWS Elastic Beanstalk is an easy-to-use service for deploying and scaling web applications and services
developed with popular programming languages such as Java, .NET, PHP, Node.js, Python and Ruby.
You simply upload your application and Elastic Beanstalk automatically handles the deployment
details of capacity provisioning, load balancing, auto-scaling and application health monitoring. At the
same time, with Elastic Beanstalk, you retain full control over the AWS resources powering your
application and can access the underlying resources at any time.
Most existing application containers or platform-as-a-service solutions, while reducing the amount of
programming required, significantly diminish developers' flexibility and control. Developers are forced
to live with all the decisions pre-determined by the vendor - with little to no opportunity to take back
control over various parts of their application's infrastructure. However, with Elastic Beanstalk, you
retain full control over the AWS resources powering your application. If you decide you want to take
over some (or all) of the elements of their infrastructure, you can do so seamlessly by using Elastic
Beanstalk's management capabilities.
Virtual Machines Management
Source : Chapter 5 Virtual Machine provisioning and migration Services (Mohamed El-Refaey)

(A) Virtualization

Virtualization is the key enabler behind cloud computing. Using this technique of Virtualization, the
data center infrastructure can be consolidated from hundreds of servers to just tens of servers. All the
physical server s like Web Servers, Database Servers and Messaging servers runs as virtualized
machines. This results in lower Total Cost of Ownership (TCO) and brings substantial savings on the
power bills and reduced cost of cooling equipment.

Virtualization is abstracting the hardware to run virtual instances of multiple guest operating systems
on a single host operating system. For example it can be seen with Virtualization in action by installing
Microsoft Virtual PC, VMware Player. These desktop virtualization solutions let you install and run an
OS within the host OS. The virtualized guest OS images are called Virtual Machines. The benefit of
virtualization is realized more on the servers than on the desktops.

There are many reasons for running Virtualization on the servers running in a traditional data center.

1. Less Time to Restore

Failed web server, app server or database server can more fastly and flexibly restored using
virtual machines.

2. Maximization the server utilization

Through virtualization, the load can be evenly spread across all the servers.

3. Maintenance cost Reduction

By consolidating the data center to run on fewer but powerful servers, there is a significant
cost reduction. The power consumed by the data center and the maintenance cost of the
cooling equipment comes down drastically.

4. Efficient and easy management

All major virtualization software have a centralized console to manage, maintain, track and
monitor the health of physical servers and the VMs running on these servers.

(B) VM Provisioning and Migration Services

There are two core services that enable the users to get IaaS model in public and private clouds. These
are

1) Virtual machine provisioning


Earlier when a new server needs to be installed lot of efforts needs to be exerted by IT
administrator. Provisioning a server was time consuming activity as there were many checklist
items that need to be taken into consideration and lot of procedures needs to be applied.
With virtualization its now matter of minutes with help of self service interface with small
steps and
mostly without human interaction. For example, in Amazon EC2 you can provision an instance
within few minutes.

2) Migration services

It is expensive operation to maintain and upgrade a main server with lot of hosted applications
and users. It takes lot of time and effort of IT administrators. With advanced virtualization
techniques these tasks have become very easy and accomplished within small amount of time.

(C ) VM Life Cycle
A VM goes through various phases during its life. These stages can be described as follows –

1) IT service request

a) Performs infrastructure analysis – seeing servers resource pool, matching these resources
with requirements

b) IT request – then request is placed to start the provisioning of the machine

2) VM provision

a) Load OS + applications on VM instance

b) Customize and configure the VM instance

c) Start the server

3) VM in operation

a) Starts serving requests

b) Supports migration

c) Scale on demand compute resources

4) Release VM

a) End of service

b) Compute resources are reallocated to another VM

(D) VM Provisioning Process


The steps involved for VM provisioning are as follows –

1) First select server from pool of available servers along with appropriate OS template

2) Then need to load appropriate software like device drivers, middleware etc

3) Need to customize and configure machine like ID address configuration to connect to a


network or storage resources

4) Virtual server is ready to serve the requests.


(E) VM Migration Services

Moving all key components of machine like CPU, Storage disks , networking and memory in a easily
moved data files from one machine to another machine is Migration. There are different techniques
for migration –

1) Hot / Live Migration

- While being powered on, movement of virtual machine from one physical host to another

- It facilitates proactive maintenance in case of failure

- Can be used for load balancing

- Shared storage required

- CPU compatibility checks needs to be applied

- Examples

VMWare Vmotion

Citrix XenServer XenMotion

2) Cold / Regular Migration

- Migration of powered off machine

- Associated disks can be moved from one data store to another

- No shared storage required

- No need of CPU compatibility checks

- Example VMWare

3) Live Storage Migration

- Migration of virtual disks or configuration file of a running virtual machine to a new data
store without any interruption in the availability of VM service.

- Example VMWare

(E1) Xen Hypervisor algorithm for Live Migration


1) Stage 0 Pre Migration

Active VM is exists on Host A

2) Stage 1 Reservation
Request is send to migrate OS from Host A to Host B

3) Stage 2 Iterative Pre-Copy

During first iteration, all pages are copied from A to B. In subsequest iterations only dirtied
pages are copied.

4) Stage 3 Stop-and-Copy

Running OS at instance A is suspended. Network traffic routed to B. At end there is consistent


suspended copy of VM at both A & B. A is primary host and can be restored in case of failure.

5) Stage 4 Commitment
B indicates to A that it has received all consistent OS image. Host A acknowledges the message
and now original VM on A is discarded. Host B becomes primary host.

6) Stage 5 Activation

Migrated VM on B is activated. Post migration device drivers are reattached to new machine
and moved IP addresses are advertised.

(E2) Cold Migration Algorithm


1) Configuration files, log files along with disks of VM are moved from Host A to Host B’s storage
area

2) VM is registered with new host B

3) Old VM from the old host A is deleted.

(F) Provisioning in the Cloud

(F1) Amazon EC2


- Vendor providing public cloud services

- Web service enables users to provision new machines into Amazon’s infrastructure in
minutes

- Accessible through simple API

- Almost any OS can be installed on VM

- No upfront hardware setup or installation charges, pay as you use policy

- Instance is typically VM with certain RAM, CPU and storage capacity

- Amazon Auto Scaling service allows scaling Amazon EC2 capacity up or down automatically
and according to the conditions that user has specified

- CloudWatch helps in monitoring for AWS cloud resources and their utilization

- Elastic Load Balancer helps in building fault-tolerant applications by automatically


provisioning incoming application workload across available EC2 instances

(F2) Eucalyptus
- Elastic Utility Computing Architecture for Linking Your Programs to Useful Systems

- System for implementing on-premise private and hybrid clouds

- Interface compatible with AWS EC2, S3 and EBS

- Implemented using common Linux tools and basic web service technologies
- Simple installation and deployment

- Support for most linux distributions

- Secure internal communication using SOAP with WS security

-
(F3) OpenNebula
- Virtual infrastructure manger that orchestrates storage, network and virtualization
technologies

- Provides internal cloud administration and user interfaces

- Supports building any type of cloud setup

- Can be used as virtualization tool to manage virtual infrastructure usually private cloud

- Supports hybrid cloud to combine local infrastructure with public cloud based infrastructure

- Supports public clouds by providing cloud’s interfaces to expose its functionality for VM,
storage and network management.

(F4) Aneka
- .net based platform and framework designed for building and deploying distributed
applications on cloud

- Provides set of APIs for exploiting distributed resources and expressing business logic of
applications

- Allows users to build and schedule applications, provision resources and monitor results
using pricing, accounting etc

(G) Future research areas

- Self adaptive and dynamic data center

- Performance evaluation and workload characterization of virtual workloads

- High performance data scaling in private and public clouds

- Performance and high availability in clustered VMs through live migration

- VM scheduling algorithms

- Accelerating Vms live migration times

- Cloud wide VM migration and memoey de-duplication

- Live migration security


Lecture 8 Eucalyptus: Open Source Private Cloud Software
(Source www.eucalyptus.com)
(A) Introduction
U

Eucalyptus is open source software for building private clouds that are compatible with AWS APIs. Our
cloud software pools together compute, network, and storage resources within your IT environment
to create on-demand, self-service private cloud resources.
Eucalyptus can dynamically scale up or down depending on application workloads and is uniquely
suited for enterprise clouds, delivering production-ready software that supports the industry-standard
AWS APIs, including EC2, S3, EBS, IAM, Auto Scaling, Elastic Load Balancing, CloudWatch and
CloudFormation. The benefits of this open source software for private clouds are highly efficient
scalability, organization agility, and increased trust and control for IT.
(B) Eucalyptus Cloud Computing Architecture
U

Distributed And Scalable Cloud Architecture


Eucalyptus cloud computing architecture is highly scalable because of its distributed nature. The Cloud
level of the computing architecture is comprised of only two components and while used by many
users, the transactions at each component are typically small. The Node level may have many
components, but each component only supports a few users, even though the transactions are larger.
This distributed cloud architecture is flexible enough to support businesses of any size.
Eucalyptus Cloud Components
U

Eucalyptus is made up of five distinct components that can be distributed in various cloud computing
architectures. The five components are grouped into three separate levels.
1) Cloud Level

Cloud Controller (CLC)


Scalable Object Storage (SOS)
2) Cluster Level (i.e., Availability Zone)

Cluster Controller (CC)


Storage Controller (SC)
3) Node Level

Node Controller (NC)


(B1) Eucalyptus Architecture: Cloud Level
U

Cloud Controller (CLC)


U

The Cloud Controller (CLC) is a Java program that offers EC2-compatible SOAP and Query interfaces,
as well as a Web interface to the outside world, for distribution within the cloud architecture. In
addition to handling incoming requests, the CLC acts as the administrative interface for cloud
management and performs high-level resource scheduling and system accounting. The CLC accepts
user API requests from command-line interfaces like euca2ools or GUI-based tools like the Eucalyptus
Management Console and manages the underlying compute, storage, and network resources. Only
one CLC can exist per cloud.
The CLC handles high-level:
Authentication
Accounting
Reporting
Quota management
Scalable Object Storage
U

Scalable Object Storage (SOS) is the Eucalyptus service equivalent to AWS Simple Storage Service (S3).
The SOS is pluggable service that allows infrastructure administrators the flexibility to implement
scale-out storage on top of commodity resources using open source and commercial solutions that
implement the S3 interface. Eucalyptus provides a basic storage implementation, known as Walrus,
which may suit evaluation and smaller cloud deployments. For large-scale and increased performance,
users are encouraged to connect the SOS to dedicated storage solutions such as RiakCS.
(B2) Eucalyptus Architecture: Cluster Level
U

Cluster Controller (CC)


U

A cluster is equivalent to an AWS availability zone, and a single Eucalyptus cloud can have multiple
clusters. The Cluster Controller (CC) is written in C and acts as the front end for a cluster within a
Eucalyptus cloud and communicates with the Storage Controller (SC) and Node Controller (NC). The
CC manages instance (i.e., virtual machines) execution and Service Level Agreements (SLAs) per
cluster.
Storage Controller (SC)
U

The Storage Controller (SC) is written in Java and is the Eucalyptus equivalent to AWS Elastic Block
Store (EBS). The SC communicates with the Cluster Controller (CC) and Node Controller (NC) within
the distributed cloud architecture and manages Eucalyptus block volumes and snapshots to the
instances within its specific cluster. If an instance requires writing persistent data to memory outside
of the cluster, it would need to write to the backend storage, which is available to any instance in any
cluster. The SC interfaces with storage systems, including local, NFS, iSCSI, and SAN.
(B3) Eucalyptus Architecture: Node Level
U

Node Controller (NC)


U

The Node Controller (NC) is part of the Node level of the cloud computing architecture. It is written in
C and hosts the virtual machine instances and manages the virtual network endpoints. The NC
downloads and caches images from Scalable Object Storage as well as creates and caches instances.
(C ) Eucalyptus Cloud Features
U

Eucalyptus delivers the broadest set of AWS compatible services including; EC2, S3, EBS, IAM,
CloudFormation, Auto Scaling and more. It is based on an open and modular architecture designed to
integrate with existing and emerging IT resources such as RiakCS. With Eucalyptus, IT and DevOps
teams can regain control over costs, performance and security of the cloud without changing existing
cloud-native applications.
AWS Compatibility
Hybrid Cloud Management
Cloud Account Management
Networking
Storage
Compute
Self-service Provisioning
Cloud Management
Eucalyptus Roadmap
Multi-Tenancy
Source :
Wikipedia
Moving to Cloud, by Sitaram, Manjunath
(A) Multi-Tenancy

Multi-tenancy (MT) is important technical challenge that any cloud platform needs to address. It is
nothing but the ability to share the resources in a very fine grained manner between the users of the
cloud services. It is software architecture in which the several customers (tenants) share the single
instance of the application. Service provider hosts the application instance on his infrastructure and
the tenants (or customers) shares that single instance. The users of the application can be actual users
who have been provided the access by the tenants. For example, SalesForce.com (service provider)
hosts the CRM application using there infrastructure. A company who wants to use this hosted CRM
application for their business is the customer and the employees of the companies to whom the
company provides privileges to access the CRM application are the actual users of the application.
With this architecture, data, configuration, user management, tenant specific functionality etc are
shared between the tenants. MT contrasts with multi-instance architectures, where separate software
instances operate on behalf of different tenants. In virtualization, the user is given the illusion that he
owns the complete infrastructure on which application is running through concept of virtual machine.
The hypervisor plays important role to achieve the separation between the multiple users. In the multi
tenant architecture, the application is redesigned to handle the resource sharing between the multiple
tenants.
(B) Economics of MT

1) Cost Savings - An application instance usually incurs a certain amount of memory and processing
overhead which can be substantial when multiplied by many customers, especially if the
customers are small. As the single instance is shared between multiple tenants this cost
overhead can be segregated between multiple tenants.

2) Data aggregation/data mining - In non MT architecture, the data for different customers will be
located in different database schemas and pulling information from all of them can be a very
cumbersome task. In MT architecture, instead of collecting data from multiple data sources,
with potentially different database schemas, all data for all customers is stored in a single
database schema. Thus, running queries across customers, mining data, and looking for trends
is much simpler.

3) Complexity - Because of the additional customization complexity and the need to maintain per-
tenant metadata, multitenant applications require a larger development effort.

4) Release management - MT simplifies the release management process. In a traditional release


management process, packages containing code and database changes are distributed to
client desktop and/or server machines. These packages then have to be installed on each
individual machine. With the multitenant model, the package typically only needs to be
installed on a single server. This greatly simplifies the release management process.

At the same time, multitenancy increases the risks and impacts inherent in applying a new
release version. As there is a single software instance serving multiple tenants, an update on
this instance may cause downtime for all tenants even if the update is requested and useful
for only
one tenant. Also, some bugs and issues resulted from applying the new release could manifest
in other tenants' personalized view of the application. Because of possible downtime, the
moment of applying the release may be restricted depending on time usage schedule of more
than one tenant.
( C ) Requirements for MT architecture
1) Customization –

Multitenant applications are typically required to provide a high degree of customization


to support each target organization's needs. Customization typically includes the
following aspects:
a) Branding: allowing each organization to customize the look-and-feel of the application
to match their corporate branding (often referred to as a distinct "skin").
b) Workflow: accommodating differences in workflow to be used by a wide range of
potential customers.
c) Extensions to the data model: supporting an extensible data model to give customers
the ability to customize the data elements managed by the application to meet their
specific needs.
d) Access control: letting each client organization independently customize access rights
and restrictions for each user.

2) Quality of service

Multitenant applications are expected to provide adequate isolation of security,


robustness and performance between multiple tenants which is provided by the layers
below the application in case of multi-instance applications.
(D) Multi-tenancy levels

1) Custom instances

Lowest level of MT
Each customer has own custom version of application
Different versions of application are running differently
Extremely difficult to manage as needs dedicated support for each customer
2) Configurable instances

Same version of application is shared between the customers with customizations


specific to each customer
Different instances of same application are running
Supports customization like logos on the screen, tailor made workflows
Managing application is better that custom instances approach as only one copy
needs to be managed
Upgrades are simple and seamless
3) Configurable, multi-tenant efficient instances

Same version of application is shared between the customers through a single


instance of application
More efficient usage of the resources
Management is extremely simple
4) Scalable, configurable, multi tenant efficient resources

All features of level 3 are supported


Application instances are installed on cluster of computers allowing it to scale well
Maximum level of resource sharing is achieved
Example, Gmail
(E) Resource sharing approaches

Storage and server are the two resources that are shared in MT between the tenants.
(E1) Storage sharing
Storage can be file system or databases including relational and non relational databases. We discuss
only the approach where only one instance of database is shared between the tenants.
1) Dedicated tables per tenant

Each tenant has separate copy of table


Only tenant is given the privileges to access these tables, no other can access it
Customizations can be easily added to the tenant’s tables
2) Shared table approach

Tables are shared between the tenants


Needs to isolate between the tenants data in different rows using the unique tenant
id assigned to each tenant
More space efficient than dedicated table approach
Needs more compute resources as it needs to use view to make join to retrieve tenant
specific data
Metadata table needs to be maintained for tenant’s information
Managing customization is difficult
(E2) Compute resource sharing
In dedicated table method, tenant owns the files. Operating system features can be used to restrict
access to the tenant’s data.
In shared table method, application needs to be take care of security of tenant’s data.
(F) Support for Customization

In shared table approach, it’s very complex to provide support for the customizations. Each tenant
might have his unique requirements to store data in the tables and using shared table approach,
managing such requirements needs to come up with proper data architecture.
1) Pre allocated columns

Fixed number of columns is reserved for custom columns


If the numbers of custom column are too less than the reserved custom columns then
space are wasted
If the numbers of custom columns are more than the reserved custom columns then
customer will feel restricted.
Data EmpId EmpNa EmpDe Salary Custom Custom
table 1 me pt 1 2
Tenant
Id
1
1
2

1.

2.

You might also like