Successfully reported this slideshow.
Your SlideShare is downloading. ×

Cloud Foundry for Spring Developers

Ad

Cloud Foundry for Spring Developers

Gunnar Hillert, Member of Technical Staff, Spring Integration




                   ...

Ad

Agenda

§  Overview
§  Deployment
§  Debugging
§  Profiling
§  Agnostic War Files
§  Modular Cloud Apps




        ...

Ad

What is Cloud Foundry?




                         3

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Loading in …3
×

Check these out next

1 of 44 Ad
1 of 44 Ad

Cloud Foundry for Spring Developers

Download to read offline

This session provides an overview of how to build and deploy Spring-based applications to the Cloud Foundry platform.
The session will cover application configuration parameters, binding services to your application, deployment options using using STS, the vmc command tool, as well as the new Apache Maven plugin for Cloud Foundry. Gunnar will demonstrate how to deploy applications to both micro and public Cloud Foundry and will also show how debugging works with Cloud Foundry and how you can inspect services remotely using Caldecott.

Gunnar will also show various options to keep your War-files deployable to both Cloud Foundry and stand-alone Servlet Containers using auto-reconfiguration, the cloud namespace, and Spring 3.1 profiles.

Lastly, he will give a high-level overview how you can use Cloud Foundry together with Spring Integration in order to create scalable Spring applications.

This session provides an overview of how to build and deploy Spring-based applications to the Cloud Foundry platform.
The session will cover application configuration parameters, binding services to your application, deployment options using using STS, the vmc command tool, as well as the new Apache Maven plugin for Cloud Foundry. Gunnar will demonstrate how to deploy applications to both micro and public Cloud Foundry and will also show how debugging works with Cloud Foundry and how you can inspect services remotely using Caldecott.

Gunnar will also show various options to keep your War-files deployable to both Cloud Foundry and stand-alone Servlet Containers using auto-reconfiguration, the cloud namespace, and Spring 3.1 profiles.

Lastly, he will give a high-level overview how you can use Cloud Foundry together with Spring Integration in order to create scalable Spring applications.

Advertisement
Advertisement

More Related Content

Slideshows for you (19)

Advertisement
Advertisement

