Back from spring.io 2016

| 6 minutes read

The new spring.io conference has been scheduled once again in the beautiful city of Barcelona. This year we talked about Spring Framework (of course), Spring Boot, Spring Cloud, Spring Data, cloud deployment, distributed API, reactive programming… the direction is quiet clear: cloud ready reactive microservices architecture.

Spring.IO is a technical oriented conference, dedicated to the Spring framework ecosystem. The entire agenda (http://www.springio.net/agenda/) is quiet hard to follow (too much interesting subjects). The planning offered 3 concurrent session tracks, and one track for getting hands on with workshops. Below some of the great sessions that we could see.

 2016-05-20 15.31.54

What’s new in Spring?

The first day’s opening keynote is this year focused on majors step of the green leaf framework: 4.3 & 5 with the keynote from Juergen HoellerStéphane Nicoll and Phil Webb. Next few days, will be release Spring 4.3, bringing bunch of fixes & new features and with it:

  • Testing improvement with  annotations & mock integration : Testing improvements
  • Restfull documentation api : Spring REST Docs a mix with hand written information and auto-generated snippets
  • Devtools, the every day life developer survival kit : live-reload, automatic restart, remote debug tunneling  restart  : devtools
  • Stacktrace sanitize (action / message)
  • Distributed tracing : Spring Cloud Sleuth

The major step will come with Spring 5 (early 2017). Although the project will follow the Java standards (JDK 9 : Jigsaw, Servlet 4, JMS 2.1,Http 2…), the next bleeding feature will be the reactor project integration as an entire part of the core : Spring will become reactive !  The emergence of this new programming model reactive tight with Spring tool framework will greatly help its adoption.

2016-05-19 10.29.22

Spring.IO Keynote from Juergen HOELLER

Spring Cloud: the microservices architecture toolkit

From the official project page : “We live in the era of microservices, Cloud Native applications, and containers. This movement is transforming the way enterprise deliver digital initiatives. As enterprises march towards their digital journey, flexibility to adapt to change and timely reaction to the data-driven business decision, matters…” 

In a nutshell, Spring Cloud is a set of tools/modules which are contributing to Spring Boot, for providing all functionalities to build custom distributed solution based on microservices architecture. Here is what’s in the package: 

  • Service discovery (Netflix feature Eureka)
  • Externalized configuration in a distributed system (Spring Cloud Config)
  • Routing (Netflix feature : Router and Filter: automatic registration of Zuul filters)
  • Load Balancing/Inter process communication (Netflix feature : Ribbon)
  • Distributed tracing : Spring Cloud Sleuth
  • Distributed messaging: Spring Cloud Stream
  • Circuit breakers (Netflix feature  Hystrix )
  • Security-identification (OAuth2, SSO)
  • Centralized configuration management (Spring Cloud Consul)

Many sessions were demoing those feature and components. The Spring cloud familly targets the following aspects:

  • An All in the box solution (SSO, auth, HATEOAS, Config, Data, Load balancing, router ….)
  • A Fast deployment off the shelf.
  • An enhanced developer support : documentation, tutorials, dev tools

start.spring.io_urlJosh Long’s Homepage :  start.spring.io (What ever you do, start from here)

The Spring cloud sessions:

  • Cloud Native Java Josh Long
  • Spring Cloud : Exloring Spring Cloud Implementations Spencer Gibb
  • Cloud Native applications with Spring Cloud & Netflix OSS Spencer Gibb (workshop)

Spring 5 & Reactor: reactive programming is coming

Reactive is a programming paradigm that allow you to embrace aspects that must be total part of our daily work in 2016 : scalability & stability. The reactive manifesto is in the place since some years now, and it is still buzzing today ! The core concepts behind are event driven, fault tolerance, scalability and low latency. Even if the event driven programming is not quite a new thing, we must rather see all of it at the emergence of several years of experience and good practices from the cloud industry.

Just take a step back, think with functional programming approach (streams, functions, immutable objects …), event driven and message passing underneath. Reactive programming offers you a great way to rethink components integration in a smarter way, as a publisher/subscriber integration relation. The reactivity of your system is now a first order aspect that you can deal with since the first lines of your project, and not just a stuff you just try to add in production.

Ci4ll8xUUAEf9ew

Keynote with Stephane Maldini

The second day’s keynote titled “Designing Applications: the reactive way” was followed by the “from imperative, to reactive” session. This clearly confirm the will of the Spring community to become globally reactive. But why going reactive ? That’s the subject of the 2nd keynote, by Stephane maldini & Rossen Stoyanchev. As Stéphane says, reactive is not the silver bullet, you don’t have to put reactive everywhere, but it now help design components with such key concepts of what we must see in today’s systems.

For those who were eager and couldn’t wait for the keynote of the second day, there were a workshop to have hands on Reactor framework, presented by Sebastien DELEUZE & Stephane Maldini. A great moment to better understand the project’s api.  

The workshop slides & exercises can be found here : https://github.com/reactor/lite-rx-api-hands-on

What else ?

This conference was intense and lots of things to dig in. Here is a small overview of some others sessions:

Getting HATEOAS and Hypermedia right with Spring

Session by Eugen Paraschiv

2016-05-20 15.37.34

HATEOAS with Eugen Paraschiv

A nice presentation about HATEOAS implementation and usage through proper Spring Resource (extends ResourceSupport ) for a fine grained control on produce json (for content and embedded link). The speaker talk about his experience. He speak about Roy fielding phd, Richardson Maturity Model and a way to implement “level 3 of maturity  : Hypermedia Controls”. A lot of doc about this subject Spring HATEOAS – Reference Documentation and Building Rest Service with Spring

Keep calm and push apps AAS

Session by Eugen Paraschiv

Eugen come back on the cloud delivery process, and address continuous delivery from the dev machine to the cloud. Start with a good reminder about how to specify/describe your stories (Gherkin is here). Next, a demo of the Pivotal Cloud Foundry tool belt: push your app to the cloud in one command. You can handle elastic scale with another etc… Eugen shows how to handle your entire build pipeline with Cloud Foundry. Will it be a good concurrent of my favorite heroku tools ? I must test it from myself !

Geospatial web service with Spring & Kotlin

Session by Sébastien Deleuze

Even if Kotlin is not well known in the Spring community, it has its entire chance to be a good alternative to java for writing your next applications. After a good intro for the language, Sebastien presented us his geospatial Spring Boot example.  The exposed library from Jetbrains allows you to avoid JPA for your data persistence, and use a small (but smart) database oriented DSL. The app run with -Xmx32m… yes only 32m of ram ! 🙂

You can also use Kotlin as a possible language for Spring starter generator:

spring_kotlin

Injecting Spring Boot in legacy applications

Session by Marten Deinum

The story of migration from an “old fashion product” to “a recent Spring Boot based product”. It was done through an incremental approach changing things steps by steps letting the product operates properly.

JUNIT 5 – Evolution of the test framework

Session by Sam Brennen

An explanation,  from the inside of JUnit5 development team.

Make jar, not war…

Lots of good sessions, good organization… This was a great moment, thanks guys !

great

Arnaud Giuliani Author: Arnaud Giuliani

French Java Software Tech, create and run #java #server gears (distributed and other under the hood stuffs). Also like to make #android apps

Franck Theroude Author: Franck Theroude

I'm Software Architect and I like to be as pragmatic as I can.
My current Tags are #Spring #Testing #Maven #ContinousIntegration #Angular

Like it?  Share  it!

Share Button
What do  You  think? Write a comment!

Leave a Reply

Required fields are marked *.


CommentLuv badge