Kansas City

May 4–5, 2020

Registration & location coming soon



Agenda Day 1


8:00am Breakfast
8:45am Welcome
9:00am Better Software is Better than Worse Software

Paul Czarkowski

“Digital transformation” seems like idle business fantasy. But, it’s a real strategy used by the US Air Force, Air France KLM, Liberty Mutual, DBS Bank, and others to out-innovate competition & delight people. To kick-off the day, Coté will go over how VMware customers like these are improving their software, how Pivotal Application Service lays the foundation for better software helps, and how you can be a part of making the world a better place with better software.

9:30am Microservices .NEXT with Spring

Spencer Gibb

This session will highlight Spring’s offerings in creating the next generation of distributed systems. We will talk about Spring's latest features for building state of the art microservices across various cloud providers while also being able to leverage the native features each cloud provides. We will explore the reactive and blocking stacks in projects such as Spring Framework, Spring Data, Spring Boot and Spring Cloud and how they can be used to build applications that perform optimally in the cloud while at the same time boosting developer productivity.

10:40am Break
11:05am Paved Roads - Architecting for Distributed Teams

Nate Schutta

As we migrate towards distributed applications, it is more than just our architectures that are changing, so too are the structures of our teams. The Inverse Conway Maneuver tells us small, autonomous teams are needed to produce small, autonomous services. Architects are spread thin and can’t be involved with every decision. Today, we must empower our teams but we need to ensure our teams are making good choices. How do we do that? How do you put together a cohesive architecture around distributed teams? This talk will discuss creating “paved roads”, well worn paths that we know works and we can support. We will also explore the importance of fitness functions to help our teams adopt appropriate designs.

11:55am To Batch Or Not To Batch

Michael Minella

As most enterprises modernize legacy systems, the question of what to do with batch processing comes up. Should batch processing be “modernized” into streaming or real time processing? What are the architectural impacts of doing this? In this talk, we will explore both paradigms and see what the trade offs are for each style. The Spring programming models will serve as the basis for all demos in this talk.

12:50pm Lunch
2:00pm Spring Bananas From The Edge

Glenn Renfro
Roy Clarkson


Have you ever wondered how much ambient radiation is in your home or workplace? OK ... probably not. But maybe you have thought, “How can I move processing of critical information closer to the edge?” Or perhaps you are now wondering what the “edge” is? In this talk, we will demonstrate how to move the processing of data from the cloud to the edge. Using Spring Cloud Stream, Spring Cloud Task, and Spring Cloud Data Flow, we will also show how to create streams that capture the existing data flows from our IOT Device and merge in the data from our new edge devices. And all instrument readings will be in bananas :-) instead of sieverts or rems.

2:50pm The Reactive Revolution

Josh Long

The reactive revolution continues. For as much as we've been talking about reactive programming in Spring for the last few years the journey has only just begun. Join Josh Long, and we'll take our reactive applications further, looking at how to build microservices for cloud platforms like PAS (Cloud Foundry) and PKS (Kubernetes). Some of the things we may cover include: - reactive NoSQL data access - reactive SQL data access with R2DBC - orchestration and reliability patterns like client-side loadbalancing, circuit breakers, and hedging - messaging and service integration with Apache Kafka or RSocket - API gateways with Spring Cloud Gateway and patterns like rate limiting - API adapters - serverless programming with Spring Cloud Function and project Riff - reactive authentication and authorization with Spring Security.

3:40pm Break
4:10pm Reactive Architectures with RSocket and Spring Cloud Gateway

Cora Iberkleid

Spring Cloud Gateway introduced a flexible API for configuring the edge service of our applications. Built upon Project Reactor, Spring WebFlux, and Spring Boot 2.0, Spring Cloud Gateway provided a modern and efficient architecture to handle a large number of concurrent requests. However, as with all things Reactive in the Java stack, features like back pressure were only effective within the scope of the JVM. Once a request entered the network, all bets were off. The RSocket protocol allows us to overcome this limitation by extending the capabilities of reactive architectures down to the network level. In this talk, we'll provide an overview of the key benefits of RSocket-based networking and introduce the integration of Spring Cloud Gateway with RSocket. We'll discuss the benefits of this integration, including the impact on speed, scalability, security, and more. We'll also discuss use cases, and show how you can leverage this new technology in your applications.

5:00pm Networking reception


Agenda Day 2


8:00am Breakfast
8:45am Welcome
9:00am
Breakout Sessions
9:00am–10:00am Spring and the Clouds

Josh Long

Production is my favorite place on the internet. I LOVE production. YOU should love production. You should go as early, and often, as possible. Bring the kids, the whole family. The weather is amazing! It's the happiest place on earth! In this talk, join Spring Developer Advocate Josh Long (your friendly neighborhood @starbuxman) to learn how to use Spring as the onramp to production, and to cloud platforms like Azure Spring Cloud, Cloud Foundry, and more.



