0% found this document useful (0 votes)
5 views

Module 1-Part 1

The document provides an overview of cloud computing, detailing its evolution, types of deployment models, and key characteristics. It highlights the benefits of cloud computing for various users, including enterprises, developers, and end-users, as well as the economic advantages and flexibility it offers. Additionally, it addresses challenges related to security, data privacy, and the historical context of cloud computing's development.

Uploaded by

Anjali Menon
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views

Module 1-Part 1

The document provides an overview of cloud computing, detailing its evolution, types of deployment models, and key characteristics. It highlights the benefits of cloud computing for various users, including enterprises, developers, and end-users, as well as the economic advantages and flexibility it offers. Additionally, it addresses challenges related to security, data privacy, and the historical context of cloud computing's development.

Uploaded by

Anjali Menon
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 85

Module 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:

● Users can access their documents from any device, anytime.


● Example: Apple iCloud allows seamless access to files across devices.
● Users can take a photo on their phone, edit it on a laptop, and see the changes instantly on a tablet
—no cables or manual syncing needed
How is all of this made possible?

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:

● Definition: Combines private infrastructure with public Cloud resources.


● Purpose:
○ Addresses situations where private resources are insufficient to meet quality-of-service needs (e.g., deadlines).
● Advantages:
○ Offers flexibility and scalability while maintaining security for sensitive operations.
● Use Case:
○ Often used by organizations to explore Cloud computing possibilities while ensuring specific needs are met.
Cloud-Computing Reference Model
Key Characteristics of Cloud Computing

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.

Classification of Cloud Computing Services

Cloud computing services are categorized into three major layers:

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):

Purpose: Provides infrastructure (virtual hardware, storage, and networking) on


demand.

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:

○ Users use provider APIs and libraries to develop applications.

Benefits:

○ Increases abstraction, making development easier.


○ However, it limits flexibility as users must work within the provider's controlled environment.

Use Cases: Best for developing new applications or systems.


Software-as-a-Service (SaaS):
Purpose: Provides ready-to-use applications and services on demand via the internet.
Examples:
○ Office tools, document management, photo editing, and CRM (Customer
Relationship Management) software.
○ Social networking sites also use SaaS to handle large user traffic.

Features:
○ Applications are hosted on the provider’s infrastructure.
○ Multiple users can access the same application with isolated interactions.

Accessibility: Applications are scalable and accessed through a web browser.


Use Cases: Ideal for end-users who want pre-built solutions with minimal
customization.
Comparison of Layers:
IaaS: Focuses on building scalable systems with custom software stacks (e.g., developing
websites).

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. No upfront commitments: Pay only for what you use.


2. On-demand access: Access resources whenever needed.
3. Cost efficiency: Affordable pricing models.
4. Simplified scalability: Easy to expand and accelerate applications.
5. Efficient resource allocation: Resources are optimized for use.
6. Energy efficiency: Reduces power consumption.
7. Integration of third-party services: Seamlessly use and create new services
Economic Benefits
1. Reduced Maintenance and Operational Costs:
○ IT software and infrastructure are rented as utilities (pay-as-you-use), avoiding large
upfront capital investments.
○ Organizations save on maintenance, which is handled by CSPs using economies of
scale.
2. Minimized Capital Costs:
○ No need for expensive hardware or software investments that depreciate over time.
○ Organizations focus on revenue generation without worrying about asset depreciation.
3. Opportunities for Small Organizations and Startups:
○ Low investment requirements allow businesses to grow gradually with their needs.
Flexibility and Agility
1. Dynamic and Flexible Software Systems:
○ IT services are rented, enabling rapid adjustments without significant upfront costs.
○ No need for complex capacity planning; businesses can scale up or down as
needed.
2. Scalability Across the Computing Stack:
○ Infrastructure providers: Offer customizable hardware provisioning.
○ PaaS providers: Provide scalable runtime environments for application
development.
○ SaaS offerings: Automatically scale with user demand without requiring extra setup.
End-User Benefits
1. Anywhere, Anytime Access:
○ Data and services are accessible through web interfaces on multiple devices.
○ Eliminates the need for expensive software installations.
2. Cost Sharing through Multi-Tenancy:
○ Shared infrastructure reduces costs for all users.
3. Optimized Resource Allocation:
○ Centralized datacenters improve energy efficiency and reduce environmental
impact.
Service Orientation and Innovation
1. Composing New Services:
○ Cloud allows businesses to aggregate and create new services by
combining existing ones.
2. Faster Product Development:
○ Ideas can quickly be turned into products by provisioning on-demand
resources.
○ Focus on delivering added value with minimal technical overhead.
Challenges Ahead
Cloud computing's rise in popularity brings new challenges for the Cloud community,
including IT practitioners, managers, governments, and regulators.

