SpringOne2GX 2015 replay: Microservice Architecture with Grails

News | Pieter Humphrey | October 19, 2015 | ...

Recorded at SpringOne2GX 2015.

Speakers: Jeff Brown, OCI Web

Slides: http://www.slideshare.net/SpringCentral/microservice-architecture-with-grails-3

For some web applications it does not make sense to have 1 monolithing process which handles all of the requirements of the application. More and more often Grails is showing up in microservice architectures where instead of building 1 monolithing web application which is responsible for all of the pieces of the application puzzle, microservice applications are being assembled which collectively solve the requirements of the larger application. Grails is very well suited for this type of architecture. A microservice based architecture can result in applications which are easier to build…

SpringOne2GX 2015 replay: Restful Grails 3

News | Pieter Humphrey | October 19, 2015 | ...

Recorded at SpringOne2GX 2015.

Speakers: Jeff Brown, OCI Web

Slides: http://www.slideshare.net/SpringCentral/restful-grails3

Grails 3 includes a lot of features and functionality related to building RESTful services. These include an entirely new and more flexibile data binding system, runtime and compile time metaprogramming which greatly reduce the amount of code required in your RESTful services, a rich set of content negotiation tools and more.

SpringOne2GX 2015 replay: Bringing javax.cache'ing to your application

News | Pieter Humphrey | October 19, 2015 | ...

Recorded at SpringOne2GX 2015.

Speakers: Alex Snaps, Chris Dennis - Terracotta / Software AG

Slides: http://www.slideshare.net/SpringCentral/bringing-javaxcacheing-to-your-app

10 years in the making and finally JSR-107 has been finalized. We now have a standardized Caching API for the Java Platform. And that's all ready for you to use in your Spring apps. But what does it really enable for you? What's with these optional features? No transaction support? How do you efficiently make use of this new API to solve real world problems in your application today? We'll look into how get you best started introducing caching into your Spring application to solve real world problems. And, as we explore the javax.cache API in much more details, we'll see how to push the specifications to its limits and... beyond. Whether implicitly through frameworks (like Spring and Hibernate), or explicitly (cache-aside, cache-through, ...). And how to abstract yourself from a given provider when you require more than what the specifications cover (e.g. transactional caches). We'll also cover some implementer specifics you might want to account for when choosing an implementation, especially if you plan to push the spec to the extreme, like when going distributed and caching terabytes of data.

SpringOne2GX 2015 replay: Booting IoT with Grails

Engineering | Pieter Humphrey | October 19, 2015 | ...

Recorded at SpringOne2GX 2015.

Speakers: Colin Harrington, OCI Web

Slides: http://www.slideshare.net/SpringCentral/booting-iot-with-grails

In a world of the cloud, virtualization, containerization, microservices and nanoservices we talk about scaling up, scaling out, and decoupling our systems, but typically miss scaling down to an embedded platform. At the same time that we have moved away from heavy monolithic web containers, we've seen a rise of powerful low cost embedded Linux devices such as the RaspberryPi.

SpringOne2GX 2015 replay: Building and Tuning High Performance Java Platforms

News | Pieter Humphrey | October 19, 2015 | ...

Recorded at SpringOne2GX 2015.

Speakers: Emad Benjamin, VMWare

Slides: http://www.slideshare.net/SpringCentral/building-and-tuning-high-performance-java-platforms

In a world of the cloud, virtualization, containerization, microservices and nanoservices we talk about scaling up, scaling out, and decoupling our systems, but typically miss scaling down to an embedded platform. At the same time that we have moved away from heavy monolithic web containers, we've seen a rise of powerful low cost embedded Linux devices such as the RaspberryPi.

SpringOne2GX 2015 replay: Modern Frontend Engineering

News | Pieter Humphrey | October 19, 2015 | ...

Recorded at SpringOne2GX 2015.

Speakers: Dustin Whittle, AppDynamics

Slides: http://www.slideshare.net/SpringCentral/modern-frontend-engineering

