71
Cloud Computing: What is it? What does it mean? Reuven M. Lerner • [email protected] MegaCOMM • February 7 th , 2013 1

Intro to cloud computing — MegaCOMM 2013, Jerusalem

Embed Size (px)

DESCRIPTION

What is cloud computing? This is an introduction that I gave at MegaCOMM 2013, a conference for technical writers in Jerusalem. The talk describes how the combination of Internet access, virtualization, and open source have made computing a utility that we can turn on and off at will -- similar in some ways to electricity, water, and other utilities with which we're familiar.

Citation preview

Page 1: Intro to cloud computing — MegaCOMM 2013, Jerusalem

Cloud Computing:What is it?

What does it mean?Reuven M. Lerner • [email protected]

MegaCOMM • February 7th, 2013

1

Page 2: Intro to cloud computing — MegaCOMM 2013, Jerusalem

Who am I?

• Long-time Web developer, trainer, consultant

• Linux Journal columnist

• PhD candidate in Learning Sciences at Northwestern University

2

Page 3: Intro to cloud computing — MegaCOMM 2013, Jerusalem

Everyone is talking about cloud computing!

3

Page 4: Intro to cloud computing — MegaCOMM 2013, Jerusalem

4

Page 5: Intro to cloud computing — MegaCOMM 2013, Jerusalem

In case you missed it:

77,300,000 results!?!5

Page 6: Intro to cloud computing — MegaCOMM 2013, Jerusalem

Wow, this must be big!

6

Page 7: Intro to cloud computing — MegaCOMM 2013, Jerusalem

7

Page 8: Intro to cloud computing — MegaCOMM 2013, Jerusalem

But what is cloud computing?

8

Page 9: Intro to cloud computing — MegaCOMM 2013, Jerusalem

About.com

Cloud computing consists of hardware and software resources made available on the Internet as managed third-party services. These services typically provide access to advanced software applications and high-end networks of server computers.

9

Page 10: Intro to cloud computing — MegaCOMM 2013, Jerusalem

Investopedia... resources are retrieved from the internet through web-based tools and applications, rather than a direct connection to a server. Data and software packages are stored in servers. However, cloud computing structure allows access to information as long as an electronic device has access to the web. This type of system allows employees to work remotely.

10

Page 11: Intro to cloud computing — MegaCOMM 2013, Jerusalem

TechTerms.com

Cloud computing refers to applications and services offered over the Internet. These services are offered from data centers all over the world, which collectively are referred to as the “cloud.” This metaphor represents the intangible, yet universal nature of the Internet.

11

Page 12: Intro to cloud computing — MegaCOMM 2013, Jerusalem

These are not helpful.

12

Page 13: Intro to cloud computing — MegaCOMM 2013, Jerusalem

NIST

... a model for enabling ubiquitous, convenient, 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.

13

Page 14: Intro to cloud computing — MegaCOMM 2013, Jerusalem

The important points

• Ubiquitous

• Convenient

• On demand

• Shared pool

• Configurable computing resources

• Rapidly provisioned and released

14

Page 15: Intro to cloud computing — MegaCOMM 2013, Jerusalem

This reminds me of...

15

Page 16: Intro to cloud computing — MegaCOMM 2013, Jerusalem

Public utilities

16

Page 17: Intro to cloud computing — MegaCOMM 2013, Jerusalem

Utilities

• Ubiquitous

• Convenient

• On demand

• Shared pool

• Rapidly provisioned and released

17

Page 18: Intro to cloud computing — MegaCOMM 2013, Jerusalem

Computing utility

• Cloud computing turns computers into a utility

• Always available

• Pay as you go

• When it’s not available, you get angry!

18

Page 19: Intro to cloud computing — MegaCOMM 2013, Jerusalem

Abstraction

• A core concept in computer science

• Treat many parts as if they were one whole

• Cloud computing treats entire computers, or groups of computers, as an abstraction

• Who cares how it works inside?

• Use the black box

19

Page 20: Intro to cloud computing — MegaCOMM 2013, Jerusalem

An old idea: Computing utility

• People and businesses don’t need computers.

• They need computing.

• So let’s provide them with a computing utility, like the water and electric company!

20

