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

Module 1 - Introduction To Cloud Computing

Uploaded by

Dhanuz Pc
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views

Module 1 - Introduction To Cloud Computing

Uploaded by

Dhanuz Pc
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 22

Module 1

Introduction to Cloud Computing


Introduction

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

The Vision of Cloud Computing


• Cloud computing allows anyone with a credit card to access virtual hardware,
runtime environments, and services on demand, without upfront commitments.
• The entire computing stack is transformed into a collection of utilities, enabling
systems to be deployed in hours instead of days, and with almost no maintenance
costs.
• The demand for cloud services has accelerated technical development and expanded
the variety of services offered, which have become more sophisticated and
affordable.
• Despite its evolution, cloud computing usage is often limited to a single service or
a set of related services offered by the same vendor.
• A challenge in the past was the lack of effective standardization, making it difficult
to move services from one vendor to another.
• The long-term vision of cloud computing is to have IT services traded as utilities in
an open market, without technological or legal barriers.
• In this open cloud marketplace, service providers and consumers will trade cloud
services as utilities, and both will play a central role.
• Many of the technologies required for this vision already exist. Various stakeholders
leverage clouds for different services, with ubiquitous storage and on-demand
computing power being the most common reasons to use cloud computing.

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.

• The term "cloud" originally symbolized network abstraction in telecommunications


and now refers to Internet-based 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.

• NIST (U.S. National Institute of Standards and Technology) defined cloud


computing as: "Cloud computing is a model for enabling ubiquitous, convenient,
on-demand network access to a shared pool of configurable computing resources
3
(e.g., networks, servers, storage, applications, and services) that can be rapidly
provisioned and released with minimal management effort or service provider
interaction."

• Reese proposed three criteria to identify cloud computing services:


o The service is accessible via a web browser or a web services API.
o Zero capital expenditure is necessary to get started.
o You pay only for what you use, as you use it.

• Buyya et al. expressed the utility-oriented nature of cloud computing as:


"A cloud is a type of parallel and distributed system consisting of a collection of
interconnected and virtualized computers that are dynamically provisioned and
presented as one or more unified computing resources based on service-level
agreements established through negotiation between the service provider and
consumers."

Cloud Deployment Models

There are three major models for deploying and accessing cloud computing environments:

1. Public Clouds
2. Private/Enterprise Clouds
3. Hybrid Clouds

Public Clouds:

• Established by third-party service providers and made available to consumers on


a subscription basis.

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

• In-house cloud infrastructures created by large organizations to replicate the cloud


service delivery model within their own facilities.

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

• A combination of private and public cloud resources.

• Used when private clouds alone cannot meet quality-of-service (QoS)


requirements, and public cloud resources are integrated to supplement the private
infrastructure.

• Hybrid clouds are becoming a common approach for organizations exploring cloud
possibilities.

The Cloud Computing Reference Model

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

• Provides infrastructure on demand in the form of virtual hardware, storage, and


networking.

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

• IaaS is used for developing scalable computing systems, dynamic websites, or


background processing tasks.

Platform-as-a-Service (PaaS):

• Delivers a scalable runtime environment for hosting and running applications.

5
• The provider manages scalability, fault tolerance, and the middleware platform,
while users focus on application logic using the provider’s APIs and libraries.

• PaaS is suited for developing new applications in a controlled environment where


the infrastructure is abstracted.

Software-as-a-Service (SaaS):

• Provides applications and services on demand, such as office automation,


document management, and customer relationship management (CRM).
• SaaS solutions are accessible through a web browser, isolating each user's
interaction while sharing infrastructure across multiple users.
• It is ideal for end-users who want scalable services without handling development,
installation, or maintenance. Examples include email, CRM, and social
networking services.

Each layer serves different user needs:

• IaaS: For users building scalable systems with custom software stacks.

• PaaS: For developers creating new applications.

• SaaS: For users seeking ready-to-use applications with minimal customization.

6
Key Characteristics of Cloud Computing

The following are the 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

o Businesses don’t need to invest heavily in IT infrastructure or software before


starting operations. This is beneficial, especially for startups, as they can pay
only for what they use.

On-demand Access

o Cloud services allow access to computing resources (like servers, storage,


and applications) whenever needed. For example, a company can add more
resources during peak times and scale down afterward.

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

o Cloud systems allow organizations to scale their resources up or down as


needed, ensuring flexibility without major upfront investments.

o Example: An e-commerce site can handle a surge in traffic during a sale by


automatically adding more servers.

Efficient Resource Allocation

o Cloud providers manage resources efficiently, distributing them across


