Our recent webinar on live and OTT/on-demand video streaming brought up some frequently asked questions about using Varnish for streaming. I don’t think it’s an understatement to say that streaming - and enabling reliable, high-performance streaming - is a hot topic… so we’re going to address some of these questions here.
There's a recurring discussion I get myself into, and it goes roughly like this:
- I want to stream live video, what kind of machine, and how many of them do I need?
- It depends.
- Depends on what?
- Math! Also, numbers!
- Joking, can you tell me <list of characteristics>
- <provides value>
- <performs black magic>. The answer to your question is <scarily accurate values>!
Obviously, it doesn't go "exactly" like this, but the goal of this post is going to be largely about boring math, so it sounds cooler if we say I'll be talking about black magic, right?
Let's open the grimoires and see how we can answer this sizing question!
It seems like an eternity ago, perhaps, that the first live-streaming event took place on the internet back in 1995. And the technology, too, has moved swiftly to manage demand. Ten years after this pioneering streaming event, most internet traffic was HTTP-based and CDNs were quite common. In other words, finally the infrastructure reached the level of maturity that enabled high-performance streaming. HTTP is the closest thing we have to a universal transport protocol and also enables content caching - ideal for managing the multiplying audio and video content of which the web is increasingly composed of.