Spring I/O 2018

2018

List of videos

Making microservices micro with Istio Service Mesh & Kubernetes by Ray Tsang @ Spring I/O 2018

Spring I/O 2018 - Barcelona, 24-25 May Microservices are here to stay. When applied properly, microservices techniques and culture ultimately help us continuously improve business at a faster pace than traditional architecture. However, microservices architecture itself can be complex to configure. All of a sudden, we are faced with the need for a service discovery server, how do we store service metadata, make decisions on whether to use client side load balancing or server side load balancing, deal with network resiliency, think how do we enforce service policies and audit, trace nested services calls…. The list goes on. In this talk, Ray will introduce Istio, an open source service mesh framework created by Google, IBM, and Lyft. We’ll see how the service mesh work, the technology behind it, and how it addresses aforementioned concerns.

Watch
Implementing DDD with the Spring Ecosystem by Michael Plöd @ Spring I/O 2018

Spring I/O 2018 - Barcelona, 24-25 May Slides: https://speakerdeck.com/mploed/implementing-ddd-with-the-spring-ecosystem Domain-Driven Design is currently a very popular way of implementing and looking at Microservices. This session aims at giving you a kickstart how to work on the implementation details of DDD in the Spring Ecosystem. We will take a look at how to model your microservices with Bounded Contexts and Strategic Design, after that we will dive into a Microservice and look at how to implement Aggregates, Repositories and how to work with Domain Events. All the implementation details will leverage various Spring technologies such as Spring Boot, -Data and -Cloud. This talk consists of a bit of theroy and a lot of code.

Watch
Introducing Spring Session 2 by Vedran Pavić @ Spring I/O 2018

Spring I/O 2018 - Barcelona, 24-25 May Slides: https://speakerdeck.com/vpavic/introducing-spring-session-2 GitHub: https://github.com/vpavic/springio18-spring-session-2 Spring Session’s goal is to help you with management of user's session in a consistent and application container neutral way. This includes support for clustered sessions backed by data store of your choice, easy integrations with RESTful APIs, WebSocket session and Spring Security. While Spring Session 1.x was focused solely around Servlet API, 2.x brings support for reactive programming model by integrating with Spring WebFlux. This session will introduce you with all the new stuff in Spring Session 2 while focusing on practical usage with demos. We will also demonstrate how easy it is to extend Spring Session by providing your own session data store while reusing the existing infrastructure.

Watch
Securing Spring applications with Hashicorp Vault by Jan Dittberner @ Spring I/O 2018

Spring I/O 2018 - Barcelona, 24-25 May Slides: https://speakerdeck.com/jandd/securing-spring-applications-with-hashicorp-vault GitHub repo: https://github.com/jandd/spring-boot-vault-demo The talk will show how to secure application credentials, key material and certificates for Spring applications using Hashicorp vault and the excellent Spring Cloud Vault integration. I will show Vault authentication using tokens and application roles, how to use Vault's database backends for dynamic database credentials, how to use the PKI backend for dynamically generated TLS certificates and how to use the generic secret backend for other application credentials.

Watch
Monitoring Spring Boot Applications with Spring Boot Admin by Johannes Edmeier @ Spring I/O 2018

Spring I/O 2018 - Barcelona, 24-25 May Slides: https://speakerdeck.com/joshiste/spring-io-2018-monitoring-spring-boot-applications-with-spring-boot-admin In this hands on session you learn how to easily monitor your Spring Boot applications with Spring Boot Admin. This talk covers the basic setup of Spring Boot Admin using the various options, as well as the things happening behind the scenes.

Watch
Spring Framework 5: Feature Highlights & Hidden Gems by Juergen Hoeller @ Spring I/O 2018

Spring I/O 2018 - Barcelona, 24-25 May A huge theme in Spring Framework 5.0 and its ecosystem projects is the native reactive support that empowers you to build end-to-end reactive applications. Reactive data access especially requires a reactive infrastructure. But how is this one different from the ones used before? How does it deal with I/O? Spring Framework 5.0 brings a lot of new features all across the framework: functional and reactive as major programming model themes but also some less prominent and less commonly presented features. This session summarizes the major feature themes and particularly highlights personal favorites and useful refinements in the details. Last but not least, it will indicate next steps in the upcoming 5.1 release.