multiple users to ensure optimal usage.

7
Energy Efficiency

o By consolidating resources in large data centers, cloud providers can


optimize energy use, which is more environmentally friendly.

Integration with Third-party Services

o The cloud makes it easier to connect and use services from different vendors,
enabling faster innovation and improved system functionality.

Benefits of Cloud Computing

The following are the benefits of Cloud Computing:

1. Economic Benefits of Cloud Computing


2. Agility and Scalability
3. Resource Optimization and Multitenancy
4. Service Orientation and On-demand Access

Economic Benefits of Cloud Computing

i. Reduced Capital Costs

o Before cloud computing, companies needed to invest in expensive hardware


and software upfront. Now, IT infrastructure and software are transformed
into utility costs (like electricity), where organizations only pay for what they
use.

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.

ii. Lower Maintenance Costs

o Maintenance is handled by the cloud service provider, reducing the burden


on companies to maintain hardware and software. The provider benefits from
economies of scale, which lowers costs for everyone.

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.

Agility and Scalability

i. Faster System Deployment

o Cloud computing makes it easier and quicker to deploy IT systems.


Businesses can respond rapidly to changes in demand, adding or removing
resources as needed without long lead times.

o Example: A retail company can quickly scale up its computing power to


handle Black Friday traffic spikes and scale it down once the sale is over.

ii. Ease of Scaling Across the Computing Stack

o Cloud services offer scalability for hardware, platforms, and software.


Organizations can easily provision customized hardware or use scalable
platforms to meet their needs.

o Example: SaaS (Software as a Service) platforms allow companies to grow


their software usage without worrying about hardware or technical
infrastructure.

Resource Optimization and Multitenancy

i. Better Resource Utilization

o Multitenancy, a feature of cloud computing, allows multiple users to share


the same infrastructure, improving utilization and reducing costs.

ii. Environmental Impact

o Concentrating IT services in large data centers improves energy efficiency,


which has a smaller environmental footprint than traditional IT systems.

9
Service Orientation and On-demand Access

i. New Opportunities for Service Composition

o Cloud computing makes it easier to create new services by combining


existing ones. Organizations can focus on adding value rather than building
everything from scratch.

o Example: A company can combine a payment service, a customer database,


and a cloud storage service to create a new e-commerce platform.

Challenges Ahead in Cloud Computing

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.

1. Practical and Technical Challenges


2. Security Challenges
3. Legal Challenges

Practical and Technical Challenges

i. Dynamic Provisioning of Resources

o One of the main technical challenges in cloud computing, especially in the


Infrastructure-as-a-Service (IaaS) domain, is deciding how many
resources need to be provisioned and for how long. This is essential for
maximizing the benefit of cloud resources.

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.

ii. Managing Large Cloud Infrastructures

o Cloud service providers must handle the complexities of managing vast


computing infrastructures and the virtualization technologies running on top
of them.

o This includes ensuring that virtualized environments perform efficiently and


integrating both real and virtual infrastructures smoothly.

10
Security Challenges

i. Data Confidentiality and Security

o A key issue in cloud computing is the security of confidential data. Since


companies don’t own the physical infrastructure where their data is stored or
processed, they face concerns about data confidentiality.

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 Example: A hacker could theoretically access sensitive information from the


memory of a virtual machine while it’s being processed, bypassing
encryption.

ii. Compliance with Security Standards

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

i. Cross-border Data Privacy and Legal Conflicts

o Cloud computing operates globally, meaning data can be stored in multiple


countries with different laws regarding privacy and data protection.

o For example, U.S. laws provide significant power to government agencies to


access data if there’s a national security concern. In contrast, European
countries have stricter privacy laws.

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:

o Imagine a U.S. company stores sensitive customer data in a European data


center. If U.S. authorities suspect the company of illegal activity, they may
struggle to access the data because of European privacy laws. This creates
legal uncertainty in cross-border cloud computing.

Historical developments

The historical evolution of distributed computing technologies that have influenced the
development of cloud computing is shown in the figure below.

Key milestones include:

• 1951: The launch of UNIVAC I, the first mainframe.

• 1960: Introduction of Cray’s first supercomputer.

• 1966: Flynn's taxonomy (SISD, SIMD, MISD, MIMD) classifying computing


architectures.

• 1969: ARPANET, the precursor to the internet.

• 1970: DARPA's TCP/IP development, which laid the foundation for internet
communication protocols.

• 1975: Xerox PARC invented Ethernet, advancing networking.

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

• A distributed system is defined as a collection of independent computers that appear


as a single system to users, with the goal of sharing and better utilizing resources.

