0% found this document useful (0 votes)
5 views18 pages

Module 1

The document provides an overview of cloud computing, highlighting its characteristics, models, and historical context. It contrasts cloud computing with traditional on-premise computing, discusses the types of cloud models (public, private, hybrid), and outlines key services like IaaS, PaaS, and SaaS. Additionally, it covers foundational concepts such as virtualization, Web 2.0, and principles of parallel and distributed computing.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views18 pages

Module 1

The document provides an overview of cloud computing, highlighting its characteristics, models, and historical context. It contrasts cloud computing with traditional on-premise computing, discusses the types of cloud models (public, private, hybrid), and outlines key services like IaaS, PaaS, and SaaS. Additionally, it covers foundational concepts such as virtualization, Web 2.0, and principles of parallel and distributed computing.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Cloud computing

Module 1
Cloud Computing At a Glance
● Cloud computing Vs On-premise Traditional Computing
○ Infrastructure
○ Scalability
○ Maintenance
○ Security
○ Environmental Impact
○ Cost
○ Accessibility
Defining a cloud
● Cloud computing is something where resources are accessed over the internet. Resources
may be storage, database, networks, which are owned by cloud service providers
● Cloud computing is the backbone of modern technology, enabling us to store,
access, and process data without relying on local machines.
● Cloud computing is the delivery of computing services—like storage, servers,
databases, networking, and software—over the internet (‘the cloud’), allowing you
to access resources anytime and anywhere.
Characteristics of Cloud Computing
● Cloud computing is user-centric. Once users are connected to the cloud,
whatever is available (stored) in cloud as documents, messages, images,
applications, it becomes users own. Users can also share it with others.
● Cloud computing is task-centric. It focusing on the application for users on what
users need to done and how the application can do it for users. Eg collage,
Animation, Movie in Google Photos
● Cloud computing is powerful. Connecting hundreds or thousands of computers
together in a cloud creates a wealth of computing power impossible with a single
desktop PC.
● Cloud computing is accessible. Data is stored in the cloud; users can instantly
retrieve more information from multiple repositories. You’re not limited to a
single source of data.
● Cloud computing is intelligent. With all the various data stored on the computers
in a cloud, data mining and analysis are necessary to access that information in an
intelligent manner.
● Cloud computing is programmable. Many of the tasks necessary with cloud
computing must be automated.


● It is often associated with
○ Virtualized infrastructure or hardware on demand
○ Utility computing
○ IT sourcing
○ Platform or software as a service




● Cloud computing refers to both the applications delivered as a service over
the internet and the hardware and the system software in the datacenters that
provide the service.
● Cloud computing is helping enterprises, government, public and private
institutions, as well as research organizations shape more effective and demand-
driven computing systems
● Large enterprises can offload some of their activities to cloud-based systems
● Small enterprises and startups can afford to translate into business results their
ideas more quickly without excessive upfront costs
● System developers can concentrate on the business logic rather than dealing with
the complexity of infrastructure management and scalability
● End users can have their documents accessible from everywhere and any device
Three types of cloud computing models
● Public clouds
● private/enterprise cloud
● Hybrid cloud
○ Public clouds are the most common deployment models in which necessary
IT infrastructure (virtualized data center) is established by a 3rd party
service provider who makes it available to any consumer on a subscription
basis. Such clouds are appealing to users as they allow them to leverage
compute, storage, and application services quickly. In this environment,
users' data and applications are deployed in cloud data centers on the
vendor's premises.
○ Large organizations owning massive computing infrastructure can still
benefit from cloud computing by replicating the cloud IT service delivery
model in-house.
○ Whenever private cloud resources are unable to meet users' quality of
service requirements such as deadline, hybrid computing system, partially
composed by public cloud resources and privately owned infrastructure are
created to serve the organization's needs. These are referred to as hybrid
cloud

Cloud Computing Reference Model