Watch
Next Generation OAuth Support with Spring Security 5 by Joe Grandja @ Spring I/O 2018

Spring I/O 2018 - Barcelona, 24-25 May Spring Security 5.0 introduced new support for the OAuth 2.0 Authorization Framework and OpenID Connect 1.0. This talk will provide a detailed overview and demonstration of the new OAuth 2.0 Login feature, which provides an application with the capability to have users log in to the application by using their existing account at an OAuth 2.0 Provider (e.g. GitHub) or OpenID Connect 1.0 Provider (e.g. Google). This feature essentially realizes the use case “Login with Google” or “Login with Facebook” and is implemented by leveraging the Authorization Code Grant flow. The main goal of this talk is to demonstrate the steps required to setup OAuth 2.0 Login for a Spring Boot 2.0 sample application. Additionally, the demo will also show you how to configure and map custom user authorities after each successful login, in order to enable fine-grained authorization rules in the security configuration.

Watch
From garage project to the No. 1 Taxi App in Europe by Tim Büthe / Alejandro Peña @ Spring I/O 2018

Spring I/O 2018 - Barcelona, 24-25 May Our team has grown from 3 developers programming in a living room to more than 400 employees with over 100 developers around Europe to support more than a million network requests every minute - leading the European e-hailing market. In this talk, we'll walk through our journey from monolithic to microservices, the migration from on-premise to cloud solutions. With our lessons learnt, pains and gains, we hope that you can avoid those pitfalls we've fallen into. Apart from technology, we'd also like to share how to efficiently scale engineering teams - another key success factor. During our growth process we possibly made every mistake in the book, but we adjusted quickly and learned from it. So here is our advice for doing microservices and scaling teams efficiently. We want to give you an overview of our tech stack, used tools, libraries and pitfalls. How we do single click deployments and rollbacks, our solution for collecting logs and search through them, how we monitor the system closely and alert when something is wrong, how we store different types of data efficiently, how we use different techniques, languages and conventions across the teams and offices. And, since it’s SpringIO we show our favorite Spring anti-patterns and how to avoid them. Today mytaxi is the No. 1 e-hailing app in Europe. Supporting smartphone apps for Android, iOS for hailing and paying your tour, as well as smart watch apps, Google Maps integrations, a Siri integration and an Alexa skill to order your taxi by voice.

Watch
Making DevSecOps a reality in your Spring applications by Roberto Velasco @ Spring I/O 2018

Spring I/O 2018 - Barcelona, 24-25 May The adoption of DevOps and Continuous Delivery provides tangible benefits such as higher quality, stability, and faster release cadence. One of the most important issues within this adoption is related to security quality tasks that have been traditionally implemented manually. The talk will demonstrate the security integration of Spring ecosystem demo applications with the Jenkins CI server to jump start continuous and in-depth security testing into the DevOps CI/CD pipeline, via automation and orchestration.

Watch
Testing Your Message-Driven Application by Jakub Pilimon @ Spring I/O 2018

Spring I/O 2018 - Barcelona, 24-25 May Slides: https://speakerdeck.com/pillopl/testing-your-message-driven-application-with-spring GitHub repo: https://github.com/spring-cloud-samples/messaging-application So you end up with messaging and event-driven architecture. You also have heard about event sourcing and applied this principle in a few places in your code. Everything seems to be working perfectly, you are about to perform the first release and you’ve decided to change the structure of one event. The event you have changed was both used for state reconstruction (event sourcing) and integration (event-driven architecture). Due to that change, out of a sudden, your acceptance environment stopped working… “How come?! I have only changed an implementation detail in my cool event-sourced domain!” said the senior developer. In this talk, we will chat about how to work with events that are used as integration messages in your system. We will tackle content-negotiation, versioning and acceptance tests. There will be a lot of Spring Cloud stack and we will see how we can benefit from Consumer Driven Contracts when NOT using REST APIs.

Watch
(Spring) Kafka - one more arsenal in a distributed toolbox by Nakul Mishra @ Spring I/O 2018

