CC Mod1-5 Notes Merged - 250107 - 124415
CC Mod1-5 Notes Merged - 250107 - 124415
Cloud computing is the delivery of computing services—such as servers, storage, databases, networking, software,
and more—over the internet, or the "cloud." This allows users to access and use these services on demand, typically
on a pay-per-use or subscription basis, without the need for managing or owning physical hardware or IT
infrastructure. The core advantage of cloud computing is that it abstracts the complexities of physical hardware and
enables users to access sophisticated computing resources without substantial capital investment.
2. Broad Network Access: Cloud services are available over the internet, allowing access from a variety of
devices like laptops, smartphones, and tablets.
VT
3. Resource Pooling: Providers use multi-tenant models where computing resources are pooled to serve
multiple consumers.
4. Rapid Elasticity: Cloud resources can be rapidly scaled up or down based on demand, offering flexibility.
5. Measured Service: Cloud computing is typically offered on a pay-per-use model, where consumers only
pay for the resources they use, akin to utility services like electricity or water.
U
Cloud computing allows businesses and individuals to avoid the cost and complexity of owning and maintaining
physical servers and other infrastructure. It provides a flexible, scalable, and cost-efficient solution for a wide range
of computing needs.
pa
The Vision of Cloud Computing
Cloud computing's vision is to transform IT infrastructure into a utility that can be accessed on demand, just like
electricity, water, or gas. The idea is that, rather than investing heavily in physical infrastructure, users can rent
computing resources—whether it be storage, processing power, or application services—on an as-needed basis. This
vision offers numerous benefits, such as reduced upfront costs, scalability, flexibility, and ease of maintenance. It
dh
allows users to focus on their core business logic and applications rather than worrying about hardware or
infrastructure.
The vision also anticipates a global marketplace for cloud services, where providers and consumers can trade
resources freely, breaking down barriers between different services and vendors. This would allow for greater
competition, improved service offerings, and the ability for users to seamlessly integrate services from different
ai
providers into their systems.
As the industry matures, the ability to dynamically provision computing services will enable organizations and
individuals to adapt to their needs quickly and efficiently. It also makes it easier for small businesses to access
powerful computing resources without needing significant capital investments in infrastructure.
@VTUpadhai – Cloud Computing (21CS72) – Module 1 Notes
@
Defining a Cloud
Cloud computing is a broad and evolving concept that has become central to the modern IT landscape. It refers to
the delivery of computing services such as servers, storage, databases, networking, software, and more over the
VT
internet, typically on a pay-per-use basis. The cloud allows individuals and businesses to access IT resources without
having to own, manage, or maintain physical infrastructure, offering flexibility, scalability, and cost-efficiency.
• Virtualized Infrastructure: Cloud computing often involves the use of virtualized infrastructure. This
means that physical hardware resources, such as servers, storage, and networking, are abstracted into
U
virtual machines that can be provisioned and decommissioned dynamically based on demand.
• Utility Computing: Similar to traditional utilities like water or electricity, cloud computing is provided as a
service that users can access as needed, without significant upfront investments in infrastructure.
pa
• IT Outsourcing: Cloud computing often involves outsourcing IT needs to a third-party provider who
manages the infrastructure and services, allowing businesses to focus on their core activities.
• Platform and Software as a Service (PaaS and SaaS): In addition to infrastructure services (IaaS), cloud
computing includes software and platform services, such as Software as a Service (SaaS) and Platform as a
dh
Service (PaaS), which deliver prebuilt applications or environments for developers to build and deploy their
software.
Figure 1.2 represents various technologies, concepts, and ideas related to cloud computing. These include:
• Green Computing: Cloud providers optimize energy usage in large data centers, contributing to
environmental sustainability.
• Elasticity: Cloud services can scale up or down quickly based on demand, providing flexibility.
• Pay as You Go: Users pay for services based on their actual usage, without upfront capital investment.
• Virtualization: Resources are abstracted and shared across multiple tenants, enabling efficient use of
hardware and flexibility in resource allocation.
• Security and Privacy: Cloud computing introduces new challenges around data security and privacy, but
these can be addressed through encryption and compliance with standards.
@
• Quality of Service (QoS): Cloud services are often defined by certain SLAs (Service Level Agreements)
that guarantee a minimum level of service quality.
• Provisioning on Demand: Resources are made available as required, allowing businesses to avoid over-
provisioning and reduce costs.
VT
Cloud Computing Definition
Cloud computing is best understood as both a set of applications delivered as services over the internet and the
hardware and system software that supports these services. It involves offering IT resources such as computing
power, storage, and development platforms as services, which can be provisioned and managed dynamically.
Reese [29] outlines three key criteria for identifying cloud services:
dh
1. Accessible via Web or API: The service is available online through a web interface or API, meaning users
can access it without needing proprietary software.
2. Zero Capital Expenditure: Cloud services require no upfront investment in infrastructure. Users only pay
for the services they use.
ai
3. Pay-per-use: Users pay only for the resources they consume, making it an efficient and cost-effective
model.
Cloud computing has a profound impact across various sectors. It offers solutions to both small and large
enterprises, as well as end users. Here are some examples:
1. Large Enterprises: The New York Times used cloud services to convert its digital archive into a web-
friendly format. By renting cloud resources (Amazon EC2 and S3), they completed this task in 36 hours,
paying only for the resources they used.
@VTUpadhai – Cloud Computing (21CS72) – Module 1 Notes
2. Small Enterprises and Start-ups: Animoto, a company that creates videos from images, stores and
processes all its data on Amazon Web Services (AWS). The company benefits from the elasticity of the
cloud, scaling from 70 to 8,500 servers in one week due to high demand.
3. System Developers: Developers can focus on business logic instead of worrying about infrastructure. For
example, Little Fluffy Toys, a London-based company, used Google App Engine to quickly deploy its
widget providing bicycle rental information.
4. End Users: Cloud services like Apple iCloud allow users to store documents and photos in the cloud and
access them from any device. This seamless access is transparent to the user.
• Private Clouds: Private clouds are dedicated infrastructures used by a single organization. These are often
chosen by businesses or organizations with high security and privacy concerns.
• Hybrid Clouds: Hybrid clouds combine public and private cloud services, allowing organizations to use
dh
public cloud services when their private infrastructure is insufficient.
This figure illustrates the three primary deployment models for cloud computing:
1. Public Clouds: In this model, the infrastructure is owned and managed by a third-party provider. Resources
are shared among multiple users (multitenancy) and are available on a pay-per-use basis.
2. Private Clouds: These are cloud environments dedicated to a single organization, providing greater control
over data and security. They are typically used by large enterprises or government agencies with stringent
compliance requirements.
3. Hybrid Clouds: Hybrid clouds combine elements of both public and private clouds. Organizations can use
a private cloud for sensitive data and applications, while leveraging public clouds for other workloads.
The model organizes the various cloud computing services in a layered stack, moving from the most foundational
infrastructure services to the most abstracted end-user applications.
ai
1. Infrastructure-as-a-Service (IaaS)
• Base Layer: This is the foundational layer of cloud computing where virtualized hardware resources are
provided on demand. IaaS delivers infrastructure like virtual machines, storage, and networking that can
be customized by users to run their applications.
• Virtualized Servers: Users get virtual machines (VMs) that emulate physical hardware, allowing them to
run custom software. These VMs are typically billed on an hourly basis, and pricing depends on the
hardware specifications (such as CPU, memory, and storage).
o Virtual storage: For storing persistent data that needs to be paired with virtual machines.
@VTUpadhai – Cloud Computing (21CS72) – Module 1 Notes
o Object storage: A higher-level storage solution, which is more abstract and ideal for storing large
amounts of unstructured data (like files or backups).
• Networking: This involves managing the virtual networks that allow virtual machines to communicate
with each other or the outside world, including the internet. Virtual networking services are also used for
managing the security, access, and scaling of the network.
Examples of IaaS providers: Amazon EC2 (Elastic Compute Cloud), Amazon S3 (Simple Storage Service), Google
Compute Engine, vCloud, and Rightscale.
2. Platform-as-a-Service (PaaS)
• Middle Layer: PaaS builds on IaaS by providing a scalable and elastic runtime environment where
developers can deploy and run their applications. Rather than worrying about managing the underlying
@
hardware and infrastructure, users focus on writing code, while the platform handles scaling, availability,
and fault tolerance.
• Middleware: The platform includes the necessary software, tools, and frameworks needed to develop, test,
and run applications. This layer abstracts much of the complexity of infrastructure management.
VT
• Core Responsibility of Providers: The cloud provider is responsible for managing scalability and fault
tolerance, which helps developers deploy their applications without needing to configure servers or deal
with hardware directly.
Examples of PaaS providers: Google App Engine, Microsoft Windows Azure, and platforms like Hadoop or Aneka
that provide scalable environments for distributed applications.
U
3. Software-as-a-Service (SaaS)
• Top Layer: SaaS delivers ready-to-use, on-demand software applications through the internet. These
applications are hosted and managed by the service provider and are accessible to users via a web browser.
pa
• End-User Applications: SaaS offerings include common business software and consumer applications
such as email, document management, photo editing, and customer relationship management (CRM).
Social networking services (e.g., Facebook, Twitter) are also examples of SaaS, as they provide scalable
access to millions of users globally.
• Multi-Tenant Architecture: SaaS applications are shared across multiple users, with each user's data kept
dh
separate from others, providing scalability and cost efficiency.
Examples of SaaS providers: Google Docs, Salesforce, Microsoft Office 365, and platforms for social networking
like Facebook, Twitter, and Flickr.
• PaaS adds a higher level of abstraction by providing a ready-made development platform, where
developers can build and deploy applications without managing the infrastructure.
• SaaS is the highest level of abstraction, offering fully developed applications that users can
@VTUpadhai – Cloud Computing (21CS72) – Module 1 Notes
Cloud computing has several key characteristics that distinguish it from traditional IT models:
1. No Upfront Commitments: Users do not need to make large initial investments in hardware or software.
Cloud services are provided on a pay-as-you-go or subscription model.
2. On-demand Access: Cloud resources (compute, storage, applications) are available on-demand, allowing
users to access services whenever needed, without needing to plan or allocate resources in advance.
3. Flexible Pricing: The cloud follows a utility-based pricing model. Users pay only for what they use,
typically on a per-hour or per-use basis, which helps reduce overall costs.
4. Simplified Application Acceleration and Scalability: Cloud computing allows easy scaling of
applications based on demand. Resources can be quickly increased or decreased, facilitating rapid
@
application acceleration or expansion.
5. Efficient Resource Allocation: Cloud providers optimize the use of hardware resources across multiple
tenants, ensuring efficient resource utilization and reducing wastage.
6. Energy Efficiency: Due to large-scale infrastructure and centralization, cloud data centers are generally
VT
more energy-efficient compared to traditional IT setups.
7. Seamless Integration of Third-Party Services: Cloud computing makes it easier to integrate third-party
services into applications, helping businesses create new products or improve existing ones through
services that would otherwise be difficult to set up independently.
3. Scalability: Cloud computing services can scale up or down based on business needs, allowing
organizations to handle traffic spikes or reduced demand efficiently. This flexibility extends across the
dh
infrastructure, platform, and software layers.
4. Access Anytime, Anywhere: Cloud services enable access to data and applications from any device, at any
location, improving mobility and collaboration for businesses and end-users alike.
5. Energy and Resource Optimization: Centralized cloud data centers offer better energy efficiency and
resource utilization, often using virtualization to minimize energy consumption.
ai
6. Multitenancy: Cloud service providers host applications and services for multiple customers on the same
infrastructure, sharing costs and improving efficiency through economies of scale.
7. Improved Flexibility in Software Development: Developers can easily integrate and use third-party
services, creating new applications with minimal cost and time.
@VTUpadhai – Cloud Computing (21CS72) – Module 1 Notes
Despite its benefits, cloud computing faces several challenges, particularly related to security, privacy, and legal
concerns:
1. Security Concerns:
o Data Protection: Since organizations don’t own the physical infrastructure, they must trust the
cloud provider with their data. Confidentiality and data security become a critical concern,
especially when data is stored off-premises and can potentially be accessed by unauthorized
parties.
o Virtualization Risks: Data can be exposed in memory during processing, making it vulnerable to
@
malicious actors, including providers who have access to the underlying infrastructure.
o Data Privacy: Cloud computing can involve the storage of data in various geographic locations.
Different countries have varying laws about data privacy. For example, the U.S. has laws that may
VT
allow government agencies to access data for national security reasons, while European countries
have more restrictive privacy regulations.
o Jurisdictional Concerns: When data is stored in multiple locations (e.g., European servers for
U.S. companies), it becomes challenging to navigate the legal implications, especially when
governments from different jurisdictions seek access to that data.
U
3. Dynamic Resource Provisioning:
o Determining the optimal amount of resources to provision and the duration for which they are
required is a challenge. Overprovisioning leads to unnecessary costs, while underprovisioning can
pa
result in performance issues during peak demand.
o Integrating cloud-based resources with legacy IT systems and processes can be complex.
Businesses may encounter issues with compatibility, security, and performance during such
dh
integration.
5. Vendor Lock-In:
o Cloud service consumers might find it difficult to move their data and applications from one
provider to another due to proprietary technologies and services. This can limit flexibility and
increase dependency on a particular cloud provider.
ai
6. Downtime and Reliability:
o While cloud providers offer high levels of reliability, there is still the risk of outages. The
dependency on external providers means that organizations have to manage the potential risk of
service interruptions that could affect business continuity.
Cloud computing's evolution is deeply rooted in the development of distributed computing technologies over several
decades. Below are the key historical milestones and technologies that led to the rise of cloud computing:
1. Distributed Systems
@VTUpadhai – Cloud Computing (21CS72) – Module 1 Notes
Distributed systems are a core technology behind cloud computing. A distributed system consists of multiple
independent computers that work together to appear as a single, unified entity to users. This concept is crucial for
cloud computing, where multiple resources (such as infrastructure, runtime environments, and services) are shared
among users. Key features of distributed systems—such as scalability, transparency, and continuous availability—
are also fundamental to cloud computing.
The primary goal of distributed systems is resource sharing, which is extended in cloud computing by renting
infrastructure and services to users, allowing companies to optimize the utilization of their computing resources.
• Mainframe Computing (1950s-1970s): Mainframes were the first large computational facilities, relying
on multiple processing units. These systems were highly reliable and capable of performing massive
input/output (I/O) operations, making them ideal for data-intensive tasks like transactions and enterprise
@
resource planning. Though mainframes are no longer as prevalent, they evolved into cloud-like systems
capable of handling large-scale data processing.
• Cluster Computing (1980s): With advancements in technology, clusters of commodity machines became a
cost-effective alternative to mainframes and supercomputers. High-performance computing became
VT
accessible to a broader group, including small research labs and universities. Cluster computing laid the
foundation for modern distributed computing, contributing to the development of tools like Condor,
Parallel Virtual Machine (PVM), and Message Passing Interface (MPI).
• Grid Computing (1990s): Grid computing evolved from clusters, where geographically dispersed
computing resources were interconnected through the Internet. Grid computing allowed users to access
computational power and storage from multiple organizations, creating a large-scale distributed
U
infrastructure. This vision of shared computing resources was akin to the utility model—users "consume"
resources as needed, much like other utilities such as electricity or water.
• Like mainframes, cloud computing offers large-scale, always-on, reliable computing facilities.
• Like clusters, cloud infrastructures often consist of commodity machines that can be expanded based on
dh
demand.
• Like grid computing, cloud computing offers resources on-demand through a utility-based model (pay-
per-use), allowing users to scale resources dynamically.
By the mid-2000s, cloud computing emerged as a powerful, cost-effective solution to IT needs, exemplified by
ai
services like Amazon AWS (EC2, S3), which allowed users to access computing and storage resources on-demand.
• Virtualization: Allowed the abstraction of hardware resources, enabling multiple virtual machines to run
on a single physical machine, which is essential for resource allocation in cloud environments.
• Web 2.0: Marked a shift towards user-generated content, social networking, and more interactive web
services, leading to the rise of cloud-based software as a service (SaaS) platforms.
@VTUpadhai – Cloud Computing (21CS72) – Module 1 Notes
• Service Orientation: Led to the development of Service-Oriented Architectures (SOA), where applications
and services are designed to be modular and reusable—an approach that closely aligns with cloud service
offerings.
• Utility Computing: The concept of offering computing resources as a utility—paying only for what you
use—was a precursor to cloud computing and is central to its business model.
2. Virtualization
Virtualization is a technology that allows the creation of simulated (virtual) computing environments within a
physical machine. These environments behave like separate, independent machines, providing the ability to run
multiple software stacks on the same physical hardware. In the context of cloud computing, virtualization enables
several core functions:
@
• Resource Abstraction: It abstracts physical resources like storage, CPU, and network, allowing multiple
virtual environments to share the same hardware without interfering with each other.
• Customization: Users can create tailored virtual machines (VMs) with specific software stacks suited to
their needs, such as running different operating systems or applications.
VT
• On-demand Scalability: Cloud services, like Amazon EC2, use virtualization to provide scalable and
customizable computing environments that can be provisioned and decommissioned as needed.
Virtualization includes:
• Hardware Virtualization: Simulates hardware resources to run full operating systems in virtual machines.
• Process Virtualization: Focuses on isolating applications within virtual machines, enabling better control
U
over resource usage.
3. Web 2.0
pa
Web 2.0 refers to the evolution of the internet from a static collection of web pages to a dynamic platform for
interactive applications. It emphasizes user engagement, content sharing, and collaborative tools. The rise of Web
2.0 significantly influenced cloud computing in several ways:
• Interactivity: Web 2.0 enabled more interactive and user-centric web applications, which laid the
groundwork for cloud-based applications to be accessed via web browsers without requiring local
dh
installations.
• Collaboration and Social Interaction: Platforms like Facebook, Google Docs, and Flickr harnessed user-
generated content and collective intelligence. Cloud computing adopted similar principles, allowing users
to access, share, and collaborate on data stored in the cloud.
ai
• Rich User Experiences: Web 2.0 apps, powered by technologies like AJAX, allowed for faster, more
dynamic web pages. Cloud applications can offer rich, interactive interfaces, making them appealing and
accessible to a wide range of users.
Service-oriented computing is a design philosophy where software applications are composed of discrete, reusable
services that communicate over a network. This approach enables rapid, flexible, and scalable system development.
Key aspects of SOC relevant to cloud computing include:
• Loose Coupling: Services are independent of each other and can be reused across different applications.
This makes it easier to build complex systems by composing various services.
@VTUpadhai – Cloud Computing (21CS72) – Module 1 Notes
• Interoperability: Services can be written in different programming languages and deployed on different
platforms but still interact seamlessly.
• Software as a Service (SaaS): SOC gave rise to SaaS, a delivery model for applications where software is
hosted on cloud infrastructure and made available to users via the internet. Examples include applications
like Google Docs or Salesforce, where the infrastructure and software are managed by the provider and
delivered on a pay-per-use or subscription basis.
In cloud computing, the concept of Web Services has played a significant role in implementing SOC. Web services
expose functionalities through protocols like SOAP and WSDL, enabling services to be discovered and consumed
across the web.
5. Utility-oriented Computing
@
Utility computing is the concept of providing computing resources, such as processing power, storage, and
applications, on a pay-per-use basis. This model is akin to how utilities like electricity or water are provided to
consumers. Some key developments in utility computing include:
• Pay-per-Use Model: Cloud computing allows users to rent resources as needed, which helps reduce the
costs associated with maintaining IT infrastructure.
VT
• On-Demand Availability: Just as electricity can be accessed on demand, cloud resources are also available
whenever users need them, without upfront investments.
• E-commerce and Online Payment: The rise of e-commerce platforms in the late 1990s and early 2000s
provided the infrastructure for handling online payments, which is crucial for the utility computing model,
where users pay for services via credit cards or other payment systems.
U
The idea of utility computing dates back to the 1960s, when John McCarthy envisioned computing as a public
utility. With the development of grid computing and advances in networking, this vision became increasingly viable
and evolved into what we know today as cloud computing.
pa
Building Cloud Computing Environments
• Web Applications: These are highly interactive, complex systems that handle varying user demands. Web
2.0 technologies enable rich user experiences and facilitate the seamless delivery of enterprise-grade
applications through the internet. These applications require dynamic resource allocation to handle
unpredictable workloads efficiently.
ai
• Resource-Intensive Applications: These include compute-intensive or data-intensive applications, such as
scientific research or large-scale simulations. These applications often demand substantial computational
power for short durations, making cloud computing an economical and practical solution.
Developers use Web-based RESTful interfaces for accessing cloud services, ensuring simplicity and ease of
integration.
• Distributed Computing: Cloud systems are dynamic, provisioning resources on demand. Engineers must
manage this dynamism effectively, particularly when deploying Infrastructure-as-a-Service (IaaS) or
Platform-as-a-Service (PaaS) solutions.
• Service Orientation: Service-oriented architectures (SOA) underpin cloud systems, enabling the seamless
@
integration of services into existing applications. The "Everything-as-a-Service" (XaaS) model highlights
this paradigm.
• Web 2.0: Web services and interfaces are crucial for accessing and managing cloud systems
programmatically or through browsers.
VT
• Virtualization: Virtualization underlies cloud infrastructure. Developers must understand the limitations
and manage the volatility of virtual environments, whether dealing with virtual hardware or runtime
abstractions.
These considerations influence the design of cloud-based systems, focusing on managing surges in demand,
component replication, and system resilience.
U
1.3.3 Computing Platforms and Technologies
Cloud application development leverages various platforms and frameworks, ranging from basic infrastructure to
pa
specialized, customizable services. These platforms enable developers to focus on application functionality while
relying on the cloud for scalability, reliability, and resource management.
• Elastic Compute Cloud (EC2): Customizable virtual hardware for deploying computing systems.
• Simple Storage Service (S3): Persistent, scalable storage organized into buckets for storing binary objects
of any size.
• Additional Services: Networking, DNS, caching, databases (relational and non-relational), and more.
@VTUpadhai – Cloud Computing (21CS72) – Module 1 Notes
AppEngine is a scalable runtime environment for Web applications, providing high performance and dynamic
scaling.
• Features:
o Services like in-memory caching, scalable data storage, job queues, messaging, and cron tasks.
• Development Support:
• Roles:
• Additional Services:
pa
o Relational data storage, blob storage, networking, caching, and content delivery.
• Core Components:
o HDFS (Hadoop Distributed File System): Scalable storage for large data sets.
• Enterprise Usage:
o Yahoo! sponsors and uses Hadoop extensively for its cloud infrastructure.
@VTUpadhai – Cloud Computing (21CS72) – Module 1 Notes
Force.com is a platform for creating social enterprise applications and forms the foundation of Salesforce.com.
• Features:
• Development Capabilities:
Aneka is a cloud application platform enabling scalable application development and deployment.
VT
• Programming Abstractions:
• Runtime Environment:
• Services:
pa
o Runtime management includes scheduling, execution, billing, storage, and quality of service.
dh
ai
@VTUpadhai – Cloud Computing (21CS72) – Module 2 Notes
Virtualization Overview
Definition: Virtualization refers to technologies and methods used to create an abstract execution
environment, allowing applications to run in secure, customizable, and isolated settings, even on shared
physical infrastructure. Virtualization is a transformative technology with extensive applications in
modern IT infrastructure and cloud computing. It offers efficiency, scalability, and flexibility, addressing
challenges like underutilization, energy costs, and administrative overheads. As computing environments
@
evolve, virtualization continues to be a cornerstone of innovation in delivering scalable and sustainable IT
solutions.
Key Concept: Virtualization enables a program to emulate a separate environment for running
applications, distinct from the host environment, enhancing resource utilization, flexibility, and security.
VT
Example: A virtual machine running Windows OS on a Linux-hosted system.
Importance:
• Facilitates Infrastructure-as-a-Service (IaaS) in cloud computing.
• Delivers scalable, cost-efficient systems.
U
• Enables multiple virtualization types, including storage, memory, and networking.
Factors Driving Virtualization Adoption
pa
1. Increased Performance and Computing Capacity:
o Modern PCs and servers are highly powerful, often underutilized.
o These systems can efficiently host Virtual Machine Managers (VMMs) and virtual
machines (VMs).
dh
o Example: Supercomputers running thousands of VMs without performance issues.
2. Underutilized Hardware and Software Resources:
o Current IT infrastructure often operates below capacity.
ai
o Many resources, such as office PCs, remain idle during non-work hours.
o Virtualization repurposes these idle resources for other tasks, maximizing infrastructure
efficiency.
3. Lack of Space in Data Centers:
o Enterprises face challenges in expanding physical data centers due to space constraints
and cost.
o Virtualization facilitates server consolidation, reducing the physical footprint by
aggregating multiple workloads onto fewer servers.
@VTUpadhai – Cloud Computing (21CS72) – Module 2 Notes
o Example: Hosting multiple services on a single server instead of using separate machines.
4. Environmental and Energy Efficiency (Greening Initiatives):
o Data centers consume significant power for server operation and cooling systems.
o Virtualization reduces server counts, lowering energy consumption and carbon footprints.
o Cooling demands decrease with fewer physical servers.
5. Rising Administrative Costs:
o Costs for power, cooling, and personnel for maintaining servers are escalating.
o Virtualization reduces the number of physical servers required, lowering administrative
@
workloads such as hardware monitoring, updates, and backups.
2. Host:
o The underlying physical environment, including hardware and operating systems, where
virtualization is implemented.
3. Virtualization Layer:
o Manages the virtual environment and translates operations between the guest and host.
o Examples: Virtual Machine Managers (VMMs) like VMware, Hyper-V, or VirtualBox.
@
VT
Applications of Virtualization
U
1. Hardware Virtualization:
o Virtual hardware allows running system images (OS and applications) independently of
pa
the host.
o Example: A virtual machine running on VMware or VirtualBox.
2. Virtual Storage:
o Clients or users interact with a software layer that emulates storage, such as virtual drives
dh
or cloud storage solutions.
3. Virtual Networking:
o Uses virtualized environments like VPNs to simulate a specific network.
ai
o Example: A VPN creates the illusion of being part of a remote network, enabling access
to restricted resources.
o Programming-Level Virtualization:
▪ Platforms like JVM or .NET allow applications to run on multiple systems
without recompilation.
o User Flexibility:
▪ Enables users to carry and deploy their system environments wherever a
▪ compatible virtualization platform exists.
Virtualization Techniques
@
Virtualization is the process of creating a virtual version of a physical entity, such as hardware, storage, or
network resources. It allows the emulation of one or more systems or services on a single physical
platform, enabling better utilization, isolation, and flexibility. Here’s a detailed breakdown:
VT
Taxonomy of Virtualization
Virtualization can be categorized based on the entity being emulated:
1. Execution Virtualization
Focuses on emulating the execution environment for applications or operating systems.
U
o
@
Execution Virtualization Techniques
1. Process-Level Virtualization
VT
• Definition:
Virtualizes at the process level, running on top of an existing operating system.
• How it Works:
o The virtualization layer provides isolated environments for applications.
U
o These environments mimic individual operating systems but share the host's kernel.
• Benefits:
pa
o Lightweight and efficient since it does not emulate the entire OS.
o Ideal for running isolated instances of applications on the same system.
• Examples:
dh
o Docker: A containerization platform that packages applications with their dependencies.
o LXC (Linux Containers): Provides lightweight virtualization at the operating system
level.
• Use Cases:
ai
o Cloud-native applications.
o Continuous integration and deployment pipelines.
2. System-Level Virtualization
• Definition:
Virtualizes at the hardware level to provide a complete virtual machine environment.
• How it Works:
o Implemented directly on hardware or with minimal dependency on the host OS.
@VTUpadhai – Cloud Computing (21CS72) – Module 2 Notes
o Provides each virtual machine (VM) with an environment closely resembling physical
hardware.
• Benefits:
o Supports multiple operating systems running simultaneously on the same physical
machine.
o Higher isolation compared to process-level virtualization.
• Techniques:
o Full Virtualization:
@
▪ Emulates the complete hardware environment, allowing unmodified guest
operating systems.
▪ Example: VMware ESXi, Microsoft Hyper-V.
o Paravirtualization:
VT
▪ Requires modifications to the guest OS to interact more efficiently with the
hypervisor.
▪ Example: Xen Hypervisor.
o Partial Virtualization:
U
▪ Emulates parts of the hardware environment, requiring some support from the
guest OS.
pa
▪ Used for specialized use cases where full virtualization is unnecessary.
• Use Cases:
o Hosting multiple virtual machines on a single physical server.
o Disaster recovery and testing.
dh
o Definition:
The highest abstraction level, facilitating interaction between applications and system
libraries or OS services.
o Purpose:
▪ Simplifies high-level programming by abstracting system complexities.
▪ Offers functions for developers to build robust applications.
@
VT
Hardware-Level Virtualization
1. Key Components:
o Host: Physical computer hardware.
@
o Guest: Operating systems running in the virtual environment.
o Virtual Machine: Emulation of hardware, running guest OSs.
o Hypervisor (Virtual Machine Manager): Abstracts hardware to manage multiple VMs.
VT
2. Types of Hypervisors:
o Type I (Bare-Metal Hypervisors):
▪ Run directly on hardware without a host OS.
▪ Efficient and high-performing.
U
▪ Examples: VMware ESXi, Microsoft Hyper-V, Xen.
o Type II (Hosted Hypervisors):
pa
▪ Operate as an application within a host OS.
▪ Easier to set up but less efficient.
▪ Examples: VMware Workstation, Oracle VirtualBox.
dh
ai
Theorems for Virtualization The following theorems outline the requirements for an ISA to be
virtualizable:
• Theorem 1 (Virtualizability): 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. This theorem states that all instructions that modify the system's configuration
should generate a trap in user mode, allowing them to be executed under the control of the VMM.
This allows hypervisors to control the instructions that would reveal the presence of an
abstraction layer while executing the rest of the instructions without intervention.
• Theorem 2 (Recursive Virtualizability): A conventional third-generation computer is
recursively virtualizable if it is virtualizable (satisfies Theorem 1) and a VMM without any timing
dependencies can be constructed for it. Recursive virtualization allows nesting hypervisors,
@
meaning a VMM can run on top of another VMM, as long as resources are sufficient.
• Theorem 3 (Hybrid VMM): A hybrid VMM may be constructed for any conventional third-
generation machine where the set of user-sensitive instructions is a subset of the set of privileged
instructions. This theorem introduces the concept of hybrid virtual machine (HVM), where more
VT
instructions are interpreted instead of being executed directly, making it less efficient than a
virtual machine system.
Implications of the Criteria
• The criteria and theorems provide guidelines for the design of virtualizable architectures. If these
conditions are not met, virtualization may not be possible or could introduce significant
U
performance overhead.
• The x86 architecture, for example, did not initially meet the formal requirements established by
pa
Popek and Goldberg. This is why early virtualization products used binary translation to trap
sensitive instructions.
• Hardware extensions such as Intel VT and AMD-V were introduced to address this limitation by
providing hardware support for virtualization, which improves performance and reduces the
overhead.
dh
In summary, the Popek and Goldberg criteria provide a formal framework for understanding and
implementing efficient virtualization. These criteria are fundamental to the design of VMMs and the
development of virtualized environments.
Virtualization Techniques
ai
Hardware-Assisted Virtualization: This technique uses specific hardware features, such as Intel VT
(Intel Virtualization Technology) and AMD-V, to enhance virtualization. These technologies provide
direct support for virtual machine managers (hypervisors) to run guest operating systems in isolated
environments, improving performance by reducing the reliance on software-based emulation. This results
in better efficiency and faster execution of virtual machines, especially when handling multiple guest
OSes concurrently.
Full Virtualization: Full virtualization allows a guest OS to run in an isolated environment, using
complete hardware emulation without requiring modifications to the guest OS. This method provides
strong isolation and security, but it may face performance limitations, particularly when the guest OS
attempts to execute privileged instructions. To mitigate these performance challenges, hardware-assisted
@VTUpadhai – Cloud Computing (21CS72) – Module 2 Notes
virtualization is often used in conjunction with full virtualization, ensuring more efficient management of
virtual machines.
Paravirtualization: In paravirtualization, the guest operating system is modified to work directly with
the hypervisor for certain operations, such as I/O or memory management, to enhance performance. This
technique requires access to the guest OS's source code for modification, making it more suitable for
open-source systems. Paravirtualization improves performance by eliminating the need for full hardware
emulation, but it limits compatibility to modified guest OSes. An example of paravirtualization is the Xen
hypervisor.
Partial Virtualization: Partial virtualization involves emulating only parts of the system's hardware,
allowing certain applications or processes to operate in isolated environments, while the guest OS may
not require full emulation. This technique is used in scenarios where complete isolation of the OS isn't
@
necessary. An example of partial virtualization is address space virtualization, which isolates memory
spaces for different users or applications in time-sharing systems, offering efficient resource sharing.
Operating System-Level Virtualization: In OS-level virtualization, multiple isolated user-space
instances are created within the same OS kernel. Each instance behaves like a separate environment,
VT
enabling the concurrent execution of different applications or services in isolated contexts. Unlike
hardware virtualization, there is no need for a hypervisor, as the OS itself manages the separation. This
approach is efficient in scenarios where multiple applications share the same OS, like FreeBSD Jails,
Solaris Zones, and OpenVZ, providing resource isolation without the overhead of full virtualization.
Programming Language-Level Virtualization: This form of virtualization allows programs to be
U
executed in a managed environment across different platforms and operating systems. It uses a virtual
machine (VM) to execute bytecode generated from a program's source code, enabling the program to run
on any platform with a corresponding virtual machine. Virtual machines simplify deployment and
increase portability since the same bytecode can run across multiple systems without modification. The
pa
virtual machine abstracts the underlying hardware and typically uses either interpretation or just-in-time
(JIT) compilation for execution. Java’s platform and .NET Framework are notable examples of
programming language-level virtualization, where a uniform execution environment is provided across
diverse platforms.
dh
Application-Level Virtualization: This technique allows applications to run in environments that may
not natively support all required runtime features, such as libraries or OS components. Rather than
installing the application directly on the host system, the application runs in an isolated environment that
provides necessary support, often using partial file systems or library emulation. The process may involve
either interpretation or binary translation to adapt the application to the host system. Application-level
ai
virtualization is lighter than hardware virtualization and is effective for running incompatible or missing
libraries, as seen in tools like Wine for running Windows applications on Unix-like systems. It supports
specific environments and is often used for isolating individual applications without the need for full
system emulation.
Other Types of Virtualisation
Storage Virtualization: Storage virtualization is a technique that abstracts the physical organization of
storage hardware from its logical representation, making it easier for users to access and manage data
without worrying about its physical location. This approach consolidates multiple storage devices into a
unified virtual storage system, often using technologies like Storage Area Networks (SANs) for network-
@VTUpadhai – Cloud Computing (21CS72) – Module 2 Notes
based virtualization. SANs enable large bandwidth connections to storage devices, allowing for efficient
data management and scalability across various storage resources.
Network Virtualization: Network virtualization combines physical hardware with software to create
virtual networks. This can involve aggregating multiple physical networks into a single logical network
(external network virtualization), such as creating a Virtual LAN (VLAN), or providing virtual network
interfaces for operating system partitions (internal network virtualization). Internal network virtualization
often accompanies other types of virtualization, such as hardware or OS-level virtualization, allowing
virtual machines (VMs) to communicate through shared or private network interfaces using techniques
like Network Address Translation (NAT).
Desktop Virtualization: Desktop virtualization separates the desktop environment from the physical
hardware, allowing users to access their desktop remotely through a client-server model. The desktop
@
environment is typically hosted on a server or data center, providing high availability, persistence, and
accessibility across multiple devices. This enables users to access a consistent desktop experience from
any location. Common tools and platforms for desktop virtualization include Windows Remote Services,
VNC, and Citrix XenDesktop, with cloud-based solutions offering scalability and centralized
VT
management of desktop environments.
Application Server Virtualization: Application server virtualization abstracts and consolidates multiple
application servers into a single virtual server, utilizing load-balancing strategies and high-availability
infrastructure to ensure reliable service delivery. This approach improves service quality by providing
greater scalability and flexibility, similar to storage virtualization. By virtualizing the application server
layer, organizations can optimize resource usage, ensure fault tolerance, and deliver more efficient
U
services to users.
pa
Virtualization plays a central role in cloud computing, providing the necessary abstraction, isolation, and
flexibility for delivering IT services on demand. It is a core feature of the infrastructure used by cloud
providers.Here's a breakdown of the key roles virtualization plays in cloud computing:
• Abstraction and Resource Management: Virtualization abstracts the underlying physical
resources (hardware, storage, networking), allowing them to be presented as virtual resources to
dh
users. This abstraction simplifies resource management, making it easier to allocate, share, and
control resources.
o Virtualization enables the creation of different computing environments. These
environments are called virtual because they simulate the interface that is expected by a
ai
guest.
o Virtual hardware is used to provide compute on demand in the form of virtual machine
instances.
o Storage virtualization allows decoupling the physical organization of the hardware from
its logical representation.
o Network virtualization combines hardware appliances and specific software for the
creation and management of a virtual network.
@VTUpadhai – Cloud Computing (21CS72) – Module 2 Notes
• Enabling Cloud Services: Cloud computing is realized through platforms that leverage
virtualization to provide on-demand services to a multitude of users across the globe.
Types of Virtualization Used in Cloud Computing:
• Hardware Virtualization: This is a core technology used in cloud computing to provide virtual
hardware. It allows for the coexistence of different software stacks on the same hardware.
o Type I and Type II hypervisors are used in cloud computing.
• Programming Language Virtualization: This type is leveraged in PaaS offerings.
• Storage Virtualization: This is used to decouple the physical organization of storage from its
logical representation.
@
• Network Virtualization: This is used to create and manage virtual networks.
• Desktop Virtualization: This abstracts the desktop environment available on a personal
computer.
VT
Advantages of Virtualization
1. Managed Execution and Isolation
Virtualization enables the creation of secure, isolated environments where harmful operations are
restricted. These environments ensure better control over computing resources and are crucial for
server consolidation. By isolating workloads, virtualization enhances security and reduces the risk
U
of interference between applications or systems. This capability is particularly valuable in IT
environments that require strict management of resources and robust security protocols.
2. Portability
pa
One of the standout advantages of virtualization is the ease of portability. Virtual machines are
encapsulated as files, making them simple to transfer between systems. This feature simplifies the
migration of workloads across different hardware or data centers and enhances the flexibility of
managing applications in diverse environments. Portability ensures that virtualized systems
remain operational regardless of underlying hardware changes, making administration seamless.
dh
3. Resource Efficiency
Virtualization allows multiple systems to share the same physical hardware resources without
interference. By maximizing the utilization of available computing power, organizations can
reduce the number of physical servers required. This leads to cost savings and more efficient use
of resources, particularly in environments where hardware is often underutilized.
ai
4. Cost Reduction
With virtualization, organizations can achieve significant cost savings by reducing the need for
physical machines. This translates into lower expenses for hardware acquisition, maintenance,
and energy consumption. Fewer physical servers also result in reduced cooling requirements,
contributing to energy conservation and minimizing environmental impact. Virtualization is an
effective strategy for businesses looking to optimize costs while maintaining robust IT operations.
5. Security
Virtualization provides a controlled, sandboxed environment for applications, reducing the risk of
harmful software affecting the underlying system. Each virtual machine operates independently,
@VTUpadhai – Cloud Computing (21CS72) – Module 2 Notes
ensuring that vulnerabilities or malware in one machine do not compromise the entire system.
This layered security approach makes virtualization a critical component in protecting sensitive
data and maintaining system integrity.
6. Dynamic Resource Allocation
Virtualization supports dynamic allocation of resources, enabling systems to adapt to changing
workload demands in real time. This flexibility is especially beneficial for applications that
experience fluctuating loads, such as web servers or cloud-based services. By adjusting resources
dynamically, virtualization ensures optimal performance and scalability, reducing the likelihood
of system bottlenecks.
@
Disadvantages of Virtualization
1. Performance Degradation
The additional layer introduced by virtualization can increase latency and reduce overall system
performance. This issue is especially noticeable in hardware virtualization, where the overhead of
VT
managing virtual processors, privileged instructions, and paging can slow down operations.
Performance-sensitive applications may experience noticeable delays compared to running
directly on physical hardware.
2. Inefficiency and Degraded User Experience
Due to the abstraction layer, virtual machines may not have full access to specific hardware
features or drivers. This limitation can lead to inefficiencies or reduced capabilities within
U
virtualized environments. For instance, some hardware-intensive applications may not perform
optimally, impacting user experience and overall system efficiency.
pa
3. Security Vulnerabilities
While virtualization enhances security in many ways, it can also introduce new vulnerabilities.
Malicious software, such as BluePill or SubVirt, can exploit weaknesses in virtual environments
to compromise the host system. These threats highlight the importance of robust security
measures and regular updates to hypervisors and virtualization platforms to mitigate risks.
dh
4. Complexity in Resource Management
Virtualization adds complexity to resource management, requiring advanced tools and expertise
to balance workloads and allocate resources effectively. Mismanagement of virtualized
environments can lead to resource contention or inefficiencies, negatively impacting
performance. Organizations must invest in proper training and tools to ensure smooth and
ai
efficient virtualization management.
Xen Paravirtualization :
1. Overview of Xen Virtualization:
o Xen is an open-source virtualization platform based on paravirtualization, developed by
the University of Cambridge and now supported by a large community, with Citrix
offering a commercial version (XenSource).
@VTUpadhai – Cloud Computing (21CS72) – Module 2 Notes
o Xen can be used for desktop virtualization, server virtualization, and cloud computing
solutions (e.g., Xen Cloud Platform or XCP).
o The core component of Xen is the Xen Hypervisor, responsible for managing and
controlling access to hardware resources for virtual machines (VMs).
2. Xen Paravirtualization:
o Paravirtualization allows for high-performance guest operating systems by modifying
parts of the guest OS to directly interact with the hypervisor, especially for handling
privileged instructions.
o This results in better performance compared to full virtualization, where guest OSes run
unmodified. It achieves this by eliminating performance penalties associated with
@
emulating privileged instructions in hardware.
3. Modification of Guest OS:
o Unlike full virtualization, which is transparent to the guest OS, paravirtualization requires
VT
modifications to the guest OS.
o The guest OS must use hypercalls (special calls provided by the hypervisor) instead of
privileged system calls that would normally require kernel-mode access.
4. Xen's Hypervisor:
U
o Xen's hypervisor runs at the highest privileged level (Ring 0) and manages resources such
as memory, CPU, and I/O devices for guest operating systems.
o Guest operating systems run in separate domains, where Domain 0 (also known as
pa
Dom0) has special privileges and manages VM creation, configuration, and termination.
5. Domain 0 (Dom0):
o Domain 0 is the first domain to boot when Xen is initialized. It controls and manages
virtual machine instances.
dh
o Dom0 includes an HTTP server for managing virtual machines and can be thought of as
the management layer for the virtual environment.
6. Xen and x86 Architecture:
ai
o Xen operates on the x86 architecture using a privilege model with different "rings"
(levels of CPU privilege). Ring 0 is the most privileged, and Ring 3 is the least
privileged.
o The Xen hypervisor runs in Ring 0, Domain 0 operates in Ring 1, and user applications
run in Ring 3.
7. Handling Privileged Instructions:
o Certain instructions in the x86 architecture allow code running in Ring 3 (user space) to
directly access Ring 0 (kernel mode). This access would normally cause faults in a
virtualized environment.
@VTUpadhai – Cloud Computing (21CS72) – Module 2 Notes
o To manage this, Xen prevents such instructions from being executed in a virtualized
environment by trapping them and handling them through hypercalls, ensuring that the
system remains stable.
8. Operating Systems for Xen:
o Paravirtualization requires guest operating systems to be modified to use hypercalls.
Open-source operating systems like Linux can be easily adapted because their source
code is accessible.
o Windows operating systems generally do not support Xen unless hardware-assisted
virtualization is available. This is because Windows cannot be modified in the same way
as Linux.
@
9. Limitations and Compatibility:
o Xen's paravirtualization model has some limitations, particularly with legacy hardware
and older operating systems that cannot be modified.
VT
o However, the introduction of hardware-assisted virtualization (e.g., Intel VT or AMD-V)
has helped overcome these issues, allowing Xen to support full virtualization, where the
hypervisor can run in Ring 1 and the guest OS in Ring 0.
U
pa
dh
Explanation of the Figure (Xen Architecture):
• Xen Hypervisor (Ring 0):
ai
o The Xen Hypervisor runs in the highest privilege level, Ring 0. It is responsible for
managing resources, including CPU state, memory, and I/O devices, across all domains.
• Domain 0 (Ring 1):
o Domain 0 (Dom0) is the special control domain that has access to the hypervisor and
manages the virtual machines. It acts as a management interface, creating and terminating
virtual machines, and provides administrative services like a web interface for VM
control.
• Guest Domains (Domain U, Ring 1):
@VTUpadhai – Cloud Computing (21CS72) – Module 2 Notes
o Domain U refers to guest operating systems that run in Xen virtualized environments.
These guest OSes are modified to use hypercalls for system calls that would normally be
privileged (e.g., memory management, I/O operations).
o They run in Ring 1, where they interact with the Xen hypervisor to access hardware
resources safely. This differs from full virtualization, where the guest OS would normally
run in Ring 0.
• User Applications (Ring 3):
o Applications running within the guest OS run in the least privileged level, Ring 3, which
is the user mode.
• Hypercall Mechanism:
@
o When a guest OS makes a system call that requires privileged access (e.g., memory
management), it triggers a trap to the hypervisor. The hypervisor handles this instruction
and returns control back to the guest OS with the appropriate result, ensuring that no
unauthorized access to Ring 0 occurs.
VT
• Hardware Interaction:
o The Xen architecture ensures that guest OSes cannot directly execute privileged hardware
instructions in Ring 0, preventing potential crashes or faults in a virtualized environment.
Instead, Xen captures these privileged operations and manages them through the
U
hypervisor.
4. Hardware-Assisted Virtualization:
o Introduced with Intel VT-x and AMD-V (2006 onward).
o Supports direct virtualization of x86 architecture by simplifying instruction translation.
VMware Components and Solutions:
1. End-User (Desktop) Virtualization:
o VMware Workstation (Windows/Linux): Creates isolated environments for different
OSs on a single desktop.
o VMware Fusion (macOS): Virtualizes Windows/Linux environments on macOS.
@
2. Server Virtualization:
o VMware GSX Server: Early solution for server virtualization with remote management
capabilities.
VT
o VMware ESX/ESXi:
▪ ESXi features a minimal OS kernel (VMkernel) for efficient resource
management.
▪ Offers centralized management, resource scheduling, and integration with
network and storage systems.
U
3. Infrastructure Virtualization:
o VMware vSphere: Combines virtualized servers into a unified infrastructure.
pa
o VMware vCloud: Provides IaaS solutions with self-service provisioning for virtual
environments.
4. Cloud and Application Solutions:
o vFabric: Scalable Java application development on virtualized infrastructure.
dh
o Zimbra: SaaS for email and collaboration, fully hosted in the cloud.
ai
1. Guest OS (Unmodified):
o Runs in Ring 1 and is unaware of the hypervisor.
o Sensitive instructions (e.g., privileged calls) are intercepted by the hypervisor.
2. Hypervisor:
o Operates in Ring 0 (highest privilege).
o Performs binary translation of sensitive instructions.
o Caches translated instructions for efficiency.
3. Direct Execution:
@
o Non-sensitive instructions run directly on hardware without translation.
VT
U
pa
1. VMkernel:
o A thin POSIX-compliant OS providing essential services (e.g., resource scheduling, I/O
stacks).
2. Agents:
o CIM Broker: Facilitates remote management.
o DCUI: Allows local management via a BIOS-like interface.
3. Hypervisor:
o Handles virtualization processes (e.g., memory, CPU scheduling).
@
4. VM Instances:
o Virtual machines with individual VMMs for hardware interaction.
VT
U
pa
Microsoft Hyper-V
Microsoft Hyper-V is a virtualization solution designed to support server virtualization. It is built on a
hypervisor-based approach, allowing multiple guest operating systems to run on shared hardware
resources efficiently. Hyper-V is integrated as a role in Windows Server, starting from Windows Server
2008 R2. Despite being installed through the operating system, it directly manages hardware interactions,
positioning it as a hybrid solution between bare-metal and hosted hypervisors.
Architecture of Hyper-V
Hyper-V operates by organizing workloads into partitions, which are isolated environments for operating
systems. It distinguishes between the parent partition (root partition) and child partitions.
Parent Partition
@
• The parent partition runs the host operating system (Windows Server) and has direct access to the
hardware.
• It handles the virtualization stack and manages guest operating systems through the
VT
Virtualization Infrastructure Driver (VID).
• The parent partition also runs the Virtual Machine Worker Process (VMWP), which facilitates
the management of child partitions by interacting with the hypervisor.
Child Partitions
U
• Child partitions host guest operating systems.
• They are isolated environments created and managed by the parent partition.
pa
• Enlightened partitions (hypervisor-aware) benefit from advanced features like Enlightened I/O,
while unenlightened partitions rely on hardware emulation.
Hypervisor Components
dh
The hypervisor is the core of Hyper-V, directly interacting with the hardware and managing virtual
environments. Its components include:
1. Hypercalls Interface
o Provides an entry point for partitions to execute sensitive instructions.
ai
o Supports paravirtualization by enabling optimized communication between the
hypervisor and guest OS.
2. Memory Service Routines (MSRs)
o Control memory access for partitions.
o Utilize the IOMMU for efficient device access by translating virtual memory addresses.
3. Advanced Programmable Interrupt Controller (APIC)
@VTUpadhai – Cloud Computing (21CS72) – Module 2 Notes
o Handles interrupts from hardware and synthetic interrupt controllers (SynIC) for virtual
processors.
4. Scheduler
o Allocates physical processor time to virtual processors based on predefined policies.
5. Address Manager
o Manages virtual network addresses for guest operating systems.
6. Partition Manager
o Oversees the lifecycle of partitions, including their creation, destruction, and
@
configuration.
The hypervisor operates in Ring -1, a privileged mode that ensures compatibility with both legacy and
modern operating systems.
VT
Enlightened I/O and Synthetic Devices
Enlightened I/O enhances I/O performance for hypervisor-aware guest operating systems by bypassing
traditional hardware emulation.
Key Components
U
1. VMBus
o Acts as the interpartition communication channel between the parent and child partitions.
pa
o Facilitates fast data exchange without traversing the hardware emulation stack.
2. Virtual Service Providers (VSPs)
o Kernel-level drivers in the parent partition that provide access to physical hardware
devices.
dh
3. Virtual Service Clients (VSCs)
o Virtual device drivers in child partitions that interact with VSPs via the VMBus.
This design allows for enhanced performance in storage, networking, and other subsystems. Guest
ai
operating systems that are not hypervisor-aware rely on traditional device driver emulation, which is less
efficient.
@VTUpadhai – Cloud Computing (21CS72) – Module 2 Notes
@
Figure 3.17: Hyper-V Architecture
This figure illustrates the architecture of Hyper-V, highlighting the interactions between the hypervisor,
parent partition, child partitions, and hardware.
VT
1. Parent Partition (Root Partition)
o Located at the top, it includes the virtualization stack, I/O stack drivers, and
Virtualization Infrastructure Driver (VID).
o Directly interacts with the hypervisor and hardware.
U
2. Hypervisor
o Positioned centrally, it operates at Ring -1, providing a secure and efficient environment
pa
for partition management.
3. Child Partitions
o Showcases both enlightened and unenlightened child partitions.
o Enlightened partitions leverage VMBus for I/O, while unenlightened ones rely on
dh
traditional emulation.
4. Hardware (x86)
o Located at the bottom, including processors, memory, and I/O devices.
ai
This layered architecture demonstrates how Hyper-V creates a virtualized environment while ensuring
secure and efficient partition management.
• A minimalist version of Windows Server designed to reduce overhead by removing GUI and non-
essential components.
• Benefits include:
o Reduced maintenance and disk space requirements.
o Smaller attack surface for security.
• Drawbacks include a reduced feature set, requiring remote management via tools like PowerShell.
System Center Virtual Machine Manager (SCVMM)
SCVMM extends Hyper-V’s capabilities by providing advanced management features, such as:
@
• Virtual machine creation and lifecycle management.
• Conversion tools for physical-to-virtual (P2V) and virtual-to-virtual (V2V) migrations.
• Host capacity planning and intelligent VM placement.
VT
Observations and Comparisons
Hyper-V blends paravirtualization and full hardware virtualization approaches. While its parent-child
partition model resembles Xen, its installation within an existing operating system aligns it closer to
VMware.
U
Advantages
• Flexibility in supporting diverse guest operating systems.
pa
• Integration with existing Windows Server environments.
Disadvantages
• Limited to 64-bit architectures and hardware with virtualization support.
dh
• Requires modern Windows Server platforms.
In conclusion, Hyper-V provides a robust virtualization platform with significant flexibility and
integration features, making it a cornerstone of Microsoft’s cloud and virtualization strategy. However, its
hardware and software dependencies can limit its applicability in some environments.
ai
@VTUpadhai – Cloud Computing (21CS72) – Module 3 Notes
Module 3- Cloud Computing Architecture: Introduction, Cloud Reference Model, Types of Clouds,
Economics of the Cloud, Open Challenges
Introduction
Utility-Oriented Data Centers- These are the backbone of cloud computing, providing the
infrastructure for delivering services. They can be owned by providers or rented from third parties,
enabling the deployment of virtual hardware, development platforms, or application software.
Cloud Infrastructure Composition- Cloud infrastructures consist of distributed systems like
datacenters, clusters, or networks of heterogeneous devices (e.g., PCs, workstations, servers).
Virtualization is a key feature, ensuring workload isolation and maximizing resource usage.
Layered Architecture- Cloud systems use a layered approach to deliver services. Layers include
virtual machine managers (hypervisors) for resource control, development platforms for app
creation, and middleware for specialized functionalities.
Reference Model for Categorization- A reference model helps classify cloud technologies,
applications, and services into structured categories, enabling better understanding of delivery
models like IaaS, PaaS, and SaaS.
IaaS (M): Offers management tools only, integrating with external infrastructure.
(b) Platform-as-a-Service (PaaS)
Offers development platforms with integrated infrastructure. Tools include web interfaces and
programming frameworks, enabling cloud-native application development using APIs. Pure PaaS
provides only middleware, requiring external infrastructure.
(c) Software-as-a-Service (SaaS)
Delivers application-level services online, such as social media, gaming, and enterprise tools. SaaS
leverages IaaS and PaaS for scalability and performance.
4. Adaptive Management and XaaS (Everything as a Service)
Adaptive Management- Ensures elasticity for performance and availability. SaaS automates
management, while PaaS and IaaS offer APIs for customization.
XaaS- Combines services from various providers for integrated solutions, such as virtual web farms,
enabling cost-effective scaling for startups.
Core Components
Cloud Resources (System Infrastructure)- Includes physical components like virtual machines (VMs),
databases, and storage. These are virtualized and pooled using hypervisors.
Core Middleware- Manages SLA compliance, QoS negotiation, billing, and resource allocation.
Middleware Layers
User-Level Middleware- Provides APIs and environments for cloud-native development, including
distributed programming and workflow tools.
Applications Layer- Hosts cloud-based services like SaaS for social networking, gaming, and enterprise
applications.
Adaptive Management- A horizontal layer ensuring scalability and elasticity across the stack. It
incorporates autonomic features such as performance optimization and cost control.
@VTUpadhai – Cloud Computing (21CS72) – Module 3 Notes
Platform-as-a-Service (PaaS)
Platform-as-a-Service (PaaS) solutions offer a development and deployment platform for running
applications in the cloud. These platforms function as middleware, enabling developers to focus on building
applications without worrying about the underlying infrastructure. PaaS automates deployment,
configuration, and resource management, allowing applications to scale according to demand.
Key Features
PaaS typically includes:
Web-Based Interfaces and APIs: Developers interact with PaaS through web portals, REST APIs,
and programming libraries.
Elasticity and Scaling: The platform automatically adjusts resources to meet application demands,
ensuring scalability.
Application and Resource Management: The core middleware manages application deployment,
load balancing, and resource allocation, abstracting the complexities of hardware and
infrastructure.
Quality of Service (QoS) and SLA Management: Ensures that services meet predefined
performance and availability standards.
@VTUpadhai – Cloud Computing (21CS72) – Module 3 Notes
Development Models
PaaS offers different development models depending on the platform:
1. Web-Based Interface: Some platforms provide entirely cloud-based interfaces for designing,
prototyping, and deploying applications, using visual programming or rapid prototyping tools.
2. Programming Languages: Other platforms offer a more flexible approach, allowing developers
to use traditional programming languages like Java, .NET, Python, or Ruby, with certain restrictions
to ensure scalability and security.
Types of PaaS
PaaS solutions can be categorized into three types:
1. PaaS-I: These platforms offer a complete web-hosted development environment, including
middleware and infrastructure. Examples include Force.com and Longjump.
2. PaaS-II: These platforms focus on scaling web applications, such as Google AppEngine, Heroku,
and Engine Yard. They provide a runtime environment for specific languages (e.g., Java, Python,
Ruby).
3. PaaS-III: These solutions provide a more comprehensive cloud programming platform for various
applications, not limited to web apps. Examples include Microsoft Azure and GigaSpaces.
Key Characteristics of PaaS
Runtime Framework: A PaaS solution provides a "software stack" to run end-user applications,
automating deployment and scaling.
Abstraction: Unlike IaaS, PaaS abstracts the infrastructure, allowing users to focus solely on
application development.
Automation: PaaS automates resource scaling and provisioning according to service-level
agreements (SLAs).
Cloud Services and APIs: PaaS offerings include APIs for easy integration and management of
services, helping developers create scalable and available cloud applications.
Vendor Lock-In and Portability
One challenge of using PaaS is vendor lock-in. PaaS environments typically tie applications to specific
runtimes, making it difficult to migrate them to another provider. However, some PaaS providers, like
Google AppEngine and Microsoft Azure, use industry-standard runtimes, which may offer some flexibility.
Others, such as Force.com, create proprietary frameworks that limit portability.
Financial Benefits
PaaS solutions reduce the costs associated with development, deployment, and maintenance of applications.
By offloading technology upgrades and infrastructure management to the provider, organizations can focus
on their core business. For small startups, PaaS combined with IaaS solutions offers an affordable way to
quickly scale and provide integrated solutions to customers.
@VTUpadhai – Cloud Computing (21CS72) – Module 3 Notes
Figure 4.3 illustrates the Platform-as-a-Service (PaaS) reference model, which highlights the key
components of a PaaS environment. It includes:
Web-Based Interface: A portal or dashboard for developers to interact with the platform.
PaaS Core Middleware: Manages the runtime environment, scaling, and resource allocation.
Elasticity & Scaling: Automatic adjustment of resources to meet application demand.
Resources Management: Tools for managing compute power, storage, and databases.
Physical Infrastructure: Underlying hardware that supports the PaaS environment.
Runtime: The environment where applications run.
Programming API / Libraries: Tools for developers to build and integrate applications.
User and Application Management: Handles user access, application lifecycle, and deployment.
QoS/SLA Management & Billing: Ensures performance and tracks usage costs.
2. Multi-tenancy: SaaS applications are shared by multiple customers (tenants), which helps reduce
costs for both the provider and the users. This is different from traditional software where each user
or organization would need its own installation.
3. Customizability: While the core features of the application are standard, SaaS solutions are often
customizable to meet the specific needs of users, for instance through settings or additional plugins.
4. No Maintenance: The SaaS provider takes care of the infrastructure, software updates, security
patches, and maintenance. Users don't have to worry about managing or updating the software
themselves.
5. Pay-per-Use: Typically, SaaS providers operate on a subscription or pay-per-use pricing model,
making it more affordable and flexible compared to traditional software purchases that require large
upfront costs.
Examples of SaaS:
Salesforce: A cloud-based CRM (Customer Relationship Management) system that helps
businesses manage interactions with customers.
Google Docs: A cloud-based office suite for document, spreadsheet, and presentation creation and
collaboration.
LinkedIn: A professional networking site that allows users to connect with others, share content,
and access job opportunities.
SaaS Evolution: SaaS 2.0
SaaS 2.0 is a newer evolution of the SaaS model, which focuses on integration with other services. Instead
of standalone applications, SaaS 2.0 allows users to integrate third-party applications, creating a more
customizable and scalable system. This shift supports a more business-centric approach, where users can
build applications by connecting different services and components to meet specific business goals.
In summary, SaaS makes it easier and more cost-effective for users to access software, offering flexibility,
scalability, and minimal management responsibilities. It has become popular for business applications
(CRM, ERP), office tools, and social networking platforms.
Types of Clouds
Public Clouds
Public Cloud are the most common and widely known form of cloud computing. They are characterized by
offering services over the internet, where anyone can access and use them. Here are the key points about
public clouds:
1. Structure: Public clouds are distributed systems, often built across multiple data centers, to deliver
various services to customers. These data centers are interconnected and serve as the backbone for
the cloud services offered.
2. Accessibility: Public clouds are available to anyone who subscribes to the service. Customers can
sign in with their credentials, enter payment details, and begin using cloud services. This ease of
@VTUpadhai – Cloud Computing (21CS72) – Module 3 Notes
access makes public clouds ideal for businesses that need scalable and flexible IT solutions without
significant upfront investment.
3. Multitenancy: Public clouds are designed to serve multiple customers simultaneously, which
means the infrastructure is shared. However, each customer is provided with a virtualized
environment that is isolated from others. This ensures performance and security for each user while
supporting a large number of customers.
4. Scalability: One of the main benefits of public clouds is their ability to scale dynamically.
Businesses can increase or decrease their resource usage as needed, such as adding more computing
power during peak loads or reducing it when demand is low.
5. Service Types: Public clouds offer various service models:
o IaaS (Infrastructure as a Service): Provides virtualized computing resources like
Amazon EC2.
o PaaS (Platform as a Service): Offers platforms for application development, like Google
AppEngine.
o SaaS (Software as a Service): Provides ready-to-use software applications, such as
SalesForce.com.
6. Global Reach: Public clouds often have data centers spread across multiple geographical regions.
This global infrastructure helps provide redundancy, better performance, and lower latency by
serving customers from the nearest data center.
7. Cost Efficiency: Public clouds reduce IT costs by eliminating the need for organizations to
purchase and maintain their own hardware and software. Instead, customers pay only for the
services they use, based on a subscription or usage-based pricing model.
8. Management & Accountability: Public cloud providers invest in software infrastructure to
monitor resources, manage performance, and ensure quality of service (QoS). They also track usage
and billing, ensuring transparent and accurate service delivery.
Private Clouds
Public cloud are a cloud computing model that is designed for a specific organization or institution, offering
a controlled environment where the IT infrastructure is provisioned within the organization's premises.
These clouds address concerns related to security, compliance, and control that are often associated with
public clouds. Here are the key aspects of private clouds:
1. Security & Control: Private clouds are especially appealing for organizations that need to keep
sensitive data and critical systems in-house due to security, compliance, or regulatory concerns. For
example, government and military agencies, as well as enterprises with sensitive data, prefer private
clouds because they avoid the risks associated with hosting data on public cloud providers'
infrastructure.
2. Customization: Unlike public clouds, which follow a pay-as-you-go model, private clouds allow
organizations to tailor their resource allocation and pricing models based on internal usage. This
flexibility can include charging internal departments or units based on their cloud consumption.
@VTUpadhai – Cloud Computing (21CS72) – Module 3 Notes
The figure you referred to provides a breakdown of the hardware and software stack involved in the
deployment of private clouds. It outlines the layers of technology that make up the infrastructure:
1. Physical Infrastructure: This includes datacenters, clusters, or desktop grids on which the private
cloud runs.
@VTUpadhai – Cloud Computing (21CS72) – Module 3 Notes
2. Virtual Machine Technology: The foundational technologies for virtualization are platforms like
Xen, KVM, and VMware.
3. Infrastructure Management Software: This includes tools such as VMware vCloud, Eucalyptus,
and OpenNebula that manage the virtual infrastructure and provide IaaS solutions.
4. PaaS Solutions: These provide higher-level services, including DataSynapse, Zimory Pools, and
Aneka, which support the deployment of distributed applications and complex cloud environments.
Hybrid Clouds
Hybrid cloud combine elements of both public and private clouds, allowing organizations to maintain
control over sensitive data while leveraging the scalability and flexibility of public cloud resources when
needed. Hybrid clouds provide a solution that addresses the limitations of private clouds, particularly
around scalability and handling peak loads. Below are key characteristics and details about hybrid clouds:
1. Integration of Public and Private Clouds: A hybrid cloud consists of a private cloud that
integrates additional resources from one or more public clouds. This setup allows organizations to
use private cloud infrastructure for sensitive workloads while accessing public cloud resources to
scale their infrastructure during high-demand periods.
2. Scalability and Dynamic Provisioning: One of the key advantages of hybrid clouds is the ability
to scale on demand. This is achieved through dynamic provisioning, where resources from the
public cloud can be temporarily leased when the private cloud's capacity is exceeded. This practice
is known as cloudbursting. When the demand decreases, the public cloud resources can be
released, ensuring cost efficiency.
3. Security and Control: In hybrid clouds, security concerns are primarily limited to the public cloud
portion, where less sensitive operations can be performed. The private cloud remains in full control
of the organization, ensuring sensitive data and critical workloads are handled internally.
4. Optimized Use of Resources: Hybrid clouds allow organizations to use their existing infrastructure
while still having the flexibility to leverage external public cloud resources when necessary. This
ensures that the organization can handle fluctuating workloads without needing to over-provision
hardware or maintain excessive IT infrastructure.
5. Infrastructure and Platform Management:
o IaaS (Infrastructure as a Service) and PaaS (Platform as a Service) solutions are
integral to hybrid cloud setups. These services enable dynamic provisioning, which ensures
that additional resources are added and removed seamlessly based on demand.
o Infrastructure management tools like OpenNebula, which integrates with public cloud
resources (e.g., Amazon EC2), and scheduling tools like Haizea (for cost-based
scheduling) are essential for managing hybrid clouds.
o InterGrid is another tool that facilitates hybrid cloud management by enabling distributed
scheduling across various networks, including both private and public clouds.
6. Cost Management and Scheduling: One of the challenges of hybrid clouds is managing costs
effectively. Scheduling algorithms are used to optimize the allocation of resources, taking into
account the organization's budget and resource availability. For instance, advanced scheduling
@VTUpadhai – Cloud Computing (21CS72) – Module 3 Notes
engines like Haizea help ensure that public cloud resources are used cost-effectively, by
determining when and how to scale out.
7. PaaS Solutions for Hybrid Clouds: PaaS solutions, like Aneka, enable hybrid cloud setups by
providing provisioning services that allow applications to scale dynamically across private and
public cloud infrastructures. These platforms often include features like budget-based resource
allocation to guarantee that applications meet the required quality of service (QoS).
8. Use Cases: Hybrid clouds are suitable for organizations that:
o Need to balance control and security with flexibility.
o Require scalability during peak usage times without investing in expensive on-premises
infrastructure.
o Want to maintain compliance and security for sensitive data while still benefiting from the
cost-effectiveness and scalability of public clouds.
hybrid clouds offer the flexibility to maintain sensitive data and operations within private infrastructure
while utilizing the public cloud's vast resources for scalability and cost efficiency when needed. This blend
of private and public resources makes hybrid clouds an attractive option for businesses with fluctuating IT
demands.
Figure 4.5 illustrates a hybrid cloud architecture, which combines private cloud infrastructure with
resources from public clouds. The diagram shows:
Private Cloud: The internal infrastructure of an organization, such as datacenters or clusters,
providing secure, in-house resources.
Public Cloud: External cloud services, such as Amazon EC2, that offer additional resources to
handle peak loads.
Dynamic Provisioning: The process of adding or releasing public cloud resources as demand
fluctuates, enabling scalability.
@VTUpadhai – Cloud Computing (21CS72) – Module 3 Notes
Hybrid Cloud Overview: A distributed system where the private cloud integrates resources from
public clouds to meet capacity demands, known as cloudbursting.
Community Clouds
Community clouds are distributed systems designed to meet the specific needs of a particular industry,
community, or business sector by integrating resources from multiple organizations. They are typically used
by groups with shared concerns, such as security requirements, policies, and compliance considerations.
According to the National Institute of Standards and Technology (NIST), community clouds are
characterized by shared infrastructure that serves a specific community, and can be managed either by the
community members or a third party, and may exist on-premise or off-premise.
Here are key characteristics of community clouds:
1. Shared Infrastructure and Collaboration:
Community clouds are built on resources contributed by different organizations, such as
government bodies, private enterprises, or public infrastructure providers.
They focus on collaboration among users who have common goals or concerns, such as security,
compliance, or operational needs.
Unlike public clouds, which serve a broad user base with varied needs, community clouds serve
specific groups with similar interests.
2. Industries and Use Cases:
Media Industry: Community clouds provide a collaborative environment for media companies
that require high computational power, bandwidth, and storage. These clouds help facilitate the
creation and sharing of digital content, particularly in media production processes that involve large
data movements and compute-intensive rendering tasks.
Healthcare Industry: Community clouds can store non-sensitive information in the shared
infrastructure while keeping sensitive patient data within private clouds. They also provide a
platform for collaboration across hospitals, research institutions, and healthcare providers while
respecting privacy and regulatory concerns.
Energy and Core Industries: These sectors benefit from community clouds that integrate
resources from various providers to manage operations and services, creating a fair and open market
for energy distribution, management, and coordination.
Public Sector: Legal and administrative processes within government bodies can be streamlined
using community clouds, providing a distributed platform for communication and collaboration
across agencies and departments.
Scientific Research: Community clouds are used in scientific computing, where research
organizations collaborate by sharing large, distributed infrastructures to support computational
tasks and data analysis.
@VTUpadhai – Cloud Computing (21CS72) – Module 3 Notes
Figure 4.6 provides an overview of different types of clouds, including Community Cloud, Private Cloud,
and Public Cloud. It illustrates how these cloud models cater to various sectors and user groups:
Community Cloud: A cloud model formed by integrating the services of multiple clouds to serve
the needs of a specific industry, community, or business sector. The resources are shared by
organizations with common concerns, such as industries or government bodies.
Private Cloud: A cloud infrastructure dedicated to a single organization, such as enterprises or
federal and government bodies, ensuring control over security and operations.
Public Cloud: A cloud infrastructure available to the general public, providing services to various
users like public services, users, and development platforms.
services rely on multiple third-party services, it becomes difficult to pinpoint liability if privacy
violations or breaches occur.
There is a need for legal and technical solutions to address these challenges, ensuring that cloud
services adhere to regulations and provide transparent accountability.
5. Organizational Aspects:
Cloud computing transforms how businesses manage IT services, leading to new organizational
and cultural shifts. One of the most significant changes is how IT departments function when much
of the infrastructure is outsourced to the cloud.
Important questions include:
o What is the role of the IT department in organizations that rely heavily on the cloud?
o How will compliance and regulatory frameworks adapt to the cloud environment,
especially in areas where businesses lose control over workflows?
Organizationally, moving to the cloud reduces local IT maintenance and support costs but also
requires employees to have new competencies. IT staff may need fewer technical skills in
infrastructure management, but they must adapt to cloud-specific management tools and services.
This can lead to a reshaping of team structures and responsibilities.
6. Implications for Businesses:
Moving IT services to the cloud introduces several political, legal, and operational considerations.
Organizations may lose control over some aspects of their IT infrastructure, which could have
broader implications for their governance and regulatory compliance.
Additionally, as businesses increasingly rely on cloud services, their internal processes and the role
of IT departments will evolve, requiring new strategies for managing risk, ensuring security, and
maintaining user trust.
While cloud computing offers significant benefits in flexibility, cost efficiency, and scalability, it is still in
its developmental phase, with many challenges that need to be addressed. These include refining cloud
definitions, ensuring interoperability through standards, improving scalability and fault tolerance,
addressing security and privacy issues, and transforming organizational structures to accommodate cloud
adoption. Continued research and collaboration between industry and academia will be crucial in resolving
these challenges and enabling more seamless and secure cloud adoption across various sectors.
@VTUpadhai – Cloud Computing (21CS72) – Module 4 Notes
Module 4 - Cloud Security: Risks, Top concern for cloud users, privacy impact assessment, trust, OS
security, VM Security, Security Risks posed by shared images and management OS.
Cloud Security Risks
Cloud computing security faces several risks that both users and providers must address. These include
traditional security threats, risks associated with system availability, and concerns around third-party
control of data.
Traditional Security Threats:
User-side threats: Users must secure their devices and infrastructure, which can be more
challenging when some components are outside their control.
Authentication and Authorization: Proper access control is crucial, with different access levels
for individuals within an organization. It’s also hard to integrate internal security policies with
those of the cloud provider.
Cloud-side threats: Cloud services are vulnerable to traditional attacks like DDoS, phishing,
SQL injection, and cross-site scripting. Virtualization also adds complexity, as shared resources
could be exploited by malicious users.
Availability Risks:
System Failures: Cloud services can face downtimes due to power outages or system failures.
Data lock-in can also affect business continuity if a provider fails.
Third-Party Control: Cloud providers may subcontract resources, and the risks of data loss or
breaches increase if those third parties are not trustworthy.
Cloud-Specific Threats:
Abuse of Cloud Resources: Criminals could misuse cloud resources for malicious activities like
launching DDoS attacks, sending malware, or distributing spam.
Shared Technology Risks: Issues in virtualization technologies could lead to vulnerabilities that
affect multiple users sharing the same resources.
Insecure APIs: Cloud service APIs might not provide adequate security for tasks like
authentication and monitoring.
Insider Threats: Cloud providers might have malicious insiders with access to sensitive
information or systems.
Data Loss or Leakage: There is a risk of losing critical data due to failures in replication or
storage media. This can be catastrophic, especially if there is no backup.
Account Hijacking: Cloud users face threats of credentials theft, which can lead to unauthorized
access to cloud services.
@VTUpadhai – Cloud Computing (21CS72) – Module 4 Notes
Mitigation Efforts:
The Cloud Security Alliance (CSA) has identified key threats like malicious insiders, data loss, insecure
APIs, and account hijacking. Their Security Guidance for Cloud Computing offers advice on how to
minimize these risks.
To address these security concerns, it's important to establish robust security protocols, ensure
transparency in provider operations, and be aware of new attack vectors unique to cloud computing, such
as multitenancy risks and data control challenges.
Figure 9.1 depicts the surfaces of attacks in a cloud computing environment. It shows the interactions
between three key actors: the User, the Service, and the Cloud Infrastructure.
User-Cloud: The user requests resources from the cloud, and potential attacks can occur during
this interaction.
Service-User: The service interacts with the user, and attacks may target the service from the user
side, such as phishing or SSL certificate spoofing.
Cloud-User: The cloud infrastructure can also be a source of attacks on the user, such as attacks
from compromised cloud resources.
Service-Cloud: The service interacts with the cloud infrastructure to manage and request
resources, and attacks can originate here, such as privilege escalation or data distortion.
Cloud-Service: Cloud infrastructure can attack the service, for example, through privilege-related
attacks or data injection.
including the "right to be forgotten," which allows individuals to have their data erased
from the internet.
Privacy Impact Assessment (PIA):
A Privacy Impact Assessment (PIA) is a tool for identifying privacy risks in information systems. PIAs
are critical for ensuring privacy is built into systems from the start rather than retrofitted. A PIA process
typically involves the following:
Notice: Organizations must provide clear information about what data they collect, how it’s used,
and if it's shared with third parties.
Choice: Users should have the ability to choose how their data is used, especially for secondary
purposes like marketing or sharing with external entities.
Access: Users should be able to review the data collected about them and correct inaccuracies or
delete information if necessary.
Security: Organizations must take reasonable steps to protect user data from unauthorized access
or breaches.
Proposed Tools for Privacy Management:
There is a call for tools to proactively address privacy concerns in systems. One proposed tool is a web-
based Privacy Impact Assessment (PIA) tool that helps organizations evaluate and mitigate privacy risks.
This tool would take inputs from project information, risk assessments, and stakeholder details to
generate a comprehensive PIA report, covering areas like transparency, security, and cross-border data
flows.
The PIA tool would be supported by a knowledge base created by domain experts, which would use a
rule-based system to evaluate privacy risks and generate necessary actions based on specific legal and
regulatory frameworks. This proactive approach ensures privacy concerns are addressed before systems
are fully deployed, reducing the need for costly changes later.
Privacy remains a critical concern in cloud computing, particularly as personal data is stored on third-
party servers, and users often lose control over their information. Strong legislation, transparent privacy
policies, and tools like PIAs are essential to managing these risks and ensuring that privacy rights are
respected in the digital age.
2. Interdependence: Trust also depends on interdependence, where one entity's success relies on
the actions of another. This relationship is key in cloud services, where a user depends on the CSP
for data storage, security, and availability.
Phases of Trust:
1. Building Phase: Trust is initially formed based on initial interactions or promises.
2. Stability Phase: Trust becomes stable and established over time.
3. Dissolution Phase: Trust declines due to breaches or failures.
Types of Trust:
Deterrence-based Trust: Trust based on the belief that the penalties for breaching trust outweigh
any potential benefits from dishonest behavior.
Calculus-based Trust: Trust based on the belief that cooperation benefits both parties.
Relational Trust: Develops over time through repeated positive interactions, based on
dependability and reliability.
Trust in Online Environments:
Trust in online environments, especially on the internet, faces unique challenges. Anonymity and lack of
identity transparency reduce trust, as it becomes difficult to assess the true nature of an entity. Without
identifiable characteristics or accountability, the ability to trust becomes compromised.
Addressing Trust Issues:
1. Access Control: Mechanisms are needed to prevent unauthorized access and protect data.
2. Identity Transparency: Ensuring that the identities of parties involved in transactions are
verified and transparent. This can be achieved through biometric identification, digital signatures,
and certificates.
3. Surveillance: Ongoing monitoring of systems through intrusion detection or logging and auditing
ensures actions can be traced and reviewed, thus fostering accountability.
Mechanisms for Building Trust:
1. Credentials: Digital credentials, like digital signatures, serve as proof of identity and
competence. For example, a doctor’s diploma certifies their qualifications, just as a digital
certificate verifies the identity of a user or organization online.
2. Policies: Trust policies outline conditions under which trust is granted and specify actions to take
when conditions are met or violated. These often require the verification of credentials.
3. Reputation: Reputation is built over time based on interactions with an entity. Positive or
negative history influences trust decisions. Recommendations or reviews from other trusted
parties also contribute to reputation-building.
@VTUpadhai – Cloud Computing (21CS72) – Module 4 Notes
VM Security Models:
o In the Traditional System VM Model, the Virtual Machine Monitor (VMM) enforces
security by controlling access to hardware and isolating VMs from each other.
o Hybrid and Hosted VM Models are less secure because the entire system’s security
depends on the host OS.
o Virtual Security Services: VMs can have their security managed either by the VMM
(Figure 9.2a) or a dedicated security VM (Figure 9.2b). A Trusted Computing Base
(TCB) is critical for maintaining security in virtualized environments.
Isolation and Control
VMM Isolation: The VMM ensures stricter isolation of VMs than traditional OS processes,
protecting VMs from malicious actions by other VMs.
Challenges: The VMM primarily manages lower-level system functions, while higher-level
security services are more abstract and difficult to enforce through the VMM.
Security Features of Virtualization
VM Cloning and Replication: The ability to clone or replicate VMs enhances security, as it
allows for the testing of suspicious applications in a controlled, isolated environment.
Communication and Isolation: Inter-VM communication is faster than between physical
machines, which can be used to enhance security by isolating sensitive processes.
Threats and Attacks
Sophisticated Attacks: Attackers may attempt to avoid VM honeypots, or access VM logs to
steal sensitive data like cryptographic keys. Log files must be carefully protected.
Security Trade-offs: Virtualization provides enhanced security but incurs higher hardware costs
and development overhead. The Virtual Machine Monitor (VMM) introduces overhead due to
its involvement in privileged operations.
VM-based Intrusion Detection and Prevention
VM-based intrusion detection systems (IDS), such as Livewire and Siren, use VM isolation,
inspection, and interposition to detect attacks. VMs also support intrusion prevention systems
like SVFS and NetTop, focusing on protecting against threats before they impact the system.
VMM and VM-Based Threats
1. VMM-based Threats:
o Resource Starvation: Rogue VMs can bypass resource limits, starving other VMs.
o Side-Channel Attacks: Poor isolation between VMs can allow malicious VMs to attack
others.
o Buffer Overflow: Vulnerabilities within the VMM can be exploited by attackers.
@VTUpadhai – Cloud Computing (21CS72) – Module 4 Notes
2. VM-based Threats:
o Rogue VMs: Unauthorized VMs can be created and launched with insecure settings.
o Tampered VM Images: VMs may use insecure or compromised images, leading to
security risks.
Figure 9.2(a): This diagram illustrates a system where Virtual Security Services are provided by the
Virtual Machine Monitor (VMM). The VMM controls the entire hardware access and manages the
interactions of the guest VMs, while also providing security services to ensure the integrity and isolation
of the VMs.
Figure 9.2(b): This figure shows an alternative architecture where a dedicated Security Services VM
handles security tasks. In this setup, the security functions are separated from the VMM and run in their
own isolated VM. This additional layer enhances security, especially for managing sensitive data and
policies.
VM technology offers strong isolation and security features, but it is not without its challenges. It requires
careful management, especially regarding resource allocation, image integrity, and monitoring for threats.
While the benefits of virtualization, like better isolation and flexibility, enhance security, it requires
additional overhead, including higher hardware costs and development efforts.
2. Bundling: The image is compressed, encrypted, and split into segments to be uploaded.
3. User Instantiation: The user specifies resources, credentials, firewall configuration, and region
settings to instantiate the AMI.
The process of sharing images can introduce various security risks because of leftover sensitive data or
improper configurations.
Key Findings from AMI Security Audits
A security audit of 5,303 AMIs revealed several critical security risks:
1. Vulnerabilities:
o 98% of Windows AMIs and 58% of Linux AMIs had critical vulnerabilities, including
remote code execution risks.
o These vulnerabilities were often outdated, with many images being several years old, and
sometimes lacking necessary patches.
2. Backdoors and Credentials:
o Many Linux AMIs had left-over credentials (e.g., ssh keys and passwords), allowing
unauthorized users to log into running instances.
o Some AMIs retained the original creator's ssh keys, allowing them to access instances
remotely without detection.
o Password hashes in AMIs could be cracked using tools like John the Ripper, opening
further access for attackers.
3. Omitted Security Configurations:
o Cloud-init scripts, meant to regenerate ssh host keys on boot, were sometimes omitted.
This allowed attackers to conduct man-in-the-middle attacks by exploiting shared ssh
keys across instances.
4. Unsolicited Connections:
o Some AMIs were configured to send information to external agents (e.g., syslog logs and
IP addresses), potentially leaking sensitive data to malicious actors.
o These connections could be disguised as legitimate, making it difficult for users to detect
unauthorized data exfiltration.
5. Malware:
o Malware, including Trojans, was discovered in some Windows AMIs. These Trojans
could facilitate keylogging, data theft, and process monitoring, compromising the privacy
and security of users.
@VTUpadhai – Cloud Computing (21CS72) – Module 4 Notes
1. Trusted Computing Base (TCB): In a virtualized environment, the TCB includes the hardware,
hypervisor, and management OS (running in Dom0). While the hypervisor provides isolation
between VMs, the management OS is a critical component and can introduce vulnerabilities. In
Xen, Dom0 manages VM creation, I/O device emulation, and other administrative tasks.
2. Vulnerabilities in the Management OS: A study of Xen found that most attacks targeted the
service components of the management OS, not the hypervisor itself. For instance, vulnerabilities
could allow for buffer overflows, denial-of-service (DoS) attacks, or even the modification of the
guest OS kernel to allow malicious control.
3. Potential Malicious Actions by Dom0: A compromised Dom0 could perform several harmful
actions:
o Prevent a VM from starting (denial-of-service).
o Alter the kernel of a guest OS to monitor or control applications.
o Manipulate memory mappings and virtual CPU states, undermining VM integrity.
4. Communication Risks: During runtime, Dom0 facilitates communication between guest OSes
(DomUs) and external systems via shared device drivers. This communication is typically
unsecured, and while TLS encryption can be used, it doesn’t prevent Dom0 from potentially
extracting sensitive information, such as cryptographic keys, from memory.
5. Critical Role of XenStore: XenStore, a critical component for maintaining the state of the
system, can be targeted by malicious VMs to deny access to other VMs or even gain unauthorized
access to memory.
6. Protection Requirements for Dom0:
o Memory Sharing: Dom0 should be restricted from accessing the memory of DomUs
unless initiated by a hypercall from Dom0 and the memory is encrypted.
o Hypercall Restrictions: Security-critical hypercalls should be tightly controlled. Certain
hypercalls that can harm a DomU, like foreign mapping or debugging hypercalls, should
be monitored and possibly restricted.
o Ensuring Confidentiality and Integrity: Virtual CPU registers and memory should be
encrypted during save and restore operations. The hypervisor should also perform
integrity checks.
7. Performance Overhead: Increased security measures, such as encrypted memory and encrypted
virtual CPU states, can lead to significant overhead. Performance measurements show that the
overhead can increase domain build times, save times, and restore times by up to 2.3 times.
@VTUpadhai – Cloud Computing (21CS72) – Module 4 Notes
Module 5
Part 1- Cloud Platforms in Industry Amazon web services: - Compute services, Storage services,
Communication services, Additional services. Google AppEngine: - Architecture and core concepts,
Application life cycle, Cost model, Observations.
Part 2- Cloud Applications: Scientific applications: - HealthCare: ECG analysis in the cloud, Biology:
gene expression data analysis for cancer diagnosis, Geoscience: satellite image processing. Business
and consumer applications: CRM and ERP, Social networking, media applications.
AWS provides flexible services for various applications, such as cloud storage, computing, and database
management, with advanced offerings like MapReduce, AutoScaling, and CloudFormation for creating
dynamic and scalable systems.
9.1.1 Compute Services:
9.1.1 Compute Services
Amazon EC2 (Elastic Compute Cloud) is a core offering in AWS's Infrastructure as a Service (IaaS)
model. EC2 allows users to deploy virtual machines (VMs) based on pre-configured Amazon Machine
Images (AMIs). These VMs, known as EC2 instances, can be tailored to specific needs in terms of
computing power, storage, and memory. Below are the detailed concepts surrounding Amazon EC2 and
its related services:
o Cluster Compute and GPU Instances: For specialized needs like high-performance
computing (HPC) and graphic processing.
Pricing
EC2 instances are generally billed on an hourly basis, but spot instances are also available. Spot
instances allow users to bid for unused capacity at lower rates, with pricing varying depending on
demand and availability.
Use Case: Buckets are often used to organize and separate data, such as logs, backups, and media
files, and control access permissions through S3 Access Control Policies (ACPs).
2. Objects
Definition: Objects are the actual files or data stored in Amazon S3. Each object consists of the
data itself, metadata, and a unique identifier (the object key).
Characteristics:
o Objects are immutable once uploaded; they cannot be modified, renamed, or partially
updated.
o However, objects can be replaced or deleted, and new objects can be added.
o Objects can store up to 5TB of data, but the default upload limit is 5GB for a single
upload request.
o Each object can be associated with metadata, which provides additional information such
as file type, size, or custom metadata.
Immutability: This feature ensures that once an object is uploaded to S3, it cannot be altered. If
you need to make changes, you must upload a new object with a different key or version.
3. Immutability
Definition: Immutability in S3 refers to the fact that once an object is stored in a bucket, it cannot
be renamed or changed. If changes are needed, a new object version must be uploaded with a new
name.
Significance:
o This ensures data integrity and prevents unauthorized modifications, making it
particularly important for regulatory compliance and secure data storage.
o S3's immutable nature is commonly used for storing backup data, log files, and critical
application data.
4. Eventual Consistency
Definition: Eventual consistency means that changes made to objects in S3, such as updates or
deletions, might not be immediately reflected across all AWS regions or even within the same
region. This delay happens because of S3’s replication process across its global infrastructure.
Characteristics:
o While changes like object creation are immediately visible, deletions or modifications
may take time to propagate fully.
o S3 ensures that eventually, all copies of the object will be updated, but there may be a
brief inconsistency period.
Use Case: This model is suitable for many use cases where slight delays in consistency are
acceptable (e.g., media files, backups).
@VTUpadhai – Cloud Computing (21CS72) – Module 5 Notes
5. Access Methods
Definition: S3 allows interaction with its storage through standard HTTP methods, following
RESTful web services principles.
Methods:
o GET: To retrieve objects from the S3 bucket.
o PUT: To upload new objects or replace existing ones.
o DELETE: To remove objects from S3.
How it Works: Applications can use these HTTP methods to directly interface with S3 via REST
API calls, making S3 highly adaptable and programmatically accessible.
o S3 supports automatic metadata generation like content-type (e.g., text/plain) and custom
tags for efficient searching and categorization.
Advanced Features of S3
1. Server Access Logging
Definition: This feature enables the logging of access requests to your S3 buckets. Server access
logs record requests made to the S3 service and store them in a specified S3 bucket.
Use Case:
o Useful for auditing and monitoring who is accessing the data.
o Helps in tracking usage, troubleshooting, and identifying potential security issues.
o The logs can be analyzed using AWS services like Amazon Athena or QuickSight.
2. BitTorrent Integration
Definition: S3 supports integration with the BitTorrent protocol, allowing users to distribute their
objects via the BitTorrent network.
Use Case:
o Ideal for distributing large files (like software updates, media files) in a peer-to-peer
network, reducing bandwidth costs by leveraging distributed download.
o Popular in use cases like software distribution, multimedia content delivery, and public
file sharing.
@VTUpadhai – Cloud Computing (21CS72) – Module 5 Notes
C. Amazon SimpleDB
Purpose: A flexible, scalable NoSQL database service designed for applications that do not need
full relational capabilities.
@VTUpadhai – Cloud Computing (21CS72) – Module 5 Notes
Key Features:
o Domains: Data is organized in domains, which are somewhat like tables but without
strict schema enforcement. Items in domains are stored as key-value pairs.
o Eventual Consistency: SimpleDB offers eventual consistency, meaning that after an
update, there might be a temporary discrepancy across different copies of data.
o Conditional Operations: Allows conditional insertions or deletions to ensure data
consistency in scenarios with multiple writers.
o Scalability: Can scale to handle large volumes of data, with domains limited to 10 GB of
data.
Cost: Data Transfer and Storage: Users are charged for the data transferred in and out of the
AWS network, and the storage used.
Machine Usage: The first 25 instances per month are free; beyond that, each instance incurs an
hourly charge of $0.140 in the U.S. East region.
Pricing decreases with higher volumes, down to $0.020 per GB for over 524 TB
per month.
9.2 Google AppEngine
Google AppEngine is a Platform-as-a-Service (PaaS) that allows developers to build and deploy
scalable web applications without managing underlying infrastructure. It leverages Google’s vast cloud
infrastructure to provide automatic scaling, load balancing, and resource management, which enables
applications to handle varying traffic loads without manual intervention.
Key Concepts and Architecture
1. Infrastructure:
o AppEngine runs on Google’s data centers spread across the world. These data centers
host the applications and ensure high availability and performance by using a global
network of servers.
o Automatic Traffic Distribution: AppEngine intelligently distributes incoming user
traffic across available servers. This distribution is designed to optimize performance,
ensuring minimal latency by directing traffic to the nearest data center or server.
o Scalability: AppEngine can automatically scale applications up or down based on the
number of incoming requests, ensuring efficient use of resources. For instance, if a web
application suddenly experiences high traffic, AppEngine can provision additional
resources (servers, computing power) to handle the load and scale back when the traffic
decreases.
Google AppEngine Infrastructure: The distributed data centers that host and manage the apps.
Sandboxed Runtime Environment: Isolates apps for security and stability.
Runtime (e.g., Python SDK, Local Machine): Tools for local app development and testing.
Web App: The deployed web application running on AppEngine.
Datastore: Scalable NoSQL database for storing app data.
URL Fetch: Service to send HTTP requests to external resources.
Image Manipulation: Built-in tools for processing and editing images.
Task Queue: Manages background tasks to avoid blocking main app flow.
Cron Jobs: Schedules tasks to run at specific intervals.
2. Runtime Environment:
@VTUpadhai – Cloud Computing (21CS72) – Module 5 Notes
o The runtime environment is where the actual web application runs. This environment
includes:
Sandboxing: A security feature that isolates applications, ensuring that they
cannot interfere with one another. This is important for multi-tenant
environments where several applications run on the same infrastructure.
Language Restrictions: AppEngine restricts certain features of supported
programming languages to maintain security and reliability. For example, file
system access is restricted, and processes like background tasks have constraints.
Managed Environment: AppEngine abstracts away most of the underlying
infrastructure management, allowing developers to focus on application
development instead of dealing with server management, scaling issues, and
hardware failures.
3. Supported Runtimes:
o AppEngine supports multiple programming languages, allowing developers to use their
preferred languages:
Java: Supports Java 6 with libraries and tools specifically designed for
AppEngine. Java developers can use the AppEngine SDK to develop and test
applications locally before deploying them.
Python: Initially optimized for Python 2.5.2, AppEngine now supports Python 3.
Developers can use AppEngine’s Python libraries to interact with Google
services such as Datastore and Cloud Storage, and they can also use web
frameworks like Django for web development.
Go: Google Go (Golang) is another language supported by AppEngine. Go’s
simple, fast execution makes it an excellent choice for scalable cloud
applications. Developers can use Go's libraries and tools integrated with
AppEngine for building highly performant services.
o Additionally, developers can also run custom runtimes using Docker containers (Custom
Environment), enabling support for other languages, libraries, and frameworks not
natively supported.
4. Storage: AppEngine provides different types of storage systems to handle various kinds of data
needs:
o Static File Servers: Used for serving static content such as images, HTML files, CSS,
and JavaScript files. These are simple, unchanging files that don’t require processing on
the server side.
@VTUpadhai – Cloud Computing (21CS72) – Module 5 Notes
o DataStore: A scalable, NoSQL data storage system built on top of Google Bigtable.
DataStore is designed for storing semi-structured data and provides fast, efficient access
to large volumes of data without complex schema requirements. It allows developers to
store and query data based on keys.
o MemCache: This is an in-memory cache that provides extremely fast access to data that
needs to be accessed frequently. It’s particularly useful for reducing load on Datastore by
storing frequently queried data in memory.
5. DataStore:
o Overview: DataStore is a distributed, NoSQL database designed to store and manage
semi-structured data. It automatically scales to handle large datasets and high throughput.
o Data Structure: Data in DataStore is stored as entities, and each entity has a unique key
and a set of properties. These properties can store various data types, including strings,
numbers, and lists.
o NoSQL Design: Unlike traditional relational databases, DataStore doesn’t use SQL or
enforce relational constraints. Instead, it uses key-value pairs for storing and querying
data, which allows for greater flexibility and scalability.
o Transactions: AppEngine supports atomic transactions within DataStore. You can make
atomic updates to single entities or multiple entities that belong to the same entity group.
An entity group is a collection of related entities that can be updated together in a single
transaction, ensuring consistency.
Entity Groups: This feature ensures consistency by preventing partial updates
when the data is spread across different servers. Only entities within the same
group can be updated in an atomic operation.
6. Application Services: AppEngine provides several built-in services that simplify common web
application tasks:
o Account Management: AppEngine can integrate with Google Accounts for user
authentication and management. This allows developers to easily manage user profiles,
handle sign-ins, and maintain user-specific data.
o Messaging and Email: AppEngine has built-in support for sending emails and real-time
messaging using XMPP (Extensible Messaging and Presence Protocol). This is useful
for features like email notifications or real-time chat applications.
o Image Manipulation: AppEngine provides an image manipulation service that enables
you to resize, rotate, and process images programmatically. This is useful for generating
thumbnails or applying filters to user-uploaded images.
o Task Queues: For long-running tasks, AppEngine provides task queues that allow you to
enqueue jobs (such as background processing tasks) and run them asynchronously,
without blocking the main request-response cycle.
o Cron Jobs: AppEngine allows you to set up cron jobs to schedule tasks that need to be
executed at regular intervals (e.g., nightly data backups or daily notifications).
@VTUpadhai – Cloud Computing (21CS72) – Module 5 Notes
In summary, Google AppEngine offers a highly scalable, easy-to-use platform for developing and
hosting web applications. It abstracts away infrastructure management, providing developers with the
tools and services necessary to focus on building their applications rather than managing servers or
scaling issues. Key features include:
Automatic scaling and load balancing.
Support for multiple programming languages (Java, Python, Go, and custom runtimes).
Integrated storage systems (Datastore, MemCache, and static file servers).
Application services (user authentication, messaging, image manipulation, task queues, cron
jobs).
Ease of use and rapid development, with built-in SDKs and integration with Google’s
ecosystem of services.
Google AppEngine is designed to handle everything from small, low-traffic applications to large, high-
traffic services, making it an ideal choice for developers looking for a managed, scalable environment for
their web applications.
2. MemCache
Purpose: MemCache is a distributed in-memory caching service provided by AppEngine to store
frequently accessed data in memory. Caching improves the performance of web applications by
reducing the need to repeatedly fetch the same data from slower storage systems (like the
DataStore).
How it works:
o When data is frequently accessed, it is stored in the cache, which is fast and temporarily
stores the data.
o On subsequent requests, the application first checks the cache. If the data is found, it is
returned immediately (cache hit). If not found (cache miss), it retrieves the data from a
persistent storage (like the DataStore) and places it in the cache for future use.
Cache Eviction: MemCache automatically removes objects that are rarely accessed, ensuring that
the most frequently accessed data stays in memory, and memory usage is optimized.
3. Mail and Instant Messaging
Mail: AppEngine allows developers to send email messages on behalf of their application. This
can be used for:
o Notifying users of application events (e.g., new messages, updates, or actions).
o Triggering operations based on user input (e.g., confirming an action via email).
o Sending attachments and targeting multiple recipients.
XMPP (Extensible Messaging and Presence Protocol): AppEngine also supports real-time
communication using XMPP, a protocol for messaging and presence information. This allows the
application to send and receive chat messages to and from services that support XMPP, such as
Google Talk.
o Use Cases: This can be particularly useful for building chatbots, implementing
administrative dashboards, or integrating real-time messaging into the application for
interactive features.
4. Account Management
Google Accounts Integration: AppEngine simplifies user account management by integrating
with Google Accounts, allowing the application to leverage Google's authentication system.
o Profile Storage: You can store user preferences or settings as key-value pairs and attach
them to a specific Google account. This means you don’t have to build and manage your
own authentication system.
o Advantages:
Ease of Use: No need for custom authentication systems.
Google Ecosystem: If users are already using Google services (like Gmail), they
can authenticate with their existing accounts.
@VTUpadhai – Cloud Computing (21CS72) – Module 5 Notes
o Corporate Usage: In organizations that use Google Apps (G Suite), the integration
allows for seamless access to Google services and user profiles.
5. Image Manipulation
Purpose: AppEngine provides an image manipulation service that allows you to perform
lightweight image processing tasks. This can include:
o Resizing: Changing the size of images to fit the needs of your web page.
o Rotation: Rotating images based on user input or application requirements.
o Mirroring: Creating a reflected version of the image.
o Enhancement: Adjusting the image's brightness, contrast, or applying filters.
Optimization: The service is optimized for speed and designed for basic tasks like generating
thumbnails or applying watermarks, rather than heavy image processing.
6. Compute Services
Web applications often rely on computations to handle user input and generate responses.
Sometimes these computations can take too long for a user to wait for, or they may need to be
scheduled or delayed.
Task Queues:
o Task Queues allow you to queue tasks (such as long computations) for deferred
execution.
o Usage: If a task is too time-consuming for a synchronous HTTP request, you can enqueue
it to run later, without holding up the user request.
o Automatic Retries: If a task fails due to temporary issues (e.g., a network failure), the
system automatically retries the task.
Cron Jobs:
o Cron Jobs allow you to schedule tasks that need to run at specific times (e.g., nightly
backups, daily reports, or sending reminders).
o Use Case: Perfect for tasks that need to run periodically, like maintenance or
notifications, without waiting for a user request.
7. Application Lifecycle Management
Development and Testing:
@VTUpadhai – Cloud Computing (21CS72) – Module 5 Notes
o Developers can create and test applications locally using a local development server.
This server mimics the AppEngine environment and helps in testing without uploading
the code to the cloud.
o The server provides mock implementations of AppEngine services (like DataStore and
MemCache) and includes tools for profiling and debugging.
SDKs:
o Java SDK: Provides tools and libraries to develop and test Java applications. It can be
integrated into Eclipse IDE using the Google AppEngine plug-in.
o Python SDK: Allows development of Python-based applications and provides tools like
the GoogleAppEngineLauncher to manage, test, and deploy applications.
Deployment: Once an application is ready, it can be deployed to AppEngine. Developers need to
choose a unique application identifier (which forms part of the web address) to access the
application. AppEngine handles scaling, load balancing, and other operational aspects once the
app is deployed.
8. Cost Model
Free Service and Billing:
o Free Quotas: AppEngine provides a free tier with limited resources, such as CPU time,
bandwidth, and storage. This free tier is reset daily.
o Billing: After testing, developers can set up a billing account for more resources, and they
are charged based on usage. The service is billed on a pay-per-use basis.
Quota Types:
o Billable Quotas: These are quotas that you define based on your budget and usage. Once
the quota is used up, the application may stop working until it is replenished.
o Fixed Quotas: AppEngine also enforces internal quotas to ensure that applications don’t
overload the system, which could affect other users.
o Per-Minute Quotas: To prevent excessive consumption of resources in short bursts,
AppEngine enforces limits on resource usage per minute.
Error Handling: When a resource quota is exceeded, the application will return an error (e.g.,
"HTTP 403 Forbidden" for HTTP requests) until the quota is reset or replenished.
@VTUpadhai – Cloud Computing (21CS72) – Module 5 Notes
PART 2
10.1 Scientific Applications in Cloud Computing
Cloud computing has gained significant traction in scientific research, offering scalable and cost-effective
solutions for various applications, such as high-performance computing (HPC), high-throughput
computing (HTC), and data-intensive tasks. Cloud computing provides researchers with virtually
unlimited resources at lower costs compared to traditional in-house systems. The ability to leverage cloud
resources with minimal changes to existing applications is a key benefit.
Cloud platforms such as IaaS (Infrastructure as a Service) offer the best environment for scientific
applications that run bag-of-tasks applications and workflows. Virtual machine instances can be
customized to meet specific software stack requirements, and distributed computing middleware ensures
seamless operation in cloud infrastructures. Additionally, PaaS (Platform as a Service) allows researchers
to explore new programming models to tackle complex computational problems, such as the MapReduce
model, which is particularly suited for large data processing in scientific domains.
o The Aneka workflow engine coordinates the computational tasks required for processing
the ECG data. These tasks include:
Waveform extraction: Identifying the specific shape of the ECG waveform.
Waveform comparison: Comparing the extracted waveform to a reference
waveform to detect any anomalies such as irregular heartbeats.
o The cloud platform dynamically adjusts the number of EC2 instances based on the
workload, scaling up or down to handle varying demands for processing power (this is
called elasticity).
5. Anomaly Detection and Alerts:
Once the waveform analysis is complete, the cloud platform checks for any anomalies in the
ECG data. If abnormal heart patterns are detected (e.g., irregularities in the heartbeat), the system
immediately alerts medical personnel, including doctors and first-aid responders, so they can
take necessary actions.
o Alerts are sent via mobile notifications, emails, or other communication methods.
6. Advantages of Cloud-Based ECG Analysis:
o Elasticity and Scalability: The cloud infrastructure can scale according to the processing
requirements, meaning resources can expand or contract as needed based on the volume
of ECG data or the complexity of the analysis. This allows for efficient use of computing
resources without requiring hospitals to invest in large in-house infrastructure.
o Ubiquity and Accessibility: Cloud services are available anywhere with internet access,
making it possible for doctors to monitor patients remotely and access data from any
device. This level of accessibility is essential for emergency care and continuous
monitoring.
o Cost Efficiency: Cloud services operate on a pay-per-use basis, so hospitals only pay for
the resources they actually use, rather than paying for large, fixed infrastructure costs.
This is especially beneficial for small to medium-sized hospitals or remote health centers.
@VTUpadhai – Cloud Computing (21CS72) – Module 5 Notes
o Final Phase: Involves generating the final predicted structure based on the processed
data.
3. Cloud Scalability:
o Aneka Middleware: Allows the dynamic scaling of resources. The cloud infrastructure
can grow or shrink based on demand, meaning resources can be added when computation
requirements are high and reduced during less busy periods.
o Task Execution in Parallel: The classification phase, which can be parallelized, involves
executing multiple classifiers concurrently to reduce overall computation time.
4. Advantages of Cloud over Traditional Grid Computing:
o Elasticity: Cloud computing offers scalable infrastructure that can be adjusted on-
demand, providing better flexibility than static grid computing.
o Pay-Per-Use: Researchers only pay for the computing resources they use, making it more
cost-effective than maintaining expensive supercomputing clusters.
o Accessibility: Cloud technologies enable scientists to access large-scale computing
resources without the need for owning or managing the hardware.
metadata, ensures that all the data and applications are scalable and adaptable to the company’s
changing needs.
2. Productivity Tools
@VTUpadhai – Cloud Computing (21CS72) – Module 5 Notes
Cloud-based productivity tools have revolutionized the way individuals and businesses collaborate,
manage projects, and store documents. These tools are accessible from any device with an internet
connection, allowing for increased productivity, flexibility, and ease of collaboration.
Dropbox and iCloud:
Both Dropbox and iCloud are cloud storage services that allow users to store files online and access
them from multiple devices.
Dropbox:
o Dropbox is a cloud storage platform that enables users to save files and synchronize them
across various devices.
o Users can upload documents, photos, and videos to a central cloud storage space and
access them from desktops, laptops, tablets, and smartphones.
o Key Features: File sharing, version history, and automatic syncing across devices.
o Dropbox is especially popular for collaborative work, as it allows teams to easily share
and access files.
iCloud:
o iCloud is Apple’s cloud service, designed primarily for iOS and macOS users. It offers
similar functionalities as Dropbox, but it is tightly integrated with Apple devices.
o Key Features: Automatic syncing of photos, music, documents, and even settings
between Apple devices. iCloud is ideal for users within the Apple ecosystem.
o Limitations: While iCloud works best within the Apple ecosystem, it’s less versatile
compared to Dropbox when working with non-Apple devices.
Google Docs:
Google Docs is a cloud-based word processing tool that allows users to create, edit, and share documents
in real time.
Collaboration: Google Docs enables multiple users to work on the same document
simultaneously. Edits are visible in real-time, and users can leave comments and suggestions.
@VTUpadhai – Cloud Computing (21CS72) – Module 5 Notes
Offline Mode: Users can also work offline, with changes automatically syncing when an internet
connection is restored.
Compatibility: Google Docs supports various file formats, making it easy to import and export
documents created in other office suites like Microsoft Office.
Key Features:
o Real-time collaboration
o Version history
o Cloud-based storage
o Cross-platform support
Google Docs has become one of the most popular cloud-based productivity tools, especially for
businesses and educational institutions that require easy collaboration.
Cloud Desktops: EyeOS and XIOS/3:
Cloud desktops, like EyeOS and XIOS/3, allow users to run desktop environments entirely in the cloud,
without relying on local hardware resources.
EyeOS: EyeOS is an open-source cloud desktop that provides users with a fully functional
desktop environment through a web browser. It allows businesses and individuals to run
applications and store files online, making it accessible from any device with an internet
connection.
o Key Features: File management, web-based office suite, and collaborative tools.
o EyeOS is designed for organizations that want to centralize their IT infrastructure in the
cloud while providing employees with a consistent and accessible work environment.
XIOS/3: XIOS/3 is a cloud-based desktop system that uses XML as the primary language for its
architecture. It is designed to provide businesses with a customizable virtual desktop
environment. It offers file storage, collaboration tools, and the ability to create custom
applications in the cloud.
o Key Features: Customizability, service integration, and XML-based development.
o XIOS/3 is primarily used by organizations that need more flexibility and control over
their virtual desktop environments.
@VTUpadhai – Cloud Computing (21CS72) – Module 5 Notes
o Cost-Effective: The use of idle desktop resources in a private cloud reduces the need for
additional hardware investments.
o Scalability: Cloud computing offers the flexibility to scale resources based on the
rendering demand.