Track: Microservices / Serverless (Patterns & Practices)

Location: Broadway Ballroom North, 6th fl.

Day of week: Tuesday

Event-driven architecture - leveraged by distributed systems such as Microservices and Serverless technologies - promotes to design a system to be easy to evolve and to scale by achieving higher decoupling of involved components. But due to its asynchronous distributed nature, event-driven architecture is relatively complex to implement and operate. 

During this track, we are going to explore how to design, implement, test and operate event-driven systems based on Microservices and Serverless technologies illustrated by pattern & practices.

Track Host: Susanne Kaiser

Independent Tech Consultant

Susanne Kaiser works as an independent Tech Consultant tackling complexities from software architecture to software delivery. She was previously working as a startup CTO transforming their SaaS solution from monolith to microservices. She has a background in computer sciences and experience in software development & architecture for more than 15 years and regularly presents at and co-organize international tech conferences.

10:35am - 11:25am

Opportunities and Pitfalls of Event-Driven Utopia

Event-driven architectures are on the rise. They promise both better decoupling of components by using an event bus and improved scalability in terms of throughput. Decoupled modules help to scale your software development efforts itself. Event streaming promises to handle ever-growing amounts of "data in motion" in real-time, event sourcing allows us to time travel, and domain events have turned out to be powerful building blocks that lead to a better understanding of underlying business requirements.  

But there are also pitfalls that you’d better be aware of. For example event-notifications used inappropriately can lead to tighter coupling or cyclic dependencies between components. It is also easy to lose sight of flows across service boundaries, making it hard to understand how core business logic is actually implemented. This can get even worse if you lack tooling to get insights into your event flows. Last but not least, the event-driven approach is not well-understood by most developers or business analysts, making it hard for companies to adopt. In this talk, I will quickly go over the concepts, the advantages, and the pitfalls of event-driven utopia. Whenever possible, I will share real-life stories or point to source code examples.

Bernd Rücker, Co-Founder and Chief Technologist @Camunda

11:50am - 12:40pm

Conquering Microservices Complexity @Uber With Distributed Tracing

Microservices bestow many benefits on the organizations adopting them, but they come with a steep price: complexity of the resulting architecture. Distributed tracing is a recognized way of dealing with that complexity and getting back the visibility into our systems. At Uber we discovered that this visibility is not enough to be able to understand the system behavior. A trace for a single request from our mobile app may consist of several thousand data points. That’s too much information for engineers to weed through, especially in a high-stress outage situation when every minute counts. Complexity strikes again.

In this talk we present a methodology that uses data mining to learn the typical behavior of the system from massive amounts of distributed traces, compares it with pathological behavior during outages, and uses complexity reduction and intuitive visualizations to guide the user towards actionable insights about the root cause of the outages. The technique has proven to be highly effective in drastically reducing time to mitigation of high severity outages. The visualizations are built using the modules available in the open source as part of Jaeger, Uber's distributed tracing platform and an incubating project at Cloud Native Computing Foundation.

Yuri Shkuro, Creator of Jaeger & Software Engineer @Uber

1:40pm - 2:30pm

Building Resilient Serverless Systems

In this brave new world of serverless, we entrust our vendors with keeping the infrastructure up and running. However, when even cloud behemoths like Amazon Web Services and Google Cloud have outages and failures, how can we build resilient systems?  

John Chapin explains how to use serverless technologies and an infrastructure-as-code approach to architect, build, and operate large-scale systems that are resilient to vendor failures, even while taking advantage of fully managed vendor services and platforms. He then leads an end-to-end demo of the resilience of a well architected serverless system in the face of massive simulated failure. He further demonstrates how the system not only provides resilience to failure, but also has a side affect of improving the end-user experience.  

Finally, John discusses some of the drawbacks and idiosyncrasies of the approach. All source code, infrastructures templates, and slides will be available for the audience to download and explore. While the examples largely focus on AWS—including API Gateway, CloudFormation, DynamoDB, Lambda, and Route 53—the techniques discussed are broadly applicable across cloud vendors.

John Chapin, Cloud Technology Consultant with an expertise in Serverless Computing

2:55pm - 3:45pm

PracticalDDD: Bounded Contexts + Events => Microservices

Domain Driven Design and Messaging go hand in hand, like a warm chocolate brownie paired with vanilla ice-cream! DDD is a software discipline that allows you to move faster and write high-quality code. The whole point is to align the software you write to be flexible with the business changes. When you start to use the technology of messaging to communicate between clean and well-defined bounded contexts you get to remove temporal coupling. And voila, you now have microservices that are built for autonomy from the ground up. Sounds perfect? In this talk, discover this intersection of DDD as a software discipline with messaging as a technology counterpart. Build reliable systems that can scale with the business changes.

Indu Alagarsamy, Solution Architect @Particular Software

4:10pm - 5:00pm

The Not-So-Straightforward Road From Microservices to Serverless

For the last ten years or so, many companies have focused on migrating from larger, monolithic systems and applications towards a specific style of Service-Oriented Architecture called Microservices. The promise was that these smaller, loosely-coupled, and independently developed components would increase productivity and safety for organizations, as large and complex business challenges can be broken down into smaller and simpler components.

However, even before most organizations were able to fully migrate to this new architecture and enjoy its promised benefits, a new iteration of cloud computing has been made available in the shape of Serverless platforms such as AWS Lambda, and Google Cloud and Microsoft Azure Functions.

Now lots of companies found themselves conflicted between abandoning their traditional microservices approach towards Serverless, often even before they have fully migrated to it from the legacy systems.

After leading successful Microservices adoption at SoundCloud and DigitalOcean, recently at Meetup I have faced the challenge of pivoting from a traditional monolith-to-microservices migration to a cloud-native platform.

In this talk, let's discuss the fundamental concepts, technologies, and practices behind Microservices and Serverless, and how a software architect used to distributed systems based on microservices needs to change their mindset and approach when adopting Serverless.

Phil Calçado, Director, Platform Engineering @Meetup

5:25pm - 6:15pm

Microservices Open Space

Presentation details to follow.


Monday, 24 June

Tuesday, 25 June

Wednesday, 26 June