Page 21: Intro to cloud computing — MegaCOMM 2013, Jerusalem

Multics

• Joint project between MIT, Bell Labs, and GE (1964)

• A huge commercial failure!

• Bell Labs pulled out

• GE sold its part to Honeywell

• There were a few Multics machines in the world — last one went offline in 2000

21

Page 22: Intro to cloud computing — MegaCOMM 2013, Jerusalem

Unix

• Bell Labs left the Multics project in 1969

• Two of the programmers from Multics, Ken Thompson and Dennis Ritchie, created a smaller system

• They called it Unix, as a play on the “Multics” name

• Rejected the complexity of Multics

22

Page 23: Intro to cloud computing — MegaCOMM 2013, Jerusalem

Multiprocessing

• Multics and Unix both assumed that you could run more than one program at a time

• “Multiprocessing” is really an illusion, of course

23

Page 24: Intro to cloud computing — MegaCOMM 2013, Jerusalem

What is a program?

Code

Data

You are here

24

Page 25: Intro to cloud computing — MegaCOMM 2013, Jerusalem

Multiprocessing

Code

Data

PointerCode

Data

PointerCode

Data

Pointer

Currentprocess

25

Page 26: Intro to cloud computing — MegaCOMM 2013, Jerusalem

Multiprocessing

Code

Data

PointerCode

Data

PointerCode

Data

Pointer

Currentprocess

25

Page 27: Intro to cloud computing — MegaCOMM 2013, Jerusalem

Multiprocessing

Code

Data

PointerCode

Data

PointerCode

Data

Pointer

Currentprocess

25

Page 28: Intro to cloud computing — MegaCOMM 2013, Jerusalem

Multiprocessing

Code

Data

PointerCode

Data

PointerCode

Data

Pointer

Currentprocess

25

Page 29: Intro to cloud computing — MegaCOMM 2013, Jerusalem

Linux

• Open source clone of Unix

• Can be copied, used, distributed freely

• You don’t need to ask anyone before creating a new copy

• Oh, and it’s really robust, too

26

Page 30: Intro to cloud computing — MegaCOMM 2013, Jerusalem

Virtualization!

• A program on my computer is code + data

• What if the code is a program that pretends to be a full computer?

• Yes, my computer will run a program with a virtual machine on it

• To my computer, it’s one program — but to me, I effectively have a second computer

27

Page 31: Intro to cloud computing — MegaCOMM 2013, Jerusalem

Code

Data

Code

Data

Code

Data

Code

Data

Code

Data

Code

Data

28

Page 32: Intro to cloud computing — MegaCOMM 2013, Jerusalem

Co

Dat

Co

Dat

Co

Dat

Co

Dat

Co

Dat

Co

Dat

Co

Dat

Co

Dat

Co

Dat

Co

Dat

Co

Dat

Co

Dat

Co

Dat

Co

Dat

Co

Dat

Co

Dat

Co

Dat

Co

Dat

29

Page 33: Intro to cloud computing — MegaCOMM 2013, Jerusalem

But where?

• On your computer (VMWare, Virtualbox)

• On a hosting provider’s server

• On Amazon

30

Page 34: Intro to cloud computing — MegaCOMM 2013, Jerusalem

Amazon?!?

• I’ve bought goods from Amazon from the beginning

• (I even have cups that they sent all of their original customers, thanking them for supporting “Earth’s biggest bookstore.”)

• Amazon needed lots of servers for their growing business, to satisfy people like me

31

Page 35: Intro to cloud computing — MegaCOMM 2013, Jerusalem

Amazon

• Amazon doesn’t break out income, but...

• “Amazon Cloud Revenue Could Exceed $500 Million In 2010: Report” (2010)

• “Don’t look now, but AWS might be a billion-dollar biz” (2011)

• “Amazon's AWS: $3.8 billion revenue in 2013, says analyst” (2013)

32

Page 36: Intro to cloud computing — MegaCOMM 2013, Jerusalem

Amazon’s solution

• Don’t use servers directly

• Rather, put many virtual machines on a physical computer

• When the load rises, launch more virtual machines — and when it falls, kill them off

33

Page 37: Intro to cloud computing — MegaCOMM 2013, Jerusalem

AWS

