1 of 41

CLOUD COMPUTING

Course Code

21CS72

CIE Marks

50

Teaching Hours/Week (L:T:P: S)

2:0:0:0

SEE Marks

50

Total Hours of Pedagogy

24

Total Marks

100

Credits

02

Exam Hours

03

Course Learning Objectives:�CLO 1. Introduce the rationale behind the cloud computing revolution and the business drivers�CLO 2. Introduce various models of cloud computing�CLO 3. Introduction on how to design cloud native applications, the necessary tools and the design tradeoffs.�CLO 4. Realize the importance of Cloud Virtualization, Abstraction`s and Enabling Technologies and cloud security

2 of 41

Module-1

Introduction:�Introduction ,Cloud Computing at a Glance, Historical Developments, Building Cloud Computing Environments, Amazon Web Services (AWS), Google AppEngine, Microsoft Azure, Hadoop, Force.com�and Salesforce.com, Manjrasoft Aneka

Cloud computing a new emerging model of computing

Services as commodities delivered as other utility services

Based on the concept of dynamic provisioning

Allows renting infrastructure, runtime environments, and services on a pay per-use basis.

No up-front commitments required

Ubiquitous storage and compute power on demand

Scalable runtime environment

IT services are traded as utilities in an open market, without technological and legal barriers. �

����

3 of 41

Global Cloud Market

4 of 41

Cloud computing refers to both the applications delivered as services over the Internet and the hardware and system software in the datacenters that provide those services

Cloud Computing overview

5 of 41

6 of 41

NIST: Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.

Cloud computing is helping enterprises, governments, public and private institutions, and research organizations

  • Enterprises delegate work to cloud-based systems
  • Small enterprises / Start-up need not commit cost
  • Required computing available for system developers
  • End user can access all resources 24 X 7

Characteristics and benefits

  • No up-front commitments�• On-demand access�• Nice pricing�• Simplified application acceleration and scalability�• Efficient resource allocation�• Energy efficiency�• Seamless creation and use of third-party services

7 of 41

8 of 41

Cloud Deployment Models

9 of 41

To Cloud service providers

1. Amazon Web Services (AWS)

2. Microsoft Azure

3. Google Cloud Platform (GCP)

4. Alibaba Cloud

5. Oracle Cloud

6. IBM Cloud (Kyndryl)

7. Tencent Cloud

8. OVHcloud

9. DigitalOcean

10. Linode (owned by Akamai)

10 of 41

The Cloud Computing Reference Model

11 of 41

Computing paradigm evolution

12 of 41

It encompasses a collection of solutions allowing the abstraction of entities of computing, such as hardware, runtime environments, storage, and networking

Virtualization is essentially a technology �They simulate the interface

Most Common form hardware virtualization �Coexistence of different software stacks on top of the same hardware

Stack contains virtual machines

Process virtual machines creates virtual runtime environment

Virtualization

Web 2.0 / 3.0

Brings interactivity and flexibility into Web pages � Applications are extremely dynamic

Automated updates

Light weight programming, scripting and deployment model

Real time experience for users

13 of 41

Service-oriented computing

Concept of services as the main building blocks of application an

system development

SOC supports development of rapid, low-cost, flexible, interoperable,

and evolvable applications and systems

Service is supposed to be loosely coupled, reusable, programming

language independent, and location transparent

Embodies important concept of QoS and SaaS

Utility-oriented computing Defines a service-provisioning model for compute services �Resources such as storage, compute power, applications, and infrastructure are packaged and provisioned on pay per use basis

Services at low cost are offered based on required utility

Leverages external services for performing a specific task within a software system � � �

14 of 41

Building cloud computing environments

Cloud computing environments encompasses 1. Development of applications and systems that leverage cloud solutions

2. Creation of frameworks, platforms, and infrastructures delivering cloud services

Application development must satisfy the constraint of scalability on demand

Web 2.0 has become platform for developing rich and complex applications

Mostly sensible to inappropriate sizing of infrastructure and service deployment,

Supported by complex back end activities

Dynamic user experience used for continuous up-gradation

Batch processing based Resource intensive application

Application development Utilizes Cloud facilities

  1. Renting compute power, storage, and networking
  2. Complete scalable, dynamic runtime environment
  3. Desktop like real time environment

15 of 41

Infrastructure and system development

  1. Base technologies are Distributed computing, Virtualization, Service oriented architecture and web 2.0
  2. Distributed computing offers foundation framework
  3. New nodes and services are provisioned on demand
  4. IaaS provides dynamic allocation of resources
  5. PaaS provides runtime , computing environment
  6. All services are enabled through web 2.0 interface
  7. All bundle also referred as XaaS –Everything as a service
  8. Offers on demand scaling of resources replicating the required component
  9. Service oriented architecture manages the computing entities as a service

16 of 41

Computing platforms and technologies

Amazon web services (AWS)

  1. AWS is a comprehensive cloud IaaS services ranging from virtual compute, storage, and networking to complete computing stacks
  2. Customized Elastic Compute Cloud (EC2) and Simple Storage Service (S3)
  3. Variety of virtual hardware configurations, including GPU and cluster instances
  4. Web portal for accessing AWS services along with web API for programming environment
  5. Networking support, caching systems, DNS, database (relational and not) support, and others.

Google AppEngine

  1. Scalable runtime environment mostly devoted to executing Web applications
  2. App engine supports secure, dynamic, scalable run time environment along with services
  3. AppEngine software development kit (SDK) supports replicates run time environment and helps in test and profile applications
  4. The languages currently supported are Python, Java, and Go

17 of 41

Microsoft Azure

  1. cloud operating system and a platform for developing applications
  2. scalable runtime environment for Web applications and distributed applications in general.
  3. Roles identify the distribution unit
  4. Web role is designed to host a Web application
  5. Worker role is a more generic container of applications
  6. Virtual machine role provides a virtual environment
  7. Support for storage (relational data and blobs), networking, caching, content delivery, and others.

Hadoop

  1. Hadoop is an implementation of Map Reduce
  2. Two fundamental operations for data processing: map and�reduce Map: Transform and synthesize data Reduce: Aggregates data
  3. Apache hadoop is sponsored by Yahoo which manages largest cluster of Hadoop

�������� �

18 of 41

Force.com and Salesforce.com

  1. Force.com is a cloud computing platform for developing social enterprise applications
  2. SalesForce.com, a Software-as-a-Service solution for customer relationship�management on top of force.com
  3. Forse.com supports building enterprise applications as ready to use blocks
  4. The platform provides complete support for developing applications, from the design of the data layout to the definition of business rules and workflows and the definition of the user interface

Manjrasoft Aneka

1. Platform for rapid creation of scalable applications and their

deployment on various types of clouds in a seamless and elastic manner

2. It supports a collection of programming abstractions for developing applications and a distributed runtime environment

3. Developers can choose different abstractions to design their application: tasks, distributed threads, and map-reduce

4. Service manages scheduling, execution, accounting, billing, storage, and quality of service

5. Great flexibility and simplifies the integration of new features ���������

19 of 41

Module-2

Virtualization: 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

Virtualization allows the creation of a secure, customizable,�and isolated execution environment for running applications, even if they are untrusted, without affecting other users applications.

Virtualization technologies provide a virtual environment for not only executing applications but also for storage, memory, and networking.

virtualization is often synonymous with hardware virtualization

20 of 41

Virtualization technologies

  1. Increased performance and computing capacity.
  2. Underutilized hardware and software resources
  3. Lack of space
  4. Greening initiatives
  5. Rise of administrative costs
  6. Resource Sharing
  7. Required computing environment
  8. Secured environment
  9. Simulation of environment
  10. Real time experience
  11. Cost effective management

( Web based virtual environment )��

21 of 41

  1. virtual machine is a special piece of software which emulates the operation of a physical machine
  2. virtual machine remains completely independent
  3. uses its own software-based components (the CPU, motherboard, video adapter, network interface, memory and hard disks)
  4. system the virtual machine is installed on is called the host OS
  5. virtual machine itself is referred to as the guest OS
  6. The hypervisor is known as virtual machine manager brings interface between Guest and Host

Leading hypervisor products

Vmware, Microsoft Hyper-V,

Oracle VM VirtualBox,

Parallels Desktop 

QEMU ( Quick Emulator),

Xen 

Possible Issues

Slower usability

Higher risks of a downtime

Problems with data sharing

Data loss issues

Software malfunction, Virtual disk corruption, File system damage

Migration failure, Deleted files, Problems with snapshots

22 of 41

Characteristics of virtualized environments

Three major components are : guest, host, and virtualization layer

Virtualization reference Model

23 of 41

Increased security

  1. virtual machine manager controls and filters the activity of the guest
  2. Resources shared are controlled by host system
  3. Ability to create a virtual computer with customized virtual hardware on top of the new operating system
  4. File system is completely independent of guest OS

Managed execution Model �� �

Performance tuning: Easier to control the performance of the guest by finely tuning the properties of the resources exposed through the virtual environment

24 of 41

Portability

Portability allows having your own system always with you and ready to use as long as the required virtual machine manager is available

Taxonomy of virtualization techniques ( ref model)

25 of 41

ISA- Instruction Set Architecture

ABI- Application Binary

API-Application Programming Interface

Privileged / Non-Privileged

Supervisor mode / Karnel Mode / Master Mode

User mode/User Space

hypervisor runs above the supervisor mode

26 of 41

#include <linux/init.h>�#include <linux/module.h>�#include <linux/kernel.h>

//Example of Kernel Programming�static int __init hello_init(void)�{�printk(KERN_INFO "Hello, world!\n");�return 0; }�static void __exit hello_exit(void)�{�printk(KERN_INFO "Goodbye, world!\n");� }��module_init(hello_init);�module_exit(hello_exit);�MODULE_LICENSE("GPL");�MODULE_AUTHOR(“GNDEC");�MODULE_DESCRIPTION("A simple example Linux module.");�MODULE_VERSION("0.01");

}

27 of 41

28 of 41

Hardware-level virtualization

Provides an abstract execution environment in terms of computer hardware

Hardware-level virtualization is also called system virtualization

Provides ISA to virtual machines

Hypervisor, or virtual machine manager (VMM) Fundamental for any virtualization

VMM creates virtual hardware environment for guest machine

Type I hypervisors run directly on top of the hardware.

Type -1 interacts directly with the ISA

Also called as native virtual machine

Type II hypervisors require the support of an operating system to provide virtualization services.

Type II programs are managed by OS

Called as a hosted virtual machine

29 of 41

30 of 41

Native and Hosted VMM

31 of 41

VMM Reference Model

dispatcher constitutes the entry point of the monitor

Reroutes the instructions issued by the virtual machine

Allocator is responsible for deciding the system resources to be provided to the VM �Allocator is invoked by the dispatcher

Interpreter module consists of interpreter routines.

32 of 41

The design and architecture of a virtual machine manager, together with the underlying hardware design of the host machine, determine the full realization of hardware virtualization

The criteria that need to be met by a virtual machine manager to efficiently support virtualization were established by Goldberg and Popek

  • Equivalence. A guest running under the control of a virtual machine manager should exhibit the same behavior as when it is executed directly on the physical host.

�• Resource control. The virtual machine manager should be in complete control of virtualized resources.

Efficiency. A statistically dominant fraction of the machine instructions should be executed without intervention from the virtual machine manager.

��� ��

33 of 41

A virtualizable computer (left) and a non-virtualizable computer (right)

THEOREM 3.1:For any conventional third-generation computer, a VMM may be constructed if the set of sensitive instructions for that computer is a subset of the set of privileged instructions.

THEOREM 3.2:A conventional third-generation computer is recursively virtualizable if:�• It is virtualizable and • A VMM without any timing dependencies can be constructed for it.

THEOREM 3.3: A hybrid VMM may be constructed for any conventional third-generation machine in which the set of user-sensitive instructions is a subset of the set of privileged instructions

34 of 41

Hardware virtualization techniques

Hardware-assisted virtualization: This term refers to a scenario in which the hardware provides architectural support for building a virtual machine manager able to run a guest operating system in complete isolation.

Full virtualization: Full virtualization refers to the ability to run a program, most likely an operating system, directly on top of a virtual machine and without any modification, as though it were run on the raw hardware

This provides a complete emulation of the entire underlying hardware

Enhanced security, ease of emulation of different architectures, and coexistence of different systems on the same platform

key challenge is the interception of privileged instructions

implementation of full virtualization is done with combination of hardware and software potentially harmful instructions are not allowed to be executed�directly on the host.

Para virtualization.: This is a not-transparent virtualization solution that allows implementing thin VMM

Acts as a software interface to the virtual machine that is slightly modified from the host

Aim is to provide capability to demand the execution of performance-critical operations directly on the host

Partial virtualization: Provides a partial emulation of the underlying hardware

Not all the features of the OS can be supported ����

����

35 of 41

Operating system-level virtualization : Create different and separated execution environments for applications that are managed concurrently.

No VMM is present and virtualization is done within a single operating system

OS kernel allows for multiple isolated user space instances

kernel is also responsible for sharing the system resources

Programming language-level virtualization

( Process virtualization) (high-level virtual machines )

Programming language-level virtualization is mostly used to achieve ease of deployment of applications, Manage execution and portability

Such VM executes byte code generated after compilation

Maps underlying instructions to programming instructions

JIT (Just in Time ) uses this method

JVM and .NET which supports CLI are leading examples

Programs compiled into byte code can be executed on any operating system

Java and CLI are stack-based VM The model is based on execution stack

Do not provide direct access to the memory

Filters I/O applications and supports sandboxing

��

���

36 of 41

Application-level virtualization

A technique allowing applications to be run in runtime environments that do not natively support all the features required by such applications

Concerned with partial file systems, libraries, and operating system component emulation

Emulation is performed by a thin layer—a program or an operating system component

Can run binaries compiled for different architecture

Two Methods

Interpretation: Each source instruction is interpreted executing native

ISA instructions

Poor performance: big over head, low cost implementation

Binary translation : In this every source instruction is converted to native

Instructions with equivalent functions . A block of instructions are

translated, cached and reused

Performance improves over period, has initial setup cost��

��

37 of 41

Other types of virtualization

Storage virtualization �Network Virtualization

Desktop virtualization

Application Server Virtualization

Virtualization and cloud computing

Virtualization offers configurable computing environments

Cloud services needs appropriate customizable, secured ,isolated and independently manageable environment

IaaS needs H/W virtualization

PaaS needs programing level virtualization

Cloud services must be sandboxed and customized

Virtualization can support compute on demand

Efficient computing systems by means of consolidation (Aggregation)

Virtual machine migration and live migration

Virtual storage allows aggregated storage capacity

Ability to recreate complete computing stack

38 of 41

39 of 41

Pros and cons of virtualization

Advantages

Disadvantages

Managed execution and isolation

performance decrease

  • Maintaining the status of virtual processors

• Support of privileged instructions

• Support of paging within VM

• Console functions

secure and controllable

Sub optimal use of host

Default hardware support

Few feature of host OS are inaccessible

Portability

implications for security

unexpected form of phishing

reducing the costs of maintenance

Modified versions of the runtime environment

more efficient use of resources

Few resources are not configurable or supported

40 of 41

Technology examples

Xen: para-virtualization

Features:

  1. Supports Desktop, Server, Cloud Platform ( Xen Cloud Platform XCP) virtualization
  2. Popular para-virtualization, allows modification to guest OS to execute few privileged instructions
  3. Xen-hypervisor manages xen virtualization
  4. Hypervisor works in highest privileged mode and controls guest OS access to host OS / resources
  5. Guest OS are executed within domains as VM
  6. A special control software executes in Domain0 and controls the access to underlying resources
  7. The software executing in domain 0 runs HTTP server
  8. This HTTP server configures, creates VM instance and terminates VM

41 of 41

Ring 0 Runs Hypervisor

Ring 1 Domain 0 Management Control

Domain U all Guest OS are run

Hypervisor controls execution of Kernel instructions

Unchanged ABI are executed under hypervisor