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 |
�
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. �
�
����
Global Cloud Market
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
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
Characteristics and benefits
�
�
Cloud Deployment Models
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)
The Cloud Computing Reference Model
Computing paradigm evolution
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�
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 � � �
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
Infrastructure and system development
Computing platforms and technologies
Amazon web services (AWS)
Google AppEngine
Microsoft Azure
Hadoop
�������� �
Force.com and Salesforce.com
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 ���������
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
Virtualization technologies
( Web based virtual environment )��
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
Characteristics of virtualized environments
Three major components are : guest, host, and virtualization layer
Virtualization reference Model
Increased security
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
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)
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
#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");
}
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
Native and Hosted VMM
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.
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
�• 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.
��� ��
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
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 ������ ���
����
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 ��
� ��
��� �
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��
�
��
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
Pros and cons of virtualization
Advantages | Disadvantages |
Managed execution and isolation | performance decrease
• 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 |
| |
Technology examples
Xen: para-virtualization
Features:
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