ece 1779 introduction to cloud computingdelara/courses/ece1779/... · what is cloud computing? 7...

15
1/6/20 1 ECE 1779 Introduction to Cloud Computing Eyal de Lara [email protected] www.cs.toronto.edu/~delara/courses/ece1779 1 Course Overview Date Topic Jan 10 Introduction Jan 17 Python Jan 17 Tutorial: Python Jan 24 Web Development Jan 24 Tutorial: Web Development Jan 31 Databases Jan 31 Tutorial: Databases Feb 7 Amazon Web Services Feb 7 Tutorial: AWS Feb 14 Cluster Computing Feb 28 Function as a Service Feb 28 Tutorial: Lambda Mar 6 No SQL Databases Mar 6 Tutorial: No SQL Mar 13 Virtualization Mar 20 Batch Processing Mar 27 Stream Processing Apr 3 Class Presentations 2

Upload: others

Post on 21-May-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ECE 1779 Introduction to Cloud Computingdelara/courses/ece1779/... · What is Cloud Computing? 7 Definition Cloud computing is the delivery of computing as a service rather than a

1/6/20

1

ECE 1779Introduction to Cloud

Computing

Eyal de Lara

[email protected]/~delara/courses/ece1779

1

Course OverviewDate TopicJan 10 IntroductionJan 17 PythonJan 17 Tutorial: PythonJan 24 Web DevelopmentJan 24 Tutorial: Web DevelopmentJan 31 DatabasesJan 31 Tutorial: Databases Feb 7 Amazon Web ServicesFeb 7 Tutorial: AWS Feb 14 Cluster ComputingFeb 28 Function as a ServiceFeb 28 Tutorial: Lambda Mar 6 No SQL DatabasesMar 6 Tutorial: No SQL Mar 13 VirtualizationMar 20 Batch ProcessingMar 27 Stream ProcessingApr 3 Class Presentations

2

Page 2: ECE 1779 Introduction to Cloud Computingdelara/courses/ece1779/... · What is Cloud Computing? 7 Definition Cloud computing is the delivery of computing as a service rather than a

1/6/20

2

Marking

Weight Due

A1 (Web Development) 25% Feb 14

A2 (Amazon EC2) 35% Mar 16

A3 (Amazon Lambda) 40% Presentation (Apr 3)Report (Apr 10)

3

Class Mechanics• Prepare

Tasks listed on web site, under “Calendar and Lecture Notes” Papers, book chapters, videos

• Lecture

• Tutorial

4

Page 3: ECE 1779 Introduction to Cloud Computingdelara/courses/ece1779/... · What is Cloud Computing? 7 Definition Cloud computing is the delivery of computing as a service rather than a

1/6/20

3

Week 2: Python Overview • Prepare

Option 1:An Introduction to Computer Science Using Python 3 By Paul Gries, Jennifer Campberll, Jason MontojoRead chapters 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 14

Option 2:PCRS View videos in prepare sections for weeks 1, 2, 3, 4, 5, 6, 7, 11

• Lecture Friday 3-5pm

• Tutorial Friday 5-6pm

5

Recommended ReadingThe Cloud at Your ServiceJothy Rosenberg and Art Mateos

Cloud Computing BibleBarrie Sosinsky

Programming Amazon Web ServicesJames Murty

AWS Lambda in ActionDanilo Poccia

Practical Programming (2nd edition)An Introduction to Computer Science Using Python 3by Paul Gries, Jennifer Campbell, Jason Montojo

6

Page 4: ECE 1779 Introduction to Cloud Computingdelara/courses/ece1779/... · What is Cloud Computing? 7 Definition Cloud computing is the delivery of computing as a service rather than a

1/6/20

4

What is Cloud Computing?

7

DefinitionCloud computing is the delivery of computing as a service rather than a product, whereby shared resources, software, and information are provided to computers and other devices as a metered service over a network (typically the Internet).

Wikipedia

8

Page 5: ECE 1779 Introduction to Cloud Computingdelara/courses/ece1779/... · What is Cloud Computing? 7 Definition Cloud computing is the delivery of computing as a service rather than a

1/6/20

5

Why call it “Cloud” Computing?

9

Why care about Cloud Computing?

10

Page 6: ECE 1779 Introduction to Cloud Computingdelara/courses/ece1779/... · What is Cloud Computing? 7 Definition Cloud computing is the delivery of computing as a service rather than a

1/6/20

6

Main Players

11

The Cloud will Solve ALL Problems

12

Page 7: ECE 1779 Introduction to Cloud Computingdelara/courses/ece1779/... · What is Cloud Computing? 7 Definition Cloud computing is the delivery of computing as a service rather than a

1/6/20

7

Haven’t I heard this story before?

13

What is New?

14