Spring I/O 2018 - Barcelona, 24-25 May Slides: https://www.slideshare.net/nklmish/springkafka-one-more-arsenal-in-a-distributed-toolbox Kafka is an open-source distributed commit log addressing low latency, high throughput, scalability, fault-tolerance, and disk-based retention. It can be used to build tracking systems, messaging systems, high performance streaming platforms, real-time analysis, audit log….you name it. In our case, it’s been used to build a scalable event-store and messaging platform that stores billions of messages. To ingest historical data in our event store, we opted for Spring Kafka due to easy integration with Spring framework and enhanced testing support introduced by it. In this talk, we’re taking a closer look at this magic combo and explain essential as well as more advanced Spring-Kafka concepts. We will look at stuff such as producer, consumer, transactions, etc. and how Spring Kafka maps those concepts using KafkaMessageListenerContainer, Kafka template, @KafkaListener, @KafkaHandler, Kafka Transaction Manager, @SendTo, etc. in Spring's world. We will also demonstrate how to use spring-Kafka-test for developing and running your unit tests against embedded Kafka server. Furthermore, we will dig into some of the enhancements, such as synchronizing a Kafka transaction with some other transaction, configuring generic MessageConverter bean for publishing/consuming messages and detecting asynchronous consumers when they are idle; introduced by SpringKafka. Last but not the least we will highlight some potential pitfalls that one should watch out for when going to production with Kafka.

Watch
Introducing Spring Cloud Gateway by Spencer Gibb @ Spring I/O 2018

Spring I/O 2018 - Barcelona, 24-25 May GitHub repo: https://github.com/spencergibb/monolith-to-microservices What is an API Gateway and how can your microservices architecture benefit by using one? What are the types API Gateways? What characteristics define each type of API Gateway? Join Spring Cloud co-lead Spencer Gibb for discussion and demonstration of the next generation of API Gateway, Spring Cloud Gateway and about its architecture and developer experience. Learn about route matching and filtering and how it is different than the previous Zuul 1 experience. Features of Spring Cloud Gateway include, support for websockets, reactive developer experience and rate limiting, to name a few.

Watch
Mastering Spring Boot's Actuator by Andy Wilkinson @ Spring I/O 2018

Spring I/O 2018 - Barcelona, 24-25 May Slides: https://speakerdeck.com/ankinson/mastering-spring-boots-actuator-spring-io-2018 Spring Boot's Actuator provides a powerful set of production-ready features that have been recently updated for Spring Boot 2.0. In this talk we'll look in detail at the Actuator, focusing on the new features including the new endpoint infrastructure that introduces support for Jersey and Web Flux alongside the existing support for Spring MVC. You'll leave this talk with a detailed understanding of the Actuator and armed with the knowledge required to develop your own endpoints.

Watch
Serverless Spring by Dave Syer @ Spring I/O 2018

Spring I/O 2018 - Barcelona, 24-25 May Spring Cloud Function provides a servlerless programming model for Spring Boot applications, abstracting away all of the transport details and infrastructure, allowing you to keep all the familiar tools and processes, and focus firmly on business logic. It has evolved quite a bit from its early snapshot releases - we have learned some things on the journey and would like to share some of those lessons in this presentation. You will also see in detail how to write and deploy functions targeting the major servlerless vendor platforms, including Riff (at the heart of Pivotal Function Service).

Watch
Spring Boot 2.0 Web Applications by Stéphane Nicoll / Brian Clozel @ Spring I/O 2018

Spring I/O 2018 - Barcelona, 24-25 May GitHub Repo: https://github.com/snicoll-demos/smart-meter The new generation of Spring Boot applications is here! With Spring Boot 2.0, developers can use the new Spring WebFlux reactive web framework. During this live coding session, Stéphane and Brian will create a WebFlux application and leverage Boot features such as Actuator, Developer Tools and more. Spring Boot 2.0 comes with many improvements and new features - Spring WebFlux allows reactive web endpoints and new HTTP runtimes such as Netty. This comes into two variants: a familiar annotation based approach similar to MVC and a new functional variant called "WebFlux.fn". With 2.0, the Spring team leverages WebFlux with the "convention over configuration" flavour that made Spring Boot so popular: * auto-configuration of your web application * customizing your app with configuration properties and callback-based interfaces * Actuators and Developer Tools support * leveraging the Spring ecosystem such as Spring Data and Spring Security

