0

I've read 'youtube-architecture' but still do not understand one point.

Assume I have a bit bigger content to deliver and one load balancer (nginx) points via reverse proxying to e.g. 10 back-end servers (java/jetty). Now assume 1 GBit/s for every server.

When the applications gets more users I have some options:

  • reduce the maximum download rate per connection. So a few heavy users won't make the connection worse for the others. (limited scalability)
  • redirect to the back-end server so that the clients directly download there and the bandwidth multiplies. (the 'youtube' style?)
  • use DNS load balancing, here also the bandwidth multiplies. Problem: I do not have much control over the load balancing selection process

Is there another option?

E.g. the 2nd option without the redirection? Or is it this normal that clients just load a thin skin of the application like 'youtube.com' and then download the videos from different domains like 'xy.googlevideo.com'?

Greg Askew
  • 34,339
  • 3
  • 52
  • 81
Karussell
  • 191
  • 2
  • 15

1 Answers1

2

There are several options on the spectrum of scale up versus scale out.

Put your static content on a CDN. These will be across the Internet, hopefully close to clients. Youtube definitely can be a considered a CDN, but keep in mind that their architecture changed over the years.

Scale out yourself. Use DNS or anycast or add tiers to the architecture. Adopt to more complexity than one server daemon. See also: What is a typical method to scale out a software load balancer?

Scale up. Get more bandwidth for the load balancer e.g. multiple 10 Gb links. Check that your software can scale.

John Mahowald
  • 30,009
  • 1
  • 17
  • 32
  • Thanks! Getting more bandwidth is an option I forgot to list :). Adding tiers won't solve the bandwidth limit. I think my question is exactly how I should do *"adopt to more complexity than one server daemon"*. But thanks for the link, the answers provide some interesting things that I now need to research like IP or TCP load balancing, IPVS and Direct Server Return – Karussell Jan 23 '16 at 18:38
  • You seem to have a list of the components you could use. Direct server return included, neglected that. I merely mean that doing any of them is generally more complex than one load balancer that funnels all traffic. Anywhere from new cabling to get faster links to building your own CDN. – John Mahowald Jan 23 '16 at 20:42