• Amazon Web Services began as a way to query Amazon’s catalog

• Today, it’s many pay-by-the-hour services

• EC2 — elastic computing cluster — lets you create and launch Linux boxes via a Web console or even a program!

34

Page 38: Intro to cloud computing — MegaCOMM 2013, Jerusalem

Sounds like a utility

• The combination of Linux + virtualization + Internet access made it possible to realize the dream that Multics had years ago

• You need computing power? Launch it.

• You’re done with it? Power it down.

35

Page 39: Intro to cloud computing — MegaCOMM 2013, Jerusalem

36

Page 40: Intro to cloud computing — MegaCOMM 2013, Jerusalem

37

Page 41: Intro to cloud computing — MegaCOMM 2013, Jerusalem

NIST’s criteria

• Ubiquitous

• Convenient

• On demand

• Shared pool

• Configurable computing resources

• Rapidly provisioned and released

38

Page 42: Intro to cloud computing — MegaCOMM 2013, Jerusalem

Why do this?

• IT staff costs basically disappear

• You pay only for the servers you need

• If demand is variable, you can add and remove servers dynamically

• Configure your virtual server once — and deploy it hundreds or thousands of times

39

Page 43: Intro to cloud computing — MegaCOMM 2013, Jerusalem

Automation

• It gets even better than this: You can create and destroy EC2 instances via programs

• You can be a web hosting company without owning or renting any servers!

• When a customer signs up, just launch a new EC2 instance

40

Page 44: Intro to cloud computing — MegaCOMM 2013, Jerusalem

What about storage?

• You don’t want to store things on computers that can go up and down

• Amazon offers S3 (simple storage service) lets you store any number of files, of just about any size

41

Page 45: Intro to cloud computing — MegaCOMM 2013, Jerusalem

EC2 isn’t alone

• Other companies also offer virtual servers

• Some companies, such as Rackspace, also make it possible to spin them up and down on demand

• Even so, Amazon is the 900-lb gorilla in this space

42

Page 46: Intro to cloud computing — MegaCOMM 2013, Jerusalem

The car analogy

• Buy — big up-front costs, lots of maintenance, you control 100% of its use

• Lease — much smaller up-front costs, someone else handles maintenance, higher monthly costs

• Rent — Get a car for the days or weeks you need. No up-front costs, but higher daily costs

43

Page 47: Intro to cloud computing — MegaCOMM 2013, Jerusalem

Renting cars a la ZipCar or Car2Go• You can rent virtual servers from Amazon,

so long as they have the space

• (And they’ll basically always have the space)

• Let them worry about maintenance, hosting, electricity, etc.

• It’s a shared resource, so performance isn’t as good as a dedicated server

44

Page 48: Intro to cloud computing — MegaCOMM 2013, Jerusalem

IaaS

• EC2 is an example of Infrastructure as a Service

• You get Linux boxes, but not much more

• You still need to configure them and work with them

• And do you really want to configure (or upgrade) hundreds of servers?

45

Page 49: Intro to cloud computing — MegaCOMM 2013, Jerusalem

• Two software frameworks that let you describe how servers should be configured

• Then you say, “Puppet, please configure these 1,000 Rackspace servers according to the following criteria.”

• Want to change your configuration? Adjust it once, and Puppet/Chef will do the job

46

Page 50: Intro to cloud computing — MegaCOMM 2013, Jerusalem

PaaS

• Sometimes, you want to rent more than a bare Linux server

• If you want to launch Web applications, it would be great if EC2 handled all of that automatically

• EC2 doesn’t, but PaaS — Platform as a Service — providers do!

47

Page 51: Intro to cloud computing — MegaCOMM 2013, Jerusalem

PaaS

• PaaS for Web apps: Copy your files to the server, and it handles the rest

• Heroku

• Google App Engine

• EngineYard

• AWS Elastic Beanstalk

48

Page 52: Intro to cloud computing — MegaCOMM 2013, Jerusalem

PaaS, good and bad

• Good:

• Almost no IT staff

• Trivially easy to add/remove servers

• Security

• Bad:

• Performance

• Price, compared with a server

49

Page 53: Intro to cloud computing — MegaCOMM 2013, Jerusalem

50