Watch
Micrometer: New insights into your Spring Boot application by Michael Simons @ Spring I/O 2018

Spring I/O 2018 - Barcelona, 24-25 May Slides: https://speakerdeck.com/michaelsimons/micrometer-new-insights-into-your-spring-boot-application GitHub repo: https://github.com/michael-simons/blockchain-playground/tree/master/springio2018 Micrometer is a new library written by the folks at Pivotal. It’s an instrumentation library for JVM-based application and it is the default instrumentation library for all kinds of metrics in a Spring Boot 2.0 application. An application can be observed in three ways: Through logging, tracing and metrics. While all three ways are based either directly or indirectly on events , they only share subset of qualitites. Logs are usually discrete, tracing requires extra work to identify events across services and metrics have to be collected over time and usually provide more value through aggregation. As such, metrics can be seen as a function of measurements. The idea of Micrometer is to provide a way to collect and publish metrics inside a JVM-based application without vendor lock-in. Much like a logging facade, but for metrics. Micrometer deals with several tasks: Collecting meters of different types like counters, gauges and timers and than publishing them to a fitting storage. The type of storage can vary to a great degree because Micrometer is fully modular. Learn in this talk how to facilitate Micrometer in a Spring Boot application through the new Spring Boot Actuator 2. See what kind of meters Spring Boot brings you, how you can easily add your own withouth the burden of providing a perfomant solution of collecting the data. And finally, see how you can export those metrics to stores like Prometheus, Graphite or JMX and visualize them withouth actively pulling your application in a fixed interval.

Watch
Spring Cloud Stream: Developer Recipes, Tips and Tricks by Oleg Zhurakousky @ Spring I/O 2018

Spring I/O 2018 - Barcelona, 24-25 May Microservices architecture redefined the concept of a modern application as a set of independent, distributed and loosely-coupled services running in the cloud. However, developer experiences are often challenging and confusing for both the novice and seasoned developer due to both conceptually new programming/deployment model as well as unpredictable nature of the cloud itself. Some of these challenges are: - Time-to-your-first-hello-world - Debugging and tracing - Management and Monitoring - Testing - Development/Deployment Lifecycle(i.e., from local dev/test to prod) - Tooling - what’s available and what’s appropriate and when? This hands-on presentation/tutorial which will consist of live coding and demos that will use Spring Boot and Spring Cloud Stream and will help to demystify some of these challenges while sharing few tips and tricks along the way.

Watch
Just one more thing with Spring in IntelliJ IDEA by Yann Cébron and Stéphane Nicoll, Spring I/O 2018

Spring I/O 2018 - Barcelona, 24-25 May In this 100% live-coding session you’ll get first-hand guidance through the latest developments in the framework and its support in IntelliJ IDEA. We’ll explore some lesser known and powerful features as well as tricks for efficient development in the IDE on our way through a variety of Spring technologies - with a special focus on Spring Boot.

Watch
KubeBoot - Spring Boot deployment on Kubernetes by Alex Soto @ Spring I/O 2018

Spring I/O 2018 - Barcelona, 24-25 May Slides: https://www.slideshare.net/asotobu/kubeboot-spring-boot-deployment-on-kubernetes Have you ever thought how to deploy Cloud Native Java Applications (Spring Boot) on Kubernetes? Kubernetes has now become a de-facto standard for deploying Cloud Native Applications, but still there is myth that they are not ready for Java workloads. The aim of this session is to break that myth to show Kubernetes is well suited for Cloud Native Java applications. The session explores the cloud native characteristics such as Discovery, Blue/Green Deployments, Elasticity, Canary Deployments, Resiliency, Pipeline(CI/CD), Authentication etc., becomes implicit characteristics to your Spring Boot Java applications that are deployed on Kubernetes. In this session, we will see how to build, debug, deploy and discover Spring Boot applications on Kubernetes, covering in depth details of the tools, libraries and platform that could be used to make your spring boot deployment smooth and easy.

Watch
Documenting RESTful APIs with Spring REST Docs and RAML by Mathias Düsterhöft @ Spring I/O 2018

Spring I/O 2018 - Barcelona, 24-25 May Slides: https://speakerdeck.com/mduesterhoeft/documenting-restful-apis-with-spring-rest-docs-and-raml Spring REST Docs is a great tool to produce documentation for your RESTful services that is accurate and readable. It offers support for AsciiDoc and Markdown. This is great for generating simple HTML-based documentation. But what if your REST API is a big part of the product you offer? Then static HTML is probably not enough and you have to offer a richer experience for your API consumers. In this case, Asciidoctor and Markdown are not ideal - they are markup languages and hard to process further. You are better off with a technical representation of your API - something like RAML. The RESTful API Modeling Language (RAML) is a YAML-based language to describe RESTful APIs. Having a RAML representation of your API opens a lot of possibilities. There is a rich ecosystem around it, and of course, you can write your own tools to process your API description. Let's look at how restdocs-raml (https://github.com/ePages-de/restdocs-raml) can help us to add RAML support to String REST Docs. I will motivate why we built restdocs-raml and give an introduction to the project and RAML in general. We will take an existing project that uses Spring REST Docs and apply restdocs-raml to it. Once we have a RAML description of our API, I will showcase the possibilities that RAML gives you out of the box.

Watch
Time to graph up with Spring Data Neo4j by Gerrit Meier @ Spring I/O 2018

Spring I/O 2018 - Barcelona, 24-25 May Slides: https://speakerdeck.com/meistermeier/time-to-graph-up-with-spring-data-neo4j Spring Data's upcoming release train Lovelace will also include a new version of Spring Data Neo4j (SDN). A good time to show the advantages of using the convenient approach of Spring Data to work with connected data and introduce the technology that powers SDN: Neo4j's Object Graph Mapper. Both libraries can help to improve the insights you can gather when working with data stored in a graph database. A small ride through the Paradise Papers with Spring Data Neo4j will show you some of these benefits.

Watch
Bootiful CQRS and Event Sourcing with Axon Framework by Allard Buijze @ Spring I/O 2018

Spring I/O 2018 - Barcelona, 24-25 May GitHub repo: https://github.com/AxonIQ/giftcard-demo-series Events are becoming increasingly important in modern architectures. Although CQRS and Event Sourcing are increasingly being adopted, the complexity of implementing it is often highly over-estimated. In this session, we will first briefly cover what CQRS and Event Sourcing are, and how it addresses some common requirements that modern applications have. Next, we will open up the IDE and see how Spring Boot and Axon Framework work neatly together to get you up and running with Event Sourcing in mere minutes. Once we have the application running, we will use Spring Cloud Discovery to scale the application out, where Axon will ensure optimal routing of commands. We will also see how we can easily use Spring AMQP to publish all events to an AMQP message queue as well.

Watch
Spring I/O 2018 - Video Summary

Spring I/O is the leading european conference focused on the Spring Framework ecosystem. Spring I/O 2019 will take place on 16-17 May in Barcelona. Save the date! Join the Spring community from around the world. There is no better place to share, discuss, collaborate and socialise with other Spring professionals and enthusiasts.

Watch
Flight of the Flux: A look at Reactor execution model by Simon Basle @ Spring I/O 2018

Spring I/O 2018 - Barcelona, 24-25 May Slides: https://speakerdeck.com/simonbasle/flight-of-the-flux If you're familiar with the **Reactor** `Flux` API but have always wondered what exactly was happening at runtime, look no further! In this session, we'll observe various instances of the majestic `Flux` and `Mono` in their natural habitat, the JVM. We'll look past the APIs and Reactive Stream concepts, towards less abstract matters such as the Reactor execution model (is there even such a thing?). What is the difference between assembly time and execution time? What is work stealing? Why does nothing happen until we subscribe? What is operator fusion? Magnets, how do they even work? Come join us and we'll try to answer all of these questions, and more!

Watch
Consumer driven contracts in a polyglot world by Riccardo Lippolis / Jeroen Bruinink @ Spring I/O

