Episode 136 - Sidecar Proxy (Pros and Cons)

The Backend Engineering Show with Hussein Nasser

Episode | Podcast

Date: Sun, 08 Mar 2020 03:56:34 GMT

<p><strong>A sidecar proxy is an application design pattern which abstracts certain networking features, such as inter-service communications, monitoring and security, timeouts, retries, communication protocols, away from the main architecture to ease the maintenance of the application as a whole.</strong></p> <p>In this video I’d like to talk about how we classically do things:</p> <ul> <li>Library Pattern <ul> <li>getComments HTTP1:1/JSON</li> <li>Add features retries/timeout /hardcode the server name what it changed/add new server to load balance between them/credentials</li> </ul> </li> <li>Sidecar pattern <ul> <li>getComments HTTP/2</li> </ul> </li> <li>Sidecar proxy/container</li> </ul> <p>Examples</p> <ul> <li>Microservices (Linkerd, Envoy, Istio)</li> </ul> <p>Pros</p> <ul> <li>Language agnostic (polyglot)</li> <li>Protocol upgrade</li> <li>Security</li> <li>Tracing and Monitoring</li> <li>Service Discovery</li> <li>Caching</li> </ul> <p>Cons</p> <ul> <li>Complexity</li> <li>Latency</li> <li>SideCar Proxy must be layer 7</li> </ul> <p>Library 2:25</p> <p>Sidecar: 7:40</p> <p>Example: 13:00 (<a href="https://www.youtube.com/watch?v=cp3Ku1XeOn8">https://www.youtube.com/watch?v=cp3Ku1XeOn8</a>)</p> <p>Pros &amp; Cons : 16:15</p> <p>Cards</p> <p>6:22 HTTP/2</p> <p>10;50 Reverse Proxy / proxy</p> <p>example 13:00 (<a href="https://www.youtube.com/watch?v=cp3Ku1XeOn8">https://www.youtube.com/watch?v=cp3Ku1XeOn8</a>)</p> <p>16:00 Layer 4 vs Layer 7 load balancer</p>