Cloud Foundry Bootcamp

  • 2,072 views
Uploaded on

Presentation given in Zurich at the Zurich IT Geeks Meetup demoing Cloud Foundry PaaS.

Presentation given in Zurich at the Zurich IT Geeks Meetup demoing Cloud Foundry PaaS.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,072
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
48
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Cloud Foundry Bootcamp Alvaro Videla Developer Advocate avidela@vmware.com @old_sound © 2012 VMware, Inc. All rights reservedWednesday, November 21, 12
  • 2. About Me • Developer Advocate for Cloud Foundry • Blog: http://videlalvaro.github.com/ • Twitter: @old_sound • http://slideshare.net/old_sound 2Wednesday, November 21, 12
  • 3. About Me • Developer Advocate for Cloud Foundry • Blog: http://videlalvaro.github.com/ • Twitter: @old_sound • I created gifsockets™ 3Wednesday, November 21, 12
  • 4. About Me Co-authored RabbitMQ in Action http://bit.ly/rabbitmq 4Wednesday, November 21, 12
  • 5. Capabilities The Basics How it Works (Architecture) Micro Cloud Foundry CONFIDENTIAL 5Wednesday, November 21, 12
  • 6. What does Cloud Foundry offer? CONFIDENTIAL 6Wednesday, November 21, 12
  • 7. Cloud Foundry: Choice of Runtimes CONFIDENTIALWednesday, November 21, 12
  • 8. Frameworks and Runtimes Supported • Out of the Box • Java (.WAR files, on Tomcat. Spring’s an ideal choice here, of course..) • Scala (Lift, Play!) • Ruby (Rails, Sinatra, etc.) • Node.js • Ecosystem Partners • .NET (Uhuru, Tier3) • Python (Stackato) • PHP (AppFog) • Haskell (1) • Erlang (2) 1) http://www.cakesolutions.net/teamblogs/2011/11/25/haskell-happstack-on-cloudfoundry/ 2) https://github.com/cloudfoundry/vcap/pull/20 CONFIDENTIALWednesday, November 21, 12
  • 9. Cloud Foundry: Choice of Clouds CONFIDENTIAL 9Wednesday, November 21, 12
  • 10. Main Risk: Lock In Welcome to the hotel California Such a lovely place Such a lovely face Plenty of room at the hotel California Any time of year, you can find it here Last thing I remember, I was Running for the door I had to find the passage back To 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! -the Eagles CONFIDENTIAL 10Wednesday, November 21, 12
  • 11. Cloud Foundry.org CONFIDENTIAL 11Wednesday, November 21, 12
  • 12. Cloud Foundry: Clouds § AppFog.com • community lead for PHP • PaaS for PHP § Joyent • community lead for Node.js § ActiveState • community lead for Python, Perl • Providers of Stackato private PaaS CONFIDENTIAL 12Wednesday, November 21, 12
  • 13. Micro Cloud Foundry CONFIDENTIAL 13Wednesday, November 21, 12
  • 14. Cloud Foundry: Services CONFIDENTIAL 14Wednesday, November 21, 12
  • 15. Cloud Foundry: Services § Services are one of the extensibility planes in Cloud Foundry • there are more services being contributed by the community daily! § MySQL, Redis, MongoDB, RabbitMQ, PostgreSQL § Services may be shared across applications § Cloud Foundry abstracts the provisioning aspect of services through a uniform API hosted in the Cloud Controller § It’s very easy to take an app and add a service to the app in a uniform way CONFIDENTIAL 15Wednesday, November 21, 12
  • 16. Cloud Foundry: Services § Take Advantage of Services • they cost nothing to setup • they deliver value § They Encourage Better Architectures • Need a fast read-write cache? Redis is ready to go! • Need to store long-tail documents? Give MongoDB a try • Need to decouple what applications do from when they do it? Use messaging and RabbitMQ CONFIDENTIAL 16Wednesday, November 21, 12
  • 17. Demo: logging in, asking questions, & deploying from the CLI CONFIDENTIAL 17Wednesday, November 21, 12
  • 18. Cloud Foundry architecture CONFIDENTIAL 18Wednesday, November 21, 12
  • 19. Cloud Foundry - Architecture Message Bus Web Message Bus Web Message Bus (NATS) (NATS) (NATS)100s of DEAs Load Load App Load Balancers App Balancers Balancers App DEAs DEAs DEAs Cloud Routers Routers Cloud Routers Cloud Controllers DB Controllers Controllers DB DB Web Health Health Health Service API Services Services Services Manager Manager Manager Client, e.g. VMC CONFIDENTIALWednesday, November 21, 12
  • 20. Application deployment flow Cloud VMC DEA Controller DEA Application Router Router CONFIDENTIALWednesday, November 21, 12
  • 21. Application deployment flowvmc push Cloud VMC DEA Controller DEA Application Router Router CONFIDENTIALWednesday, November 21, 12
  • 22. Application deployment flowvmc push Cloud VMC DEA Controller DEA Application Framework detection Router Router CONFIDENTIALWednesday, November 21, 12
  • 23. Application deployment flowvmc push create Cloud VMC DEA app Controller DEA Application Framework detection Router Router CONFIDENTIALWednesday, November 21, 12
  • 24. Application deployment flowvmc push create Cloud VMC DEA app Controller DEA Application Framework detection Framework specific staging plugin Creates Droplet Router Router CONFIDENTIALWednesday, November 21, 12
  • 25. Application deployment flow find DEA for appvmc push create Cloud VMC DEA app Controller DEA Application Framework detection Framework specific staging plugin Creates Droplet Router Router CONFIDENTIALWednesday, November 21, 12
  • 26. Application deployment flow find DEA for appvmc push I’m create Cloud VMC available DEA app Controller DEA Application Framework detection Framework specific staging plugin Creates Droplet Router Router CONFIDENTIALWednesday, November 21, 12
  • 27. Application deployment flow find DEA for appvmc push I’m create Cloud VMC available DEA app Controller DEA Application deploy Framework droplet detection Framework specific staging plugin Creates Droplet Router Router CONFIDENTIALWednesday, November 21, 12
  • 28. Application deployment flow find DEA for appvmc push I’m create Cloud VMC available DEA start app Controller DEA Application deploy Framework droplet detection Framework specific staging plugin Creates Droplet Router Router CONFIDENTIALWednesday, November 21, 12
  • 29. Application deployment flow find DEA for appvmc push I’m create Cloud VMC available DEA start app Controller DEA Application deploy Framework droplet detection Framework specific staging plugin update routes Creates Droplet Router Router CONFIDENTIALWednesday, November 21, 12
  • 30. About the staging plugin § Framework specific § Creates a zip file = black box • Contains everything necessary for DEA to run the application • Two scripts: start.sh, stop.sh CONFIDENTIAL 21Wednesday, November 21, 12
  • 31. Request handling flow HTTP Request HTTP Request HTTP Request Load Balancer Router Application Load Balancer Router DEA CONFIDENTIAL 22Wednesday, November 21, 12
  • 32. Request handling flow HTTP Request HTTP Request HTTP Request Load Balancer Router Application Load Balancer Router DEA CONFIDENTIAL 22Wednesday, November 21, 12
  • 33. Self Healing Infrastructure § If an application instance crashes • DEA detects unexpected exit => DEA broadcasts message • Routers remove instance from routing • Health manager notifies Cloud Controller • Cloud Controller re-launches instance § If an DEA VM crashes • Application instances become unavailable • Health Manager notices the missing instances and notifies the Cloud Controller • Cloud Controller requests application instances to be started • Existing DEA will reply and start the applications CONFIDENTIALWednesday, November 21, 12
  • 34. Micro Cloud Foundry CONFIDENTIAL 24Wednesday, November 21, 12
  • 35. What is in Micro Cloud Foundry? App Instances Services Open source Platform as a Service project A cloud packaged as a VMware Virtual Machine Use as a developer sandbox • Use the services from Junit integration tests • Deploy your application for functional testing • Remote debugging from STS CONFIDENTIAL 25Wednesday, November 21, 12
  • 36. Pre-requisites for using Micro Cloud Foundry Minimum 1 GB Minimum 8 GB Internet Connectivity RAM Disk (w/DHCP is ideal) VMC STS Command line GUI CONFIDENTIAL 26Wednesday, November 21, 12
  • 37. Register and login to CloudFoundry.com CONFIDENTIAL 27Wednesday, November 21, 12
  • 38. Select a domain name *.cloudfoundry.me => IP address of your machine where Micro Cloud Foundry is running CONFIDENTIAL 28Wednesday, November 21, 12
  • 39. Remember the configuration token CONFIDENTIAL 29Wednesday, November 21, 12
  • 40. Download, unzip and open micro.vmx CONFIDENTIAL 30Wednesday, November 21, 12
  • 41. Configure Micro Cloud Foundry CONFIDENTIAL 31Wednesday, November 21, 12
  • 42. Configure Micro Cloud Foundry Pick password CONFIDENTIAL 31Wednesday, November 21, 12
  • 43. Configure Micro Cloud Foundry Pick password Enter token CONFIDENTIAL 31Wednesday, November 21, 12
  • 44. Getting started with Cloud Foundry... CONFIDENTIAL 32Wednesday, November 21, 12
  • 45. Register http://cloudfoundry.com/signup Use promo code cfnownov12 CONFIDENTIAL 33Wednesday, November 21, 12
  • 46. Welcome email CONFIDENTIAL 34Wednesday, November 21, 12
  • 47. Ways to use Cloud Foundry command line... IDE plugin... toolchain plugin... Cloud IDEs CONFIDENTIAL 35Wednesday, November 21, 12
  • 48. Example vmc commands $  gem  install  vmc $  vmc  target  <any  cloud> $  vmc  login  <credentials> $  vmc  push  <my-­‐app>      >  bind  services?  Yes $  vmc  update  <my-­‐app> $  vmc  instances  <my-­‐app>  +100   CONFIDENTIAL 36Wednesday, November 21, 12
  • 49. Installing vmc on Windows CONFIDENTIAL 37Wednesday, November 21, 12
  • 50. Installing vmc on Windows Install the vmc gem CONFIDENTIAL 37Wednesday, November 21, 12
  • 51. Installing vmc on Mac OSX Use Ruby Version Manager http://beginrescueend.com/ $ curl -L https://get.rvm.io | bash -s stable --ruby $ rvm install 1.9.2 $ rvm use 1.9.2 You need: $ gem install vmc Command Line Tools for OSX or XCode 4.1 CONFIDENTIAL 38Wednesday, November 21, 12
  • 52. Logging into CloudFoundry.com CONFIDENTIAL 39Wednesday, November 21, 12
  • 53. Logging into CloudFoundry.com$  vmc  target  api.cloudfoundry.comSuccessfully  targeted  to                  [http://api.cloudfoundry.com] CONFIDENTIAL 39Wednesday, November 21, 12
  • 54. Logging into CloudFoundry.com$  vmc  target  api.cloudfoundry.comSuccessfully  targeted  to                  [http://api.cloudfoundry.com]$  vmc  loginAttempting  login  to      [http://api.cloudfoundry.com]Email:  avidela@vmware.comPassword:  ********Successfully  logged  into      [http://api.cloudfoundry.com] CONFIDENTIAL 39Wednesday, November 21, 12
  • 55. Cloud Foundry Integration plugin for Eclipse Eclipse support: ✦ CF Integration for Eclipse ✦ SpringSource Tool Suite 40Wednesday, November 21, 12
  • 56. Cloud Foundry Integration plugin for Eclipse 41Wednesday, November 21, 12
  • 57. Sample App: CloudStagram 42Wednesday, November 21, 12
  • 58. Sample App: CloudStagram 43Wednesday, November 21, 12
  • 59. Sample App: CloudStagram 44Wednesday, November 21, 12
  • 60. Sample App: CloudStagram 45Wednesday, November 21, 12
  • 61. Sample App: CloudStagram 46Wednesday, November 21, 12
  • 62. Sample App: CloudStagram 47Wednesday, November 21, 12
  • 63. Sample App: CloudStagram 48Wednesday, November 21, 12
  • 64. Sample App: CloudStagram 49Wednesday, November 21, 12
  • 65. Sample App: CloudStagram Frontend App node.js 50Wednesday, November 21, 12
  • 66. Sample App: CloudStagram Frontend App node.js Image Resizers node.js 51Wednesday, November 21, 12
  • 67. Sample App: CloudStagram Frontend App node.js Image Resizers Clojure 52Wednesday, November 21, 12
  • 68. CODE OR IT DIDN’T HAPPEN 53Wednesday, November 21, 12
  • 69. Thank You CloudFoundry Source Samples: https://github.com/cloudfoundry-samples/ http://cloudfoundry.com Questions? @cloudfoundry #cloudfoundry @old_sound / avidela@vmware.com © 2012 VMware, Inc. All rights reservedWednesday, November 21, 12