UNIT 1 Final
UNIT 1 Final
and wireless applicationsSince 1990, the use of both HPC and HTC systems hidden in clusters, grids,
orInternet clouds has proliferated
Reasons to adapt the cloud for upgraded Internet applications and web services:
1. Desired location in areas with protected space and higher energy efficiency
2. Sharing of peak-load capacity among a large pool of users, improving overall utilization
3. Separation of infrastructure maintenance duties from domain-specific application development
4. Significant reduction in cloud computing cost, compared with traditional computing paradigms
5. Cloud computing programming and application development
6. Service and data discovery and content/service distribution
7. Privacy, security, copyright, and reliability issues
8. Service agreements, business models, and pricing policies
🞂 Cloud computing is using the internet to access someone else's software running on someone else's
hardware in someone else's data center.
🞂 The user sees only one resource ( HW, Os) but uses virtually multiple os. HW resourcesetc..
🞂 Cloud architecture effectively uses virtualization
🞂 A model of computation and data storage based on “pay as you go” access to “unlimited”remote data center
capabilities
🞂 A cloud infrastructure provides a framework to manage scalable, reliable, on-demand access to
applications
🞂 Cloud services provide the “invisible” backend to many of our mobile applications
🞂 High level of elasticity in consumption
🞂 Historical roots in today’s Internet apps
🞂 Search, email, social networks, e-com sites
🞂 File storage (Live Mesh, Mobile Me)
1.2 Definition
“The National Institute of Standards and Technology (NIST) defines cloud computing as a "pay-per-use
model for enabling available, convenient and on- demand network access to a shared pool of configurable
computing resources (e.g., networks, servers, storage, applications and services) that can be rapidly
provisioned and released with minimal management effort or service provider interaction."
1.3
Cloud Computing Architecture
🞂 Architecture consists of 3 tiers
◦ Cloud Deployment Model
◦ Cloud Service Model
◦ Essential Characteristics of Cloud Computing
Essential Characteristics 1
🞂 On-demand self-service.
◦ A consumer can unilaterally provision computing capabilities such as server time and network storage as
needed automatically, without requiring human interactionwith a service provider.
Essential Characteristics 5
🞂 Measured service.
◦ Cloud systems automatically control and optimize resource usage by leveraging a metering capability at
some level of abstraction appropriate to the type of service.
◦ Resource usage can be monitored, controlled, and reported - providing transparency for both the provider
and consumer of the service.
Cloud Service Models
🞂 Cloud Software as a Service (SaaS)
🞂 Consumer is able to deploy and run arbitrary software, which may include operating systems and
applications.
🞂 The consumer does not manage or control the underlying cloud infrastructure but has control over operating
systems, storage, deployed applications, and possibly limited control of select networking components (e.g.,
host firewalls).
IaaS providers
🞂 Amazon Elastic Compute Cloud (EC2)
◦ Each instance provides 1-20 processors, upto 16 GB RAM, 1.69TB storage
🞂 RackSpace Hosting
◦ Each instance provides 4 core CPU, upto 8 GB RAM, 480 GB storage
🞂 Joyent Cloud
◦ Each instance provides 8 CPUs, upto 32 GB RAM, 48 GB storage
🞂 Go Grid
◦ Each instance provides 1-6 processors, upto 15 GB RAM, 1.69TB storage
PaaS providers
🞂 Google App Engine
◦ Python, Java, Eclipse
🞂 Microsoft Azure
◦ .Net, Visual Studio
🞂 Sales Force
◦ Apex, Web wizard
🞂 TIBCO,
🞂 VMware,
🞂 Zoho
II Hardware Evolution
• In 1930, binary arithmetic was developed
➢ computer processing technology, terminology, and programming languages.
• In 1939,Electronic computer was developed
➢ Computations were performed using vacuum-tube technology.
• In 1941, Konrad Zuse's Z3 was developed
➢ Support both floating-point and binary arithmetic.There are four generations
• First Generation Computers
• Second Generation Computers
• Third Generation Computers
• Fourth Generation Computers a.First Generation Computers Time Period : 1942 to 1955
Technology : Vacuum Tubes
Size : Very Large SystemProcessing : Very Slow
Examples:
1.ENIAC (Electronic Numerical Integrator and Computer) 2.EDVAC(Electronic Discrete Variable
Automatic Computer)
Advantages:
• It made use of vacuum tubes which was the advanced technology at that time
• Computations were performed in milliseconds.
Disadvantages:
• very big in size, weight was about 30 tones.
• very costly.
• Requires more power consumption
•Large amount heat was generated.
• Mosaic was the first widely popular web browser available to the general public. Mosaic support for
graphics, sound, and video clips.
• In October 1994, Netscape released the first beta version of its browser, Mozilla 0.96b,over the Internet.
• In 1995, Microsoft Internet Explorer was developed that supports both a graphical Web browser and the
name for a set of technologies.
• Mozilla Firefox. released in November 2004, became very popular almost immediately.
• In Massively Parallel Processing Systems, a computer system with many independent arithmetic units,
which run in parallel.
• All the processing elements are interconnected to act as one very large computer.Early examples of MPP
systems were the Distributed ArrayProcessor, the Goodyear MPP, the Connection Machine, and the
Ultracomputer
• MPP machines are not easy to program, but for certain applications, such as data mining, they are the best
solution
• The computing era started with development in hardware architectures, which actually enabled the creation
of system software – particularly in the area of compilers and operating systems – which support the
management of such systems and the development of applications
• The term parallel computing and distributed computing are often used interchangeably, even though they
mean slightly different things.
• The term parallel implies a tightly coupled system, where as distributed systems refers to a wider
class of system, including those that are tightly coupled.
• More precisely, the term parallel computing refers to a model in which the computation is divided
among several processors sharing the same memory.
• The architecture of parallel computing system is often characterized by the homogeneity of components:
each processor is of the same type and it has the same capability as 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 communicate with each other by means of shared memory.
• Originally parallel systems are considered as those architectures that featured multiple processors sharing the
same physical memory and that were considered a single computer.
– Over time, these restrictions have been relaxed, and parallel systems now include all architectures that are
based on the concept of shared memory, whether this is physically present or created with the support of
libraries, specific hardware, anda highly efficient networking infrastructure.
– For example: a cluster of which of the nodes are connected through an InfiniBand network and configured
with distributed shared memory system can be consideredas a parallel system.
• The term distributed computing encompasses any architecture or system that allows the computation to be
broken down into units and executed concurrently on different computing elements, whether these are
processors on different nodes, processors on the same computer, or cores within the same processor.
• Distributed computing includes a wider range of systems and applications than parallel computing and is
often considered a more general term.
• Even though it is not a rule, the term distributed often implies that the locations of the computing elements
are not the same and such elements might be heterogeneous in termsof hardware and software features.
• Classic examples of distributed computing systems are
– Computing Grids
– Internet Computing Systems
1.4.2 Elements of Parallel computing
• Silicon-based processor chips are reaching their physical limits. Processing speed is constrained by the
speed of light, and the density of transistors packaged in a processor is constrained by thermodynamics
limitations.
• A viable solution to overcome this limitation is to connect multiple processors working in coordination with
each other to solve “Grand Challenge” problems.
• The first step in this direction led
– To the development of parallel computing, which encompasses techniques, architectures, and systems for
performing multiple activities in parallel.
a.Parallel Processing
• Processing of multiple tasks simultaneously on multiple processors is called parallelprocessing.
• The parallel program consists of multiple active processes ( tasks) simultaneously solvinga given problem.
• A given task is divided into multiple subtasks using a divide-and-conquer technique, and each subtask is
processed on a different central processing unit (CPU).
• Programming on multi processor system using the divide-and-conquer technique is called
parallel programming.
• Many applications today require more computing power than a traditional sequential computer can
offer.
M.MADAN MOHAN, AP/CSE VII Semester 17
NEHRU INSTITUTE OF ENGINEERING AND TECHNOLOGY CS8791 CLOUD COMPUTING - NOTES
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
• Parallel Processing provides a cost effective solution to this problem by increasing the number of CPUs in a
computer and by adding an efficient communication system between them.
• The workload can then be shared between different processors. This setup results in higher computing power
and performance than a single processor a system offers.
d. Levels of Parallelism
• Levels of Parallelism are decided on the lumps of code ( grain size) that can be apotential candidate
of parallelism.
• The table shows the levels of parallelism.
• All these approaches have a common goal
– To boost processor efficiency by hiding latency.
– To conceal latency, there must be another thread ready to run whenever a lengthyoperation occurs.
• The idea is to execute concurrently two or more single-threaded applications. Such as compiling, text
formatting, database searching, and device simulation.
Levels of Parallelism
e. Laws of Caution
• Studying how much an application or a software system can gain from parallelism.
• In particular what need to keep in mind is that parallelism is used to perform multiple activities together
so that the system can increase its throughput or its speed.
• But the relations that control the increment of speed are not linear.
• For example: for a given n processors, the user expects speed to be increase by in times. This is an ideal
situation, but it rarely happens because of the communication overhead.
• Here two important guidelines to take into account.
– Speed of computation is proportional to the square root of the system cost; they never increase linearly.
Therefore, the faster a system becomes, the more expensive it is to increase its speed
– Speed by a parallel computer increases as the logarithm of the number of
-
-
-
-
- Symmetric architectures in which all the components, called peers, play the same role and incorporate both
client and server capabilities of the client/server model.
- More precisely, each peer acts as a server when it processes requests from other peers and as a client when it
issues requests to other peers.
Peer-to-Peer architectural Style
Classification
Elasticity solutions can be arranged in different classes based on
🞂 Scope
🞂 Policy
🞂 Purpose
🞂 Method
a.Scope
🞂 Elasticity can be implemented on any of the cloud layers.
🞂 Most commonly, elasticity is achieved on the IaaS level, where the resources to be provisioned are
virtual machine instances.
🞂 Other infrastructure services can also be scaled
Department of CSE VII Semester 30
NEHRU INSTITUTE OF ENGINEERING AND
TECHNOLOGY CS8791 CLOUD COMPUTING
DEPARTMENT OF COMPUTER SCIENCE AND
🞂 On the PaaS level, elasticity consists in
ENGINEERING scaling containers or databases for instance.
🞂 Finally, both PaaS and IaaS elasticity can be used to implement elastic applications, be it for private use or
in order to be provided as a SaaS
🞂 The elasticity actions can be applied either at the infrastructure or application/platformlevel.
🞂 The elasticity actions perform the decisions made by the elasticity strategy or management system to
scale the resources.
🞂 Google App Engine and Azure elastic pool are examples of elastic Platform as a Service(PaaS).
🞂 Elasticity actions can be performed at the infrastructure level where the elasticity controller monitors the
system and takes decisions.
🞂 The cloud infrastructures are based on the virtualization technology, which can be VMsor containers.
🞂 In the embedded elasticity, elastic applications are able to adjust their own resources according to
runtime requirements or due to changes in the execution flow.
🞂 There must be a knowledge of the source code of the applications.
🞂 Application Map: The elasticity controller must have a complete map of the application components and
instances.
🞂 Code embedded: The elasticity controller is embedded in the application source code.
🞂 The elasticity actions are performed by the application itself.
🞂 While moving the elasticity controller to the application source code eliminates the use of monitoring
systems
🞂 There must be a specialized controller for each application.
b.Policy
🞂 Elastic solutions can be either manual or automatic.
🞂 A manual elastic solution would provide their users with tools to monitor their systems and add or remove
resources but leaves the scaling decision to them.
Automatic mode: All the actions are done automatically, and this could be classified intoreactive and
proactive modes.
Elastic solutions can be either reactive or predictive
Reactive mode: The elasticity actions are triggered based on certain thresholds or rules, the system reacts to
the load (workload or resource utilization) and triggers actions to adapt changes accordingly.
🞂 An elastic solution is reactive when it scales a posteriori, based on a monitored change in the system.
🞂 These are generally implemented by a set of Event-Condition-Action rules.
Proactive mode: This approach implements forecasting techniques, anticipates the future needs and
triggers actions based on this anticipation.
🞂 A predictive or proactive elasticity solution uses its knowledge of either recent history or load patterns
inferred from longer periods of time in order to predict the upcoming load of the system and scale according
to it.
c.Purpose
🞂 An elastic solution can have many purposes.
🞂 The first one to come to mind is naturally performance, in which case the focus should beput on their speed.
🞂 Another purpose for elasticity can also be energy efficiency, where using the minimum amount of
resources is the dominating factor.
🞂 Other solutions intend to reduce the cost by multiplexing either resource providers orelasticity methods
🞂 Elasticity has different purposes such as improving performance, increasing resource capacity, saving
energy, reducing cost and ensuring availability.
🞂 Once we look to the elasticity objectives, there are different perspectives.
🞂 Cloud IaaS providers try to maximize the profit by minimizing the resources while offering a good
Quality of Service (QoS),
🞂 PaaS providers seek to minimize the cost they pay to theCloud.
Department of CSE VII Semester 31
NEHRU INSTITUTE OF ENGINEERING AND
TECHNOLOGY CS8791 CLOUD COMPUTING
DEPARTMENT OF COMPUTER SCIENCE AND
🞂 The customers (end-users) search to
ENGINEERING increase their Quality of Experience (QoE) and to minimize their
payments.
🞂 QoE is the degree of delight or annoyance of the user of an application or service
d.Method
🞂 Vertical elasticity, changes the amount of resources linked to existing instances on-the-fly.
🞂 This can be done in two manners.
🞂 The first method consists in explicitly redimensioning a virtual machine instance, i.e., changing the quota of
physical resources allocated to it.
🞂 This is however poorly supported by common operating systems as they fail to take into account changes in
CPU or memory without rebooting, thus resulting in service interruption.
🞂 The second vertical scaling method involves VM migration: moving a virtual machine instance to another
physical machine with a different overall load changes its available resources
🞂 Horizontal scaling is the process of adding/removing instances, which may be located atdifferent locations.
🞂 Load balancers are used to distribute the load among the different instances.
🞂 Vertical scaling is the process of modifying resources (CPU, memory, storage or both)size for an instance
at run time.
🞂 It gives more flexibility for the cloud systems to cope with the varying workloads
Migration
🞂 Migration can be also considered as a needed action to further allow the vertical scaling when there is no
enough resources on the host machine.
🞂 It is also used for other purposes such as migrating a VM to a less loaded physical machine just to
guarantee its performance.
🞂 Several types of migration are deployed such as live migration and no-live migration.
🞂 Live migration has two main approaches
🞂 post-copy
🞂 pre-copy
🞂 Post-copy migration suspends the migrating VM, copies minimal processor state to the target host, resumes
the VM and then begins fetching memory pages from the source.
🞂 In pre-copy approach, the memory pages are copied while the VM is running on the source.
🞂 If some pages are changed (called dirty pages) during the memory copy process, they will be recopied until
the number of recopied pages is greater than dirty pages, or the source VM will be stopped.
🞂 The remaining dirty pages will be copied to the destination VM.
Provider
🞂 Elastic solutions can be applied to a single or multiple cloud providers.
🞂 A single cloud provider can be either public or private with one or multiple regions ordatacenters.
🞂 Multiple clouds in this context means more than one cloud provider.
🞂 It includes hybrid clouds that can be private or public, in addition to the federated cloudsand cloud bursting.
🞂 Most of the elasticity solutions support only a single cloud provider