Cloud Computing:
   What is it?
What does it mean?
 Reuven M. Lerner • reuven@lerner.co.il
   MegaCOMM • February 7th, 2013




                                          1
Who am I?

• Long-time Web developer, trainer,
  consultant
• Linux Journal columnist
• PhD candidate in Learning Sciences at
  Northwestern University



                                          2
Everyone is talking
about cloud computing!


                         3
4
In case you missed it:




77,300,000 results!?!
                         5
Wow, this must be big!



                         6
7
But what is
cloud computing?


                   8
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
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
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
These are not helpful.



                         12
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
The important points
• Ubiquitous
• Convenient
• On demand
• Shared pool
• Configurable computing resources
• Rapidly provisioned and released
                                     14
This reminds me of...



                        15
Public utilities




                   16
Utilities

• Ubiquitous
• Convenient
• On demand
• Shared pool
• Rapidly provisioned and released

                                     17
Computing utility

• Cloud computing turns computers into a
  utility
 • Always available
 • Pay as you go
 • When it’s not available, you get angry!

                                             18
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
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
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
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
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
What is a program?

 You are here
                Code




                Data




                       24
Multiprocessing

Pointer          Pointer          Pointer
          Code             Code             Code



          Data             Data             Data




                 Current
                 process
                                                   25
Multiprocessing

Pointer          Pointer           Pointer
          Code             Code              Code



          Data             Data              Data




                                  Current
                                  process
                                                    25
Multiprocessing

Pointer          Pointer          Pointer
          Code             Code             Code



          Data             Data             Data




Current
process
                                                   25
Multiprocessing

Pointer          Pointer           Pointer
          Code             Code              Code



          Data             Data              Data




                                  Current
                                  process
                                                    25
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
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
Code   Code   Code


Data   Data   Data




Code   Code   Code


Data   Data   Data




                     28
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
But where?

• On your computer (VMWare,Virtualbox)
• On a hosting provider’s server
• On Amazon


                                         30
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
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
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
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
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
36
37
NIST’s criteria
• Ubiquitous
• Convenient
• On demand
• Shared pool
• Configurable computing resources
• Rapidly provisioned and released
                                     38
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
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
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
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
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
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
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
• 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
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
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
PaaS, good and bad
• Good:
 • Almost no IT staff
 • Trivially easy to add/remove servers
 • Security
• Bad:
 • Performance
 • Price, compared with a server
                                          49
50
51
Think apps, not servers



                          52
A whole ecosystem

• Cloud consultants!
• Autoscaling companies
• Third-party add-ons for cloud servers


                                          53
54
55
Add-ons
• E-mail
• Storage
• Message queues
• Monitoring
• Logging
• Payments
• Video/audio encoding
                         56
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
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
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
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
SaaS

• Of coure, there’s also Software as a Service
• Lots of examples of these
• You probably even use some of them!


                                                 61
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
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
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
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
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
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
Thanks!
(Any questions?)

   reuven@lerner.co.il
  http://www.lerner.co.il/
       054-496-8405
 “reuvenlerner” on Skype



                             68

Intro to cloud computing — MegaCOMM 2013, Jerusalem

  • 1.
    Cloud Computing: What is it? What does it mean? Reuven M. Lerner • [email protected] 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
  • 3.
    Everyone is talking aboutcloud computing! 3
  • 4.
  • 5.
    In case youmissed it: 77,300,000 results!?! 5
  • 6.
    Wow, this mustbe big! 6
  • 7.
  • 8.
    But what is cloudcomputing? 8
  • 9.
    About.com Cloud computing consistsof 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 areretrieved 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 refersto 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
  • 12.
    These are nothelpful. 12
  • 13.
    NIST ... a modelfor 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
  • 15.
  • 16.
  • 17.
    Utilities • Ubiquitous • Convenient •On demand • Shared pool • Rapidly provisioned and released 17
  • 18.
    Computing utility • Cloudcomputing turns computers into a utility • Always available • Pay as you go • When it’s not available, you get angry! 18
  • 19.
    Abstraction • A coreconcept 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 projectbetween 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 Labsleft 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 andUnix both assumed that you could run more than one program at a time • “Multiprocessing” is really an illusion, of course 23
  • 24.
    What is aprogram? You are here Code Data 24
  • 25.
    Multiprocessing Pointer Pointer Pointer Code Code Code Data Data Data Current process 25
  • 26.
    Multiprocessing Pointer Pointer Pointer Code Code Code Data Data Data Current process 25
  • 27.
    Multiprocessing Pointer Pointer Pointer Code Code Code Data Data Data Current process 25
  • 28.
    Multiprocessing Pointer Pointer Pointer Code Code Code Data Data Data Current process 25
  • 29.
    Linux • Open sourceclone 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 programon 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? • Onyour computer (VMWare,Virtualbox) • On a hosting provider’s server • On Amazon 30
  • 34.
    Amazon?!? • I’ve boughtgoods 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’tbreak 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’tuse 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 WebServices 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 autility • 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
  • 39.
  • 40.
  • 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 getseven 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 ala 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 isan 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 softwareframeworks 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, youwant 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 forWeb apps: Copy your files to the server, and it handles the rest • Heroku • Google App Engine • EngineYard • AWS Elastic Beanstalk 48
  • 52.
    PaaS, good andbad • Good: • Almost no IT staff • Trivially easy to add/remove servers • Security • Bad: • Performance • Price, compared with a server 49
  • 53.
  • 54.
  • 55.
    Think apps, notservers 52
  • 56.
    A whole ecosystem •Cloud consultants! • Autoscaling companies • Third-party add-ons for cloud servers 53
  • 57.
  • 58.
  • 59.
    Add-ons • E-mail • Storage •Message queues • Monitoring • Logging • Payments • Video/audio encoding 56
  • 60.
    Private cloud • Whatif 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 usesPostgreSQL • (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 aservice • 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
  • 65.
    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
  • 66.
    API • Make yourSaaS 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 youtrust 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 EC2goes 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 • Willthe 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 computingis 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
  • 71.
    Thanks! (Any questions?) [email protected] http://www.lerner.co.il/ 054-496-8405 “reuvenlerner” on Skype 68