1. Practical Challenges

● System Configuration and Networking:


○ Determining the optimal setup of Cloud computing systems.
○ Managing network connections and resource allocation.
● Dynamic Provisioning:
○ Deciding how many resources to provision and for how long to maximize efficiency and
benefit.
2. Technical Challenges
● Large-Scale Infrastructure Management:
○ Handling massive data centers and integrating real and virtual
infrastructures.
● Virtualization Issues:
○ Using virtualization effectively while addressing performance and
security concerns.
3. Security Challenges

● Data Confidentiality and Protection:


○ Organizations rely on third-party infrastructure to process and store sensitive data,
which poses risks.
○ Guaranteeing compliance with security standards is crucial.
● Cryptographic Weak Points:
○ While cryptography secures data transfer, decrypted data in memory during
processing is vulnerable.
○ Virtualization enables memory data capture, creating risks of malicious access.
Data Privacy Laws:

● Cloud infrastructures span multiple countries with differing privacy regulations.


● Conflicts may arise over rights to data access by third parties, including
governments.

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.

Historical Context of Cloud Computing

● Cloud computing did not appear suddenly; it emerged from a long history of technological innovation and
refinement.

Key Technologies Influencing Cloud Computing

● 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.

Definition of a Distributed System


● A distributed system, as defined by Tanenbaum et al., is:
“A collection of independent computers that appears to its users as a single coherent system.”

Key Characteristics of Distributed Systems


● Composed of multiple independent components.
● These components are perceived by users as a single unified system.

How Clouds Relate to Distributed Systems


● Clouds hide their complex underlying architecture and present a simple, unified interface to users.
● They enable resource sharing and optimize utilization by renting out resources like infrastructure, runtime
environments, and services.

Purpose of Distributed Systems


● To share resources effectively and improve their utilization, which is also a core principle of cloud computing.
Mainframes.

What Are Mainframes?

○ Large, powerful, and highly reliable computers.


○ Specialized in handling massive data movement and input/output (I/O)
operations.
○ Leveraged multiple processing units to provide high computational power.

Usage and Applications

○ Used primarily by large organizations for bulk data processing.


○ Examples include:
■ Online transactions.
■ Enterprise resource planning.
■ Large-scale operations involving significant data.
Unique Features

○ Presented multiple processors as a single entity to users.


○ Highly reliable and always on:
■ Could tolerate hardware failures transparently.
■ Failed components could be replaced without shutting down the system.
○ Supported batch processing as the main method of computation.

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?

● A low-cost alternative to mainframes and supercomputers.


● Made by connecting cheap commodity machines (regular computers) via a high-bandwidth network.
● Managed as a single system using specialized software tools.

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

○ Cheaper than mainframes.


○ Allowed computational power of regular machines to solve complex problems.
○ Could be easily extended by adding more machines when needed.

Contributions to Distributed Computing

○ Led to the development of important tools and frameworks, such as:


■ Condor
■ Parallel Virtual Machine (PVM)
■ Message Passing Interface (MPI):
■ A protocol enabling computers to communicate for high-performance and scalable parallel
applications.

Attractive Features

○ Leveraged commodity machines for tasks previously requiring expensive supercomputers.


○ Supported scalability, allowing clusters to grow based on computational needs.
Grids.
What is Grid Computing?

● Emerged in the early 1990s as an evolution of cluster computing.


