Where envoy Istio fits in to microservice application

4/16/2019

I am trying to understand full picture of microservice architecture. I work on java so worked with spring boot applications. As per my understanding spring has good integration with Netflix modules like service discovery , zuul api Gateway, hystrix and other modules. But when it comes to production applications which are deployed as containers in any cloud providers with kubernetes as orchestrated I can see they use envoy and Istio for resilience load balance and other tasks.

I don’t understand where Istio and envoy fits here instead of Netflix oss modules

-- Renukeswar
envoyproxy
istio
java
kubernetes
microservices

1 Answer

4/16/2019

Istio fits to microservices because it enables you to abstract similar implementations (Retries, Circuit Breaking, Logging, Tracing, etc..) done differently by different frameworks and languages into sidecar containers.

One core principle of microservice architecture is that "We should enable our teams to pick the technology stack (Language, Framework, CIs, etc..) that they think fit the use case of each component". However, we would want to ensure that every single one adheres to cross cutting concerns like retries, circuit breaking, logging, tracing which is a rule that spans across entire ecosystems.

Diversity across tools sometime introduce different behaviors (eg. Go and C# libraries for retry might have libraries that differentiate in terms of little details that matter to you) and this is what Istio is exactly trying to solve.

It allows you to write re-usable sidecar containers that complement existing behavior of your existing apps so that they don't have to worry about cross cutting concerns because they are already integrated with your layer 5 (Service Mesh)

PS: Welcome to Stackoverflow!

-- Allan Chua
Source: StackOverflow