• Cloud computing is a type of distributed system that hides its complex architecture
and presents a unified interface to users.

• Distributed systems exhibit properties like heterogeneity, openness, scalability,


concurrency, continuous availability, and independent failure handling, many of
which also characterize cloud systems.

• Key Milestones Leading to Cloud Computing:

i. Mainframes:

o First large computational facilities, using multiple processors presented


as a single system.

o Specialized in bulk data processing tasks like online transactions and


enterprise resource planning.

o Highly reliable systems with continuous availability and transparent


failure handling.

o Still in use today for applications like banking and airline ticketing.

13
ii. Clusters:

o Emerged as a low-cost alternative to mainframes in the 1980s, using


commodity machines connected via high-bandwidth networks.

o Became the standard for parallel and high-performance computing.

o Tools like Condor, PVM, and MPI helped manage clusters as a unified
system.

o Offered scalability and flexibility by allowing easy extension with


additional machines.

iii. Grids:

o Evolved in the 1990s as a way to access large-scale computing resources


akin to utilities like power or water.

o Aggregated geographically dispersed clusters via the internet to share


computational power across organizations.

o Dynamic and heterogeneous, allowing global or national scale


collaboration for complex computing needs.

Virtualization

• Virtualization is a key technology in cloud computing, enabling the abstraction of


hardware, runtime environments, storage, and networking.

• It allows the creation of virtual environments that simulate the interfaces expected
by users, such as hardware interfaces for operating systems.

• Hardware virtualization is the most common form, allowing multiple software


stacks to coexist on the same physical hardware through virtual machine instances.

• Virtual machines operate in isolation, enabling cloud services like Amazon EC2
and VMware vCloud to deliver customized virtual servers on demand.

• Storage and network virtualization complement hardware virtualization to


emulate complete IT infrastructure.

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

• The ability to create isolated, customizable environments with minimal


performance impact makes virtualization fundamental for cloud computing.

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.

• It leverages loose coupling for composing new applications by integrating existing


services, enabling quick adaptation to user interests.

• The Web has become accessible through a variety of devices such as mobile phones
and car dashboards, expanding its reach and market potential.

• Social networking sites (e.g., Facebook, Flickr) and content-sharing platforms


(e.g., YouTube, Blogger) are prime examples of Web 2.0, utilizing collective user
contributions to generate content.

• 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-oriented Computing (SOC)

• Service orientation is the core model for cloud computing, using services as the
building blocks for system and application development.

• SOC enables the development of flexible, interoperable, reusable, and platform-


independent applications and systems.

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.

• Services are organized in a Service-Oriented Architecture (SOA), allowing them


to be easily discovered, composed, and reused across networks.

• Key Concepts in SOC:

i. Quality of Service (QoS):

o QoS defines functional and non-functional attributes (e.g., performance,


reliability, scalability) to evaluate a service's behavior, often established
through Service Level Agreements (SLAs).

ii. Software-as-a-Service (SaaS):

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.

iii. Web Services:

o Web Services expose software functionalities over the World Wide Web
(WWW) via protocols like HTTP, SOAP, and WSDL.

o Web services make SOC consumable by applications and allow platform-


independent access to services.

o Tools like ASP.NET and Axis help develop Web services.

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

• Utility computing is a service-provisioning model where resources like storage,


computing power, applications, and infrastructure are offered on a pay-per-use
basis.

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.

• Service-oriented computing (SOC) and service-oriented architectures (SOAs)


further expanded utility computing by enabling access to external services and
application components on demand, integrating them into software systems.

• Utility computing is a foundational concept in cloud computing, realizing the full


vision of computing resources available as utilities, supported by market and e-
commerce technologies.

Building Cloud Computing Environments

The creation of cloud computing environments involves two main components:

1. Application and System Development


2. Infrastructure and System Development

o Application and System Development: Developing applications and systems that


leverage cloud computing’s capabilities, such as scalability and dynamic resource
management.

o Infrastructure and System Development: Building the underlying frameworks,


platforms, and infrastructures that deliver cloud services, ensuring reliability,
scalability, and ease of use for service providers and end-users.

Both of these elements work together to create comprehensive cloud computing


environments that support on-demand access to computing resources, storage, and
applications.

17
Application Development

• Cloud computing enables applications to dynamically scale on demand, making


it ideal for applications with fluctuating workloads, particularly Web applications.

• Web applications benefit greatly from cloud computing, as their performance is


often influenced by varying user demands. Web 2.0 technologies have turned the
web into a platform for developing rich, complex, and interactive applications.

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

• Resource-intensive applications, such as scientific computing tasks, are another


