from concept to cloud (cf opentour india)
DESCRIPTION
Keynote for Cloud Foundry Open Tour India 2012TRANSCRIPT
From concept to cloud
Chris Richardson
Author of POJOs in ActionFounder of the original CloudFoundry.com
@[email protected]://plainoldobjects.com/
About Chris
(About Chris)
About Chris()
About Chris
About Chris
http://www.theregister.co.uk/2009/08/19/springsource_cloud_foundry/
vmc push About-Chris
Developer Advocate for CloudFoundry.com
Signup at http://cloudfoundry.comPromo code: cfopentour2012
Dreams of my childhood
Dreams of my childhood
Published in 1968
The vision
HAL 9000
.... is an artificial intelligence
became operational on
12 January 1992.....
It’s 2012!So how are we doing?
Computer hardware has come a long way
1956 - Hard drive
http://boingboing.net/2010/06/24/ibm-hard-disk-drive.html
3.7 Mbit
Weighed over a ton
Designed to fit through a door
1940
1950
1960
1970
1980
1990
2000
2010
1966 - IC-based Computer
http://en.wikipedia.org/wiki/Apollo_Guidance_Computer2,800 ICsMagnetic core memory
1940
1950
1960
1970
1980
1990
2000
2010
1971 - microprocessor
http://en.wikipedia.org/wiki/Microprocessor
4 bit
108-740 kHz
2,300 transistors
1940
1950
1960
1970
1980
1990
2000
2010
The power of Moore’s law
http://www.gotw.ca/publications/concurrency-ddj.htm
In my career1982 RM 380Z4 Mhz 8-bit Z8032K RAM100K floppy
2012MacBookPro2.5 Ghz Quad core 64 bit Intel i7256K/core + 8M cache,16G RAM512G SSD drive
BUT WHAT ABOUT HAL?
The reality
Floor cleaning robot
The reality
http://en.wikipedia.org/wiki/IBM_Watson cluster of ninety IBM Power 750 servers with a total of 2880 POWER7 processor
cores and 16 Terabytes of RAM.
We still have a long way to go before we can
build HAL
One major problem is developer productivity
Software productivity: 4x improvement
Compared to 1,000,000x hardware improvement
Programming languages have barely evolved
1958 - Lisp
http://en.wikipedia.org/wiki/Lisp_(programming_language)
1940
1950
1960
1970
1980
1990
2000
2010
garbage collection dynamic typing
self-hosting compiler tree data structures
(defun factorial (n) (if (<= n 1) 1 (* n (factorial (- n 1)))))
1960 - Algol 60
http://en.wikipedia.org/wiki/Algol_60
1940
1950
1960
1970
1980
1990
2000
2010 Many languages
including Java are derived from Algol
procedure Absmax(a) Size:(n, m) Result:(y) Subscripts:(i, k); value n, m; array a; integer n, m, i, k; real y;begin integer p, q; y := 0; i := k := 1; for p:=1 step 1 until n do for q:=1 step 1 until m do if abs(a[p, q]) > y then begin y := abs(a[p, q]); i := p; k := q endend Absmax
1967 - Simula
http://en.wikipedia.org/wiki/Simula
1940
1950
1960
1970
1980
1990
2000
2010
class-based object-oriented
programming
So what have programming language designers been
doing since then?
1995 - Java
Not innovative BUT
Brought garbage collection, object-oriented programming, exception handling, safety ... to mainstream
developers
Gosling “Java is a blue collar language”
google “Gosling the feel of Java”
1940
1950
1960
1970
1980
1990
2000
2010
But despite that....
Today, a small team can easily build an
application that’s used by millions of people
world-widehttp://highscalability.com/blog/2012/5/7/startups-are-creating-a-new-
system-of-the-world-for-it.html
30+ million users, 2 backend engineers, acquired for $1B
Endpoints everywhere
The web
Cloud Computing
http://en.wikipedia.org/wiki/Cloud_computing
Why Platform-as-a-Service?
Let’s imagine that you want to deploy an app...
• Do you know how much hardware to buy?
• Can you afford it?
• How long does it take to approve, buy and install?
• Who is going to set it up?
• Can you handle a 10x increase in traffic?
• Can you afford a test lab?
Cloud computing empowers us to deal
with these challenges...
Cloud computing defined
IT delivered as a service
Over the internet
Self-service
Pay per use
SaaS
PaaS
IaaS
The three layers of cloud computing
Wednesday October 18, 2006....
.... spoke at the Oakland JUG
AWS evangelist
Sign up and deploy your application a few minutes later
• Login using your existing Amazon account
• Select the web services you want to use
• Only takes a few minutes
Benefits of IaaS
• Agility
• Pay per use
• Elasticity
But you still need to configure and maintain
• Operating systems
• Application servers
• Databases
• ...
Who survived the April 2011 AWS meltdown?
Companies that built their own distributed
platform
SaaS
PaaS
IaaS
Need to move up the stack
PaaS
= Application deployment and
management
Service provisioning+
Overview of Cloud Foundry
Simple, Open, Flexible,
Scalable
The Open Platform as a Service
Deploy and scale applications in seconds, without locking yourself into a single cloud
Applica'on Service Interface
OSS community
Private Clouds
PublicClouds
MicroClouds
Data Services
Other Services
Msg Services
vFabric Postgres
vFabric RabbitMQTM
Additional partners services …
CloudFoundry.COM - Multi-tenant PaaS operated by VMware
Runtimes & FrameworksServices
vCenter / vSphere
CloudFoundry.COM (beta)
Infrastructure
Micro Cloud FoundryTM – Industry first
downloadable PaaS
Runtimes & FrameworksServices
Your Laptop/PC
Micro Cloud Foundry
Single VM instance of Cloud Foundry
that runs on a developer’s MAC or PC
CloudFoundry.ORG - Community open-source project
CloudFoundry.ORG
DownloadCode
Setup Environment
Deploy Behind FirewallBOSH
Apache2 license
Your Infrastructure
Vibrant open-source ecosystem
One week after Cloud Foundry was
open-sourced!
Vibrant open-source ecosystem
• AppFog.com• Community lead for PHP• Public PaaS
• Joyent• Community lead for Node.js
• ActiveState• Community lead for Python• Stackato private PaaS
Cloud Foundry: you can trade-off effort vs flexibility
Public PaaS
Private PaaS
Custom Private PaaS
Less
More
Less
More
.COM....
....
git clone git://github.com/cloudfoundry/vcap.git
Effort Flexibility
Cloud Foundry = no lock-in
• Standard applications
• Standard services
• Choice of cloud providers"you can check out anytime you like, but you can never
leave."
PREV
ENTS
Using Cloud Foundry
$ vmc target <any cloud>
$ vmc login <credentials> $ vmc push <my-app>
> bind services? Yes
$ vmc update <my-app>
$ vmc instances <my-app> +100
Example vmc commands
Sinatra + Redis
require 'sinatra'require 'redis'
configure do $r = Redis.new(:host => '127.0.0.1', :port => '6379') if !$r end
get '/' do "Hello World! " + $r.incr("hitcounter").to_send
http://sgce2012.cloudfoundry.com/
Connect to Redis
Increment hit counter
Final thoughts
Software development has a long way to go
BUT
The cloud enables anyone with a good idea
to create an application that touches the
lives of millions of people
Cloud Foundry is a remarkably easy way to deploy your
applications
Cloud Foundry gives you choice of languages,
frameworks, services, clouds
Thank you!Chris Richardson
Author of POJOs in ActionFounder of the original CloudFoundry.com
[email protected]@crichardson
http://plainoldobjects.com
Signup for cloudfoundry.com Promo code: cfopentour2012