● A fundamental characteristic of cloud computing is the capability to deliver on-
demand a variety of IT services, which are quite diverse from each other.
● This variety creates a different perception of what cloud computing is among
users.
● Cloud computing services can be classified into three major categories.
○ Infrastructure as a service(IaaS)
○ Platform as a service(PaaS)
○ Software as a service(SaaS)
● At the bottom of the stack, Infrastructure-as-a-service
○ It delivers infrastructure on demand in the form of virtual hardware,
storage, and networking
○ Infrastructure as a Service (IaaS) is a cloud computing model that
provides virtualized computing resources over the Internet.
○ Virtual hardware provides compute-on-demand in the form of virtual
machine instances.
○ These are created on users’ request on the provider’s infrastructure, and
users are given tools and interfaces to configure the software stack installed
in the virtual machine.
○ The pricing model is usually defined in terms of dollars per hour, where the
hourly cost is influenced by the characteristics of the virtual hardware.
○ Virtual storage is delivered in the form of raw disk space or object storage.
○ The former complements a virtual hardware offering that requires persistent
storage.
○ The latter is a more high-level abstraction for storing entities rather than
files.
○ Virtual networking identifies the collection of services that manage the
networking among virtual instances and their connectivity towards the
Internet or private networks.

Key Features of IaaS


● Virtualized Resources: Includes virtual servers, storage, networking, and
operating systems.
● On-Demand Scalability: Resources can be scaled up or down as needed.
● Pay-as-You-Go Pricing: Charges are based on usage, reducing capital
expenditures.
● Managed Infrastructure: The service provider manages physical
hardware, ensuring reliability and maintenance.

● At the Middle of the stack,
○ Offers a platform with tools and frameworks for application development
and deployment.
● At the top of the tack , Software as a Service Solutions
○ provide applications and services on demand.
○ Delivers ready-to-use software applications over the internet.
○ Most of the common functionalities of desktop applications, such as office
automation, document management, photo editing, and customer
relationship management (CRM) software—are replicated on the provider’s
infrastructure, made more scalable, and accessible through a browser on
demand.
○ These applications are shared across multiple users, whose interaction is
isolated from the other users.
○ The SaaS layer is also the area of social networking Websites, which
leverage Cloud-based infrastructures to sustain the load generated by their
popularity.
The vision of cloud computing

Historical developments
Distributed Systems
● Mainframes
○ These are the first examples of large computational facilities leveraging
multiple processing units.
○ Mainframes were powerful highly reliable computers specialized for large
data movement and massive IO operations.
○ They were mostly used by large organizations for bulk data processing such
as online transactions, enterprise resource planning and other operations
involving the processing of significant amount of data
○ Even though mainframes are not considered distributed computing systems
● Clusters
○ Cluster computing started as low-cost alternative to the use of mainframes
and supercomputers
○ Technology advancement that create faster and more powerful mainframes
and supercomputers has eventually generated an increased availability of
cheap commodity machines as a side effects.
○ These machines are then connected by a high-bandwidth network
○ Cluster Computing refers to the use of a group of interconnected
computers (often referred to as nodes or servers) that work together as a
single system to perform tasks.
○ These clusters are designed to provide high availability, scalability, and
performance for computational or data-intensive applications.
○ Interconnected Nodes: The cluster is composed of multiple nodes
connected via high-speed networks (e.g., Ethernet or InfiniBand).
○ Distributed Processing: Tasks are divided and distributed among the
nodes for parallel execution.
○ Scalability: Nodes can be added to increase the computational power as
needed.
○ High Availability: Ensures minimal downtime by using redundancy. If one
node fails, others take over the workload.
○ Load Balancing: Distributes workload efficiently among nodes to optimize
performance.

● Grids
○ Grid computing appeared in the early 90s as an evolution of cluster
computing
○ Grid computing involves a distributed network of computers from different
locations working together to achieve a common goal. It is designed to
utilize underutilized computing resources across a wide geographical area.
○ Grid Computing is a distributed computing model that connects multiple
computers or resources across a network to work together to perform tasks.
It uses the combined computing power of these systems to solve large-scale
computational problems.
○ Grid computing proposed a new approach to access a large computational
power, huge storage facilities, and a variety of services
○ Task Division:
■ A large computational task is divided into smaller sub-tasks.
○ Resource Allocation:
■ Sub-tasks are assigned to different systems on the grid based on their
capabilities.
○ Parallel Execution:
■ Tasks are executed simultaneously across multiple systems.
○ Result Aggregation:
■ The results of the sub-tasks are collected and combined to produce
the final output.

