Module 1 - Introduction To Cloud Computing
Module 1 - Introduction To Cloud Computing
• In 1969, Leonard Kleinrock, one of the chief scientists of ARPANET (which later
led to the Internet), predicted the rise of "computer utilities" that would serve homes
and offices just like telephone or electricity utilities.
• Kleinrock's vision foresaw the transformation of the computing
industry, where computing services would be available on-
demand, much like utilities such as electricity and water.
• In this model, users would only need to pay for the computing
services they use, without needing to invest heavily in building
and maintaining complex IT infrastructure. Leonard Kleinrock
• Users can access services based on their requirements without worrying about where
those services are hosted, which led to the term utility computing, and more recently,
since 2007, cloud computing.
• Cloud computing refers to infrastructure where businesses and users can access
applications as services from anywhere in the world, on demand, without having to
manage the underlying infrastructure.
• This is made possible by state-of-the-art data centers that use virtualization
technologies for consolidating resources and making effective use of them.
• Cloud computing services operate on a pay-per-use basis, which allows users to rent
infrastructure, runtime environments, and services as needed.
• Different people see cloud computing from different perspectives:
o Chief Information Officers (CIOs) of large enterprises see it as a way to scale
infrastructure based on business needs, while end users benefit from being
able to access their data from any device connected to the Internet, anytime,
anywhere.
o One common view of cloud computing is: “I don’t care where my servers
are, who manages them, where my documents are stored, or where my
applications are hosted. I just want them always available and accessible
from any device connected through the Internet. And I am willing to pay for
this service for as long as I need it.”
• Cloud computing turns IT services into utilities that can be accessed as needed, just
like electricity or water.
1
• The adoption of Web 2.0 technologies plays a key role in making cloud computing
an attractive option for building systems, as it transforms the Internet into a rich
platform for delivering applications and services.
• Service orientation helps cloud computing familiarly delivers services, while
virtualization provides customization, control, and flexibility needed for enterprise
systems.
• Cloud computing is highly flexible and allows businesses to integrate additional
capacity or new features into existing systems without the need to buy new
infrastructure, which is often difficult to size and may only be needed temporarily.
• This ability to dynamically provision IT resources has made cloud computing a
popular choice, offering a more attractive alternative to traditional infrastructure
investments.
• As cloud computing systems become widely adopted, the foundational technologies
are becoming more consolidated and standardized, paving the way for an open
environment where services such as computing and storage are traded as utilities.
2
• A scalable runtime for applications is attractive to developers who don’t have
infrastructure or cannot afford further expansion of existing systems.
• Web-based access to documents and sophisticated applications is appealing to end
users who value flexibility.
• A global platform for trading cloud services will make providers more visible,
potentially increasing their revenue while reducing barriers between service
consumers and providers.
• In this model, a cloud provider could also be a consumer of a competitor’s service
to fulfill its promises to customers.
• A global cloud computing marketplace and effective standards for cloud service
representation and interaction between different cloud technologies are key to
realizing this vision.
• The shift towards cloud computing is already happening, with its rapid adoption
facilitating its consolidation as a standard practice.
• By concentrating core capabilities into large data centers, cloud computing reduces
or eliminates the need for technical infrastructure on the consumer side.
• This approach optimizes data center facilities, fully utilizing their capabilities to
serve multiple users, reducing energy waste, and cutting carbon emissions,
contributing to a greener IT environment and increasing revenue.
Defining a Cloud
• Cloud computing refers to various technologies like virtualized infrastructure,
hardware on demand, and utility computing.
• Armbrust et al. defined cloud computing as: "Cloud computing refers to both the
applications delivered as services over the Internet and the hardware and system
software in the data centers that provide those services."
• This definition describes cloud computing as encompassing the entire stack from
hardware to high-level software services and applications.
There are three major models for deploying and accessing cloud computing environments:
1. Public Clouds
2. Private/Enterprise Clouds
3. Hybrid Clouds
Public Clouds:
• Users can quickly access compute, storage, and application services, with data
and applications hosted in the provider's data centers.
• Public clouds are appealing for their ease of access and scalability.
Private/Enterprise Clouds:
• Used by institutions with high security, privacy, and regulatory concerns, such as
governments and banks, to keep confidential data within their premises.
4
• Example: The U.S. federal government started a private cloud initiative to optimize
the use of its IT infrastructure.
Hybrid Clouds:
• Hybrid clouds are becoming a common approach for organizations exploring cloud
possibilities.
Cloud computing offers a variety of services, categorized into three major layers:
1. Infrastructure-as-a-Service (IaaS)
2. Platform-as-a-Service (PaaS)
3. Software-as-a-Service (SaaS)
Infrastructure-as-a-Service (IaaS):
• Users can configure virtual machine instances with a custom software stack. Pricing
is usually based on pay-per-hour depending on the hardware configuration.
• Virtual storage is offered as raw disk space or object storage, and virtual
networking manages connectivity between instances and networks.
Platform-as-a-Service (PaaS):
5
• The provider manages scalability, fault tolerance, and the middleware platform,
while users focus on application logic using the provider’s APIs and libraries.
Software-as-a-Service (SaaS):
• IaaS: For users building scalable systems with custom software stacks.
6
Key Characteristics of Cloud Computing
1. No Up-front Commitments
2. On-demand Access
3. Cost-effectiveness
4. Scalability
5. Efficient Resource Allocation
6. Energy Efficiency
7. Integration with Third-party Services
No Up-front Commitments
On-demand Access
Cost-effectiveness
o Since companies pay only for the services they use, cloud computing offers
“pay-as-you-go” pricing, making it cost-efficient.
Scalability
7
Energy Efficiency
o The cloud makes it easier to connect and use services from different vendors,
enabling faster innovation and improved system functionality.
o Example: Instead of buying a $1,000 server, a company can rent the server
capacity from the cloud and avoid dealing with depreciation and
maintenance.
8
iii. Increased Flexibility
o Since companies rent IT services, they can dynamically and flexibly adjust
their software systems based on their needs without being restricted by
capital investments.
9
Service Orientation and On-demand Access
As cloud computing evolves and becomes more widespread, it introduces new challenges
for various stakeholders, including IT practitioners, managers, governments, and
regulators. These challenges span technical, security, and legal concerns.
o Example: A company must decide how many virtual servers it needs during
a busy season like Black Friday and when to scale down after the traffic
decreases.
10
Security Challenges
o Encryption can protect data in transit between the business and the cloud.
However, a challenge arises when the data is processed, as it needs to be
decrypted in memory, making it vulnerable to potential attacks.
Virtualization technologies can sometimes allow malicious providers to
capture data from memory.
o Companies seek assurances that cloud providers will handle their data
securely, often requiring compliance with industry standards to guarantee a
minimum level of protection.
o Cloud providers must prove they can manage this data securely while
meeting compliance requirements.
Legal Challenges
o This can create conflicts. For instance, a U.S. company using cloud services
that store data in Europe may face difficulties if U.S. authorities want access
to that data, as European privacy laws might block such actions.
11
ii. Example of Legal Conflict:
Historical developments
The historical evolution of distributed computing technologies that have influenced the
development of cloud computing is shown in the figure below.
• 1970: DARPA's TCP/IP development, which laid the foundation for internet
communication protocols.
12
• 1984: Development of DEC’s VMScluster for distributed computing.
• 1990: The invention of the WWW, HTTP, and HTML by Lee-Cailliau, which
became crucial for the internet and web services.
• 1997-1999: Technologies like IEEE 802.11 (Wi-Fi) and Grid Computing emerged,
allowing distributed and shared resource use.
• 2000s: Key cloud platforms like Amazon AWS (2005), Google AppEngine (2008),
and Microsoft Azure (2010) were introduced, enabling cloud computing as we know
it today.
The figure also highlights the shift from mainframes to clusters, grids, and eventually
clouds, marking the progression toward modern distributed computing systems that form
the backbone of cloud computing.
Distributed Systems
• Cloud computing is a type of distributed system that hides its complex architecture
and presents a unified interface to users.
i. Mainframes:
o Still in use today for applications like banking and airline ticketing.
13
ii. Clusters:
o Tools like Condor, PVM, and MPI helped manage clusters as a unified
system.
iii. Grids:
Virtualization
• It allows the creation of virtual environments that simulate the interfaces expected
by users, such as hardware interfaces for operating systems.
• Virtual machines operate in isolation, enabling cloud services like Amazon EC2
and VMware vCloud to deliver customized virtual servers on demand.
• Process virtual machines (e.g., Java, .NET) provide an abstraction for application
execution, isolating programs from the operating system.
14
• Virtualization supports on-demand scalability for applications, as seen in platforms
like Google App Engine and Windows Azure.
Web 2.0
• Web 2.0 refers to the evolution of the web into a platform that facilitates interactive
information sharing, collaboration, user-centered design, and application
composition.
• It enhances the user experience by integrating technologies like XML, AJAX, and
Web Services, enabling web applications to function like desktop applications.
• Web 2.0 supports dynamic applications, where updates and features are constantly
integrated without requiring new software releases on the client side.
• The Web has become accessible through a variety of devices such as mobile phones
and car dashboards, expanding its reach and market potential.
• Web 2.0 also played a crucial role in making cloud computing accessible to the
wider public, supporting rich Internet applications (RIAs) that offer IT
infrastructure through a web interface.
Examples: Google Docs, Google Maps, Flickr, Facebook, Twitter, YouTube, Blogger,
Wikipedia.
• Service orientation is the core model for cloud computing, using services as the
building blocks for system and application development.
15
• A service is a self-describing, loosely coupled component that can perform any
function, from simple tasks to complex business processes, accessible through
network protocols.
o SaaS is a delivery model where software services are provided over the
internet on a subscription or rental basis, freeing clients from
infrastructure maintenance.
o SaaS reaches full potential with SOC, where individual services can be
priced and reused, allowing dynamic creation of business processes.
o Web Services expose software functionalities over the World Wide Web
(WWW) via protocols like HTTP, SOAP, and WSDL.
SOC has played a major role in enabling cloud computing by facilitating the creation of
distributed services that can be composed and integrated seamlessly into the web
environment.
Utility-oriented Computing
16
• The vision of computing as a utility, like water or electricity, was first proposed by
John McCarthy in 1961, and it became a reality with the development of cloud
computing.
• Early examples of utility computing were seen in the mainframe era, where
businesses like IBM offered mainframe power to organizations through data centers.
• With the rise of cluster computing and computing grids, external IT infrastructure
became accessible on demand, especially for research institutes needing significant
computational power.
• The Internet and Web made utility computing globally accessible through simple
interfaces, enabling a market-oriented approach where resources like storage and
computation could be bought and sold.
17
Application Development
• Enterprise applications that leverage the Internet for service delivery and user
interaction are often resource-intensive and benefit from cloud infrastructure. They
involve complex processes triggered by user interactions and rely on cloud
computing for appropriate sizing of infrastructure and handling workload
variability.
• Cloud computing provides a solution for on-demand and dynamic scaling by:
o Hosting application services that mimic desktop applications but are fully
managed and hosted by cloud providers.
18
i. Distributed Computing:
iii. Virtualization:
19
Computing Platforms and Technologies
Cloud computing application development involves using platforms and frameworks that
offer various services, ranging from bare-metal infrastructure to customizable
applications designed for specific purposes.
• Simple Storage Service (S3): Offers persistent, scalable storage organized into
buckets, which can store anything from small files to entire disk images and can be
accessed from anywhere.
In addition to EC2 and S3, AWS provides various other services such as networking,
caching, DNS, and database support to build complete virtual computing systems.
Google App Engine is a scalable runtime environment designed for executing web
applications, allowing them to dynamically scale based on demand using Google's vast
infrastructure. It provides:
• Developers can build and test applications locally using the App Engine SDK,
which replicates the production environment.
• Once ready, applications can be easily migrated to App Engine, with quotas set to
manage costs.
20
Microsoft Azure
Microsoft Azure is a cloud operating system and platform for developing web and
distributed applications. It provides a scalable runtime environment and organizes
applications around roles:
In addition to roles, Azure offers complementary services such as storage (relational data,
blobs), networking, caching, and content delivery to support application execution.
Hadoop
• Yahoo! manages the world’s largest Hadoop cluster, also accessible to academic
institutions.
21
• Developers can create applications by composing ready-to-use blocks and
integrating components from AppExchange.
• The platform supports a wide range of enterprise activities, including data layout
design, business rules, workflows, and user interface development.
• Force.com is fully cloud-hosted, and its functionalities are accessible through Web
services technologies.
Manjrasoft Aneka
• Manjrasoft Aneka is a cloud application platform designed for the rapid creation
and deployment of scalable applications across various cloud types.
22