Page 54: Intro to cloud computing — MegaCOMM 2013, Jerusalem

51

Page 55: Intro to cloud computing — MegaCOMM 2013, Jerusalem

Think apps, not servers

52

Page 56: Intro to cloud computing — MegaCOMM 2013, Jerusalem

A whole ecosystem

• Cloud consultants!

• Autoscaling companies

• Third-party add-ons for cloud servers

53

Page 57: Intro to cloud computing — MegaCOMM 2013, Jerusalem

54

Page 58: Intro to cloud computing — MegaCOMM 2013, Jerusalem

55

Page 59: Intro to cloud computing — MegaCOMM 2013, Jerusalem

Add-ons

• E-mail

• Storage

• Message queues

• Monitoring

• Logging

• Payments

• Video/audio encoding

56

Page 60: Intro to cloud computing — MegaCOMM 2013, Jerusalem

Private cloud

• What if you don’t like the idea of paying Amazon for their servers, but you do want to enjoy that flexibility?

• You can create a private cloud!

• CloudFoundry is an open-source VMWare product that lets you do just that

57

Page 61: Intro to cloud computing — MegaCOMM 2013, Jerusalem

Standards

• OpenStack (IaaS), CloudFoundry (PaaS)

• If you hate your cloud hosting provider, but they use a common infrastructure, you can switch to someone else

• Both are open-source initiatives

58

Page 62: Intro to cloud computing — MegaCOMM 2013, Jerusalem

Databases

• Heroku uses PostgreSQL

• (a great database, by the way)

• They run it on EC2 for clients’ Web apps

• As of recently, they also offer it as a separate package — database as a service!

• Backups, followers, health checks, snapshots

59

Page 63: Intro to cloud computing — MegaCOMM 2013, Jerusalem

Database as a service

• Many databases are offering this, from open source to proprietary

• SQL, NoSQL, Hadoop

• Often slower, but someone else installs, maintains, and tunes the database

• Enjoy a database without a DBA!

• Sometimes, make queries using a GUI

60

Page 64: Intro to cloud computing — MegaCOMM 2013, Jerusalem

SaaS

• Of coure, there’s also Software as a Service

• Lots of examples of these

• You probably even use some of them!

61

Page 65: Intro to cloud computing — MegaCOMM 2013, Jerusalem

Well-known SaaS• Gmail (e-mail)

• Google Docs (office applications)

• Salesforce (CRM)

• Dropbox (file sync)

• Mozy (backups)

• Wordpress, Blogger (blogging)

• Harvest, invoice4u (invoicing)

• Facebook (wasting time)

• Twitter (wsting tme #wowcool)

62

Page 66: Intro to cloud computing — MegaCOMM 2013, Jerusalem

API

• Make your SaaS app available to programs, not just computers

• Browsers speak HTTP + HTML

• APIs typically speak HTTP + JSON

• Programmers can then access your SaaS product even without a browser, creating an app using your platform!

63

Page 67: Intro to cloud computing — MegaCOMM 2013, Jerusalem

Trust

• Do you trust your provider not to steal your data?

• Do you feel comfortable putting your data on a server that you can’t secure yourself?

• More and more, people are saying “yes” — but figure

64

Page 68: Intro to cloud computing — MegaCOMM 2013, Jerusalem

Downtime

• Amazon EC2 goes down

• Typically, only one “region”

• You have to build this into your application

• Netflix CrashMonkey

• More devops

• You need to plan, or prepare to go down

65

Page 69: Intro to cloud computing — MegaCOMM 2013, Jerusalem

Going bust

• Will the hosting provider be around next year?

• Many are startups — most startups go out of business

• And sometimes, the platform provider competes with addon providers (e.g., Zencoder vs. Amazon)

66

Page 70: Intro to cloud computing — MegaCOMM 2013, Jerusalem

Conclusion

• Cloud computing is a big buzzword — but also a clear trend

• Concentrate on your apps and your business, not your IT infrastructure!

• The cloud isn’t a panacea, but it has lots of benefits — give it a shot!

67

Page 71: Intro to cloud computing — MegaCOMM 2013, Jerusalem

Thanks!(Any questions?)

[email protected]://www.lerner.co.il/

054-496-8405“reuvenlerner” on Skype

68