Download - Cloud Foundry OpenTour Kiev Keynote
![Page 1: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/1.jpg)
Cloud FoundryThe Open Platform as a Service
Patrick ChanezonSenior DirectorDeveloper [email protected]@chanezon Cloud Foundry OpenTour, Kiev, April 2012Tuesday, April 24, 12
![Page 2: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/2.jpg)
P@ in a nutshell
• French, based in San Francisco
• Senior Director, Developer Relations, VMware
• Software Plumber, API guy, mix of Enterprise and Consumer
• 18 years writing software, backend guy with a taste for javascript
• 2 y Accenture (Notes guru), 3 y Netscape/AOL (Servers, Portals), 5 y Sun (ecommerce, blogs, Portals, feeds, open source)
• 6 years at Google, API guy (first hired, helped start the team)
• Adwords, Checkout, Social, HTML5, Cloud
Tuesday, April 24, 12
![Page 3: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/3.jpg)
Dreams Of my childhood
3
Tuesday, April 24, 12
![Page 4: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/4.jpg)
Accelerando / Singularity, in a Galaxy far far away
§ Even if we automate ourselves out of a job every 10 years
§ ...I don’t think the singularity is near!
4
Tuesday, April 24, 12
![Page 5: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/5.jpg)
Moore's Law is for Hardware Only
§ Does not apply to software
§ Productivity gains not keeping up with hardware and bandwidth
§ Writing software is hard, painful, and still very much a craft
5
Tuesday, April 24, 12
![Page 6: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/6.jpg)
Moore's Law’s free lunch is over
§ Herb Sutter, Welcome to the Junglehttp://herbsutter.com/welcome-to-the-jungle/
6
Tuesday, April 24, 12
![Page 7: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/7.jpg)
Future
“The future is already here — it's just not very evenly distributed” William Gibson
7
Tuesday, April 24, 12
![Page 8: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/8.jpg)
Haiku - Skylark
“Trampling on clouds,inhaling the mist,the skylark soars” —SHIKI
8
Tuesday, April 24, 12
![Page 9: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/9.jpg)
Haiku - Frog
“Crouching,studying the clouds—a frog”CHIYO-JO
9
Tuesday, April 24, 12
![Page 10: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/10.jpg)
Architecture Changes: 60’s Mainframe
Tuesday, April 24, 12
![Page 11: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/11.jpg)
Architecture Changes: 80’s Client-Server
Tuesday, April 24, 12
![Page 12: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/12.jpg)
Architecture Changes: 90’s Web
Tuesday, April 24, 12
![Page 13: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/13.jpg)
Architecture Changes: 2010’s Cloud, HTML5, Mobile
Tuesday, April 24, 12
![Page 14: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/14.jpg)
Back to Client Server: Groovy Baby!
14
Tuesday, April 24, 12
![Page 15: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/15.jpg)
What is Cloud Computing?
15
Cloud According to my daughter Eliette
Tuesday, April 24, 12
![Page 16: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/16.jpg)
What is Cloud Computing?
16
Cloud at Михайлівський золотоверхий монастир
Tuesday, April 24, 12
![Page 17: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/17.jpg)
Cloud Stack - Classic Pyramid
17
Platform As A Service
Infrastructure As A Service
SoftwareAs A Service
Tuesday, April 24, 12
![Page 18: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/18.jpg)
Cloud Stack - By Value
18
InfrastructureAs A Service
SoftwareAs A Service
Platform As A Service
Tuesday, April 24, 12
![Page 19: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/19.jpg)
Cloud Stack - History
§ What does cloud mean, 4 main angles• Software 1994 Netscape
• Infrastructure 2002 Amazon AWS
• Platform 2008 Google
• Development now!
19
§ Industrialization of hardware and software infrastructurelike electricity beginning of 20th century
§ But software development itself is moving towards craftmanship
Tuesday, April 24, 12
![Page 20: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/20.jpg)
Cloud started at Consumer websites solving their needs
• Google, Amazon, Yahoo, Facebook, Twitter
• Large Data Sets
• Storage Capacity growing faster than Moore’s Law
• Fast Networks
• Horizontal -> Vertical scalability
• Open Source Software
• Virtualization
• Cloud is a productization of these infrastructures
• Public Clouds Services: Google, Amazon
• Open Source Software: Hadoop, Eucalyptus, Ubuntu, Cloud Foundry
Tuesday, April 24, 12
![Page 21: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/21.jpg)
21
Infrastructure
Tuesday, April 24, 12
![Page 22: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/22.jpg)
IaaS/Virtualization getting mainstream
§ AWS, Joyent, Rackspace,...
§ Open Source projects: OpenStack, DeltaCloud, Eucalyptus
§ Automation: Chef, Juju
§ Standardization? DMTF
§ Inside the Firewall, Virtualization: VMware, Microsoft, Xen, KVM
§ 50% of workloads are virtualized
§ Easy to provision, manage instance...BUT
§ Still need to manage backups, software stacks, monitor, upgrades
22
Tuesday, April 24, 12
![Page 23: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/23.jpg)
With Infrastructure, you still need to build your own platform
§ Need to build a distributed platform on top of you infrastructure
§ Story of the AWS meltdown from last summer• http://blog.reddit.com/2011/03/why-reddit-was-down-for-6-of-last-24.html
• http://www.readwriteweb.com/cloud/2010/12/chaos-monkey-how-netflix-uses.php
• http://news.ycombinator.com/item?id=2477296
• http://stu.mp/2011/04/the-cloud-is-not-a-silver-bullet.html
§ Twilio, Smugmug, SimpleGeo survived it because they built their own distributed platform on top of IaaS
§ Enterprise customers want to consider Infrastructure like CDNs• Multi Cloud usage
• Based on Open Source de facto standards, or full standards whenever that happens
23
Tuesday, April 24, 12
![Page 24: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/24.jpg)
24
Platforms
Tuesday, April 24, 12
![Page 25: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/25.jpg)
Platforms
§ Raise the Unit of currency to be application & services instead of infrastructure
§ Google App Engine, Cloud Foundry, Joyent, Heroku, Stax (Cloudbees), Amazon elastic beanstalk, Microsoft Azure, AppFog
§ Single or a few languages, services
§ Start of Multi language Polyglot platforms
§ Enabler for Agile Developers -> Create Business value faster
§ Lack of standards: risk, vendor lock-in
§ Enterprise needs:•Control, customizability
•Private/Hybrid Cloud
•Avoid lock-in
25
Tuesday, April 24, 12
![Page 26: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/26.jpg)
Agile Development Processes
Tuesday, April 24, 12
![Page 27: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/27.jpg)
Agility as a survival skill
§ Consumer software is becoming like fashion•Phone apps, social apps, short lifetime, fast lifecycles
•Ab testing
§ Clay shirky situational apps
§ Kent Beck, Usenix 2011 Talk, “Software G-Forces”change in software process when frequency grows
§ Cloud Platforms enables an Agile culture, driver for innovation•Scalability is built in the platforms
•Can iterate faster
•Focus on design
§ Cloud Platforms lets developers focus on driving business value
27
Tuesday, April 24, 12
![Page 28: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/28.jpg)
Main Risk: Lock-In
28
Welcome to the hotel californiaSuch a lovely placeSuch a lovely facePlenty of room at the hotel californiaAny time of year, you can find it here
Last thing I remember, I wasRunning for the doorI had to find the passage backTo the place I was before’relax,’ said the night man,We are programmed to receive.You can checkout any time you like,But you can never leave!
Tuesday, April 24, 12
![Page 29: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/29.jpg)
Cloud Foundry: The Open PaaS
29
Clou
d Pr
ovide
r Int
erfa
ce
Application Service Private Clouds
PublicCloud
MicroCloud
Data Services
Other Services
Msg Services
vFabric Postgres
vFabric RabbitMQTM
• Open Source: Apache 2 Licensed
• multi language/frameworks
• multi services
• multi cloud
Tuesday, April 24, 12
![Page 30: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/30.jpg)
30
Open Source
Tuesday, April 24, 12
![Page 31: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/31.jpg)
Open Source Advantage
§ http://code.google.com/p/googleappengine/issues/detail?id=13
31
• https://github.com/cloudfoundry/vcap/pull/25
Tuesday, April 24, 12
![Page 32: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/32.jpg)
32
CloudFoundry.org
Tuesday, April 24, 12
![Page 33: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/33.jpg)
33
Cloud Foundry Open Source Workflow
Reviewers +2/-2
test verification score ✓ ✗ git push triggers test execution
Gerrit Code Review
reviews.cloudfoundry.org
Jenkins CI
ci.cloudfoundry.org
github
github.com/cloudfoundry
+1/-1 Committers
on +2 and ✓ change pushed to github
cloudfoundry.com
production updated ~2x/week
Tuesday, April 24, 12
![Page 34: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/34.jpg)
34
Multi Cloud
Tuesday, April 24, 12
![Page 35: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/35.jpg)
35
CloudFoundry.COM
Runtimes & Frameworks
Services
vCenter / vSphere
Cloud Foundry
Infrastructure
Tuesday, April 24, 12
![Page 36: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/36.jpg)
36
Cloud Foundry.ORG
The Source Code to Compile & Build Cloud Foundry
vCenter / vSphere
Cloud Foundry
DownloadCode
Setup Environment
Deploy Behind Firewall
Setup Scripts
Tuesday, April 24, 12
![Page 37: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/37.jpg)
Micro Cloud Foundry
37
Micro
Tuesday, April 24, 12
![Page 38: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/38.jpg)
What is a Micro Cloud?
38
Entire Cloud Running inside of a single VM
Or
Tuesday, April 24, 12
![Page 39: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/39.jpg)
What is in Micro Cloud Foundry?
39
Open source Platform as a Service project
App Instances Services
10.04
Dynamic Updating DNS
.COM
Tuesday, April 24, 12
![Page 40: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/40.jpg)
Other Cloud Foundry powered PaaS
40
Private PaaS
Added Python and Perl
Public PaaS
Added PHP
Tier3 and Uhuru recently added .NET support
Tuesday, April 24, 12
![Page 41: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/41.jpg)
Register today
41
http://cloudfoundry.com/signup
CFOpenTour2012Use Promo Code
To avoid approval queue waiting time
Tuesday, April 24, 12
![Page 42: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/42.jpg)
42
Cloud Foundry BOSH
Tuesday, April 24, 12
![Page 43: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/43.jpg)
43
§ 500 – 5,000 VMs
§ 40+ unique node types
§ 75+ unique software packages
§ 75+ unique environments
§ 2x/week cf.com updates
§ 24x7x365 non-stop operation
§ No-downtime deployments
§ Reliable, robust, repeatable deployments, updates, capacity adjustments
§ Small teams manage many instances
Production Grade Cloud Foundry Clusters
Google style problem è Google style solution
cloudfoundry.com
production, staging, stress, qa, dev
Tuesday, April 24, 12
![Page 44: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/44.jpg)
44
§ Cloud Foundry BOSH is an open source tool-chain for release engineering, deployment, and lifecycle management of large scale distributed services• Prescriptive way of creating releases and managing systems and services
• It is not a collection of shell scripts, not a pile of Perl
§ Built to deploy and manage production-class, large scale clusters• Production grade Cloud Foundry clusters: 500+ VMs, 40+ jobs, 75+ packages
• Multi-node, multi-tier, complex clusters: e.g., our Gerrit/Jenkins Cluster
§ Built for devops usage and scale by a crack team of veterans• A project, not a product: command line interface, YAML, etc.
• Continuous improvement, iterative development, rough edges
Cloud Foundry BOSH
github.com/cloudfoundry/bosh
Tuesday, April 24, 12
![Page 45: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/45.jpg)
45
BOSH: under the hood
bosh cli
redis natsdb
director healthmon
IaaS CPI
workers
stemcellagent
blobs
“BOSH is deployed by BOSH”
cloudfoundry.com
BOSH User
active jobs
disk
Tuesday, April 24, 12
![Page 46: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/46.jpg)
46
IaaS neutral by design
CPI: code completefunctional status: “work in progress”
vSphere: battle tested implementation, thousands of deployments
vCloud Director: “work in progress”, 2H 2012
contribute: github.com/cloudfoundry/bosh
Cloud Provider Interface (CPI)
Cloud Foundry BOSH
Tuesday, April 24, 12
![Page 47: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/47.jpg)
Cloud for Developers: the true path is PaaS!
47
Tuesday, April 24, 12
![Page 48: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/48.jpg)
48
Development As A
Service
Tuesday, April 24, 12
![Page 49: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/49.jpg)
Development
§ Final frontier, happening now
§ Not whole product yet
§ Social Coding: Google code, Github
§ Web IDEs: Cloud9, Exo, Orion
§ Higher level case tools, Wavemaker, Orangescape, Runmyprocess
§ Continuous Integration: Jenkins, Cloudbees, OpenShift
§ Test: feature of cloud platforms
§ Knowledge Sharing: StackOverflow
49
Tuesday, April 24, 12
![Page 50: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/50.jpg)
50
DemoExo Cloud IDE
Mark DowneyCloud Services Product Manager, Exo Platforms
Twitter: @marksdowney
Tuesday, April 24, 12
![Page 51: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/51.jpg)
51
Lessons for Developers
Tuesday, April 24, 12
![Page 52: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/52.jpg)
Predictions
§ Software is becoming like fashion, design rules
§ Welcome to Babel, use the best tool for the job, embrace multiple language & heterogeneity
§ Our jobs will change, build yourself out of your current job
§ Sysadmin jobs will morph, there will be less of them
§ Many opportunities open when you embrace change
52
Tuesday, April 24, 12
![Page 53: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/53.jpg)
Things to Forget
§ First normal form
§ Waterfall model
§ Single server deployment
§ Single language skill
§ Build everything from scratch
§ Build custom infrastructure
53
Tuesday, April 24, 12
![Page 54: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/54.jpg)
Things to Learn
• Agile
• Take risks, fail often, fail fast and learn
• API Design: create the API first
• UI Design, Javacript, HTML5, CSS3
• A/B Testing
• Open Source, Open Standards
• Architecture, Distributed Computing (CAP theorem, 8 fallacies)
• Cloud Platforms and APIs
• Multiple types of languages (imperative, object, functional, logic)
• Ability to encapsulate domain knowledge in a DSL
• Build on the shoulders of giants: reuse, REST APIs
• Pick your battles, choose what you need to build yourself to add value
• Learn to live in a box (embrace platform limitations) to think outside the box
• Use an App Store for distribution
• Consider your career as a startup54
Tuesday, April 24, 12
![Page 55: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/55.jpg)
Tuesday, April 24, 12
![Page 56: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/56.jpg)
Such stuff as dreams are made on
§ Like a kid on a candy store: there's never been a better time to be a software developer!
§ Welcome to the Cloud: embrace change and reinvent yourselves
§ “The future is already there, not evenly distributed” Gibson
§ We Developers, invent the future today
56
Tuesday, April 24, 12
![Page 57: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/57.jpg)
developer perspective v2.0
sample app
polyglot in actionby Mark Lucovsky
57
Tuesday, April 24, 12
![Page 58: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/58.jpg)
developer perspective v2.058
Tuesday, April 24, 12
![Page 59: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/59.jpg)
developer perspective v2.0
stac2: load generation system
59
redis
stac2frontend
api server
vmc worker http worker
http json
redis apirpush
blpop blpopredis api
- 2 x 128mb- ruby 1.8.7, sinatra
- 16 x 128mb*- node.JS, 0.6.8
- 16 x 128mb*- node.JS, 0.6.8
- 96 x 128mb- ruby 1.8.7, sinatra
json-p- jQuery, jQuery UI- haml templates- 100% JS based UI
* - api server and http worker share the same node.JS process/instance
emailreports
smtp
Tuesday, April 24, 12
![Page 60: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/60.jpg)
developer perspective v2.0
deployment instructions
60
$ cd ~/stac2$ vmc push
Tuesday, April 24, 12
![Page 61: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/61.jpg)
developer perspective v2.0
how is this possible?$ cd ~/stac2; cat manifest.ymlapplications: ./nabh: instances: 16 mem: 128M runtime: node06 url: ${name}.${target-‐base} services: nab-‐redis: type: :redis./nabv: instances: 96 mem: 128M runtime: ruby18 url: ${name}.${target-‐base} services: nab-‐redis: type: :redis./stac2: instances: 2 mem: 128M runtime: ruby18 url: ${name}.${target-‐base}
61
Tuesday, April 24, 12
![Page 62: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/62.jpg)
developer perspective v2.0
design tidbits
62
• producer/consumer pattern using rpush/blpop
• node.JS: multi-server and high performance async i/o
• caldecott – aka vmc tunnel for debugging
• redis sorted sets for stats collection
• redis expiring keys for rate calculation
Tuesday, April 24, 12
![Page 63: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/63.jpg)
developer perspective v2.0
producer/consumer
• core design pattern
• found at the heart of many complex apps
63
classic mode:- thread pools- semaphore/mutex, completion ports, etc.- scalability limited to visibility of the work queue
consumerwork queueproducer work work
cloud foundry mode:- instance pools- redis rpush/blpop, rabbit queues, etc.- full horizontal scalability, cloud scale
Tuesday, April 24, 12
![Page 64: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/64.jpg)
developer perspective v2.0
producer/consumer: code
64
// producerfunction commit_item(queue, item) { // push the work item onto the proper queue redis.rpush(queue, item, function(err, data) {
// optionally trim the queue, throwing away // data as needed to ensure the queue does // not grow unbounded if (!err && data > queueTrim) { redis.ltrim(queue, 0, queueTrim-‐1); } });}
// consumerfunction worker() { // blocking wait for workitems blpop_redis.blpop(queue, 0, function(err, data) { // data[0] == queue, data[1] == item if (!err) { doWork(data[1]); } process.nextTick(worker); });
Tuesday, April 24, 12
![Page 65: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/65.jpg)
developer perspective v2.0
node.JS multi-server: http API server
65
// the api server handles two key load generation apis// /http – for http load, /vmc for Cloud Foundry API loadvar routes = {“/http”: httpCmd, “/vmc”: vmcCmd}
// http api server booted by app.js, passing redis client// and Cloud Foundry instance function boot(redis_client, cfinstance) { var redis = redis_client; function onRequest(request, response) { var u = url.parse(request.url); var path = u.pathname; if (routes[path] && typeof routes[path] == ‘function’) { routes[path](request, response); } else { response.writeHead(404, {‘Content-‐Type’: ‘text/plain’}); response.write(‘404 Not Found’); response.end(); } } server = http.createServer(onRequest).listen(cfinstance[‘port’]);}
Tuesday, April 24, 12
![Page 66: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/66.jpg)
developer perspective v2.0
node.JS multi-server: blpop server
66
var blpop_redis = null;var status_redis = null;var cfinstance = null;
// blpop server handles work requests for http traffic// that are placed on the queue by the http API server// another blpop server sits in the ruby/sinatra VMC serverfunction boot(r1, r2, cfi) { // multiple redis clients due to concurrency constraints blpop_redis = r1; status_redis = r2; cfinstance = cfi; worker();}
// this is the blpop server loopfunction worker() { blpop_redis.blpop(queue, 0, function(err, data) { if (!err) { doWork(data[1]); } process.nextTick(worker); });}
Tuesday, April 24, 12
![Page 67: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/67.jpg)
developer perspective v2.0
caldecott: aka vmc tunnel
67
# create a caldecott tunnel to the redis server$ vmc tunnel nab-‐redis redis-‐cliBinding Service [nab-‐redis]: OK…Launching 'redis-‐cli -‐h localhost -‐p 10000 -‐a ...’
# enumerate the keys used by stac2redis> keys vmc::staging::*1) “vmc::staging::actions::time_50”2) “vmc::staging::active_workers”…
# enumerate actions that took less that 50msredis> zrange vmc::staging::actions::time_50 0 -‐1 withscores1) “delete_app”2) “1”3) “login”4) “58676”5) “info”6) “80390”
# see how many work items we dumped due to concurrency constraintredis> get vmc::staging::wastegate“7829”
Tuesday, April 24, 12
![Page 68: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/68.jpg)
developer perspective v2.0
redis sorted sets for stats collection
68
# log action into a sorted set, net result is set contains# actions and the number of times the action was executed# count total action count, and also per elapsed time bucketdef logAction(action, elapsedTimeBucket) # actionKey is the set for all counts # etKey is the set for a particular time bucket e.g., _1s, _50ms actionKey = “vmc::#{@cloud}::actions::action_set” etKey = “vmc::#{@cloud}::actions::times#{elapsedTimeBucket}” @redis.zincrby actionKey, 1, action @redis.zincrby etKey, 1, actionend
# enumerate actions and their associated countredis> zrange vmc::staging::actions::action_set 0 -‐1 withscores1) “login”2) “212092”3) “info”4) “212093”
# enumerate actions that took between 400ms and 1sredis> zrange vmc::staging::actions::time_400_1s 0 -‐1 withscores1) “create-‐app”2) “14”3) “bind-‐service”4) “75”
Tuesday, April 24, 12
![Page 69: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/69.jpg)
developer perspective v2.0
redis incrby and expire for rate calcs
69
# to calculate rates (e.g., 4,000 requests per second)# we use plain old redis.incrby. the trick is that the # key contains the current 1sec timestamp as it’s suffix value# all activity that happens within this 1s period accumulates# in that key. by setting an expire on the key, the key is # automatically deleted 10s after last writedef logActionRate(cloud) tv = Time.now.tv_sec one_s_key = "vmc::#{cloud}::rate_1s::#{tv}"
# increment the bucket and set expires, key # will eventually expires Ns after the last write @redis.incrby one_s_key, 1 @redis.expire one_s_key, 10end
# return current rate by looking at the bucket for the previous # one second period. by looking further back and averaging, we # can smooth the rate calcdef actionRate(cloud) tv = Time.now.tv_sec -‐ 1 one_s_key = "vmc::#{cloud}::rate_1s::#{tv}" @redis.get one_s_keyend
Tuesday, April 24, 12
![Page 70: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/70.jpg)
developer perspective v2.0
stac2 demo -or- screencast
70
Tuesday, April 24, 12
![Page 71: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/71.jpg)
developer perspective v2.0
stac2 demo -or- screencast
70
Tuesday, April 24, 12
![Page 72: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/72.jpg)
Cloud Foundry Resources
71
Primary Site : cloudfoundry.com
Open Source Site : cloudfoundry.org
Twitter : @cloudfoundry , hash tag #cfoundry
Blog : blog.cloudfoundry.com
FB : facebook.com/cloudfoundry
Support : support.cloudfoundry.com• Documentation
• Knowledge Base
• Q & A / Forums
We’re hiring: www.cloudfoundry.com/jobs
Tuesday, April 24, 12
![Page 73: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/73.jpg)
72
Community
Oleg ZhurakouskySenior Software Engineer, SpringSource/VMware
Twitter: @z_oleg
Tuesday, April 24, 12
![Page 74: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/74.jpg)
Questions
73
?Tuesday, April 24, 12
![Page 75: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/75.jpg)
Thank You!@CloudFoundry
@chanezon
Website : www.cloudfoundry.comBlog : blog.cloudfoundry.comForum : support.cloudfoundry.com
t
t
Tuesday, April 24, 12
![Page 76: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/76.jpg)
Books / Articles
§ Nick Carr, The Big Switch
§ Eric Raymond, The Art of Unix Programming
§ Weinberg, Psychology of Computer Programming
§ Wes python book
§ Mark html5 book
§ Kent Beck XP
§ Hunt, Thomas, The Pragmatic Programmer
§ Ade Oshineye, Apprenticeship Patterns
§ Matt Cutt's Ignite Talk IO 2011, Trying different things
§ Josh Bloch talk about api design
§ Larry and Sergey, Anatomy of a Search Engine
§ Rob Pike, The Practice of Programming
75
Tuesday, April 24, 12
![Page 77: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/77.jpg)
Papers / Talks
§ Simon Wardley, Oscon 09 “Cloud - Why IT Matters”
§ Tim O’Reilly article on internet os
§ Peter Deutsch’s 8 Fallacies of Distributed Computing
§ Brewer’s CAP Theorem
§ Gregor Hohpe’s Starbucks Does Not Use Two-Phase Commit
§ Stuff I tag http://www.delicious.com/chanezon/
§ More specifically http://www.delicious.com/chanezon/cloudfoundry
§ My previous Talks http://www.slideshare.net/chanezon
§ My list of favorite books http://www.chanezon.com/pat/soft_books.html
76
Tuesday, April 24, 12
![Page 78: Cloud Foundry OpenTour Kiev Keynote](https://reader031.vdocuments.us/reader031/viewer/2022020207/554a0e34b4c90507558b4a27/html5/thumbnails/78.jpg)
Acknowledgement
§ Drawings from my daughters Eliette
§ Slides from Dave McCrory, Derek Collison, Duke Leto
§ Haiku from Addiss, Stephen; Yamamoto, Fumiko; Yamamoto, Fumiko Y.; Yamamoto, Akira Y. (2011-06-22). Haiku: An Anthology of Japanese Poems (Shambhala Library)
§ Painting Hiroshige, Sengai
77
Tuesday, April 24, 12