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
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.
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
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
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
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
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
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
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
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
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
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 }
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