Spring I/O 2018 - Barcelona, 24-25 May Slides: https://docs.google.com/presentation/d/19BFGJiTElU3VVIbpF3Gqac26m4uaNpPEQpVB1eIPa90/edit#slide=id.p Have you ever been in the situation where your microservice stopped working, because one of the services it consumes changed? Or did you ever want to change a service but found it difficult to find out which consumers it has? We ran into these problems numerous times (usually head first) after breaking up a monolithic application into microservices. Where once the compiler would complain or our unit tests would fail, everything would now seem fine at first. Problems would only become visible after deploying to the integration environment, or worse: in production! In this talk, we will explain how we mitigate these problems using Spring Cloud Contract to specify and test the interface between our Spring Boot microservices. Furthermore, with the new Polyglot support, we are now able to extend the specifications to include our non-JVM services and frontend applications. The presented code examples will be shared on GitHub.

Watch
Bootiful Kotlin by Sébastien Deleuze and Josh Long @ Spring I/O 2018

Spring I/O 2018 - Barcelona, 24-25 May Spring Boot, the convention-over-configuration centric framework from the Spring team at Pivotal, marries Spring’s flexibility with conventional, common sense defaults to make application development on the JVM not just fly, but pleasant! Spring Boot aims to make address the common functional and non-functional requirements that gate quickly moving to production. The framework is as clean as it gets, wouldn’t it be nice if the language matched its elegance? Kotlin, the productivity-focused language from our friends at JetBrains, takes up the slack to make the experience leaner, cleaner and even more pleasant! The Spring and Kotlin teams have worked hard to make sure that Kotlin and Spring Boot are a first-class experience for all developers trying to get to production, faster and safer. In this talk, Josh and Sébastien will live code a Spring Boot 2 + Kotlin application to show you concretely how efficient and fun coding can be when using these 2 technologies together.

Watch
Spring Boot 2 in JHipster by Sendil Kumar @ Spring I/O 2018

Spring I/O 2018 - Barcelona, 24-25 May JHipster is the leading Spring boot + Angular / React application generator, focusing on improving the developer productivity and scaffolding the latest technologies. JHipster with Spring boot2, lets kickstart a production ready application in minutes and share the journey of our spring boot 2 migration.

Watch
Reactor Netty, the default runtime for Spring Boot 2.0 by Violeta Georgieva @ Spring I/O 2018

Reactor Netty is a new runtime which aims to provide an asynchronous and non-blocking runtime that supports Reactive Streams backpressure for client or server needs over a range of protocols (UDP|TCP|HTTP). In this session the internal architecture and structure of Reactor Netty will be explored. All major features will be covered. Best practices and recommendations will be demonstrated with live coding.

Watch
Dynamic configuration management in microservice architecture with Spring Cloud by Bartłomiej Słota

Spring I/O 2018 - Barcelona, 24-25 May Slides: https://speakerdeck.com/bslota/springio-2018-dynamic-configuration-management-in-microservice-architecture-with-spring-cloud GitHub repos: https://github.com/bslota/cloud-config https://github.com/bslota/config-repository These days it seems to be obvious for us to keep the configuration separately from code, but sometimes having properties/yml files with our codebase is not enough. During this presentation I will focus on configuration issues in microservice environment. Don’t worry - there won’t be too much slides - I will do some live-coding and show you how can we improve configuration management with Spring Cloud and Apache Kafka, and how easy it is to reconfigure our application live without rebuilding or rebooting it.

Watch
How to secure your Spring Apps with Keycloak by Thomas Darimont @ Spring I/O 2018

Spring I/O 2018 - Barcelona, 24-25 May Slides: https://github.com/thomasdarimont/springio18-spring-keycloak/blob/master/slides/springio18-thomas-darimont-spring-keycloak.pdf GitHub repo: https://github.com/thomasdarimont/springio18-spring-keycloak This talk will introduce Keycloak, an Open Source Identity and Access Management solution from Red Hat, which can help you to equip your applications with centralized authentication and authorization. Keycloak provides Single Sign-On based on widely used protocols such as OpenID Connect 1.0, OAuth 2.0 and SAML2, that are easy to integrate with own applications. Keycloak comes with many batteries included, e.g. user management, user registration, 2-factor authentication, support for external identity providers such as Google, Facebook, Twitter, custom look-and-feel and integration with directory services like LDAP, Kerberos or Active Directory. Additionally, Keycloak offers a comprehensive extension model that makes it easy to adapt it to your own needs. After a short overview of Keycloak features, we will introduce some core concepts with a guided tour through Keycloaks Admin UI. We then take an in-depth look at an OAuth / OpenID Connect based authentication flow. After those foundations are set we will demonstrate possibilities for integrating Keycloak in selected authentication scenarios. We conclude the talk with a brief demo of an centralized identity management infrastructure, built around Keycloak.

