Upgrade to Pro — share decks privately, control downloads, hide ads and more …

What's New In Spring 2014

Dave Syer
November 07, 2014

What's New In Spring 2014

A round up of recent exciting news and an overview of the Spring IO Platform as of the end of 2014

Dave Syer

November 07, 2014
Tweet

More Decks by Dave Syer

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide