Track: Operationalizing Microservices: Design, Deliver, Operate

Location: Fleming, 3rd flr.

Day of week: Tuesday

Building and operating distributed systems is hard, and microservices are no different. The source of the challenge is not necessarily the services themselves but rather managing the space in between the services. Here, you enter a world of non-determinism, where all bets are off—half the time you can’t tell if your system is up, down, or partially working, and now every outage is a murder mystery.   

Sounds scary? Join us on this track where we explore what it takes to create Operational Microservices, through a continuous iterative process: from how to design a system for observability, resilience, predictability, continuous delivery; to exploring what tools, practices, and processes help you tackle the complexities of operating microservices at scale.

Track Host: Jonas Bonér

Founder & CTO @Lightbend / Creator of Akka

Jonas Bonér is Founder and CTO of Lightbend, inventor of the Akka project, initiator and co-author of the Reactive Manifesto, and a Java Champion. Learn more at http://jonasboner.com.

What if You Need Reliability Comparable to Paper?

In the manufacturing industry downtime is very expensive, therefore most small and midsize factories are still managed using paper-based processes. The problem space is perfectly suited for the microservices approach: well-defined and locally encapsulated responsibilities, collaboration and loose coupling between different links in the chain, rapid evolution of individual pieces for the purpose of optimising business outcomes. But how can we operate microservices such that they can deliver the resilience of paper? How can we leverage the locality of process data with high bandwidth and low latency communication to enable innovative improvements in the Internet of Things? 

This talk explores the radical approach of operating microservices in a peer-to-peer network on the factory shop-floor, using event sourcing as the only means of communication and observation. We discuss the consequences of going all in on availability and partition tolerance. We pay particular attention to eventual consistency and its impact on replacing nodes, upgrading services, and evolving event schemas. And we see how event sourcing can help understand the behaviour of such an uncompromisingly distributed system and enable powerful testing—both before and after an hitting an issue in production.

Roland Kuhn, CTO and co-founder of @actyx, author of Reactive Design Patterns & co-author of the Reactive Manifesto

Reactive Systems Architecture

Reactive systems architecture promises resilience and scalability, but building and maintaining a globally distributed system introduces considerable challenges. Jan and Matt will share the most important building aspects of systems that spread over multiple data centres as well as multiple AWS regions. You will learn about the evolution of the system's architecture, including some of the more interesting mistakes made, the protocols and APIs that its microservices use to communicate with each other, the challenges of eventual consistency in a system that spans continents, and the hard-learned lessons in keeping the system's components running in production. Moreover, Matt and Jan will present an overview of analysis process to discover just what makes the biggest impact on distributed system’s resilience; together with the results of applying this process to several production projects. 

In short, Matt and Jan will give you the answer to the click-baity headline “4 things that make the biggest impact in distributed systems”, together with architectural and code examples to help you to avoid repeating the speakers’ mistakes.

Jan Machacek, Senior Principal Engineer @waltdisneyco & Founder @muvrhq
Matthew Squire, Technical Team Leader @BamtechMedia

Lessons From 300k+ Lines of Infrastructure Code

This talk is a concise masterclass on how to write infrastructure code. I’ll share key lessons from the “Infrastructure Cookbook” we developed at Gruntwork while creating and maintaining a library of over 300,000 lines of infrastructure code that’s used in production by hundreds of companies. Come and hear our war stories, laugh about all the mistakes we’ve made along the way, and learn what Terraform, Packer, Docker, and Go look like in the wild. Topics include how to design infrastructure APIs, automated tests for infrastructure code, patterns for reuse and composition, refactoring, namespacing, versioning, CI / CD for infrastructure code, and more.

Yevgeniy Brikman, Co-founder @gruntwork_io

Tracks