Watch
Spring I/O 2018 Keynote by Juergen Hoeller, Madhura Bhave, Brian Clozel and Dave Syer

Spring I/O 2018 - Barcelona, 24-25 May Thinking back, looking forward

Watch
REST beyond the obvious – API design for ever evolving systems by Oliver Gierke @ Spring I/O 2018

Spring I/O 2018 - Barcelona, 24-25 May Slides: https://speakerdeck.com/olivergierke/rest-beyond-the-obvious-api-design-for-ever-evolving-systems Most APIs built today are considered REST APIs these days, when in fact they merely exchange data via HTTP and JSON. At the same time, systems almost never act autonomously but rather live alongside others. In that context, being able to evolve an API becomes a crucial aspect in its design and the only knee-jerk, but often problematic reaction usually is: versioning. The talk takes a step back and looks at the architectural context APIs live in and outlines the drawbacks that result from ignoring crucial parts of REST. It discusses internal VS. external APIs, the impact of Domain-Driven Design and how to design and specify APIs and their clients to optimize for evolvability so that changes in an API don’t break clients.

Watch
Welcome to JUnit 5 by Billy Korando @ Spring I/O 2018

Spring I/O 2018 - Barcelona, 24-25 May Slides: https://docs.google.com/presentation/d/e/2PACX-1vRu9lye05EjsljEaIpH6tbYFyuKBr5MHaFC5fi3nkU7pMG5PCFWKXwJZ1B5Cg81x4go0teKisyxQMYr/pub?start=false&loop=false&delayms=3000 GitHub repo: https://github.com/wkorando/WelcomeToJunit5 After more than a decade of waiting JUnit 5 is here! So beyond adding poop emojis to the names of my unit tests, what does JUnit 5 offer? This presentation will cover the new features coming in JUnit 5 and how to migrate your test suite to using the new version of the popular test framework.

Watch
Under the Hood of Reactive Data Access Mark Paluch @ Spring I/O 2018

Spring I/O 2018 - Barcelona, 24-25 May Slides: https://speakerdeck.com/mp911de/under-the-hood-of-reactive-data-access-1 GitHub repo: https://github.com/mp911de/under-the-hood-reactive A huge theme in Spring Framework 5.0 and its ecosystem projects is the native reactive support that empowers you to build end-to-end reactive applications. Reactive data access especially requires a reactive infrastructure. But how is this one different from the ones used before? How does it deal with I/O? In this session, we will demystify what happens inside the driver and give you a better understanding of their capabilities. You will learn about the inner mechanics of reactive data access by walking through reactive drivers that are used in Spring Data.

Watch
Observability with Spring-based distributed systems by Tommy Ludwig @ Spring I/O 2018

Spring I/O 2018 - Barcelona, 24-25 May Slides: https://www.slideshare.net/rakutentech/observability-with-springbased-distributed-systems-99102786 Spring makes it easy to build and run applications quickly without boilerplate code. Once up and running though, you will want operational insight into the behavior of your system, beyond basic monitoring of system health. How can you best achieve observability with Spring applications? Spring Boot's Actuator can get you quite far with individual instances, but for observability of a distributed system, additional tools are needed. Fortunately, Spring makes using those tools pretty easy! The target audience for this talk is developers building distributed systems in Spring who are seeking better observability to improve areas such as alerting, root-cause analysis, trend analysis, and monitoring. Basic understanding of Spring Boot is recommended. This talk introduces three main pillars of observability - logging, metrics, and tracing. For each of these pillars, you will learn how you can integrate or instrument it in your Spring Boot-based applications. Specifically, some projects that will be covered include Zipkin for distributed tracing, Micrometer as a metrics façade and exporter, and Spring Cloud Sleuth for tracing instrumentation and log correlation. With the unique advantages offered by each pillar combined, you can achieve powerful observability.

Watch
What's New in Spring Boot 2.0 by Madhura Bhave @ Spring I/O 2018

