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.
Intro to cloud computing — MegaCOMM 2013, Jerusalem
1. Cloud Computing:
What is it?
What does it mean?
Reuven M. Lerner • reuven@lerner.co.il
MegaCOMM • February 7th, 2013
1
2. Who am I?
• Long-time Web developer, trainer,
consultant
• Linux Journal columnist
• PhD candidate in Learning Sciences at
Northwestern University
2
9. 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
10. 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
11. 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
13. 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
14. The important points
• Ubiquitous
• Convenient
• On demand
• Shared pool
• Configurable computing resources
• Rapidly provisioned and released
14
18. Computing utility
• Cloud computing turns computers into a
utility
• Always available
• Pay as you go
• When it’s not available, you get angry!
18
19. 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
20. 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
21. 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
22. 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
23. 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
29. 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
30. 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
31. Code Code Code
Data Data Data
Code Code Code
Data Data Data
28
32. Co Co Co Co Co Co
Dat Dat Dat Dat Dat Dat
Co Co Co Co Co Co
Dat Dat Dat Dat Dat Dat
Co Co Co Co Co Co
Dat Dat Dat Dat Dat Dat
29
33. But where?
• On your computer (VMWare,Virtualbox)
• On a hosting provider’s server
• On Amazon
30
34. 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
35. 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
36. 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
37. 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
38. 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
41. NIST’s criteria
• Ubiquitous
• Convenient
• On demand
• Shared pool
• Configurable computing resources
• Rapidly provisioned and released
38
42. 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
43. 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
44. 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
45. 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
46. 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
47. 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
48. 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
49. • 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
50. 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
51. 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
52. PaaS, good and bad
• Good:
• Almost no IT staff
• Trivially easy to add/remove servers
• Security
• Bad:
• Performance
• Price, compared with a server
49
60. 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
61. 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
62. 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
63. 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
64. SaaS
• Of coure, there’s also Software as a Service
• Lots of examples of these
• You probably even use some of them!
61
66. 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
67. 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
68. 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
69. 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
70. 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