category that benefits from cloud computing. These applications require significant
resources for short periods and rely on batch processing, making cloud computing
an ideal solution.

• Cloud computing provides a solution for on-demand and dynamic scaling by:

o Offering methods for renting compute power, storage, and networking


resources.

o Providing runtime environments designed for scalability and dynamic


resource allocation.

o Hosting application services that mimic desktop applications but are fully
managed and hosted by cloud providers.

• These capabilities leverage service orientation, enabling seamless integration with


existing systems, often through RESTful Web services, which simplify the
development and management of cloud-based applications.

Infrastructure and System Development

The development of cloud computing environments requires a deep understanding of


distributed computing, virtualization, service orientation, and Web 2.0 technologies.
These core technologies enable cloud services to be accessed and provisioned globally.

18
i. Distributed Computing:

o Cloud computing is fundamentally built on distributed systems. The ability


to dynamically provision resources (new nodes and services) on demand is
both a core strength and a major challenge for developers.

o Infrastructure-as-a-Service (IaaS) solutions offer tools to add or remove


resources, but it’s up to developers to use these resources effectively.

o Platform-as-a-Service (PaaS) solutions provide automated provisioning


rules, which can be controlled either transparently or manually by
developers.

ii. Service Orientation and Web 2.0:

o Cloud systems rely heavily on service-oriented architecture (SOA) and


XaaS (Everything-as-a-Service). Web 2.0 technologies provide the
interfaces for users and developers to access and manage cloud services.

o Although there is no single standard for accessing resources from different


cloud providers, the commonality of technology helps simplify integration
with existing systems.

iii. Virtualization:

o Virtualization is a crucial element in cloud infrastructure, allowing for the


abstraction of hardware and runtime environments. Although it has been
around for over 40 years, managing virtual environments in the cloud
presents new challenges, especially in handling the volatility and scalability
of cloud components.

iv. Design Considerations for Cloud Systems:

o Cloud computing allows systems to scale dynamically, replicating necessary


components to handle sudden demand surges.

o Developers must design cloud systems with dynamism, scalability, and


volatility in mind to ensure they can adapt to fluctuating workloads and
maintain performance under stress.

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.

Amazon Web Services (AWS)

Amazon Web Services (AWS) offers comprehensive cloud Infrastructure-as-a-Service


(IaaS), including virtual compute, storage, and networking services. Key services include:

• Elastic Compute Cloud (EC2): Provides customizable virtual hardware to deploy


cloud computing systems. Users can select from various configurations (e.g., GPU,
cluster instances) and deploy through the AWS console or Web services API. EC2
also allows users to save running instances as images for reuse.

• 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

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:

• A secure execution environment and a suite of services, including in-memory


caching, scalable datastore, job queues, messaging, and scheduled tasks (cron
jobs).

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

• Supported languages include Python, Java, and Go.

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:

• Web Role: Hosts web applications.

• Worker Role: A general-purpose container for applications, used for workload


processing.

• Virtual Machine Role: Offers a fully customizable virtual environment, including


operating system configurations.

In addition to roles, Azure offers complementary services such as storage (relational data,
blobs), networking, caching, and content delivery to support application execution.

Hadoop

• Open-source framework for processing large datasets on commodity hardware.

• Based on MapReduce, a programming model developed by Google.

o Map: Transforms and synthesizes input data.

o Reduce: Aggregates the output of map operations.

• Provides a runtime environment, requiring developers to only specify input data


and map/reduce functions.

• Sponsored by Yahoo!, which has transformed Hadoop into an enterprise-ready


platform for cloud data processing.

• Yahoo! manages the world’s largest Hadoop cluster, also accessible to academic
institutions.

Force.com and Salesforce.com

• Force.com is a cloud computing platform for developing social enterprise


applications.

• It forms the basis for Salesforce.com, a Software-as-a-Service (SaaS) solution for


customer relationship management (CRM).

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.

• Supports multiple programming abstractions for application development,


including tasks, distributed threads, and MapReduce.

• Provides a distributed runtime environment that can be deployed on


heterogeneous hardware, such as clusters, desktop computers, and cloud resources.

• The platform’s service-oriented architecture allows dynamic resource integration


and the addition of new programming models and features.

• Services within Aneka handle runtime activities, including scheduling, execution,


billing, storage, and quality of service (QoS) management.

• Aneka falls into the Infrastructure-as-a-Service (IaaS), Platform-as-a-Service


(PaaS), and Software-as-a-Service (SaaS) segments and is used as a reference
platform for discussing distributed application implementation.

22

You might also like