Module 1-Part 1
Module 1-Part 1
Introduction
Syllabus
Introduction: Cloud Computing at a Glance, Historical Developments,
Building Cloud Computing Environments, Computing Platforms and
Technologies, Principles of Parallel and Distributed Computing: Eras of
Computing, Parallel vs. Distributed Computing, Elements of Parallel
Computing, Elements of Distributed Computing.
Introduction
● Computing is evolving into a model where services are provided like utilities
(water, electricity, gas, telephony).
● Users can access these services based on their needs, regardless of where
the services are hosted.
● Several paradigms, like Grid computing, have aimed to achieve this vision.
● Cloud computing is the latest paradigm that promises to make “computing
utilities” a reality.
● Cloud computing is a technological advancement that changes how we
design systems, develop applications, and use services to build
software.
● Cloud computing uses dynamic provisioning not just for services but also for
resources like computing power, storage, networking, and IT infrastructure.
● Resources are provided over the Internet and are billed based on usage (pay-
per-use model).
● Example: Users can subscribe to Cloud services, configure servers for an
application in hours, scale resources up or down based on demand, and pay
only for the time they use.
● Anyone with a credit card can access and use Cloud services.
CLOUD COMPUTING AT A GLANCE
The Vision of Cloud Computing
Defining a Cloud
A Closer Look
● Cloud computing benefits:
Cloud computing is helping various organizations such as businesses, governments, public and private institutions,
and research organizations to create more efficient and flexible computing systems.
● Ease of use:
Accessing and integrating Cloud computing resources is now as simple as making an online credit card transaction.
● Wide applicability:
Practical examples of Cloud computing systems can be found across all types of industries and market segments.
Large Enterprises:
● Big companies can transfer some activities to Cloud systems to handle large tasks efficiently.
● Example: The New York Times used Amazon EC2 and S3 to convert its digital library into a web-friendly format.
● The task, requiring high computing power, was completed in 36 hours, after which the resources were released
without extra costs.
Small Enterprises and Startups:
● Small businesses can turn ideas into results quickly without huge initial costs.
● Example: Animoto creates videos using images, music, and video fragments uploaded by users.
● It relies entirely on Amazon Web Services (AWS), which scales resources up or down based on
workload, eliminating the need for owning servers.
● Cloud computing ensures scalability and avoids the need for costly upfront investments.
System Developers:
● Developers can focus on business logic instead of managing complex infrastructure and scalability.
● Example: Little Fluffy Toys in London created a widget for rental bicycle services using Google
AppEngine.
● They launched the product in just one week, thanks to the Cloud.
End Users:
1. On-Demand IT Services:
Cloud computing operates on a pay-as-you-go model, providing computing power, storage, and application runtime
environments as needed.
2. New Perspective:
IT services are now viewed as utilities, similar to electricity or water, making them easily accessible on demand.
Types of Cloud Deployment Models
Public Clouds:
● Definition: IT infrastructure (like virtualized data centers) is provided by third-party service providers and accessed
via subscription.
● Advantages:
○ Quick setup of compute and storage resources.
○ Commonly used by individuals and organizations for flexibility.
Private Clouds:
● Definition: Organizations replicate Cloud service models in-house using their own computing infrastructure.
● Advantages:
○ Ensures high security and privacy by keeping sensitive data within the organization.
○ Preferred by institutions like governments and banks for regulatory and security concerns.
● Example:
○ In 2010, the U.S. federal government launched a Cloud initiative to use resources efficiently across its
agencies.
Hybrid Clouds:
On-Demand IT Services:
○ Cloud computing provides a wide variety of IT services as needed, catering to different user needs.
○ This diversity creates different interpretations of what Cloud computing means to users.
1. Infrastructure-as-a-Service (IaaS):
○ Provides fundamental computing resources like virtual machines, storage, and networks.
○ Example: Renting virtual servers or storage space.
2. Platform-as-a-Service (PaaS):
○ Offers platforms and tools for developers to build, test, and deploy applications.
○ Example: Development frameworks or environments like Google App Engine.
3. Software-as-a-Service (SaaS):
○ Delivers software applications over the internet, accessible through a browser.
○ Example: Web-based email or CRM software like Google Workspace.
Cloud Computing Reference Model
● Layered Structure:
○ The model organizes these services into a stack, moving from basic infrastructure (IaaS) at the bottom to software
applications (SaaS) at the top.
○ This layered view provides a comprehensive way to understand and explain Cloud computing services.
● Purpose:
○ The model helps explain technologies and research within Cloud computing in a structured way.
Infrastructure-as-a-Service (IaaS):
Virtual Hardware:
○ Offers virtual machines (VMs) for compute on demand.
○ Users can request VMs and configure the software stack installed in them.
Pricing Model: Based on hourly usage; cost varies with the VM's specifications.
Virtual Storage:
○ Provided as raw disk space (for persistent storage) or object store (for
storing entities rather than files).
Virtual Networking:
○ Manages connections between VMs and provides internet or
private network access.
Use Cases: Ideal for creating scalable computing systems,
developing websites, or handling background processing tasks.
Platform-as-a-Service (PaaS):
Purpose: Delivers scalable and flexible environments for hosting and running applications.
Core Features:
○ Built on a middleware platform that creates the environment for deploying and executing
applications.
○ Providers handle scalability and fault-tolerance, while users focus on application logic.
User Responsibilities:
Benefits:
Features:
○ Applications are hosted on the provider’s infrastructure.
○ Multiple users can access the same application with isolated interactions.
PaaS: Provides platforms for application development, offering scalability and fault-
tolerance.
SaaS: Targets users needing ready-made software with little to no software development or
maintenance.
Characteristics and Benefits
Key Characteristics and Benefits of Cloud Computing
Cloud computing benefits both Cloud Service Consumers (CSCs) and Cloud Service
Providers (CSPs) through:
1. Practical Challenges
Jurisdictional Issues:
● Example Scenario:
○ If an American organization uses Cloud services storing data in Europe,
disputes may arise:
■ U.S. laws grant government agencies broad rights to access data for
national security.
■ European laws protect privacy and restrict such access.
○ Resolving such disputes can be complex and uncertain.
HISTORICAL DEVELOPMENTS
Concept of Renting Computing Services
● The idea of renting computing power and resources has existed since the 1950s, starting with mainframes.
Evolution of Technology
● Over time, technology has advanced and improved, creating conditions that eventually led to the
development of cloud computing.
● Cloud computing did not appear suddenly; it emerged from a long history of technological innovation and
refinement.
● The development of cloud computing was shaped by advancements in the following five core areas:
○ Distributed Systems: Systems where computing resources are spread across multiple locations.
○ Virtualization: Technology that allows multiple virtual machines to run on a single physical machine.
○ Web 2.0: A version of the web that emphasizes user interaction, collaboration, and dynamic content.
○ Service-Oriented Computing: An approach to software design that focuses on services as building
blocks for applications.
○ Utility Computing: A model where computing resources are provided on-demand, like utilities such
as electricity or water.
Distributed Systems
● Clouds are large distributed computing systems that provide on-demand services to third-party users.
Modern Relevance
○ Popularity has decreased, but evolved versions are still used for:
■ Online banking.
■ Airline ticket booking.
■ Supermarkets, telecom services, and government operations.
Clusters
What Are Clusters?
Key Advancements
● Emerged in the 1980s as technology improved, making faster and more powerful machines available.
● Became the standard technology for parallel and high-performance computing.
● Made high-performance computing affordable and accessible to universities and small research labs.
Advantages
Attractive Features
How It Works
It enables efficient use of resources, customization, and control, which are key to Cloud computing.
○ Virtualization has existed for over 40 years but was limited by older technologies.
○ Modern advancements have made it a fundamental technology for Cloud computing, especially for on-
demand IT infrastructure.
How It Works
○ Virtual environments simulate the interface expected by a guest system, such as an operating system or
application.
○ These environments are called virtual machines (VMs) and operate in isolation from each other.
Types of Virtualization
● Hardware Virtualization:
○ Simulates hardware so multiple software stacks can coexist on the same hardware.
○ Each stack runs in a virtual machine instance that is isolated from others.
○ Example: Amazon EC2, VMware vCloud.
● Storage and Network Virtualization:
○ Enables virtual emulation of storage and network infrastructure to improve flexibility and scalability.
● Process Virtualization:
○ Isolates applications from the operating system by running them on a virtual machine program.
○ Example: Technologies like Java Virtual Machine (JVM) and .NET Framework.
Applications in Cloud Computing
Advantages of Virtualization
● Resource Isolation: Ensures applications and VMs run independently.
● Customization: Allows tailored environments for user needs.
● Cost Efficiency: Maximizes use of high-performance hardware.
● On-Demand Scalability: Powers Cloud services to scale as per user demands.
● Enhanced Control: Offers finer control over application execution and resources.
Web 2.0
Web 2.0 refers to the evolution of the Web into a dynamic, interactive, and user-centered platform for application
development and service delivery.
○ Applications are designed for dynamic updates and enhanced user engagement.
○ Example: Google Docs offers real-time collaboration similar to desktop software.
○ No need for users to download updates; new features are added automatically.
Accessible Anywhere
○ Web 2.0 services can be accessed on mobile phones, TVs, car dashboards, and other devices.
Technology Integration
○ Utilizes tools like AJAX, XML, Web Services, and RSS for seamless interactivity.
○ Web 2.0 technologies enable Rich Internet Applications (RIAs) that drive Cloud services.
○ Example: Google Maps and YouTube leverage Web 2.0 to deliver interactive content.
Lightweight Deployment
○ Applications are updated on the server side, making deployment easy and user-friendly.
Service Composition
○ Web 2.0 allows for the creation of new applications by combining existing services.
○ Example: Mashups like integrating Google Maps with hotel databases for travel planning.
Increased Accessibility
○ Users can access Cloud services at a low cost, making them available to a broader
audience.
Social Influence
○ Platforms like Facebook and Twitter showcase how user activity fuels services, increasing
Internet usage and paving the way for Cloud adoption.
● Service Orientation is a development model where services are the primary building blocks for creating applications and
systems.
● A service is a self-contained, reusable component that performs a specific task or function, such as:
○ A simple function (e.g., sending an email).
○ A complex business process (e.g., managing payroll).
1. Loosely Coupled
○ Services work independently and can adapt to different use cases.
2. Platform-Agnostic
○ Services are independent of programming languages or platforms, making them widely accessible.
3. Reusability
○ The same service can be reused in multiple applications.
4. Location Transparency
○ Clients can access services without needing to know their physical location.
Service-Oriented Architecture (SOA)
● SOA is a way of organizing software systems to provide services through discoverable interfaces over a network.
● Services in SOA are composed and aggregated to deliver solutions to end users.
○ QoS evaluates a service's behavior based on functional and non-functional attributes like:
■ Performance (response time).
■ Reliability (consistent operation).
■ Scalability (handling growing demand).
○ QoS is often defined in Service Level Agreements (SLAs) between providers and clients
○ SaaS is a delivery model where software is hosted centrally and provided to clients over a network.
○ Key features:
■ No maintenance or upgrade hassles for the client.
■ Pay-as-you-use or subscription-based access.
■ Economies of scale through multi-tenancy (one application serves multiple clients).
.
Example of Service Orientation: Web Services
Real-World Impact
● Amazon Web Services (AWS): Offers services like storage, computing, and databases as individual components.
● Google Workspace: Provides SaaS solutions like Google Docs and Google Drive.
● Microsoft Azure: Combines SaaS, PaaS (Platform as a Service), and IaaS (Infrastructure as a Service).
Utility-Oriented Computing
● Utility computing is a service model where computing resources (e.g., storage, processing power, applications) are offered on
a pay-per-use basis, similar to utilities like water, electricity, and telephone.
● It envisions making computing as accessible and scalable as basic public utilities.
Historical Perspective
○ John McCarthy, an American scientist, predicted that computing could be organized like a public utility.
○ His vision laid the foundation for today’s utility computing models.
Mainframe Era:
○ In the early days, companies like IBM provided mainframe computing power to large organizations (e.g., banks,
governments) through centralized datacenters.
○ Mainframes introduced features like:
■ Operating systems.
■ Process control.
■ User metering for resource usage tracking.
Cluster Computing:
○ Research institutions used external computing clusters to solve large-scale computational problems.
○ This was particularly important for addressing Grand Challenge problems in fields like computational science, where
internal resources were insufficient.
○ The widespread adoption of the Internet enabled global accessibility of computing resources.
○ The concept of computing grids provided a distributed infrastructure for accessing storage, computation, and services
on demand.
○ Computing grids introduced the idea of trading resources (e.g., storage, processing power) in an open market.
E-Commerce Revolution:
○ The late 1990s saw the rise of online marketplaces, where users began purchasing services like storage space and
web hosting.
○ Infrastructure for online payments (e.g., credit cards) became more secure and accessible.
Service-Oriented Architectures (SOAs):
● Applications evolved from being standalone systems to meshes of services from various providers.
● Services were billed based on usage, expanding the scope of utility computing to include:
○ Compute power.
○ Storage.
○ Application components.
● QoS standards became essential for ensuring performance, reliability, and scalability of utility-based services.
● Utility computing is a precursor to Cloud computing, where the vision of computing utilities comes to life.
● Cloud computing builds on utility computing by:
○ Offering resources (compute, storage, and services) on-demand.
○ Ensuring scalability, flexibility, and affordability for users.
Real-Life Examples of Utility Computing
● Amazon Web Services (AWS): Offers compute power (e.g., EC2 instances) and storage (e.g., S3) on a pay-as-you-use
basis.
● Google Cloud Platform: Provides scalable compute, storage, and data processing resources.
● Microsoft Azure: Combines compute, storage, and applications into one integrated pay-per-use ecosystem.
BUILDING CLOUD-COMPUTING ENVIRONMENTS
The creation of cloud-computing environments involves:
○ This includes designing and building software or systems that use cloud-computing features.
○ For example, apps that store data on the cloud or use cloud-based processing.
○ This involves setting up the tools, technologies, and infrastructure needed to provide cloud-
computing services.
○ Examples include creating cloud platforms like AWS or Azure and setting up servers,
databases, and networking to support cloud services.
Application Development
Dynamic Scaling for Web Applications
● Applications that require significant resources (data or compute-intensive) can benefit from cloud computing.
● Examples:
○ Scientific applications requiring large computing power for experiments.
○ Such resources are needed occasionally, making it impractical to buy infrastructure.
● Cloud computing provides these resources temporarily, saving costs and increasing efficiency.
● These applications typically run in batches and don’t require user interaction.
How Cloud Computing Supports Dynamic Scaling
Cloud computing offers flexibility and scalability by:
Renting Resources
Scalable Environments
○ Hosts and manages applications that behave like desktop software but run entirely on the
provider’s side.
Integration and Simplicity
● Cloud services use service-oriented architecture (SOA), ensuring smooth integration with
existing systems.
● Developers can access these services via web interfaces (e.g., REST APIs), which are
easy to use.
● This makes developing and managing cloud-based applications straightforward
Infrastructure and System Development
Key Technologies Enabling Cloud Computing
Distributed Computing
○ Forms the foundation of cloud systems since they operate as distributed systems.
○ Major challenge: Managing the dynamic nature of cloud systems, where new resources
(nodes, services) are added or removed on demand.
○ Developers need to handle this dynamic behavior effectively, often addressed at the
middleware level.
○ Examples:
■ Infrastructure-as-a-Service (IaaS): Provides tools to scale resources up or down.
■ Platform-as-a-Service (PaaS): Includes built-in algorithms to manage resource
provisioning.
Web 2.0 Technologies
○ Provides the interface for accessing, managing, and delivering cloud services.
○ Web browsers and web services are the primary tools for interacting with cloud
systems.
○ Cloud computing follows a "Service-Oriented Architecture (SOA)" model, often
summarized as XaaS (Everything-as-a-Service).
Virtualization
Dynamism: Systems must handle dynamic scaling by replicating components under heavy
workloads.
○ Basic hardware resources like servers, storage, and networking provided as a service.
Customizable Applications
○ Prebuilt software tailored to serve specific purposes, allowing developers to modify and
deploy them according to their needs.
In simple terms, cloud application development relies on tools that provide both the foundational
infrastructure and ready-to-use software, making it easier to build and deploy applications.
Amazon Web Services (AWS)
AWS provides a wide range of Infrastructure-as-a-Service (IaaS) offerings, including:
○ Provides customizable virtual hardware for running computing systems in the cloud.
○ Supports a variety of configurations, including specialized setups like GPU instances and cluster instances.
○ Deployment Methods:
■ AWS Console: A web portal to access AWS services.
■ Web Services API: Accessible through various programming languages.
○ Instance Templates: Users can save a running EC2 instance as an image to reuse it for deploying systems later
Simple Storage Service (S3):
Additional Services
AWS also provides many other features for building complete virtual systems, such as:
Key Features
1. Built-In Services:
○ In-memory caching: Speeds up data access.
○ Scalable data store: Stores and manages data efficiently.
○ Job queues and messaging: Handles background tasks and communication.
○ Cron tasks: Automates recurring tasks like scheduled updates.
2. Development Tools:
○ Developers can use the AppEngine SDK to build and test applications locally.
○ The SDK replicates the production environment for easier testing and profiling.
3. Easy Deployment:
● Python
● Java
● Go
Microsoft Azure
Microsoft Azure is a Cloud operating system and platform that enables the development and deployment of applications in the Cloud.
It provides:
Applications in Azure are built using roles, which act as units for distributing and managing application logic. There are three types of roles:
1. Web Role:
○ Designed for hosting web applications.
○ Focused on managing user-facing websites or services.
2. Worker Role:
○ A general-purpose container for processing workloads.
○ Useful for tasks like background processing or complex computations.
3. Virtual Machine Role:
○ Provides a fully customizable virtual environment.
○ Users can customize the entire computing stack, including the operating system.
Additional Services
● Storage: Options for relational databases and blob (binary large object) storage.
● Networking: Tools for connecting and managing networks.
● Caching: Improves data access speeds.
● Content Delivery: Ensures fast and reliable delivery of content to users.
Hadoop
Apache Hadoop is an open-source framework designed for processing large datasets using commodity
hardware (affordable, standard hardware).
1. Map:
○ Processes and transforms the input data into smaller, manageable pieces.
2. Reduce:
○ Aggregates the outputs from the map operations to produce the final result.
● Yahoo! supports the Apache Hadoop project and has contributed significantly to making it enterprise-ready.
● Hadoop forms the backbone of Yahoo!'s Cloud infrastructure and supports critical business processes.
● Yahoo! manages the world's largest Hadoop cluster, which is also accessible to academic institutions for
research and learning.
Force.com and Salesforce.com
Force.com is a Cloud computing platform designed to create applications for social enterprises. It powers SalesForce.com, a popular
Software-as-a-Service (SaaS) tool for customer relationship management (CRM).
Key Features
Ready-to-Use Components:
● Force.com offers pre-built components for enterprise activities, simplifying the app development process.
Customizable Development:
● Developers can:
○ Create custom components.
○ Integrate third-party components from AppExchange, a marketplace for business applications.
Cloud Hosting:
● The platform is fully hosted on the Cloud, meaning no infrastructure management is required.
● Provides access to its functionalities and hosted applications using Web services technologies.
Manjrasoft Aneka
Manjrasoft Aneka is a Cloud application platform designed for:
Key Features
3. Programming Models:
Developers can choose different programming approaches to build applications:
○ Tasks
○ Distributed threads
○ Map-Reduce
4. Distributed Runtime Environment:
○ Aneka runs on diverse hardware systems, including:
■ Clusters
■ Networked desktop computers
■ Cloud resources
○ It dynamically integrates additional resources when needed.
3. Service-Oriented Architecture (SOA):
○ Offers flexibility to easily add new programming models or manage execution environments.
○ Runtime services handle critical tasks like:
■ Scheduling and execution
■ Accounting and billing
■ Storage
■ Quality of service
Market Relevance
Aneka is an example of a Cloud computing platform that fits into the three primary market segments:
1. Infrastructure-as-a-Service (IaaS)
2. Platform-as-a-Service (PaaS)
3. Software-as-a-Service (SaaS)
Practical Use