This track explores the real-world patterns and practices of microservices. We will talk about the problems microservices solve and what problems they introduce. We will talk about the monoliths we came from and the architectures we are evolving to. We will talk about the architectural techniques, the organizational practices, and the development methodologies that make microservices successful.
Track: Microservices: Patterns and Practices
Location: Ballroom A
Day of week:
Track Host: Randy Shoup
Randy is a 30-year veteran of Silicon Valley, and has worked as a senior technology leader and executive at companies ranging from small startups, to mid-sized places, to eBay and Google. Randy is currently VP Engineering at WeWork in San Francisco. He is particularly passionate about the nexus of culture, technology, and organization.
Managing Data in Microservices
This session is about the hard stuff -- managing data in microservices -- and about sharing proven patterns that have been successful at Google, eBay, and Stitch Fix. It begins with a quick tour of some prerequisites for being successful with microservices -- an organization of small teams with well-defined areas of responsibility; processes for test-driven development and continuous delivery; and a DevOps culture of "You Build It, You Run It."
The majority of the session is spent on managing data. It covers the need to isolate a microservice's data store behind the service interface, as well as the various persistence mechanisms for managing data. It discusses using events as a first-class tool in our architectural toolbox. It covers techniques for service extraction from a monolithic database. Then it composes those building blocks to build up patterns for handling shared data, joins, and transactions in a microservice world.
It concludes with lessons learned, as well as suggestions for how you can implement these ideas successfully in your own organization.
Data Consistency in Microservice Using Sagas
The services in a microservice architecture must be loosely coupled and so cannot share database tables. What’s more, two phase commit (a.k.a. a distributed transaction) is not a viable option for modern applications. Consequently, a microservices application must use the Saga pattern, which maintains data consistency using a series of local transactions.
In this presentation, you will learn how sagas work and how they differ from traditional transactions. We describe how to use sagas to develop business logic in a microservices application. You will learn effective techniques for orchestrating sagas and how to use messaging for reliability. We will describe the design of a saga framework for Java and show a sample application.
Istio - Weaving the Service Mesh
With the rapid adoption of microservices, new tools are needed to load-balance, route, secure and monitor the traffic that flows between them. Istio provides a common networking, security, telemetry and policy substrate for services that we call a ‘Service-Mesh’. Come learn how the service-mesh helps to enable the transition to microservices, to empower operations teams, to adopt security best-practices and much more. We’ll also cover the state of the project, where it’s headed and how you can get involved.
Polyglot Persistence Powering Microservices
Netflix’s architecture involves thousands of microservices built to serve unique business needs. As this architecture grew, it became clear that the data storage and query needs were unique to each area; there is no one silver bullet which fits the data needs for all microservices. Netflix embraced polyglot persistence, which promises to offer ideal matches between problem spaces and persistence solutions.
No longer do developers struggle with mapping graph data into relational tables, adapting document-oriented data into columnar stores, or mashing key-value data into blob stores. Unlocking these benefits comes with costs, from operational complexity to cognitive overload and more. Building on our years of running and scaling thousands of microservices in the cloud at Netflix, we’ll share:
- Specific examples of how we at Netflix solved the unique business use cases and represented the data to adhere to best model for the use case.
- Challenges around offering the database as a service specially in polyglot persistence
- Benefits, pitfalls, and lessons learned from our polyglot persistence architectures to shape the success of various services.
Microservices: Service Oriented Development
Conventional wisdom is that microservices is an architecture that is the spiritual successor to service-oriented architecture. While true, this myopic view of microservices ignores some of the profound workflow shifts in today’s microservices organizations.
The reality is that microservices is an architecture _and_ workflow. In this talk, we’ll introduce the workflow of service-oriented development. Rafael will talk about how the real goal of microservices is to break up a monolithic development workflow. We’ll show you how, by breaking up your workflow, you can build software that lets you move fast and make things.
Microservices: Patterns and Practices Panel
Microservices almost seem to be the de facto way to build systems today, but are they always the answer? If they are the answer, what are the challenges you'll face at scale (both from a technical and organizational level)? What are the strategies you should use now that you are effectively building a distributed system? ...or what's the one thing you wish you'd known before you got here? These questions and more will be asked in the Microservices: Pattern's & Practices Ask Me Anything or AMA (a significant portion of the time will be available for the audience to get their questions answered as well). This session joins together many of the conference's most popular sessions speakers with the trackhost from the Microservices track to have a frank and honest discussion on Microservices. Join us to have your Microservices questions answered.
Roopa Tangirala, Engineering Manager @Netflix, Apache Cassandra MVP
Rafael Schloming, Co-founder and Chief Architect @Datawire, spec author of the AMQP specification
Louis Ryan, Core Contributor Istio, gRPC, & Principal Engineer @Google
Chris Richardson, Java Champion and Author of POJOs in Action
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