17CS742 – Cloud
computing applications
Module 1
2020-2021[ODD]
2
17CS742 –
Cloud computing applications
► Module – 1 Introduction to cloud computing, Virtualization
► Module – 2 Cloud computing architecture, Aneka
► Module – 3 Concurrent computing, high throughput computing
► Module – 4 Data Intensive Computing
► Module – 5 Cloud platforms in industry, cloud applications
*
3
Course Outcomes
► Explain cloud computing, virtualization and classify services of cloud
computing
► Illustrate architecture and programming in cloud
► Describe the platforms for development of cloud applications and List
the application of cloud.
4
Text Book
► Rajkumar Buyya, Christian Vecchiola, and Thamarai Selvi Mastering
Cloud. Computing McGraw Hill Education
► Reference Book:
Dan C. Marinescu, Cloud Computing Theory and Practice, Morgan
Kaufmann, Elsevier 2013.
5
Module 1
► Introduction (Chapter 1) Environments
► Application Development
► Cloud Computing at a Glance
► Infrastructure and System Development
► The Vision of Cloud Computing
► Computing Platforms and Technologies
► Defining a Cloud
► Amazon Web Services (AWS)
► A Closer Look
► Google AppEngine
► Cloud Computing Reference Model ► Microsoft Azure
► Characteristics and Benefits ► Hadoop
► Challenges Ahead ► Force.com and Salesforce.com
► Historical Developments ► Manjrasoft Aneka
► Distributed Systems
► Virtualization
► Web 2.0
► Service-Oriented Computing
► Utility-Oriented Computing
► Building Cloud Computing
6
Module 1
► Virtualization(Chapter 3)
► Introduction
► Characteristics of Virtualized Environments
► Taxonomy of Virtualization Techniques
► Execution Virtualization
► Other Types of Virtualization
► Virtualization and Cloud Computing
► Pros and Cons of Virtualization
► Technology Examples
► Xen: Paravirtualization,
► VMware: Full Virtualization
► Microsoft Hyper-V
7
Virtualization
8
Virtualization (Chapter 3)
► Introduction
► Characteristics of Virtualized Environments
► Taxonomy of Virtualization Techniques
► Execution Virtualization
► Other Types of Virtualization
► Virtualization and Cloud Computing
► Pros and Cons of Virtualization
► Technology Examples
► Xen: Paravirtualization
► VMware: Full Virtualization
► Microsoft Hyper-V
Increased performance and compute capacity
Introduction • Normal PC have enough resources to host a virtual machine manager.
• Supercomputers have immense compute power and can accommodate 100’s or 9
1000’s of VM’s
Underutilized hardware and software resources
• Underutilization happens because of i) increased performance/computing capacity
ii) limited/sporadic use of resources.
• Many computers are only partially used during work hours.
► virtualization technologies • 24/7/365 basis : requires a transparent environment
provide a virtual environ-
ment for not only Lack of space
executing applications • Server consolidation – brings several different applications under one server,
but also for storage, improves hardware underutilization, reduces power consumption
memory, and networking Green initiatives
► Supported by VM-based • Datacenter –requires energy to keep the servers on and also cooling them.
programming languages. • Virtualization technology provides efficient means for server consolidation.
► Java VM – applets Rise of administrative costs
► .NET Framework • Servers require administrators – h/w monitoring, replacing defective components,
server setup, updates, resource monitoring, backups.
► Google – Java and
• Cooling and administrative costs are higher than the IT equipment
Python
• Virtualization – reduces the number of servers, reduces cost of administrative
personnel.
10
Increased
Security
Characteristics
of Virtualized Managed
Execution
Environments
Portability
11
Virtualization Model
► 3 components: hardware virtualization
► Guest, host, virtualization layer
► Host : original environment where
guest is managed.
► Virtualization layer : responsible for
recreating the same or different
environment.
► Network Virtualization : guest
application and users interact with
VPN(Virtual Private Network)
► Virtual environment is created by
means of a software program. Watch : https://www.youtube.com/watch?v=iBI31dmqSX0
12
Increased Security, Portability
► Increased Security
► All operations by guest are performed by VM
► This allows for control and filter
► Resources exposed to host are hidden or protected from guest.
► Increase security is a requirement when running untrusted code.
► Sandboxed inside JVM
► Portability
► Hardware virtualization : guest is packaged as a VM image.
► Programming level virtualization : JVM or .NET this represents the application
components(jars or assemblies) that can run without any recompilation.
► Means having your own system and being able to run it as long as the VMM is
available.
13
Managed Execution
Managed Execution 14
► Sharing – allows separate computing environments within the same host
► Aggregation – when group of separate hosts are tied together to represent a single host.
► Emulation - when a different environment is presented to the user.
► Allows for controlling and tuning the environment exposed to guests
► Useful in testing purposes where a particular platform should be validated
► Hardware support like file I/O or SCSI can be emulated
► Old and legacy software can be run on emulated hardware
► Eg. Arcade game emulator on PC.
► Isolation – allows guests to operate on a separate environment.
► Guest interacts with the abstraction layer which provides access to the underlying layers.
► It allows multiples hosts to run without interfering with one another
► Provides a separation between a guest and a host.
► VM can filter activity of guest.
► Another important characteristic : performance Tuning
► Migration of VM’s
► Provide QoS stated in the SLA
Taxonomy of Virtualization Technologies 15
16
Taxonomy
► Classification based on the service or entity being
emulated.
► Mainly used to emulate
► Execution environments
► Storage
► Networks
► 2 major levels based on the type of host they
require
► Process Level : implemented on top of existing OS
► System Level : implemented directly on hardware
17
Execution Virtualization
► aim to emulate an execution environment
► separate from the one hosting the virtualization layer.
► can be implemented directly on top of the hardware by
► the operating system
► an application
► libraries dynamically or statically linked to an application image
18
Machine Reference Model
► For virtualizing an execution environment
a reference model is required.
► Bottom: ISA (Instruction Set Architecture)
► which defines the instruction set for the
processor, registers, memory, and interrupt
management.
► interface between hardware and
software
► Important to OS developers and
applications that directly manage
underlying hardware.
19
Machine Reference Model
► ABI : Application Binary Interface(ABI)
► separates the OS from the applications
and libraries that are managed by the OS
► ABI covers details such as low-level data
types, alignment, and call conventions
and defines a format for executable
program
► System calls are defined at this level
► allows portability of applications and
libraries across OS
20
Machine Reference Model
► API : Application Programming Interface
► interfaces applications to libraries and/or
the underlying operating system
► ABI and ISA are responsible for any
operation performed by API.
► The high-level abstraction is converted
into machine-level instructions
► This layered approach simplifies the
development and implementation of
computing systems.
► such a mode requires limited knowledge
of the entire computing stack
► provides ways to implement a minimal
security model
21
Security class
► Privileged Instructions
► Executed under specific restrictions
► Used for sensitive operations which
► expose(behavior-sensitive) privileged state : operate on the I/O
► modify(control-sensitive) privileged state : alter the state of the CPU registers
► There may be more than 1 class of privileged instructitons
► Non-privileged Instructions
► can be used without interfering with other tasks because they do not access
shared resources
► all the floating, fixed-point, and arithmetic instructions.
22
Hierarchy of Privileges
► Ring 0 is in the most privileged level
► Ring 3 in the least privileged level.
► Ring 0 is used by the kernel of the
OS
► rings 1 and 2 are used by the OS-
level services
► Ring 3 is used by the user
► Recent systems support only two
levels, with Ring 0 for supervisor
mode and Ring 3 for user mode.
Current systems – 2 modes 23
► supervisor mode Watch : https://www.youtube.com/watch?v=VtXNIy_noWg
► All instructions(privileged and non-privileged) can be executed without any restriction
► Also called master mode / kernel mode.
► Used by the OS / hypervisor to perform sensitive operations on hardware-level resources
► User Mode.
► Has restrictions on machine-level resources.
► If code invokes privileged instructions, hardware interrupts and traps potentially harmful execution.
► There might be some instructions that can still be invoked.
► Crucial to understand role of hypervisor - that runs above the supervisor mode.
► The division between privileged and non-privileged instructions pose challenge for design of VMM’s
► all the sensitive instructions will be executed in privileged mode, which requires supervisor mode in order to
avoid traps.
► Original ISA – 17 sensitive instructions can be called from user mode.
► Prevents multiple OS managed by single OS to be isolated
► Recent ISA – redesigned the instructions as privileged
24
Hypervisor