● Works like a power grid, where users can "consume" computational resources (power, storage, and services) as utilities like
electricity or water.

How It Works

● Combines geographically dispersed clusters via Internet connections.


● These clusters are often owned by different organizations that share computational power through mutual arrangements.

Key Differences from Clusters

● Grids are dynamic and heterogeneous:


○ Composed of different types of computing nodes.
● Operates at a nationwide or global scale, unlike localized clusters.
Why Grid Computing Became Popular

● Clusters were common and often under-utilized.


● New computational demands exceeded the capabilities of single clusters.
● Internet improvements enabled long-distance, high-bandwidth connections.

Impact and Use

● Enabled sharing of large-scale computing power and storage.


● Now serves a wide variety of users across the globe.

Cloud Computing and its Connection to Grids


● Cloud computing is often seen as the successor to Grid computing.
● Combines features of mainframes, clusters, and grids:
○ Reliability and "always-on" nature from mainframes.
○ Uses commodity machines, like clusters.
○ Implements the utility model of resources, inspired by Grid computing.
● Services are offered on a pay-per-use basis, with virtually infinite capacity.
Virtualization
Virtualization is a technology that abstracts core computing resources (hardware, runtime environments, storage,
networking) to create virtual environments.

It enables efficient use of resources, customization, and control, which are key to Cloud computing.

Key Aspects of Virtualization

History and Importance

○ 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

○ Enables Cloud platforms to deliver:


■ Virtual servers on demand (e.g., Amazon EC2).
■ Platform-as-a-Service (PaaS) solutions (e.g., Google App Engine, Windows
Azure).
○ Facilitates scaling applications and isolating workloads effectively.

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.

It enhances user experiences by mimicking features of desktop applications on the Web.

Key Features of Web 2.0


Interactivity and User Involvement

○ Users are not just consumers but also content providers.


○ Example: Social networking sites, blogs, and photo-sharing platforms.

Rich User Experience

○ Applications are designed for dynamic updates and enhanced user engagement.
○ Example: Google Docs offers real-time collaboration similar to desktop software.

Dynamic and Continuous Improvement

○ 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.

Impact on Cloud Computing


Foundation for Cloud Applications

○ 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.

Examples of Web 2.0 Applications


● Google Docs: Real-time document editing and sharing.
● Facebook: Social networking powered by user activity.
● Flickr: Advanced tools for photo and video storage.
● Wikipedia: Collaborative knowledge creation.
● YouTube: Video sharing with community-driven content.
Why Web 2.0 is Important for Cloud Computing
● Ease of Use: Encourages people to adopt Cloud-based tools seamlessly.
● Dynamic Services: Supports the on-demand nature of Cloud computing.
● Wide Reach: Makes Cloud services accessible via Web interfaces, helping businesses and
individuals.
● Integration: Combines various tools and technologies to provide flexible, scalable, and
interactive applications.
Service-Oriented Computing
What is Service Orientation?

● 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).

Key Features of Services

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.

Key Concepts Introduced by Service Orientation

Quality of Service (QoS)

○ 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

Software as a Service (SaaS)

○ 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

1. What are Web Services?


○ Software components accessible over the Web using standard protocols like HTTP.
○ Designed for interaction between applications (not humans).
2. Key Technologies in Web Services
○ WSDL (Web Service Description Language):
■ Describes the interface, methods, parameters, and return types of a service using XML.
○ SOAP (Simple Object Access Protocol):
■ Defines how to invoke a Web service and retrieve results using XML.
3. Why Are Web Services Important?
○ They enable platform-independent communication between applications.
○ Examples: ASP.NET, Apache Axis for building Web services.
How Service Orientation Powers Cloud Computing

1. Rapid and Flexible Development


○ Service-Oriented Computing (SOC) makes it easy to create scalable, interoperable systems.
2. Reusability and Integration
○ Services can be reused and combined to create complex workflows, reducing development time.
3. Foundation of SaaS
○ SaaS builds on SOC principles by delivering individual services or entire applications on demand.
4. Seamless Interaction
○ Web services integrate SOC with the World Wide Web, making Cloud services easily accessible.

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