Cloud Foundry for Spring Developers

  1. 1. Cloud Foundry for Spring Developers Gunnar Hillert, Member of Technical Staff, Spring Integration © 2011 SpringSource, A division of VMware. All rights reserved
  2. 2. Agenda §  Overview §  Deployment §  Debugging §  Profiling §  Agnostic War Files §  Modular Cloud Apps 2
  3. 3. What is Cloud Foundry? 3
  4. 4. 4
  5. 5. Three Layers of Cloud Computing §  SaaS •  Software as a Service §  PaaS •  Platform as a Service §  IaaS •  Infrastructure as a Service 5
  6. 6. Choice of clouds .js Data Services Private     Clouds     …   Msg Services Public   Clouds   .COM Other Micro   Services Clouds   6
  7. 7. Broad Support for Languages/Application Frameworks §  JVM •  Spring, Grails, Roo, Lift, plain Java §  Ruby •  Rails, Sinatra §  Node.js §  Community contributions •  Erlang, Python, PHP 7
  8. 8. JVM Frameworks §  Unit of deployment: Java WAR files •  Can run any standard War file •  Servlet 2.5 •  Don’t assume particular container §  Spring, Grails, Lift framework •  Auto-reconfiguration goodies 8
  9. 9. Services §  Relational database •  Postgres •  MySQL §  Key-value store •  Redis §  Document store •  MongoDB §  Messaging •  RabbitMQ 9
  10. 10. Open Source §  Source code available under Apache License v2.0 •  https://github.com/cloudfoundry/ •  VCAP •  https://github.com/cloudfoundry/vcap •  Project Website •  http://cloudfoundry.org/ 10
  11. 11. Logical View 11
  12. 12. Architecture Architecture 25 Thursday, October 27, 11 12
  13. 13. Deployment Options 13
  14. 14. Deployment Options §  VMC •  Ruby based command line tool §  SpringSource Tool Suite (STS) §  Grails §  Spring Roo Cloud Foundry Addon §  Cloud Foundry Maven Plugin §  vcap-java-client •  Used by STS and Cloud Foundry Maven Plugin 14
  15. 15. DEMO Deployment Options 15
  16. 16. Debugging 16
  17. 17. Debugging §  Start Cloud Foundry applications in debug mode §  Set Break Points for Micro Cloud Foundry §  STS 2.8.1 supports it §  Coming with Micro Cloud Foundry 1.1.1 (Currently RC) 17
  18. 18. Caldecott §  TCP over HTTP tunnel §  Local client §  Remote server 18
  19. 19. Caldecott - Multiple Services and Sessions §  One vcc server instance •  Manages multiple tunnels §  One vcc client instance per service •  Multiple local apps may share a client if they connect to the same remote server:port •  Each listens on different local port 19
  20. 20. DEMO Debugging 20
  21. 21. Profiling 21
  22. 22. Profiling – Spring Insight §  Providing real-time application runtime performance and behavior information for Java Spring applications §  Beta available for CloudFoundry.com §  Signup at: insight.cloudfoundry.com §  Write your own plugins •  https://github.com/SpringSource/spring-insight-plugins 22
  23. 23. DEMO Spring Insight for Cloud Foundry 23
  24. 24. Agnostic War Files 24
  25. 25. Agnostic War Files – Toolbox §  Auto Reconfiguration §  Cloud Namespace §  Spring 3.1 Profiles 25
  26. 26. Agnostic War Files – Auto Reconfiguration §  Move existing Applications easily to Cloud Foundry §  Makes 2 modifications at deploy time: •  Adds additional Jar •  Updates web.xml §  BeanFactoryPostProcessor examines the application context before creating beans §  Swaps existing beans of matching types 26
  27. 27. Agnostic War Files – Auto Reconfiguration Service Type Replaced Bean Type MySQL javax.sql.DataSource Postgres javax.sql.DataSource Redis org.sf.data.redis.connection.RedisConnectionFactory MongoDB org.sf.data.document.mongodb.MongoDbFactory RabbitMQ org.sf.amqp.rabbit.connection.ConnectionFactory 27
  28. 28. Agnostic War Files – Auto Reconfiguration §  Limitations •  one service of a given service type •  one bean of the matching type •  If application does not follow limits, auto-reconfiguration mechanism will not take place 28
  29. 29. Agnostic War Files – Cloud Namespace §  Explicit configuration of Cloud Foundry Services §  Finer grained control of configuration parameters §  Necessary when configuring multiple services of same type 29
  30. 30. Agnostic War Files – Cloud Namespace §  Setup – Maven <dependency> <groupId>org.cloudfoundry</groupId> <artifactId>cloudfoundry-runtime</artifactId> <version>0.8.1</version> </dependency> §  Setup – Spring Application Context <?xml version="1.0" encoding="UTF-8"?> <beans … xmlns:cloud="http://schema.cloudfoundry.org/spring" xsi:schemaLocation=“http://schema.cloudfoundry.org/spring http://schema.cloudfoundry.org/spring/cloudfoundry-spring-0.8.xsd"> 30
  31. 31. Available Namespace Elements §  Define and use a DataSource <cloud:data-source id="dataSource" /> <bean id="jdbcTemplate” class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource" /> </bean> §  Optional Subelements •  <cloud:connection> •  <cloud:pool> 31
  32. 32. Available Namespace Elements §  MongoDB Support •  <cloud:mongo-db-factory> §  Redis Support •  <cloud:redis-connection-factory> §  RabbitMQ •  <cloud:rabbit-connection-factory> §  Autocreate Services •  <cloud:service-scan> 32
  33. 33. Agnostic War Files – Spring Profiles §  Spring 3.1 adds new support for environments §  Deploy to Cloud Foundry and Stand-alone Containers <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate"> <constructor-arg ref="mongoDbFactory" /> </bean> <beans profile="default"> <mongo:db-factory id="mongoDbFactory" dbname="pwdtest" host="127.0.0.1" port="27017" username="test_user" password=”s3cr3t" /> </beans> <beans profile="cloud"> <cloud:mongo-db-factory id="mongoDbFactory" /> </beans> 33
  34. 34. Modular Cloud Apps 34
  35. 35. Monolithic Enterprise Application 35
  36. 36. Benefits of App-level Modularity §  Efficient Elasticity §  Fault Isolation §  Dynamic Configuration §  “always-on”/Rolling Upgrades 36
  37. 37. Modularized Enterprise Application 37
  38. 38. DEMO Spring Integration 38
  39. 39. Resources 39
  40. 40. Resources §  Cloud Foundry on Ubuntu http://blog.dustinkirkland.com/2011/08/howto-install-cloudfoundry-server- paas.html §  VMC http://support.cloudfoundry.com/entries/20012337-getting-started-guide- command-line-vmc-users http://cloudfoundry.zendesk.com/entries/20012462-getting-started-guide-sts-users http://blog.dustinkirkland.com/2011/07/getting-started-with-cloudfoundry.html http://blog.cloudfoundry.com/post/9037486110/vmc-everywhere 40
  41. 41. Resources §  Cloud Foundry Maven Plugin http://blog.springsource.com/2011/09/22/rapid-cloud-foundry-deployments-with- maven/ https://github.com/cloudfoundry/vcap-java-client/tree/master/cloudfoundry-maven- plugin (Sources + Reference Documentation) §  Caldecott http://blog.cloudfoundry.com/post/12928974099/now-you-can-tunnel-into-any- cloud-foundry-data-service §  Cloud Foundry Samples https://github.com/SpringSource/cloudfoundry-samples 41
  42. 42. Resources §  Spring Auto Reconfiguration http://blog.springsource.org/2011/11/04/using-cloud-foundry-services-with-spring- part-2-auto-reconfiguration/ §  Spring Insight for Cloud Foundry http://insight.cloudfoundry.com/ §  Cloud Foundry Namespace http://blog.springsource.org/2011/11/09/using-cloud-foundry-services-with-spring- applications-part-3-the-cloud-namespace/ §  Spring Profiles http://blog.springsource.org/2011/11/10/using-cloud-foundry-services-with-spring- part-4-%E2%80%93-spring-profiles/ 42
  43. 43. Resources §  Spring Integration http://www.springsource.org/spring-integration https://github.com/SpringSource/spring-integration §  Samples https://github.com/SpringSource/cloudfoundry-samples https://github.com/markfisher/springone-wgrus 43
  44. 44. THANK YOU! Sign up for a free account at: http://www.cloudfoundry.com/ Email: ghillert@vmware.com Twitter: https://twitter.com/ghillert Blog: http://blog.hillert.com 44

Editor's Notes

  • Cloud Controller Main Brain
  • http://blog.springsource.com/2011/09/22/rapid-cloud-foundry-deployments-with-maven/git clone https://github.com/SpringSource/cloudfoundry-samples.gitcd cloudfoundry-samples/hello-javamvn clean packagevmc helpvmc target http://api.cloudfoundry.comVmc info
  • ----- Meeting Notes (11/28/11 13:16) -----
  • Sometime Autoconfiguration is not sufficient

×