Cloud Foundry for Spring DevelopersGunnar Hillert, Member of Technical Staff, Spring Integration                          ...
Agenda§  Overview§  Deployment§  Debugging§  Profiling§  Agnostic War Files§  Modular Cloud Apps                    ...
What is Cloud Foundry?                         3
4
Three Layers of Cloud Computing§  SaaS  •  Software as a Service§  PaaS  •  Platform as a Service§  IaaS  •  Infrastruc...
Choice of clouds                                        .js       Data       Services                                     ...
Broad Support for Languages/Application Frameworks§  JVM  •  Spring, Grails, Roo, Lift, plain Java§  Ruby  •  Rails, Sin...
JVM Frameworks§  Unit of deployment: Java WAR files  •  Can run any standard War file  •  Servlet 2.5  •  Don’t assume pa...
Services§  Relational database  •  Postgres  •  MySQL§  Key-value store  •  Redis§  Document store  •  MongoDB§  Messa...
Open Source§  Source code available under Apache License v2.0 •  https://github.com/cloudfoundry/•  VCAP •  https://githu...
Logical View               11
Architecture     Architecture           25 Thursday, October 27, 11   12
Deployment Options                     13
Deployment Options§  VMC  •  Ruby based command line tool§  SpringSource Tool Suite (STS)§  Grails§  Spring Roo Cloud ...
DEMODeployment Options                     15
Debugging            16
Debugging§  Start Cloud Foundry applications in debug mode§  Set Break Points for Micro Cloud Foundry§  STS 2.8.1 suppo...
Caldecott§  TCP over HTTP tunnel§  Local client§  Remote server                           18
Caldecott - Multiple Services and Sessions§  One vcc server instance •  Manages multiple tunnels§  One vcc client instan...
DEMODebugging            20
Profiling            21
Profiling – Spring Insight§  Providing real-time application runtime performance and behavior information for Java Spring...
DEMOSpring Insight for Cloud Foundry                                   23
Agnostic War Files                     24
Agnostic War Files – Toolbox§  Auto Reconfiguration§  Cloud Namespace§  Spring 3.1 Profiles                            ...
Agnostic War Files – Auto Reconfiguration§  Move existing Applications easily to Cloud Foundry§  Makes 2 modifications a...
Agnostic War Files – Auto Reconfiguration        Service Type                 Replaced Bean Type           MySQL       jav...
Agnostic War Files – Auto Reconfiguration§  Limitations  •  one service of a given service type  •  one bean of the match...
Agnostic War Files – Cloud Namespace§  Explicit configuration of Cloud Foundry Services§  Finer grained control of confi...
Agnostic War Files – Cloud Namespace§  Setup – Maven<dependency>  <groupId>org.cloudfoundry</groupId>  <artifactId>cloudf...
Available Namespace Elements§  Define and use a DataSource <cloud:data-source id="dataSource" /> <bean id="jdbcTemplate” ...
Available Namespace Elements§  MongoDB Support •  <cloud:mongo-db-factory>§  Redis Support •  <cloud:redis-connection-fa...
Agnostic War Files – Spring Profiles§  Spring 3.1 adds new support for environments§  Deploy to Cloud Foundry and Stand-...
Modular Cloud Apps                     34
Monolithic Enterprise Application                                    35
Benefits of App-level Modularity§  Efficient Elasticity§  Fault Isolation§  Dynamic Configuration§  “always-on”/Rollin...
Modularized Enterprise Application                                     37
DEMOSpring Integration                     38
Resources            39
Resources§  Cloud Foundry on Ubuntu  http://blog.dustinkirkland.com/2011/08/howto-install-cloudfoundry-server-  paas.html...
Resources§  Cloud Foundry Maven Plugin  http://blog.springsource.com/2011/09/22/rapid-cloud-foundry-deployments-with-  ma...
Resources§  Spring Auto Reconfiguration  http://blog.springsource.org/2011/11/04/using-cloud-foundry-services-with-spring...
Resources§  Spring Integration  http://www.springsource.org/spring-integration  https://github.com/SpringSource/spring-in...
THANK YOU!     Sign up for a free account at: http://www.cloudfoundry.com/Email:      ghillert@vmware.comTwitter:    https...
Upcoming SlideShare
Loading in...5
×

Cloud Foundry for Spring Developers

3,481

Published on

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.

Published in: Technology
0 Comments
9 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,481
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
127
Comments
0
Likes
9
Embeds 0
No embeds

No notes for slide
  • 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
  • Transcript of "Cloud Foundry for Spring Developers"

    1. 1. Cloud Foundry for Spring DevelopersGunnar 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. DEMODeployment 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. DEMODebugging 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. DEMOSpring 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. DEMOSpring 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.comTwitter: https://twitter.com/ghillertBlog: http://blog.hillert.com 44
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×