Slide 1

Slide 1 text

What's New in Spring Dave Syer, Pivotal, 2014

Slide 2

Slide 2 text

About the Speaker • Pivotal[1] employee, based in London, (since Interface21 2006) • Spring Engineering team, full time OSS coding and community leader • Former life in risk management and consultant 1) http://pivotal.io is a 2013 spin off from Vmware and EMC (and GE), roughly 1500 people l PaaS: Cloud Foundry and PCF l Big Data: Greenplum, PHD, data science l Agile consulting: Pivotal Labs l AppSuite: tcServer, RabbitMQ, Redis, Spring 2

Slide 3

Slide 3 text

First Question: What is Spring? • Java • Libraries (modular) • Open source • “Enterprise” (data, integration, services etc.) • Boilerplate 3 If you write code that isn't making you money, then think again.

Slide 4

Slide 4 text

4 Jobs, Steps, Readers, Writers Ingestion, Export, Orchestration, Hadoop Controllers, REST, WebSocket Channels, Adapters, Filters, Transformers WEB INTEGRATION BATCH BIG DATA SPRING CORE FRAMEWORK SECURITY GROOVY REACTOR DATA RELATIONAL DATA ACCESS NON-RELATIONAL DATA ACCESS BOOT Bootable, Minimal, Ops-Ready GRAILS Full-stack, Web XD Stream, Taps, Jobs IO EXECUTION IO FOUNDATION IO COORDINATION SPRING CLOUD Spring IO Platform: Coordination

Slide 5

Slide 5 text

Spring IO Platform 5 Grails Spring IO Platform Distribution Spring XD Spring Foundation Apps Spring Cloud 3rd Party Dependencies Spring Boot

Slide 6

Slide 6 text

Spring IO Platform 6 Grails Spring IO Platform Distribution Spring XD Spring Foundation Apps Spring Cloud 3rd Party Dependencies Spring Boot

Slide 7

Slide 7 text

Spring IO Execution: Spring Boot • Execution layer: eliminate boilerplate configuration • Spring Boot 1.1.x Released • 88 contributors • Foundation for all Spring IO Execution Layer 7

Slide 8

Slide 8 text

Spring IO Execution: Spring Boot 8 @RestController class App { @RequestMapping('/') def home() { [message: 'Hello World!’] } }

Slide 9

Slide 9 text

Spring IO Platform 9 Grails Spring IO Platform Distribution Spring XD Spring Foundation Apps Spring Cloud 3rd Party Dependencies Spring Boot

Slide 10

Slide 10 text

Spring IO Platform Distribution Roadmap 10 2.0 1.0 1.1 June 2014 Spring 4.0 baseline Nov 2014 Spring 4.1 baseline 1H 2015 12 months - major Current: 1.0.2 6 months - minor

Slide 11

Slide 11 text

Spring IO Platform 11 Grails Spring IO Platform Distribution Spring XD Spring Foundation Apps Spring Cloud 3rd Party Dependencies Spring Boot

Slide 12

Slide 12 text

No Man (Microservice) is an Island It's excellent to be able to implement a microservice really easily (Spring Boot), but building a system that way surfaces "non-functional" requirements that you otherwise didn't have. There are laws of physics that make some problems unsolvable (consistency, latency), but brittleness and manageability can be addressed with generic, boiler plate patterns. 12

Slide 13

Slide 13 text

Spring Cloud 13 Client Bindings Service Discovery Config Server Circuit Breakers Edge Service Intelligent Router Leader Election One-time Tokens Global Locks Cluster State Event Bus

Slide 14

Slide 14 text

Spring IO Platform 14 Grails Spring IO Platform Distribution Spring XD Spring Foundation Apps Spring Cloud 3rd Party Dependencies Spring Boot

Slide 15

Slide 15 text

Spring IO Core: Spring Framework 4.1 GA • Annotated JMS listener methods • Comprehensive support for JCache (JSR-107) annotations • Flexible resolution and transformation of static web resources • MVC views: declarative resolution + Groovy markup templates • Performance: SpEL compiler mode + concurrency fine-tuning 15

Slide 16

Slide 16 text

Spring IO Platform 16 Grails Spring IO Platform Distribution Spring XD Spring Foundation Apps Spring Cloud 3rd Party Dependencies Spring Boot

Slide 17

Slide 17 text

Spring XD – Big Data, Little Time $ stream create --name httptest --definition "http | hdfs" $ stream create --name httptap --definition "tap:stream:httptest > counter --name=recordcount" 17

Slide 18

Slide 18 text

Spring XD: Unified Platform for Big Data 18 Spring XD Runtime BIDIRECTIONAL RDBMS NoSQL R, SAS Streams Jobs ingest workflow export taps Redis GemFire Compute HDFS Predictive Modelling

Slide 19

Slide 19 text

Spring IO Platform 19 Grails Spring IO Platform Distribution Spring XD Spring Foundation Apps Spring Cloud 3rd Party Dependencies Spring Boot

Slide 20

Slide 20 text

Spring IO Core: Reactor • Microservices proliferate in modern architectures • No Microservice is an Island • More Microservices === More Runtime Resources required • More More Runtime Resources required === More $$$ • Microservices have acute need for efficiency • Contrary to myth: Runtime Resources aren’t free/cheap • Microservices are natural fit for Reactive Architecture 20

Slide 21

Slide 21 text

Spring IO Core: Reactor What is Reactive Streams? 21 “...provide a standard for asynchronous stream processing with non-blocking backpressure.” github.com/reactive-streams/reactive-streams Available as a library org.reactivestreams:reactive-streams:0.4.0.M2 Reactor 2.0 implements Reactive Streams

Slide 22

Slide 22 text

Spring IO Platform 22 Grails Spring IO Platform Distribution Spring XD Spring Foundation Apps Spring Cloud 3rd Party Dependencies Spring Boot

Slide 23

Slide 23 text

Spring IO Core: Groovy Update • “What’s new in Groovy 2.3 • Java 8 support • Traits • Templating • What’s coming in Groovy 2.4 • Android support • New documentation • New website 23

Slide 24

Slide 24 text

Spring IO Execution: Grails 3.0 Microservices 24 @Grab("com.h2database:h2:1.3.173") import grails.persistence.* @Entity @Resource(uri='/books') class Book { String title }

Slide 25

Slide 25 text

Spring IO in the News • Spring IO Platform Distribution 1.1 • Spring Boot 1.2 • Spring Cloud 1.0 • Spring Framework 4.1 • Spring XD 1.0 • Reactor 2.0 and Reactive Streams 1.0 • Groovy and Grails 3.0 25