Amsterdam

June 25–26, 2020

Registration & location coming soon



Agenda Day 1


8:00am Breakfast
8:45am Welcome
9:00am We're Not Done Yet - Surviving the Trough of Disillusionment

Michael Coté

Many organizations are getting better at software by using techniques like DevOps, agile development, and product management. Cloud native technologies are making organizations' software supply chains more efficient and reliable. We can't assume that the work is done. New bottlenecks are forming and others are persisting.Improvement is fragile, and scaling up in large enterprises is difficult. This talk discusses these bottlenecks and challenges, and how we can start to move past them.

9:30am Welcome to the Plateau of Productivity

Paul Czarkowski

Pivotal and VMware have combined forces to help our customers write better software. With the evolution of Tanzu we blur the lines between infrastructure and software. Paul will talk through the Tanzu product line and demonstrate how it combines to create a powerful platform that reduces operations toil and allows developers to focus on writing software. Being based on opensource (batteries not included) means that you can start to take advantage of our hard work event if you aren't [yet] a customer!

9:55am Break
10:30am Responsible Microservices

Nate Schutta

These days, you can’t swing a dry erase marker without hitting someone talking about microservices. Developers are studying Eric Evan’s prescient book Domain Driven Design. Teams are refactoring monolithic apps, looking for bounded contexts and defining a ubiquitous language. And while there have been countless articles, videos, and talks to help you convert to microservices, few have spent any appreciable time asking if a given application should be a microservice. In this talk, I will show you a set of factors you can apply to help you decide if something deserves to be a microservice or not. We’ll also look at what we need to do to maintain a healthy micro(services)biome.

11:20am Game of Streams: How to Tame & Get the Most from your Messaging Platforms

Mark Heckler

"Most mission-critical systems have distributed elements or are entirely distributed, resulting in a number of challenges: performance, scalability, reliability, resilience…​the eight fallacies of distributed computing are alive and well! Messaging platforms are often used to solve these problems and increase the ""ilities"", but they don’t come without a few complexities of their own. Come to this session to learn not only how to use open source solutions like Spring Cloud Stream, RabbitMQ, & Apache Kafka to maximize your distributed systems' capabilities while minimizing complexity…​but also how to really use them! There be dragons when dealing with messaging platforms; the presenter will show you several ways to tame and harness them for maximum fire, maximum altitude. All examples will be coded live & in real-time!"

12:10pm Lunch
1:30pm Live Refactoring

Jakub Pilimon

In this live coding session, we will refactor a part of some legacy system. We will approach the problem pragmatically, identifying issues and fixing them by applying rules and patterns related to modularity, cohesion, testability, and more. We will also see how Domain Driven Design can help us achieve the goal of clean and solid code.

2:20pm Spring Performance Gains

Dave Syer

This talk sheds light on recent improvements in Spring Framework and Spring Boot, exposing some of the decisions that have been made in the process, leading to valuable new features in some cases and blind alleys in others. The team have been very busy and there have been improvements in a number of areas, including startup time, memory usage, and more efficient processing in the web and data access stacks. We will look at the tools and analysis used to measure these changes, which is often complex and subtle, requiring a deeper explanation than you might have naively expected. There will also be an opportunity to see how your own applications can benefit best from the changes.

3:10pm Break
3:30pm 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.

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 Do's and Don'ts: Avoiding First-Time Reactive Programmer Mines

Sergei Egorov

You want reactive architecture, you know you're going with Reactor/WebFlux or similar Reactive technology.Let's hit all the possible potholes we can on the road to our first Reactive API and discover what one should (not) do to achieve the best result.Someone said, "try, fail, and repeat" is the best way to learn. Let's see about that!



11:30am–12:30pm How to Live in a Post–Spring Cloud Netflix World

Ryan Baxter

Zuul? Gateway? Should we get rid of Ribbon? What is going on with Hystrix? If you've ever faced those questions, come and listen to this talk.In December 2018, Netflix decided to move a number of their popular OSS projects, like Hystrix and Ribbon, into maintenance mode and to make newer, backward -incompatible versions of some others, like Zuul and Archaius. The Spring Cloud team moved some of the corresponding Spring-Cloud-Netflix projects into maintenance mode as well and proposed a newer, more modern Spring Cloud stack that could be used instead. During this talk, we'd like to show how to move over to these newer solutions. We'll discuss possible approaches, show a code demo, and speak about potential issues and solutions.

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

Paul Czarkowski
Tyler Britten


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 Responsible Microservices

Jakub Pilimon
Nate Schutta


These days, you can’t swing a dry erase marker without hitting someone talking about microservices. Developers are studying Eric Evan’s prescient book Domain Driven Design. Teams are refactoring monolithic apps, looking for bounded contexts and defining a ubiquitous language. And while there have been countless articles, videos, and talks to help you convert to microservices, few have spent any appreciable time asking if a given application should be a microservice. In this talk, I will show you a set of factors you can apply to help you decide if something deserves to be a microservice or not. We’ll also look at what we need to do to maintain a healthy micro(services)biome.

Space is limited.

12:30pm Lunch
1:30pm
Breakout Sessions
1:30pm–2:30pm Best Practices When Using Reactor Netty and Avoiding Common Mistakes

Violeta Georgieva

Reactor Netty is the default runtime in Spring Boot 2 when creating reactive applications.Since the very first release of Reactor Netty, the team has collected feedback, benchmarks, and other developer experiences. The session will be focused on some best practices when using Spring Boot 2 with Reactor Netty.Hints how to avoid common mistakes and tricks how to debug different error cases will be presented. For example, the presenter will show how to find memory leaks, how to deal with prematurely closed connections etc.



2:30pm–3:30pm TBA

4:00pm–5:00pm 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.

Workshops
1:30pm–5:00pm The CI/CD Experience: Kubernetes Edition

Ollie Hughes
Alberto Rios


This workshop is for those who want to learn more about how Kubernetes is shaping the landscape of implementing the practices of Continuous Integration (CI) and Continuous Delivery (CD). We will tour the ecosystem of new Kubernetes centric tools and how gitops relates to CI/CD. Each participant will have a Kubernetes cluster provisioned on a remote server. You will then take hands-on tutorials that use Tekton, Kustomize, and ArgoCD to deploy a Spring Boot application to Kubernetes and promote it through dev, test, and production environments.

Space is limited.


1:30pm–5:00pm Managing the Change

Michael Coté
Cora Iberkleid


People and process and BUSINESS VALUE! Come learn how large organizations change their culture and structure to lay the groundwork for improve how they build and run software. You'll get a toolkit to start putting together your transformation strategy. Large organizations are desperate to become “tech companies.” They drool at these tech companies ability to grow and change quickly. Despite mastering agile over the past 20 years, IT as a whole is too slow and unreliable. “It’s the culture,” everyone says. Changing culture for a team of 10 people is easy - changing a department of 20,000 developers is another challenge entirely. Based on case studies and interviews over the past five years, this session describes how large organizations are getting over that challenge. First, we'll cover moving from a project to a product mindset and the associated practices. Second, we'll go over how DevOps and cloud platforms enable that product mindset. Third, you'll see how leadership and management change to support this new approach. Finally, you'll get a toolkit of tactics, patterns, and organizational structures that large organizations are using to improve how they do software which leads to improving their business. This talk is based on the book Monolithic Transformation (O’Reilly, Feb 2019) and the upcoming The Business Bottleneck.

Space is limited.

5:00pm Day Ends