Your SlideShare is downloading. ×
  • Like
  • Save

Thanks for flagging this SlideShare!

Oops! An error has occurred.


Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Run your Java apps on Cloud Foundry


Talk presented at JAX London 2013

Talk presented at JAX London 2013

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


Total Views
On SlideShare
From Embeds
Number of Embeds



Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide


  • 1. Andy Piper | @andypiper | Cloud Foundry Developer Advocate, Pivotal Run Your Java Apps on Cloud Foundry
  • 2. Hello I’m Andy
  • 3. Developer Advocate @ Cloud Foundry social web enthusiast maker, educator, LEGO fan OSS contributor Eclipse Project Lead (Paho / MQTT) excited by “what’s next”, Internet of Things, etc. ! ! @andypiper a few things about me
  • 4. Developer Advocate? hellz to the yeah!
  • 5. @andypiper ! [works on] ! #cloudfoundry ! [at] ! @gopivotal
  • 6. 1. Why is an Open Cloud Platform important? 2. What is Cloud Foundry? 3. Java support in the open cloud
  • 7. Why is an Open Cloud Platform important?
  • 8. From: torvalds@klaava.Helsinki.FI Newsgroups: comp.os.minix Date: 25 Aug 91 20:57:08 GMT Organization: University of Helsinki 1991 An important year in software Hello everybody out there using minix ! I’m doing a (free) operating system (just a hobby, won’t be big and professional like gnu) for 386(486) AT clones.
  • 9. ~21 years later: Linux has won
  • 10. #P0WN ALL TEH GADGETZ ! Linux runs everywhere (even old versions, on crashy airline entertainment systems...)
  • 11. It works.
  • 12. Don’t be locked-in do you know what is coming tomorrow?
  • 13. What is Cloud Foundry?
  • 14. Software Gmail, Salesforce, Flickr, Google Docs... Platform Google AppEngine, Heroku, Cloud Foundry, EngineYard, Apprenda... Infrastructure 3 layers Amazon EC2, Google CE, OpenStack, vSphere, Joyent, Cloud Stack, Eucalyptus... IaaS, PaaS, SaaS
  • 15. Cloud Foundry - the Open PaaS Public& Clouds Private& Clouds CUSTOM 
 SERVICES Open Source
  • 16. “… we believe that the best solution should be available on top of any cloud and not just be locked into EC2” ! - Mike Soby in JAX Magazine Special Edition
  • 17. All the pieces to make your own! “if you can’t open it, you don’t own it” (O’Reilly MAKE)
  • 18. Open & public from the start Code all on Github
  • 19. Why is it so hard...? A real deployment flow (!)
  • 20. DEVELOPER OPERATOR cf#iaas.yml+ target+<my+cloud>+ provision+<my+cloud>+ push+<my+app>+ add_capacity+<my+cloud> create+<my+services>+ bind+<my+services>+ scale+<my+app>++100 Cloud Deployment: 2-4 hours An alternative approach... App Deployment: 30-90 seconds Cloud Foundry can make it simpler!
  • 21. CLOUD FOUNDRY Demo 

  • 22. Java (and JVM language) support in Cloud Foundry
  • 23. From VM-centric to Application Centric App App App App Dev Framework Dev Framework Dev Framework Configurations Configurations Manifests, Automations JVM JVM App Server App Server VM VM Infrastructure
 One Infrastructure
 Two Container 1 JVM Container 2 JVM App Server App Server Infrastructure
 One Infrastructure
  • 24. Buildpacks Buildpacks are responsible for preparing the machine image for an application Application Buildpack Container Libraries DEA Runtime Operating System } Droplet
  • 25. Compatibility Cloud Foundry buildpacks follow the 
 Heroku buildpack design Cloud Foundry and Heroku buildpacks are compatible
 (if you take care to make them compatible) ! Other PaaS providers are adopting the 
 buildpack design - emerging convention
  • 26. Built-in Buildpacks → → →
  • 27. Tested Buildpacks Containers Languages Haskell
  • 28. Java Buildpack Supports a variety of JVM languages, containers, and frameworks with a modular, configurable, and extensible design
  • 29. “The primary objective of the Java buildpack is to be the easiest way to run a Java application. The word easiest can mean a lot of things, but to me it means that a developer can push an application and have an “it just works™” experience.” ! - Ben Hale, Java buildpack engineer
  • 30. Java Buildpack Concepts Containers Frameworks Java main() Spring config Play config Play JPA config New Relic Tomcat Groovy Spring Boot CLI Play JREs OpenJDK, etc.
  • 31. Container Detection Criteria Java main() META-INF/MANIFEST.MF exists with Main-class attribute set Tomcat WEB-INF directory exists Groovy .groovy file with a main() method, or! .groovy file with no classes, or! .groovy file with a shebang (#!) declaration Spring Boot CLI one or more POGO .groovy files with no main() method, and no WEB-INF directory Play start and lib/play.play_*.jar exist Choose zero or one
  • 32. Framework Detection Criteria Spring spring-core*.jar exists Play config Play application detected Play JPA config play-java-jpa plugin exists in app New Relic New Relic service bound to app Choose all that apply
  • 33. Customization Two ways to customize the Java buildpack Configure artifacts used by standard JREs, Containers, and Frameworks Extend the buildpack with your own JREs, Containers, and Frameworks Customization is done by forking the buildpack →
  • 34. Choice! • IBM donated WebSphere Liberty Buildpack • Other forks add additional containers and frameworks Jonas, Dropwizard, Karaf, etc
  • 35. Tooling support $ mvn clean package cf:push! $ gradle clean assemble cf-push
  • 36. the new Spring
  • 37. XD BOOT Stream, Taps, Jobs GRAILS Bootable, Minimal, Ops-Ready Full-stack, Web INTEGRATION BATCH BIG DATA WEB Channels, Adapters,
 Filters, Transformers Jobs, Steps,
 Readers, Writers Ingestion, Export,
 Orchestration, Hadoop Controllers, REST,
  • 38. Groovy and Spring Boot
  • 39. Groovy and Spring Boot
  • 40. Groovy and Spring Boot
  • 41. Spring and the Cloud • Goal: deploy Spring apps to the cloud without changing a single line of code • Cloud Foundry automatically re-configures bean definitions to bind to cloud services • Works with Spring and Grails
  • 42. Portability
  • 43. SPRING 
  • 44. … and finally …
  • 45. Try It!
  • 46. Join us! ... a pull request is all it takes!
  • 47. Connect 

  • 48. Credits • Padlock • Other images are author’s own, or royalty-free and CC-licensed works 
 from Wikimedia Commons • Thanks to Scott Frederick, Josh Long and Guillaume Laforge for content