Module 1 Notes
Module 1 Notes
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