Echo JS 0.11.0

<~>
jylauril 3723 days ago. link 1 point
A really good question at the end of the article: Why not terminate SPDY at the load balancer and just communicate via HTTP to the Node.js servers?

Technically you're handling the SPDY in two places and you're slowing down the protocol by having to re-interpret it twice? What's the reasoning/requirement for this?

Note: I'm not claiming that it is the wrong way to do this, because I'm not that familiar with SPDY in general, but I am familiar with SSL and you'd never implement that in two places if you already terminate the SSL in the loadbalancer.

Replies

victorquinn 3723 days ago. link 2 points
I mention it in the footnote (and disclaimer, I'm a Node expert, not a networking expert, so I may be totally wrong), but one of the main benefits of SPDY is the data pipelining, so it will open a connection and leave it open without forcing a TCP handshake with every request. Helps mostly with multiple requests in rapid succession. That is one of the main benefits for deploying SPDY.

If I were to terminate SPDY at the load balancer then communicate via plain jane HTTP from the load balancer to our Node servers, the pipeline would be kept open between the client device and the load balancer which is good, but there would be a TCP handshake between the load balancer and the Node server on every incoming request since it'd be communicating over normal HTTP, thereby eliminating most of that benefit of SPDY.

It'd be a bit like starting with a slow internet connection (10Mbps) and a slow router (10Mbps). Your throughput is 10Mbps.

You upgrade to a blazing fast internet connection (1000Mbps) but keep your slow router (10Mbps). Your throughput is still only 10Mbps in spite of your fast connection.

But, if you can upgrade your router (1000Mbps) and pair it with your fast internet (1000Mbps), then you really get fast throughput (1000Mbps).

That's my understanding anyway, again I'm no expert. I found it a bit tricky to do things like performance metrics for SPDY because most performance and load testing tools (like ab) only support HTTP(S) and not SPDY.
jylauril 3722 days ago. link 1 point
That makes sense if it keeps the connection open. It just seemed weird that you'd still have to include the certificates in both, the load balancer and your Node app as well.