Early Vision (1961):

○ 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.

Internet and Web Era:

○ 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.

Key Factors that Enabled Utility Computing

Market Orientation in Grids:

○ 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.

Quality of Service (QoS):

● QoS standards became essential for ensuring performance, reliability, and scalability of utility-based services.

Utility Computing and Cloud Computing

● 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:

Developing Applications and Systems

○ 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.

Building Frameworks, Platforms, and Infrastructure

○ 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

● Cloud computing allows applications to scale up or down based on demand.


● Web Applications benefit the most since their performance depends on user demand, which can
vary.
● With Web 2.0 technologies, the web is now a platform for creating rich and complex applications,
including enterprise solutions.
● These applications rely on user interactions and backend processes, which makes them sensitive
to infrastructure size and workload changes.
Resource-Intensive 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

○ Allows renting compute power, storage, and networking on demand.

Scalable Environments

○ Provides runtime environments that adjust dynamically to workload changes.

Hosted Application Services

○ 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

○ A core technology that powers cloud infrastructure.


○ Virtualization abstracts hardware or runtime environments, allowing multiple virtual
systems to run on one physical system.
○ Challenges:
■ Managing virtual environments.
■ Addressing the limitations and volatility of virtual components in the cloud.
Challenges in Developing Cloud-Based Applications
● Developers must understand and work with distributed computing, service orientation, virtualization,
and Web 2.0 technologies.
● Key considerations for designing cloud applications:

Dynamism: Systems must handle dynamic scaling by replicating components under heavy
workloads.

Scalability: Applications must adapt to changes in demand effectively.

Integration: Seamlessly connecting cloud resources with existing systems.

Volatility: Dealing with components that may appear or disappear as needed.


COMPUTING PLATFORMS AND TECHNOLOGIES
The development of a cloud computing application involves using platforms and frameworks that offer a
variety of services. These services range from:

Bare Metal Infrastructure

○ 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:

● Virtual Compute (Elastic Compute Cloud - EC2)


● Storage (Simple Storage Service - S3)
● Networking and Other Services

Key AWS Services

Elastic Compute Cloud (EC2):

○ 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):

○ Delivers persistent, on-demand storage.


○ Organized into buckets, which are containers for storing objects (files, disk images, etc.) in binary form.
○ Objects can be of any size and are accessible globally.

Additional Services

AWS also provides many other features for building complete virtual systems, such as:

● Networking Support: Tools for creating private and public networks.


● Caching Systems: Speed up data access for applications.
● DNS Services: Domain Name System for managing application addresses.
● Databases: Both relational (e.g., RDS) and non-relational (e.g., DynamoDB).
Google AppEngine
Google AppEngine is a scalable runtime environment designed for running web applications. It allows apps to:

● Use Google’s large infrastructure to scale dynamically as demand changes.


● Operate in a secure environment while benefiting from built-in tools and services.

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:

○ Once development is complete, applications can be:


■ Migrated to AppEngine easily.
■ Configured with cost quotas to control expenses.
■ Published and made accessible globally.

Supported Programming Languages

Google AppEngine currently supports:

● 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:

● A scalable runtime environment for web and distributed applications.


● Tools and services to manage various workloads effectively

Application Structure in Azure

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

Azure offers many features to support application execution, such as:

● 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).

Hadoop is based on MapReduce, a programming model developed by Google.


It involves two main operations:

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.

Hadoop provides the runtime environment, so developers only need to:

● Supply the input data.


● Write the map and reduce functions to process the data.
Yahoo! Sponsorship:

● 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.

Largest Hadoop Cluster:

● 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.

End-to-End Application Support:

● Design data layouts to manage information.


● Define business rules and workflows to automate processes.
● Create user interfaces to interact with the application.

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:

1. Rapid creation of scalable applications.


2. Seamless deployment across various Cloud environments, leveraging elastic resources.

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

Aneka is often used as a reference platform to demonstrate:

4. Distributed application implementation in the Cloud.


5. Various ways to utilize Cloud resources using its programming models and abstractions.

You might also like