Virtualization
● Virtualization is a foundational concept in cloud computing that allows the
creation of virtual versions of physical resources like servers, storage devices,
or networks.
● Virtualization is the process of creating virtual versions of physical
computing resources using software.
● It enables a single physical machine to run multiple virtual machines (VMs),
each operating as an independent system.
● Virtualization is another core technology for cloudcomputing
● Virtualization is essentially a technology that allows athe creation of different
computing environments
● These computing environments are named as virtual, because they simulate the
interface that is expected by a guest.
● The most common example of virtualization is hardware virtualization
● This technology allows simulation of the hardware interface expected by an
operating system.
● Having isolated and customizable environment with minor impact on performance
is what makes virtualization attractive technology.
Web 2.0
● Web is the primary interface through which cloud computing deliver its services
● At present time, it encomposses a set of technologies and services that facilitate
interactive information sharing , collaboration, user centeerd design , and
application composition
● This has transformed the web into a rich platform for application development
● This evolution is known as Web 2.0
● Developers architect applications, deliver services through the internet, and
provide a new user experience for their users.
● Web 2.0 brings interactivity and flexibility into Web pages, which provide
enhanced user experience by gaining Web based access to all the functions that are
normally found in desktop applications
● These capabilities are obtained by integrating a collection of standards and
technologies such as XML, Asynchronous Javascript and XML(AJAX), Web
services, and others
● These technologies allow building applications leveraging the contributions of
users, who now become providers of content
Service Oriented Computing
Utility Oriented Computing
● The computing facility is provided as a utility
● Utility computing is a vision of computing, defining service provisioning model
for computing services
● Resources such as storage, compute power, applications, and infrastructure are
packaged and offered on a pay-per-use basis
● Users pay based on their consumption, and resources are dynamically allocated to
meet their needs.
Module 1: Chapter 2
Principles of Parallel and Distributed Computing
ERAS OF Computing
● The two fundamental and dominant models of computing are: sequential
and parallel. The sequential computing era began in the 1940s; the parallel
and distributed era followed it within a decade.
● The four key elements of computing developed during these eras were:
architectures, applications, and problem-solving environment
Parallel Vs Distributed Computing
● The term parallel implies a tightly coupled system while
distributed refers to a wider class of systems including those that
are tightly coupled.
● In the case of parallel computing, the computation is divided
among several processors sharing the same memory.
● The architecture of a parallel computing system is often
characterized by the homogeneity of components; each processor
is of the same type and and it has the same capability of the
others.
● The shared memory has a single address space , which is accessible to all
the processors. Parallel programs are then broken down into several units of
execution that can be allocated to different processors and can be
communicated by means of shared memory
● Originally, only those architectures were considered as parallel systems
which featured multiple processors sharing the same physical memory.
● They were considered as a single computer. Overtime, these restrictions
have been relaxed, and parallel systems now include all those architectures
that are based on the concept of shared memory, whether it is physically
present or created with the support of libraries, specific hardware, and
highly efficient networking infrastructure.
● The term distributed processing encompasses any architecture or system
that allows the computation to be broken down into units and executed
concurrently on different computing elements. These processors may be on
processors on different nodes, processors on the same computer, or cores
within the same processor.
● Therefore, it includes a wider range of systems and applications with
respect to parallel computing and it is considered as the general form.
● The term distributed often implies that the location of computing elements
is not the same, and such elements might be heterogeneous in terms of
hardware and software features.


Elements of Parallel Computing
Hardware architectures for Parallel processing
● The core elements of parallel processing are CPUs.
● Based on a number of instruction and data streams that can be processed
simultaneously, computing systems are classified into the following four
categories.
○ Single Instruction Single Data(SISD)
○ Single Instruction Multiple Data(SIMD)
○ Multiple Instruction Single Data(MISD)
○ Multiple Instruction Multiple Data(MIMD)
Single Instruction Single Data (SISD)


● A SISD computing system is a uniprocessor machine capable of executing
a single instruction, which operates on a single data stream.
● In SISD machine instructions are processed sequentially and
computers adopting this model are popularly called sequential
computers.
● Most of the conventional computers are built using the SISD model.
● All the instructions and data to be processed must be stored in the primary
memory.
● The speed of the processing element in the SISD model is limited by the
rate at which the computer can transfer information internally.
Single Instruction Multiple Data(SIMD)
● A SIMD computing system is a multiprocessor machine capable of executing the
same instruction on all the CPUs but operating on different data streams.
● Machines based on the SIMD model are well suited for scientific computing since
they involve lots of vector and matrix operations.
● Ci= Ai* Bi
● Data elements of vector A and Vector B can be divided into multiple sets ( N sets
for N Processing elements) and This will be passed to all the processing elements
● A0 and B0 will be assigned to processor P0
● A1 and B1 will be assigned to processor P1
Multiple Instruction Single Data (MISD)
● An MISD computing system is a multi processor system capable of executing
different instructions on different PEs
● But all of them operating on the same dataset
Y-sinx+cosx+tanx
● Perform different operations on the same dataset
● Machines built using MISD model, are not useful in most of the applications