10:00am–11:00am Event Driven Architectures with Spring Cloud Streams

Rohini Rajaram

Rethinking business processes as a series of events is helping organizations transform their outcomes. The value of these events/data increase exponentially when in motion. As a part of this talk, lets look at identifying use cases in your organization that can benefit from accelerated data provisioning, platforms, patterns & frameworks that help build an event driven system and how we work with our customers to implement highly scalable and resilient event driven architectures.



11:30am–12:30pm Hello RSocket Security

Rob Winch

You are ready to go to production with your RSocket application, but then you realize you forgot one important thing....security. In this talk, we'll walk through adding Spring Security to an existing RSocket application. Along the way we will answer common questions, discuss recent security related changes in the specification, and see how Spring Security can be customized to meet your business requirements.

Workshops
9:00am–12:30pm Getting Started with Kubernetes

Paul Czarkowski
Cora Iberkleid


This workshop is aimed at people that are new to Kubernetes and want to quickly level up their experience and learn the basic of Kubernetes in a few short hours. This will be a hands-on-keyboards workshop where each participant will have access to A Kubernetes cluster and will follow along running each command and deploying applications into Kubernetes. By the end of the workshop you'll have the confidence and knowledge to deploy workloads into Kubernetes. Each Participant should come with the following installed on their laptop: kubectl, helm3, and docker

Space is limited.


9:00am–12:30pm Spring Cloud Data Flow

Glenn Renfro
Roy Clarkson


In today's enterprise we need to be able to create solutions to support IoT and other data-intensive business applications. Spring Cloud Data Flow provides tools that let you easily create topologies for streaming and batch data pipelines to support these business cases. This workshop demonstrates how to leverage Spring Cloud Data Flow for data integration and real-time data processing pipelines. We spend the first part of the class exploring how to create and deploy streams as well as create and launch composed tasks. During the second part of the class, we complete labs wherein you have the chance to interact with the projects and technologies on your own. Before coming to the workshop, please download and install Spring Cloud Data Flow, as described in the following the instructions: https://dataflow.spring.io/docs/installation/local/docker/

Space is limited.

12:30pm Lunch
1:30pm
Breakout Sessions
1:30pm–2:30pm Win a Spring Testing Trophy

Bella Bai

Testing is an art. It is more than verification and validation, but also documentation and reliability estimation. Do you have a good signal to noise ratio? Where is the right integration point to plug your test doubles? How to maximize the freedom to refactor or switching dependencies while still maintaining a high confidence in the quality? What is available in the Spring ecosystem that can help? In this talk, we'll review these testing concepts and how Spring can help you achieve these goals. We will discuss why we should embrace the Testing Trophy in Spring, and more generically, the principles we should keep in mind when designing our test suite.



2:30pm–3:30pm Bootiful Reactive Testing

Mario Gray

Join us for an exploration of testing a reactive Spring Boot 2.x application. Test driven development gives us the confidence necessary to improve our code faster, safely. But how do you test components and services, as well as integrations across distributed systems, while maintaining fast feedback loops, and how do you do all of this within the context of reactive Java? In this talk, we'll look at how to test imperative components, reactive data flows, and mocks. We’ll examine how to take advantage of test slices, and how to test web applications. We'll look at how to ensure that API producers and consumers work well together using consumer driven contract testing without sacrificing the testing pyramid for end-to-end integration tests. And we’ll do it all within the context of reactive programming.



4:00pm–5:00pm Ask Me Anything session with all speakers

Join us as we wrap SpringOne Tour with an open ask me anything session with our breakout and workshop presenters.

Workshops
1:30pm–5:00pm Thinking Architecturally

Nate Schutta
DaShaun Carter


Rich Hickey once said programmers know the benefits of everything and the trade offs of nothing...an approach that can lead a project down a path of frustrated developers and unhappy customers. As architects though, we must consider the trade offs of every new library, language, pattern or approach and quickly make decisions often with incomplete information. How should we think about the inevitable technology choices we have to make on a project? How do we balance competing agendas? How do we keep our team happy and excited without chasing every new thing that someone finds on the inner webs? Working in small teams, you will work through a kata (http://nealford.com/katas/list.html) identifying: Quality Attributes, Fitness Functions, Technology decisions, An overall architectural approach.

Space is limited.


1:30pm–5:00pm RSocket Workshop

Spencer Gibb
Cora Iberkleid


In this workshop participants will learn the basics of the RSocket protocol and how to implement application using Spring. They will learn about the different interaction models, backpressure, cancelation, resumption and leasing. They will implement interactions using the raw RSocket java APIs. They will then have the opportunity to implement an application using RSocket support in Spring Framework and Spring Boot. Then, to move to a true distributed system, participants will learn about the RSocket Broker in Spring Cloud Gateway will retrofit the application to use the broker. Prerequisites include a laptop with jdk 8 or 11, git, an IDE and a basic knowledge of Spring.

Space is limited.

5:00pm Day Ends