Spring I/O 2018 - Barcelona, 24-25 May Slides: https://speakerdeck.com/mbhave/whats-new-in-spring-boot-2-dot-0-spring-io Spring Boot 2.0 introduces a host of new features and whole lot of behind the scenes changes. This talk will cover all the major improvements, show you how to migrate a Boot 1.5 application and discuss some of the smaller tweaks and utilities that you might not be aware of. The talk will also cover some of the changes we made to the Spring Boot internals, discuss why we made them, and how they will help with future releases.

Watch
Asynchronous programming with Kotlin coroutines in Spring by Konrad Kamiński @ Spring I/O 2018

Spring I/O 2018 - Barcelona, 24-25 May Coroutines is a new feature in Kotlin 1.1. It allows for writing an asynchronous code almost like it was regular/synchronous. If you combine it with Spring you'll get a powerful tool for creating fast, scalable, non-blocking applications. In this session, I'll show how coroutines can be used in Spring-based applications, what sort of problems can be encountered and how to solve them. I'll also present a glimpse of the spring-kotlin-coroutine library, which is a one-stop solution for Spring/coroutines interoperability.

Watch
Continuous Deployment of Your Application by Marcin Grzejszczak @ Spring I/O 2018

Spring I/O 2018 - Barcelona, 24-25 May “I have stopped counting how many times I’ve done this from scratch” - was one of the responses to the tweet about starting the project called Spring Cloud Pipelines. Every company sets up a pipeline to take code from your source control, through unit testing and integration testing, to production from scratch. Every company creates some sort of automation to deploy its applications to servers. Enough is enough - time to automate that and focus on delivering business value. In this presentation we’ll go through the contents of the Spring Cloud Pipelines project. We’ll start a new project for which we’ll have a deployment pipeline set up in no time. We’ll deploy to Cloud Foundry (but we also could do it with Kubernetes) and check if our application is backwards compatible so that we can roll it back on production.

Watch
Fun with the Functional Web Framework by Arjen Poutsma @ Spring I/O 2018

Spring I/O 2018 - Barcelona, 24-25 May At Spring I/O last year, we introduced the functional web framework as an alternative to the existing annotation-based MVC. This year, we follow up with a presentation where we go beyond the basics, and show more advanced features, including: * Predicates: how to create your own custom predicates, * Nesting routes: how to remove duplication from your predicates, * Route organisation: how to organize route functions into a nearly arranged whole, * Filtering routes: how to introspect and manipulate both request and response with a filter * And more!

Watch
Machine Learning Exposed: The Fundamentals by James Weaver @ Spring I/O 2018

Spring I/O 2018 - Barcelona, 24-25 May In the age of quantum computing, computer chip implants and artificial intelligence, it’s easy to feel left behind. For example, the term "machine learning" is increasingly bandied about in corporate settings and cocktail parties, but what is it, really? In this session, James Weaver will give a gentle introduction to machine learning topics such as supervised learning, unsupervised learning, reinforcement learning, and deep learning. He’ll also give you an overview of what you can achieve with machine learning, as well as an intuition on the maths behind it. The presenter is very aware that some material on machine learning can be maths-intensive, and off-putting if you are not confident with your calculus. Conversely, some material doesn’t go into enough detail so you don’t get a feel for how things actually work. This session will start right at the beginning with the basics, and build up in an approachable way to some of the most interesting techniques so you can get the most out of your machine learning adventure.

Watch
Building and running Spring Cloud-based microservices on AWS ECS by Joris Kuipers @ Spring I/O 2018

Spring I/O 2018 - Barcelona, 24-25 May Slides: https://www.slideshare.net/jkuipers/building-and-running-spring-cloudbased-microservices-on-aws-ecs Spring Cloud is a set of frameworks providing support for running microservices in what often is a cloud-based environment. Joris is currently an architect on a project that Trifork started this year that uses Spring Cloud's Netflix and Consul integration to run a set of microservices on AWS using its Docker orchestration support, ECS. This talk covers some of the lessons learned in setting up a project like this, including integrating Spring Cloud with AWS ECS. Topics include efficient build script management, advanced HTTP client and RestTemplate configuration, Consul service registration using EC2 host IP addresses and port numbers, integrating Spring's PropertySource abstraction with AWS's Parameter Store for storing and retrieving secrets, and other things that will undoubtedly come up before presenting this talk.

Watch