Page 8: ECE 1779 Introduction to Cloud Computingdelara/courses/ece1779/... · What is Cloud Computing? 7 Definition Cloud computing is the delivery of computing as a service rather than a

1/6/20

8

Advantages• Shift from CAPEX to OPEX

• Lowers barrier for starting a new business/project• Can be cheaper even in the long run

• Economies of scale• Geography

15

Advantages• Instant agility

• No need to procure, provision and configure new HW• No need to plan far ahead on provisioning

• Security• Cloud provider can afford better physical and logical security• Bank vs. company vault

16

Page 9: ECE 1779 Introduction to Cloud Computingdelara/courses/ece1779/... · What is Cloud Computing? 7 Definition Cloud computing is the delivery of computing as a service rather than a

1/6/20

9

Advantages

• Reliability• Redundancy, geographic replication

17

Challenges• Performance predictability (QoS)

• Fair sharing of I/O resources among VMs• Vendor lock-in

18

Page 10: ECE 1779 Introduction to Cloud Computingdelara/courses/ece1779/... · What is Cloud Computing? 7 Definition Cloud computing is the delivery of computing as a service rather than a

1/6/20

10

Challenges• Security and privacy

• Data transfer bottleneck• Uploading 10 TB over 20 Mbps link takes 45 days!

19

Cloud-friendly Applications

20

Page 11: ECE 1779 Introduction to Cloud Computingdelara/courses/ece1779/... · What is Cloud Computing? 7 Definition Cloud computing is the delivery of computing as a service rather than a

1/6/20

11

Cloud Types• Public• Private• Hybrid

21

Cloud Computing Taxonomy• Infrastructure/hardware as a Service (IaaS)

• Platform as a Service (PaaS)

• Software/Framework as a Service (SaaS/FaaS)

22

Page 12: ECE 1779 Introduction to Cloud Computingdelara/courses/ece1779/... · What is Cloud Computing? 7 Definition Cloud computing is the delivery of computing as a service rather than a

1/6/20

12

Infrastructure as a service (IaaS)

• Also know as Utility Computing• VM images of different OS flavors• Can run any application natively on chosen OS• User administers VMs

• User in charge of elasticity and failover • Almost like buying your how HW• Billing:

• CPU hour• Gigabyte of storage per month• Network traffic in and out of datacenter

• Examples: • Amazon Elastic Compute Cloud (EC2), Rackspace

23

Example: Amazon EC2 Instance Types

• Small Instance2 GB memory1 EC2 Compute UnitI/O Performance: Moderate

• XXLarge Instance32 GB memory8 EC2 Compute UnitsI/O Performance: High

• GPU Compute732 GiB of memory64 EC2 Compute UnitsNVIDIA K80 GPUsI/O Performance: Very High (10 Gigabit Ethernet)

• One EC2 Compute Unit provides the equivalent CPU capacity of a 1.0-1.2 GHz 2007 Opteron or 2007 Xeon processor.

24

Page 13: ECE 1779 Introduction to Cloud Computingdelara/courses/ece1779/... · What is Cloud Computing? 7 Definition Cloud computing is the delivery of computing as a service rather than a

1/6/20

13

Platform as a Service (PaaS)

• Application need to conform to provider’s API • VM managed automatically by provider

• Automatic scaling and failover• Billing:

• Per-request• Gigabyte of storage per month• Network traffic in and out of datacenter

• Examples:• Google App Engine• Microsoft Azure• AWS Lambda

25

Software/Framework as a Service (SaaS/FaaS)

• SaaS: services and applications available on an on-demand basis.

• FaaS: a configurable SaaS• Billing:

• Application specific• Per hour• Per transaction

• Examples:• Salesforce.com• Google Docs

26

Page 14: ECE 1779 Introduction to Cloud Computingdelara/courses/ece1779/... · What is Cloud Computing? 7 Definition Cloud computing is the delivery of computing as a service rather than a

1/6/20

14

How do they stack up?

27

Choosing between IaaS and PaaS• IaaS

• Use third party sw or other programming languages• Have existing code• Care about lock in

• Transfer web app to your own server or a different provider• Want complete control• Are OK with the extra work needed to manage the system

• PaaS• Provider’s API provider all needed functionality• Have no issues with lock-in• Don’t want to or cannot afford to manage the servers

28

Page 15: ECE 1779 Introduction to Cloud Computingdelara/courses/ece1779/... · What is Cloud Computing? 7 Definition Cloud computing is the delivery of computing as a service rather than a

1/6/20

15

Questions?

29

Week 2: Python Overview • Prepare

Option 1:An Introduction to Computer Science Using Python 3 By Paul Gries, Jennifer Campberll, Jason MontojoRead chapters 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 14

Option 2:PCRS View videos in prepare sections for weeks 1, 2, 3, 4, 5, 6, 7, 11

30