














Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Cloud Computing Concepts, Technology & Architecture. October 5, 2021. TCSS562:Software Engineering for ... Each group will complete a Google Doc worksheet.
Typology: Exams
1 / 22
This page cannot be seen from the preview
Don't miss anything!















Cloud Computing – How did we get here?
TCSS 562: SOFTWARE ENGINEERING FOR CLOUD COMPUTING ^ Questions f rom 9/ Cloud Computing – How did we get here? (Marinescu Ch. 2 - 1 st^ edition, Ch. 4 - 2 nd^ edition) Data, thread-level, task-level parallelism & Parallel architectures Class Activity 1 – Implicit vs Explicit Parallelism SIMD architectures, vector processing, multimedia extensions Graphics processing units Speed-up, Amdahl's Law, Scaled Speedup Properties of distributed systems Modularity Introduction to Cloud Computing – loosely based on book #1: Cloud Computing Concepts, Technology & Architecture October 5, 2021 TCSS562:Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^2
Please classify your per spective on material covered in today’s class (2 6 respondents): 1 - mostly review, 5-equal new/review, 10-mostly new Average – 6.15 (5.94, Fall 2021) Please rate the pace of today’s class: 1 - slow, 5-just right, 10-fast Average – 5.19 (5.5, Fall 2021) October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^3
October 5, 2021 TCSS562: Software Engineering for Cloud Computing [Fall 2021] School of Engineering and Technology, University of Washington - Tacoma L2.^4
Questions f rom 9/ Cloud Computing – How did we get here? (Marinescu Ch. 2 - 1 st^ edition, Ch. 4 - 2 nd^ edition) Data, thread-level, task-level parallelism & Parallel architectures Class Activity 1 – Implicit vs Explicit Parallelism SIMD architectures, vector processing, multimedia extensions Graphics processing units Speed-up, Amdahl's Law, Scaled Speedup Properties of distributed systems Modularity Introduction to Cloud Computing – loosely based on book #1: Cloud Computing Concepts, Technology & Architecture October 5, 2021 TCSS562:Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^5
▪ Moore’s Law - # of transistors doubles every 18 months ▪ Post 2004: heat dissipation challenges: can no longer easily increase cloud speed
more than just liquid nitrogen: ▪ https://tinyurl.com/y93s2yz Solutions: ▪ Vary CPU clock speed ▪ Add CPU cores ▪ Multi-core technology October 5, 2021 TCSS562: Software Engineering for Cloud Computing [Fall 2021] School of Engineering and Technology, University of Washington - Tacoma L2.^6
October 5, 2021 TCSS562: Software Engineering for Cloud Computing [Fall 2021] School of Engineering and Technology, University of Washington - Tacoma L2.^7 Epyc Rome CPUs Announced August 2019 EPYC 7H12 requires liquid cooling October 5, 2021 TCSS562: Software Engineering for Cloud Computing [Fall 2021] School of Engineering and Technology, University of Washington - Tacoma L2.^8
Modern CPUs provide multiple instruction pipelines, supporting multiple execution threads, usually 2 to feed instructions to a single CPU core… Two hyper-threads are not equivalent to (2) CPU cores i7-4770 and i5- 4760 same CPU, with and without HTT Example: → hyper threads add +32.9% October 5, 2021 TCSS562: Software Engineering for Cloud Computing [Fall 2021] School of Engineering and Technology, University of Washington - Tacoma L2.^9
How do I use hyper-threading? Hyper-threading is automatic Modern CPUs expose each physical CPU core as two CPU cores cat /proc/cpuinfo command lists individual cores Operating system schedules processes & threads to run on a hyper-thread On CPUs with hyper-threading, each CPU core has two hyper- threads To the operating system they are seen as full - featured independent CPU cores October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^10
October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^11
If a CPU has hyper-threading enabled, the “ht” flag is listed October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2. 12
▪ Partitions 20,336 sequences into 41 sets ▪ Execution cost: ~ 82¢ (~237x speed-up)
▪ Execution cost: ~ 87¢ (~408x speed-up)
▪ Laptop client: Intel i5-7200U 2.5 GHz :4 HT, 2 CPU ▪ Cloud client: EC2 Virtual Machine - m5.24xlarge: 96 vCPUs ▪ Cloud server: Lambda ~1000 x Intel E5-2666v3 2.9GHz CPUs October 5, 2021 TCSS562: Software Engineering for Cloud Computing [Fall 2021] School of Engineering and Technology, University of Washington - Tacoma L2.^19
▪ Many services/platforms w/ diverse hw + capabilities
▪ Within a platform – illusion of identical hardware
▪ Automatic management and maintenance- largely with little human intervention
▪ User requested resources organize themselves to satisfy requests on-demand October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^20
Compute clouds are large-scale distributed systems Infrastructure-as-a-Service (IaaS) Cloud
Clouds can consist of ▪ Homogeneous hardware (servers, etc.) ▪ Heterogeneous hardware (servers, etc.) Which is preferable? September 25, 2019 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^21
If providing IaaS, what are advantages/ disadvantages of using homogeneous hardware? ▪ Easier to provide same quality of service to end users ▪ Less performance variance ▪ Components with variable performance: CPUs, memory (speed differences), disks (SSDs, HDDs), network interfaces (caches?) ▪ Homogeneous hardware (servers): components are interchangeable ▪ As components fail, identical backups are immediately available ▪ Example: blade servers ▪ As clouds grow, why is HW homogeneity difficult to maintain? What are some advantages of using heterogeneous HW? September 30, 2019 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^22
Questions f rom 9/ Cloud Computing – How did we get here? (Marinescu Ch. 2 - 1 st^ edition, Ch. 4 - 2 nd^ edition) Data, thread-level, task-level parallelism & Parallel architectures Class Activity 1 – Implicit vs Explicit Parallelism SIMD architectures, vector processing, multimedia extensions Graphics processing units Speed-up, Amdahl's Law, Scaled Speedup Properties of distributed systems Modularity Introduction to Cloud Computing – loosely based on book #1: Cloud Computing Concepts, Technology & Architecture October 5, 2021 TCSS562:Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^23
Discovering parallelism and development of parallel algorithms requires considerable ef for t Example: numerical analysis problems, such as solving large systems of linear equations or solving systems of Par tial Dif ferential Equations (PDEs), require algorithms based on domain decomposition methods. How can problems be split in to in dependent chunks? Fine-grained parallelism ▪ Only small bits of code can run in parallel without coordination ▪ Communication is required to synchronize state across nodes Coarse-grained parallelism ▪ Large blocks of code can run without coordination October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^24
▪ Coordination via specific programming API (MPI)
October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^25
Parallelism:
Types of parallelism: Thread-level parallelism (TLP) ▪ Control flow architecture Data-level parallelism ▪ Data flow architecture Bit-level parallelism Instruction-level parallelism (ILP) October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^26
Number of threads an application runs at any one time Varies throughout program execution
Minimum: 1 thread Can measure average, maximum (peak) QUESTION: What are the consequences of average (TLP)
fixed number of CPU cores and hyperthreads? Let’s say there are 4 cores, or 8 hyper - threads… Key to avoiding waste of computing resources is knowing your application’s TLP… October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^27
Typical architecture used today – w/ multiple threads By John von Neumann (1945)
Dominant computer system architecture Program counter (PC) determines next instruction to load into
Program execution is sequential October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^28
Partition data into big chunks, run separate copies of the program on them with little or no communication Problems are considered to be embarrassingly parallel Also perfectly parallel or pleasingly parallel… Little or no effort needed to separate problem into a number of parallel tasks MapReduce programming model is an example October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^29
signal processors, special purpose systems Operations performed when input (data) becomes available Envisioned to provide much higher parallelism Multiple problems has prevented wide - scale adoption ▪ Efficiently broadcasting data tokens in a massively parallel system
parallel system ▪ Building content addressable memory large enough to hold all of the dependencies of a real program October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^30
We will form groups of ~3 using Zoom breakout rooms Each group will complete a Google Doc worksheet Add names to Google Doc as they appear in Canvas The activity can be completed in class or af ter class The activity can also be completed indivually When completed, one per son should submit a PDF of the Google Doc to Canvas Instructor will score all group members based on the uploaded PDF file To get star ted: ▪ Log into your UW Google Account (https://drive.google.com) using you UW NET ID ▪ Follow the link:
October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^37
Solutions to be discussed.. October 5, 2021 TCSS562: Software Engineering for Cloud Computing [Fall 2021] School of Engineering and Technology, University of Washington - Tacoma L2.^38
Applies to: Advantages: Disadvantages: October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^39
Applies to: Advantages: Disadvantages: October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^40
7. For bit-level parallelism, should a developer be concerned with the available number of virtual CPU processing cores when choosing a cloud - based virtual machine if wanting to obtain the best possible speed - up? (Yes / No) 8. For instruction-level parallelism, should a developer be concerned with the physical CPU’s architecture used to host a cloud-based virtual machine if wanting to obtain the best possible speed-up? (Yes / No) October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^41
9. For thread level parallelism (TLP) where a programmer has spent considerable effort to parallelize their code and algorithms, what consequences result when this code is deployed on a virtual machine with too few virtual CPU processing cores? What happens when this code is deployed on a virtual machine with too many virtual CPU processing cores? October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^42
Questions f rom 9/ Cloud Computing – How did we get here? (Marinescu Ch. 2 - 1 st^ edition, Ch. 4 - 2 nd^ edition) Data, thread-level, task-level parallelism & Parallel architectures Class Activity 1 – Implicit vs Explicit Parallelism SIMD architectures, vector processing, multimedia extensions Graphics processing units Speed-up, Amdahl's Law, Scaled Speedup Properties of distributed systems Modularity Introduction to Cloud Computing – loosely based on book #1: Cloud Computing Concepts, Technology & Architecture October 5, 2021 TCSS562:Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^43
Michael Flynn’s proposed taxonomy of computer architectures based on concurrent instructions and number of data streams (1966) SISD (Single Instruction Single Data) SIMD (Single Instruction, Multiple Data) MIMD (Multiple Instructions, Multiple Data) LESS COMMON : MISD (Multiple Instructions, Single Data)
operations on the same data For fault tolerance, may want to execute same instructions redundantly to detect and mask errors – for task replication October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^44
SISD (Single Instruction Single Data) Scalar architecture with one processor/core.
SIMD (Single Instruction, Multiple Data) Supports vector processing ▪ When SIMD instructions are issued, operations on individual vector components are carried out concurrently ▪ Two 64-element vectors can be added in parallel ▪ Vector processing instructions added to modern CPUs ▪ Example: Intel MMX (multimedia) instructions October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^45
Exploit data-parallelism: vector operations enable speedups Vectors architecture provide vector registers that can store entire matrices into a CPU register SIMD CPU extension (e.g. MMX) add support for vector operations on traditional CPUs Vector operations reduce total number of instructions for large vector operations Provides higher potential speedup vs. MIMD architecture Developers can think sequentially; not worry about parallelism October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^46
MIMD ( Multiple Instructions, Multiple Data) - system with several processors and/or cores that function asynchronously and independently At any time, dif ferent processors/cores may execute dif ferent instructions on dif ferent data Multi-core CPUs are MIMD Processors share memory via interconnection networks ▪ Hypercube, 2D torus, 3D torus, omega network, other topologies MIMD systems have dif ferent methods of sharing memory ▪ Uniform Memory Access (UMA) ▪ Cache Only Memory Access (COMA) ▪ Non-Uniform Memory Access (NUMA) October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^47
memory traffic r/w (Q) Example: # of floating point ops per byte of data read Characterizes application scalability with SIMD support ▪ SIMD can perform many fast matrix operations in parallel High arithmetic Intensity: P rograms with dense matrix operations scale up nicely (many calcs vs memory RW, supports lots of parallelism)
Programs with sparse matrix operations do not scale well with problem size (memory RW becomes bottleneck, not enough ops!) October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^48
using parallel computing
Portion of computation which cannot be parallelized will determine (i.e. limit) the overall speedup Amdahl’s law assumes jobs are of a fixed size
work, and a perfectly even work distribution October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^55
S = theoretical speedup of the whole task f= fraction of work that is parallel (ex. 25% or 0.25) N= proposed speed up of the parallel par t ( e x. 5 tim e s s pe e dup ) % improvement of task execution = 100 * (1 – (1 / S)) U sing Amdahl’s law, w hat is the m aximum possible s peed - up? October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^56
Program with two independent par ts: ▪ Part A is 75% of the execution time ▪ Part B is 25% of the execution time Par t B is made 5 times faster with parallel computing Estimate the percent improvement of task execution Original Par t A is 3 seconds, Par t B is 1 second N=5 (speedup of par t B) f=.25 (only 25% of the whole job (A+B) will be sped - up) S=1 / ((1-f) + f/S) S=1 / ((.75) + .25/5) S=1. % improvement = 100 * (1 – 1/1.25) = 20% October 5, 2021 TCSS562: Software Engineering for Cloud Computing [Fall 2021] School of Engineering and Technology, University of Washington - Tacoma L2.^57
from Wikipedia Calculates the scaled speed-up using “N” processors S(N) = N + (1 - N) α N: Number of processors α: fraction of program run time which can’t be parallelized (e.g. must run sequentially) Can be used to estimate runtime of parallel portion of program October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^58
S(N) = N + (1 - N) α N: Number of processors α: fraction of program run time which can’t be parallelized (e.g. must run sequentially) Can be used to estimate runtime of parallel portion of program
Where = sequential time, =parallel time Our Amdahl’s example: = 3s, =1s, α =. October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^59
S(N) = N + (1 - N) α N: Number of processors α: fraction of program run time which can’t be parallelized (e.g. must run sequentially) Example: Consider a program that is embarrassingly parallel, but 75% cannot be parallelized. α=. QUESTION: If deploying the job on a 2 - core CPU, what scaled speedup is possible assuming the use of two processes that run in parallel? October 5, 2021 TCSS562: Software Engineering for Cloud Computing [Fall 2021] School of Engineering and Technology, University of Washington - Tacoma L2.^60
Q U ESTION: What is the maximum theoretical speed - up on a 2 - c ore C P U? S(N) = N + (1 - N) α N=2, α=. S(N) = 2 + (1 - 2).
What is the maximum theoretical speed - up on a 16- c o re C P U? S(N) = N + (1 - N) α N=16, α=. S(N) = 16 + (1 - 16). S(N) =? October 5, 2021 TCSS562: Software Engineering for Cloud Computing [Fall 2021] School of Engineering and Technology, University of Washington - Tacoma L2.^61
Q U ESTION: What is the maximum theoretical speed - up on a 2 - c ore C P U? S(N) = N + (1 - N) α N=2, α=. S(N) = 2 + (1 - 2).
What is the maximum theoretical speed - up on a 16 - core C P U? S(N) = N + (1 - N) α N=16, α=. S(N) = 16 + (1 - 16). S(N) =? October 5, 2021 TCSS562: Software Engineering for Cloud Computing [Fall 2021] School of Engineering and Technology, University of Washington - Tacoma L2.^62
For 2 CPUs, speed up is 1.25x For 16 CPUs, speed up is 4.75x For 2 CPUs, speed up is 1.25x For 16 CPUs, speed up is 4.75x Transistors on a chip doubles approximately ever y 1.5 year s CPUs now have billions of transistors Power dissipation issues at faster clock rates leads to heat removal challenges ▪ Transition from: increasing clock rates → to adding CPU cores S ymmetric core processor – multi-core CPU, all cores have the same computational resources and speed Asymmetric core processor – on a multi-core CPU, some cores have more resources and speed Dynamic core processor – processing resources and speed can be dynamically configured among cores O bservation: asymmetric processors of fer a higher speedup October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^63
Questions from 9/ Cloud Computing – How did we get here? (Marinescu Ch. 2 - 1 st^ edition, Ch. 4 - 2 nd^ edition) Data, thread-level, task-level parallelism & Parallel architectures Class Activity 1 – Implicit vs Explicit Parallelism SIMD architectures, vector processing, multimedia extensions Graphics processing units Speed-up, Amdahl's Law, Scaled Speedup Properties of distributed systems Modularity Introduction to Cloud Computing – loosely based on book #1: Cloud Computing Concepts, Technology & Architecture October 5, 2021 TCSS562:Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^64
Collection of autonomous computers, connected through a network with distribution sof tware called “middleware” that enables coordination of activities and sharing of resources Key characteristics: User s perceive system as a single, integrated computing facility. Compute nodes are autonomous Scheduling, resource management, and security implemented by ever y node Multiple points of control and failure Nodes may not be accessible at all times System can be scaled by adding additional nodes Availability at low levels of HW/sof tware/network reliability October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^65
Key non-functional attributes ▪ Known as “ilities” in software engineering Availability – 24/7 access? Reliability - Fault tolerance Accessibility – reachable? Usability – user friendly Understandability – can under Scalability – responds to variable demand Extensibility – can be easily modified, extended Maintainability – can be easily fixed Consistency – data is replicated correctly in timely manner October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^66
September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2. 73 Questions f rom 9/ Cloud Computing – How did we get here? (Marinescu Ch. 2 - 1 st^ edition, Ch. 4 - 2 nd^ edition) Data, thread-level, task-level parallelism & Parallel architectures Class Activity 1 – Implicit vs Explicit Parallelism SIMD architectures, vector processing, multimedia extensions Graphics processing units Speed-up, Amdahl's Law, Scaled Speedup Properties of distributed systems Modularity Introduction to Cloud Computing – loosely based on book #1: Cloud Computing Concepts, Technology & Architecture October 5, 2021 TCSS562:Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^74
September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^75
LINKEDIN - TOP IT Skills fr o m j o b app dat a ▪ #1 Cloud and Distributed Computing
▪ #2 Statistical Analysis and Data Mining FORBES Survey – 6 Tech Skills That’ll Help You Earn More ▪ #1 Data Science ▪ #2 Cloud and Distributed Computing ▪ http://www.forbes.com/sites/laurencebradford/2016/12/ 19/6-tech-skills-thatll-help-you-earn-more-in-2017/ September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^76
Computerworld Magazine September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^77
September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^78
John McCar thy, 1961 ▪ Turing award winner for contributions to AI “If computers of the kind I have advocated become the computers of the future, then computing may someday be organized as a public utility just as the telephone system is a public utility… The computer utility could become the basis of a new and impor tant industry…” September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^79
Internet based computer utilities Since the mid-1990s Search engines: Yahoo!, Google, Bing Email: Hotmail, Gmail 2000s Social networking platforms: MySpace, Facebook, LinkedIn Social media: Twitter, YouTube Popularized core concepts Formed basis of cloud computing September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^80
Late 1990s – Early Sof tware-as-a-Service (SaaS) ▪ Salesforce: Remotely provisioned services for the enterprise 2002 - ▪ Amazon Web Services (AWS) platform: Enterprise oriented services for remotely provisioned storage, computing resources, and business functionality 2006 – Infrastructure-as-a-Service ( IaaS) ▪ Amazon launches Elastic Compute Cloud (EC2) service ▪ Organization can “lease” computing capacity and processing power to host enterprise applications ▪ Infrastructure September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^81
2006 – Software-as-a-Service (SaaS) ▪ Google: Offers Google DOCS, “MS Office” like fully - web
collaboration 2009 – Platform-as-a-Service (PaaS)
platform for hosting scalable web applications on google- hosted datacenters September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^82
CLOUD COMPUTING NIST GENERAL DEFINITION “Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (networks, servers, storage, applications and services) that can be rapidly provisioned and reused with minimal management effort or service provider interaction”… September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^83 “Cloud computing is a specialized form of distributed computing that introduces utilization models for remotely provisioning scalable and measured resources.” From Cloud Computing Concepts, Technology, and Architecture Z. Mahmood, R. Puttini, Prentice Hall, 5 th^ printing, 2015 September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^84
September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^91
▪ IT Infrastructure acquisition ▪ IT Infrastructure maintenance
▪ Technical personnel to maintain physical IT infrastructure ▪ System upgrades, patches that add testing to deployment cycles ▪ Utility bills, capital investments for power and cooling ▪ Security and access control measures for server rooms ▪ Admin and accounting staff to track licenses, support agreements, purchases September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^92
Organizational agility
from internal and external business factors ▪ Funding constraints can lead to insufficient on premise IT ▪ Cloud computing enables IT resources to scale with a lower financial commitment September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^93
Introduction to Cloud Computing ▪ Why study cloud computing? ▪ History of cloud computing ▪ Business drivers ▪ Cloud enabling technologies ▪ Terminology ▪ Benefits of cloud adoption ▪ Risks of cloud adoption September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^94
Cluster computing Grid computing Virtualization Others September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^95
▪ Cluster is a group of independent IT resources interconnected as a single system ▪ Servers configured with homogeneous hardware and software ▪ Identical or similar RAM, CPU, HDDs ▪ Design emphasizes redundancy as server components are easily interchanged to keep overall system running ▪ Example: if a RAID card fails on a key server, the card can be swapped from another redundant server ▪ Enables warm replica servers ▪ Duplication of key infrastructure servers to provide HW failover to ensure high availability (HA) September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^96
On going research area since early 1990s Distributed heterogeneous computing resources organized into logical pools of loosely coupled resources For example: heterogeneous ser vers connected by the internet Resources are heterogeneous and geographically dispersed Grids use middleware sof tware layer to support workload distribution and coordination functions Aspects: load balancing, failover control, autonomic configuration management Grids have influenced clouds contributing common features: networked access to machines, resource pooling, scalability, and resiliency September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^97
September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^98
September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^99
September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^100
▪ The virtual machine (virtual computer) ▪ Virtual local area network (VLAN) ▪ Virtual hard disk ▪ Virtual network attached storage array (NAS) Early incarnations featured significant performance, reliability, and scalability challenges CPU and other HW enhancements have minimized performance GAPs September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^101
Introduction to Cloud Computing ▪ Why study cloud computing? ▪ History of cloud computing ▪ Business drivers ▪ Cloud enabling technologies ▪ Terminology ▪ Benefits of cloud adoption ▪ Risks of cloud adoption September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^102
Horizontal Scaling Vertical Scaling Less expensive using commodity HW (^) high capacityRequires expensive servers IT resources instantly available IT resources typically instantly available Resource replication and automated scaling Additional setup is normally needed Additional servers required No additional servers required September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^109
Horizontal Scaling Vertical Scaling Less expensive using commodity HW (^) high capacityRequires expensive servers IT resources instantly available IT resources typically instantly available Resource replication and automated scaling Additional setup is normally needed Additional servers required No additional servers required Not limited by individual server capacity Limited by individual server capacity September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^110
Cloud services ▪ Broad array of resources accessible “as-a-service”
Software (SaaS) Service-level-agreements (SLAs):
reliability, and performance September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^111
Introduction to Cloud Computing ▪ Why study cloud computing? ▪ History of cloud computing ▪ Business drivers ▪ Cloud enabling technologies ▪ Terminology ▪ Benefits of cloud adoption ▪ Risks of cloud adoption September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^112
Cloud providers ▪ Leverage economies of scale through mass-acquisition and management of large-scale IT resources ▪ Locate datacenters to optimize costs where electricity is low Cloud consumers ▪ Key business/accounting difference: ▪ Cloud computing enables anticipated capital expenditures to be replaced with operational expenditures ▪ Operational expenditures always scale with the business ▪ Eliminates need to invest in server infrastructure based on anticipated business needs ▪ Businesses become more agile and lower their financial risks by eliminating large capital investments in physical infrastructure September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^113
On demand access to pay - as-you-go resources on a shor t-term basis (less commitment) Ability to acquire “unlimited” computing resources on demand when required for business needs Ability to add/remove IT resources at a fine-grained level Abstraction of ser ver infrastructure so applications deployments are not dependent on specific locations, hardware, etc. ▪ The cloud has made our software deployments more agile… September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^114
Example: Using 100 ser vers for 1 hour costs the same as using 1 ser ver for 100 hour s Rosetta Protein Folding: Working with a UW - Tacoma graduate student, we recently deployed this science model across 5, compute cores on Amazon for 2-days… W hat is the cost to purchase 5,900 compute cores? Recent Dell Ser ver purchase example: 20 cores on 2 ser vers for $4,478… Using this ratio 5,900 cores costs $1.3 million (purchase only) September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^115
Gene Wilder, Charlie and the Chocolate Factory Increased scalability ▪ Example demand over a 24 - hour day → Increased availability Increased reliability September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^117
Introduction to Cloud Computing ▪ Why study cloud computing? ▪ History of cloud computing ▪ Business drivers ▪ Cloud enabling technologies ▪ Terminology ▪ Benefits of cloud adoption ▪ Risks of cloud adoption September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^118
▪ Expansion of trust boundaries now include the external cloud ▪ Security responsibility shared with cloud provider Reduced operational governance / control ▪ Users have less control of physical hardware ▪ Cloud user does not directly control resources to ensure quality-of-service
▪ Quality and stability of resources can vary ▪ Network latency costs and variability September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^119
September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^120