The web has evolved tremendously in the last decade. In this talk we will dive into the latest tools and techniques that make for a modern foundation for frontend engineering. We will start with bootstrapping with Yeoman, move into managing dependencies with bower, and finally how to automate best practices with Grunt and Gulp. We will discuss the pros and cons of modern ui toolkits like Zurb, Bootstrap, and SemanticUI and modern javascript frameworks like React, Angular, and Ember. We will highlight the latest in css frameworks, javascript frameworks, and why you should choose the right toolset for complex app or a single page app. When you leave this session you will be prepared to launch a modern web application in 2015.

SpringOne2GX 2015 replay: Modern Java Component Design with Spring Framework 4.2

News | Pieter Humphrey | October 19, 2015 | ...

Recorded at SpringOne2GX 2015 Speakers: Juergen Holler, Stephane Nicoll Slides: http://www.slideshare.net/SpringCentral/modern-java-component-design-with-spring-framework-42 Spring's programming and configuration model has a strong design philosophy with respect to application components and configuration artifacts. Spring's annotation-based component story is fine-tuned for source code readability as well as consistency across an entire application's codebase. This session presents selected Spring Framework 4 component model highlights, with a focus on the upcoming Spring Framework 4.2 and…

Spring Boot 1.2.7 available now

Releases | Stéphane Nicoll | October 16, 2015 | ...

Spring Boot 1.2.7 has been released and is available now from repo.spring.io and Maven Central.

This maintenance release includes a number of fixes and most importantly updates the managed Spring Framework dependency to version 4.1.8 (which includes an important security fix). Spring Boot itself also includes a security fix that impacts applications using Undertow.

We recommend an immediate upgrade for all Spring Boot users.

Project Page | GitHub | Issues | Documentation

Spring IO Platform 1.1.4 released

Releases | Andy Wilkinson | October 16, 2015 | ...

Spring IO Platform 1.1.4.RELEASE is now available from both repo.spring.io and Maven Central.

This maintenance release upgrades the versions of a number of the projects in the Platform to pick up their latest maintenance releases:

  • Spring Boot 1.2.7.RELEASE
  • Spring Data Evans SR4
  • Spring Framework 4.1.8.RELEASE
  • Spring Integration 4.1.6.RELEASE
  • Spring LDAP 2.0.4.RELEASE
  • Spring Mobile 1.1.5.RELEASE
  • Spring Security 3.2.8.RELEASE
  • Spring Session 1.0.2.RELEASE
  • Spring Social Facebook 2.0.2.RELEASE
  • Spring Social LinkedIn 1.0.2.RELEASE
  • Spring Social Twitter 1.1.2.RELEASE
  • Spring Web Flow 2.4.2.RELEASE
  • Spring Web Services 2.2.2.RELEASE

The Spring Boot Dashboard in STS - Part 2: Working with Cloud Foundry

Engineering | Martin Lippert | October 15, 2015 | ...

Welcome back Spring community,

In this second part of our blog series about the new Spring Boot Dashboard in the Spring Tool Suite we will move beyond local applications in your workspace and take a look at remote apps deployed to a cloud runtime. If you missed the first part, please take a look it to get familiar with the boot dashboard in STS first.

Cloud runtime support

The initial remote target that we support in the Boot Dashboard is Cloud Foundry. Neither the design nor the implementation of the Boot Dashboard limits this to be the only supported remote target, it is just the first one that we worked on.

The goal for us was to provide a similar experience as for local apps, giving you an easy way to interact, start, stop, update, and lookup log output of your Spring Boot apps on Cloud Foundry. Therefore you can add a Cloud Foundry section to the boot dashboard using the big plus icon in the toolbar.

Once you entered your credentials and selected an org/space, a new section will appear in the boot dashboard, listing the apps that are deployed to this space on Cloud Foundry. You can see the name of the app as well as the number of instances that are configured and that are up and running.

The basic actions work for one or multiple apps on CF in the same or a very similar way to how they work for local apps. You can jump to the console output and it will appear in the console view of STS/Eclipse, you can start and stop apps, you can double-click them to get to a browser window for the running app, you can configure a default path for the app, and you can add/remove tags to/from those apps. You can even execute some of the actions (like start and stop) across targets, if you select multiple entries in the boot dashboard across those target sections.

In addition to the common actions that are suitable for local and apps on Cloud Foundry, there are certain additional actions specifically for apps on Cloud Foundry. The boot dashboard allows you, for example, to delete an app entirely from Cloud Foundry, or to easily jump to the web console.

