Main Conference (Aug 6th, 2019)
Mastering Consistency in Microservices Architectures
One of the promises of microservices is the ability for teams to operate in a more autonomous fashion, but the services built by even the most autonomous teams are still subject to a number of explicit and implicit functional and cross-functional contracts with their neighbouring services. Authentication, logging, observability and security are all examples of these common concerns as they all assume a consistent approach to deliver value.
Popular solutions to ensuring consistent implementation of these concerns abound, from build time support with Service Templates (e.g., as provided by frameworks such as Serverless), adherence to distributed design patterns (e.g., Circuit Breaker) and coding standards (e.g., Structured Logging), through to runtime support via Service Mesh (e.g., Istio) and client SDKs to ensure consistent service access.
This range of possible solutions to the tension of independent teams needing to adhere to common standards leads to many questions teams will face as they build out microservices:
- Should teams use all of these solutions, or pick and choose?
- What criteria should be used for selection?
- Beyond selection, what is the best way to leverage a combination of these solutions?
- What works and what doesn't?
- Who owns these cross-team solutions and how do they evolve?
Based on empirical data collected from a large number of ThoughtWorks' delivery projects around the world, Vinod and Andy will address each of these questions and provide answers based on our collective experience in a global organisation closely associated with the emergence and spreading popularity of microservices.