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
VMWare – Full Virtualization:
Desktop-end user solution
Vmware Player: Tiny version to play Linux and Windows OS
Vmware Ace – Creates secured customized environment for corporate end user
Vmware ThinAPP-Solution for virtual application development environment
Vmware Server
VMware GSX server �
VMware GSX server :
1.Has similar architecture as desktop, but provides end user management support and scripting support
2. Serve the virtualization of Web servers
3. The daemon process Serverd control and manages server application
4. Applications are connected to VM by VM driver installed on host system
5. User request are managed through webserver interfaced with serverd to VMM
VMware ESX Server/ Enhanced VMware ESXi Server
CIM-Common Information Model �CIMP-Common Information Model protocol DCUI -Direct Client User Interface provides BIOS like support for user management �
Infrastructure virtualization and cloud computing solutions
Microsoft Hyper-v
Hypercalls interface: Entry point for partitions for execution of sensitive instructions. Implements para virtualization. This interface is used by drivers in the partitioned operating system to contact the hypervisor. The parent partition use this to create child partitions.
Memory service routines (MSRs): Is a set of functionalities to control the memory and its access from partitions. Leverages hardware-assisted virtualization. Hypervisor uses the Input/Output Memory Management Unit (I/O MMU or IOMMU) to fast-track access to devices from partitions by translating virtual memory addresses
Advanced programmable interrupt controller (APIC): Is an interrupt controller.
Virtual processor equipped with synthetic interrupt controller (SynIC), an extension of local APIC. Hypersvisor controls the transfer of physical interrupts to SynIC
Scheduler: Schedules virtual processor on physical processor, Scheduling follows parent processor rules
Address manager: Manages virtual network address
Partition manager: Manages creating, finalizing, destructing, enumerating partitions through hypercall API
Module 3: Cloud Computing Architecture
Introduction, Cloud Reference Model, Types of Clouds, Economics of the Cloud, Open Challenges
“Cloud computing is a utility-oriented and Internet-centric way of delivering IT services on demand. These services cover the entire computing stack: from the hardware infrastructure packaged as a set of virtual machines to software services such as development platforms and distributed applications”.
The cloud reference model
All referenced model follow a layered architecture
Collection of resources are employed to support required power of computing
Physical infrastructure is managed by the core middleware
Middleware provides required run time environment and efficient utilization of resources
At the bottom of the stack virtualization technologies are used
Hypervisors manage the pool of resources and expose the distributed infrastructure as a collection of virtual machine �
Infrastructure- and hardware-as-a-service
IaaS/HaaS are more popular services of Cloud
They deliver customizable hardware resources on demand
They offer single server to entire range of service
Virtualization is base of all services
Hardware virtualization offer workload partitioning, application isolation, sandboxing, and hardware tuning
It is more secured, minimum maintenance cost, reduces capital cost and customizable as per user needs
Three important layers are physical infrastructure, the software management infrastructure, and the user interface
User interface provides access to the services exposed by the software management infrastructure
Web 2.0 technologies: Web services, RESTful APIs, and mash-ups �Allows developing full-featured management consoles completely hosted in a browser or a Web page
Web services and RESTful APIs allow programs to interact with the service without human intervention
Infrastructure Management Software / Layer
Core role is played by Scheduler, it interacts with other component
Pricing and billing : Usage charges
Monitoring : Trail and analysis of VM performance
Reservation : Keeps VM instance data history and provisioning
QoS/SLA management : If supported maintains SLA repository and QoS requirements
VM repository : Repository of different VM offered by service provider
VM pool manager : Keeps track of all live instances
Provisioning: Interacts with scheduler to support on demand provisioning from external requests
The bottom layer is composed of the physical infrastructure, on top of which the management layer operates.
Infrastructure solution: Massive data center, cluster of computing resources, pool of virtual resources supported by external service provider, distributed environment��
� �
�
��
Platform as a service
PaaS: Supports development and deployment platform for running applications
These are constituent middleware based on which applications are developed
Middleware manage the application
This layer is independent of under laying infrastructure
They manage deployment of application
They help in configuring required components for application management
Run time environment, configuration, provisioning, changes, data base, migration etc
Required development model is exposed to user
Offers conventional model to prototyping facility
Complete IDE for multiple languages is supported
PaaS also offers infrastructure support along with middleware
API supported by service provider are employed to upload
PaaS provides vital support for developing and hosting application
Essential components:
Software as a service
Is a software delivery model focusing providing internet based access to applications
Applications are build by third parties for user requirements
Platform covers general set of features and customized on demand for user
The product sold to customer is application access.
The application is centrally managed.
The service delivered is one-to-many.
The service delivered is an integrated solution delivered on the contract�
Benefits
Software cost reduction �Service-level improvements �Rapid implementation �Standalone and configurable �Subscription and pay-as-you-go �
Types of clouds
Private, Public, Hybrid, Community
Useful for:
Media Industry , Health Industry, Public Sector, Scientific research
Benefits
Open, Community, Graceful Failure, Convenient and control, Environmental Sustainability
Economics of the cloud
Reduces capital cost
No depreciation Loss
No software licensing and Replacements
Reduces Operational and administration cost
Pricing Model
Subscription Based
Unit Pricing
Tired Pricing
Open challenges �Cloud definition �Cloud interoperability and standards �Scalability and fault tolerance �Security, trust, and privacy �
Module-4 :Cloud Security�Cloud Risks, Top concern for cloud users, privacy impact assessment, trust, OS security, VM Security, Security Risks posed by shared images and management OS. Textbook 2: Chapter 9: 9.1 to 9.6, 9.8, 9.9
broad classes of risk:
traditional security threats,
threats related to system availability,
threats related to third-party data control
Cloud Security Alliance (CSA) report in 2010
Security: The top concern for cloud users
Traditional closed arena to open arena
Major user concerns
unauthorized access to confidential information and data theft. �user control over the life cycle of data �Data theft posed by rogue employees �Lack of standardization �Technology evolution
autonomic computing �self-organization �self-optimization �self-repair �Self-healing
Multitenancy and legal framework for enforcing Security
Privacy and privacy impact assessment
Many nations regard privacy as basic human right
The privacy laws are different for nations
Theft of private data is major problem
To comply with privacy law service provider ensure:
Trust
The entity must work hard to build trust�Three Phases:
Organization policy and reputation are vital to build and sustain trust
Trust should be persistent
“trust of a party A to a party B for a service X is the measurable belief of A in that B behaves dependably for a specified period within a specified context” �
Operating system security
OS must ensure the resources of the system are secured from external threats
Mandatory security is applied for OS
Must allow trusted user and application to access the authorized resources
Many OS do not support layered security
Multiple mechanism
Use of enforces and decider
Only trusted path
Sand boxed execution
OS security is necessary but many a times not enough to prevent security breach
Virtual machine security
VM plays important role in granting access to physical rsources
A secured trusted base (TCB) is necessary in VM
Many attackers use VM fingerprint o gain access to system
Log files created by VM are another security hole
VMM based threats
1. Starvation of resources and denial of service �2. VM side-channel attacks �3. Buffer overflow attacks
Deployment of malicious / rouge VM
Tampered VM image
Lack of mechanism to verify integrity of VM images