● Multiple Instruction Multiple Data
● MIMD computing system is a multiprocessor machine capable of executing
multiple instructions on multiple datasets
● Each Processing Element in the MIMD model has separate instructions and
datastreams , and machines built using this model are well suited for any kind of
application.
● Unlike SIMD and MISD machines PEs in MIMD machines work asynchronously.


● MIMD machines are broadly classified into shared memory MIMD and
distributed memory MIMD based on how PEs are coupled to the main memory.

● In the shared memory MIMD, all the processing elements are connected to a
single global memory and they all have access to it. Systems based on this model
are also called tightly coupled multiprocessor system. The communication
between PEs in this model takes place through the shared memory. Modification
of the data stored in the global memory by one PE is visible to all other PE. The
dominant representative shared memory MIMD systems are Silicon, Graphics
machines and Sun/IBM’s SMPs( Symmetric multiprocessing).
● In the distributed memory MIMD model, all processing element PE have a local
memory. Systems based on this model are called loosely coupled multip processor
systems. The communication between PEs in this model takes place through an
interconnection network. IPC inter-processor communication channel. The
network connecting PEs can be configured to tree mesh, cube, etc. Each
processing element operates asynchronously and if communication/
synchronization among tasks is necessary, they can do so by exchanging messages
between them.


Elements of Distributed Computing
● Distributed computing
○ A distributed system is a collection of independent computers that appears
to its users as a single coherent system.
○ Distributed computing deals with models, architectures, and the algorithms
used for building and managing distributed systems.
○ A distributed system is one in which components located at networked
computers communicate and coordinate their actions only by passing
messages.
Components of a Distributed Systems


● A distributed system is the result of interaction of several components that traverse
the entire computing stack from hardware to software. It emerges from the
collaboration of several elements that—by working together—give the users the
illusion of a single coherent system
● At the very bottom layer, computer and network hardware constitute the physical
infrastructure; these components are directly managed by the operating system that
provides the basic services for: inter-process communication, process scheduling
and management, and resource management in terms of file system and local
devices. Taken together, these two layers become the platform on top of which
specialized software is deployed to turn a set of networked computers into a
distributed system.
● The use of well-known standards at the operating system, and even more at the
hardware and network levels, allows easy harnessing of heterogeneous
components and their organization into a coherent and uniform system. For
example, network connectivity between different devices is controlled by
standards, which allow them to interact seamlessly. At the operating system level,
inter-process communication services are implemented on top of standardized
communication protocols such as TCP/IP and UDP.
● The middleware layer leverages such services to build a uniform environment for
the development and deployment of distributed applications. This layer supports
the programming paradigms for distributed systems, which we will discuss in
Chapters 5–7. By relying on the services offered by the operating system, the
middleware develops its own protocols, data formats, and programming language
or frameworks for the development of distributed applications. All of them
constitute a uniform interface to distributed applications developers that is
completely independent from the underlying operating system and hides all the
heterogeneities of the bottom layers.
● The top of the distributed system stack is represented by the applications and
services designed and developed to use the middleware. These can serve several
purposes and often expose their features in the form of graphical user interfaces
accessible locally or through the Internet via a Web browser. For example, in the
case of Cloud computing systems, the use of Web technologies is strongly
preferred not only to interface distributed applications with the end user but also to
provide platform services aimed at building distributed systems. A very good
example is constituted by Infrastructure-as-a-Service (IaaS) providers such as
Amazon Web Services (AWS), which provides facilities for creating virtual
machines, organizing them together into a cluster, and deploying applications and
systems on top of it. Fig. 2.11 shows an example on how the general reference
architecture of a distributed system is contextualized in the case of Cloud-
computing system.
Architectural Styles for Distributed Computing






Models for Inter-Process Communication
Message-based Communication
Models for Message-based Communication

You might also like