We’ve been iterating on how we build services architectures for the past few decades, going from various flavors of RPC to messaging to RPC again. (Currently, enterprise architectures are dominated by cloud-native microservices.) Each new technology platform forces us to reevaluate our architectures to optimize for the holy grail: fast feedback loops of service change to reduce time to value. However, these systems architectures are still distributed systems, and the laws of distributed computing still hold.
As we strive toward architecture guidelines like microservices, we’re faced with the fact we’re making more network calls and need to do more integration to get our system to work. The problem with more integration is that we create more ways for our applications to break and for failures to propagate much faster than before. We need a way to get the benefits of microservices without the serious disadvantages of a practical implementation. We need a way to call our microservices and be resilient to distributed systems failures.
There are a number of tools that provide necessary things like resilience, routing, and observability, and they work fine if you have a homogenous stack. However, at most enterprises, this is not the case. For each combination of platform/language/framework used to build microservices you must solve for the following critical functions: routing, adaptive/client-side load balancing, service discovery, circuit breaking, timeouts/retries/budgets, rate limiting, metrics/logging/tracing, fault injection, and A/B testing/traffic shaping/request shadowing. Trying to do all of these things in application-layer libraries across all your languages and all your frameworks becomes incredibly complex and expensive to maintain. Christian Posta offers an overview of Envoy Proxy and Istio.io Service Mesh, explaining how they solve application networking problems more elegantly by pushing these concerns down to the infrastructure layer and demonstrating how it all works.
Christian Posta is chief architect for cloud applications at Red Hat. Christian has spent a great deal of time working with large companies creating and deploying large-scale distributed architectures—many of which are now called microservices based. A frequent blogger, speaker, and open source enthusiast, Christian is the author of Microservices by Example and a committer on the open source projects Apache ActiveMQ, Apache Camel, Fabric8.io, and others. Christian enjoys mentoring, training, and leading teams to be successful with distributed systems concepts, microservices, DevOps, and cloud-native application design.
Help us make this conference the best it can be for you. Have questions you'd like this speaker to address? Suggestions for issues that deserve extra attention? Feedback that you'd like to share with the speaker and other attendees?
Join the conversation here (requires login)
©2018, O'Reilly Media, Inc. • (800) 889-8969 or (707) 827-7019 • Monday-Friday 7:30am-5pm PT • All trademarks and registered trademarks appearing on oreilly.com are the property of their respective owners. • firstname.lastname@example.org