Join us to explore the state of the art in service-based architectures. Learn from practitioners building, operating, and evolving systems in the most demanding environments, from applications that interact with the physical world—like industrial automation, manufacturing, and the Internet of Things—to always-on, consumer products, platforms, and services. We will explore how to address the most difficult challenges presented by these systems: how to manage state; how to respond to failure; how to represent quality and uncertainty in data; how to react to events as they occur, so that applications are responsive; how to automatically adjust to system dynamics; and how to instrument these systems to sufficiently understand and control what they are doing.
Track: Microservices Patterns & Practices
Location: Ballroom A
Day of week:
Track Host: Colin Breck
Colin Breck has experience developing software infrastructures for the near real-time monitoring and control of industrial applications. At Tesla, he works on distributed systems for the monitoring, aggregation, optimization, and control of distributed-energy assets, including solar generation, battery storage, and the Supercharging network. Previously, he worked on the PI System at OSIsoft, a time-series platform for industrial monitoring and automation. He is interested in the intersection of developing people, teams, and software systems. He writes a monthly essay at www.colinbreck.com.
10:35am - 11:25am
Managing Failure Modes in Microservice Architectures
With the right architectural and operational patterns, failures are mitigated, contained and managed, rather than escalating and getting out of control. This talk will explore how to apply some industry standard techniques — including Failure Modes and Effects Analysis, and Systems Theoretic Process Analysis — to cloud native microservices architectures. Mitigation methods depend upon multiple layers of defense, but these defenses need to be tested to show that they work, and we will also look at how chaos engineering techniques are driving the industry from annual datacenter disaster recovery testing of monolithic applications to continuous resilience assurance for cloud native microservices.
11:50am - 12:40pm
User & Device Identity for Microservices @ Netflix Scale
Millions of members across the world access Netflix on their devices to stream movies and tv shows. Once these users login to the Netflix app, their identity and the identity of their device needs to be securely propagated to hundreds of microservices within the Netflix ecosystem. This combined identity is leveraged across the entire stack of microservices to make appropriate authorization and business decisions. At Netflix scale, this means hundreds of millions of devices, for every request to Netflix services, send this identity in the form of one of the multiple types of authentication tokens that we support. This presented the challenge that each microservice had to know about the various types of tokens (say, Cookies vs JWT). Also, the extraction of the identity information from these tokens was inefficient at scale and error prone, causing hard-to-debug issues related to identity. Building a solution to enable a token agnostic identity model at the edge, that was both secure and efficient was a key aspect of this architecture.
This talk will provide useful insights on how we implemented a secure, token-agnostic, identity solution that works with services operating at a massive scale. Come learn how this solution helped hundreds of middle-tier services to not worry about the types of tokens and authentication concerns, and consume the user and device identity with high confidence.
1:40pm - 2:30pm
Stateful Programming Models in Serverless Functions
Most will agree that Serverless is the future of cloud computing. But when most people think of Serverless, they think of FaaS (Functions as a Service), and when they think of FaaS, they think of functions that are ephemeral, stateless, and short-lived. But does this always need to be the case? Is it possible write functions that are stateful and long-running on top of ephemeral, Serverless compute platforms?
In this session, we'll explore two stateful programming models: workflows and actors. We'll discuss how they can simplify development and how they enable stateful and long-running application patterns within ephemeral, Serverless compute environments. We'll also explain why we're making a bit bet on these programming models in the Azure Functions service.
2:55pm - 3:45pm
Controlled Chaos: Taming Organic, Federated Growth of Microservices
The success with which enterprises execute on microservice strategies and the degree to which cloud-native technologies boost developer productivity leave operations and security teams with an organically growing landscape of federated services that is increasingly difficult to control. As a result, failures mount, resilience declines, and innovation dies.
In this talk, I focus on the challenges that result from organic, federated growth as well as the patterns that can be applied to monitor and control these dynamic systems, like bulkheads, backpressure, and quarantines, from both an operational and security perspective. I illustrate how visibility and control of the surrounding environment become more important than the observability of individual threads of execution and how the nature of this organic architectural style necessitates a shift to remediating behaviors in real-time.
4:10pm - 5:00pm
Beyond Microservices: Streams, State and Scalability
Microservices have been a popular architecture choice for at least 5 years by now. Over these years we've adopted microservices architectures to ever growing set of use-cases and different development and deployment strategies. Lessons were learned and our ability to design, develop, deploy and operate microservices has improved.
This presentation will give an opinionated view of how microservices evolved in the last few years, based on experience gained while working with companies using Apache Kafka to update their application architecture. We'll discuss the rise of API gateways, service mesh, state management and serverless architectures - what works well, and in which cases. We'll show real-world examples of how applications become more resilient and scalable when new patterns are introduced, and make sure to include caveats - because patterns are all about using them in the right context.
Last Year's Tracks
Monday, 1 November
-
Microservices / Serverless Patterns & Practices
Evolving, observing, persisting, and building modern microservices
-
Practices of DevOps & Lean Thinking
Practical approaches using DevOps & Lean Thinking
-
JavaScript & Web Tech
Beyond JavaScript in the Browser. Exploring WebAssembly, Electron, & Modern Frameworks
-
Modern CS in the Real World
Thoughts pushing software forward, including consensus, CRDT's, formal methods, & probabilistic programming
-
Modern Operating Systems
Applied, practical, & real-world deep-dive into industry adoption of OS, containers and virtualization, including Linux on Windows, LinuxKit, and Unikernels
-
Optimizing You: Human Skills for Individuals
Better teams start with a better self. Learn practical skills for IC
-
Open Spaces
Tuesday, 2 November
-
Architectures You've Always Wondered About
Next-gen architectures from the most admired companies in software, such as Netflix, Google, Facebook, Twitter, & more
-
21st Century Languages
Lessons learned from languages like Rust, Go-lang, Swift, Kotlin, and more.
-
Emerging Trends in Data Engineering
Showcasing DataEng tech and highlighting the strengths of each in real-world applications.
-
Bare Knuckle Performance
Killing latency and getting the most out of your hardware
-
Socially Conscious Software
Building socially responsible software that protects users privacy & safety
-
Delivering on the Promise of Containers
Runtime containers, libraries, and services that power microservices
-
Open Spaces
Wednesday, 3 November
-
Applied AI & Machine Learning
Applied machine learning lessons for SWEs, including tech around TensorFlow, TPUs, Keras, PyTorch, & more
-
Production Readiness: Building Resilient Systems
More than just building software, building deployable production ready software
-
Developer Experience: Level up your Engineering Effectiveness
Improving the end to end developer experience - design, dev, test, deploy, operate/understand.
-
Security: Lessons Attacking & Defending
Security from the defender's AND the attacker's point of view
-
Future of Human Computer Interaction
IoT, voice, mobile: Interfaces pushing the boundary of what we consider to be the interface
-
Enterprise Languages
Workhorse languages found in modern enterprises. Expect Java, .NET, & Node in this track