Deploying to Cloud Foundry

Up to here, we talked about existing apps on Cloud Foundry. But how do you get your apps deployed to Cloud Foundry? There are various ways, using the CLI or the Eclipse Plugin for Cloud Foundry. The boot dashboard offers you another option: you can drag&drop your Spring Boot application directly onto the Cloud Foundry target in the dashboard and it will deploy the Spring Boot app to CF. This is as easy as its sounds.

If your application contains a manifest.yml file, this will be used to configure the application for Cloud Foundry. This typically contains the name of the app, the domain, memory settings, number of instances, and potentially a lot more.

If you don’t have a manifest.yml file in your project, the deploy action will prompt you in a dialog for the basic information it needs to deploy the app.

But take care: if the project contains a manifest.yml file, it will be used to deploy and configure the app. Changes to the configuration on CF that you might have made via the web console will be lost the next time you restart/redeploy/update your app using the boot dashboard. Either configure everything in the manifest.yml file or go without it altogether - at least for the moment. We will be working to improve this to allow more flexible ways of dealing with manifest.yml files and external changes to the config of your app, but that is something to be done in future releases of STS.

Once the app is deployed, the boot dashboard will keep the association between the project in your workspace and the deployed app on Cloud Foundry (and will show this association in the boot dashboard).

Keeping this association between your workspace project and the app on Cloud Foundry makes changes to this app a lot easier. If you change the code in your workspace and press the (re)start button for the app on CF, the boot dashboard will automatically re-push the app (the changes) to Cloud Foundry.

Once you have deployed your apps on Cloud Foundry, you often don’t need to work on everything locally at the same time. Usually you focus on certain parts of the application and sometimes you would like to use use even both: some services running on Cloud Foundry and some services running on your local machine in your IDE. But how do they interact?

Tunneling local services for mixed deployments

As an early experiment, we built a specific feature into the boot dashboard that lets you use all your services and apps on CF and have them call individual services running on your local machine. That way you can focus on individual projects of your landscape and continue to use Cloud Foundry for the rest of your world. You can quickly iterate and work on the code locally - and test it while working with the other parts on Cloud Foundry. Isn’t that great?

They way this works is: You have a service discovery mechanism for your microservices in place. At the moment we support the Eureka service discovery service for this feature. You can start your local Spring Boot app using a special action called “(re)start and expose app via ngrok”. Executing this action will (re)start your local app on your machine. At the same time the action will create a public visible tunnel to this app using the ngrok service. As a result, you get a publicly visible URL that routes all its traffic to your local machine and to the local Spring Boot app that is running on your local machine. The app is automatically configured to register with the remote Eureka using this publicly visible tunnel URL.

Clients to this service will now get this tunnel URL from Eureka instead of (or in addition to) the default instance of your service that might be running on Cloud Foundry already - and will call your locally running service instead of the one on CF. You can iterate on your local service quickly or even debug it.

This mixed deployment scenario is obviously not useful for production or team environments, where multiple people are using the applications on CF simultaneously. But this is extremely useful for testing and development environments.

The support for Cloud Foundry is just a starting point here. The Spring Boot Dashboard is by no means limited or focused on Cloud Foundry. Other remote cloud runtimes could and will be added in the future. One of the next runtimes that we are going to work on is Lattice, but other runtimes are very welcome as well. If you are interested in collaborating on this, let us know. The Spring Boot Dashboard is open-source under the EPL and we would be more than happy to collaborate with you on additional features and adding support for more cloud runtimes to it.

Outlook

The third part of this series will introduce you to the built-in support for the Spring Boot Devtools and how you can use them from within the Boot Dashboard to make quick modifications to your apps (even on CF) and how to do remote debugging on CF.

Get the Spring newsletter

Stay connected with the Spring newsletter

Subscribe

Get ahead

VMware offers training and certification to turbo-charge your progress.

Learn more

Get support

Tanzu Spring offers support and binaries for OpenJDK™, Spring, and Apache Tomcat® in one simple subscription.

Learn more

Upcoming events

Check out all the upcoming events in the Spring community.

View all