4 Common Software Deployment Scenarios for Live Video Streaming
April 5, 2016 by
While every streaming architecture has unique elements, we find that media server deployment decisions often come back to a few common considerations: audience size, audience location, resources, ease of deployment, and network constraints. This post articulates four common deployment scenarios for streaming server software such as Wowza Streaming Engine. If you aren’t yet sure whether you need a streaming solution based on DIY software or a managed cloud service, you may want to download our deployment decision guide, which outlines how to find the streaming media infrastructure that fits you best.
If you already know you need a self-managed software-based solution, this post is for you, and we hope these four scenarios help you understand how to build a professional-grade streaming architecture.
Small Cloud-Hosted Deployment
The simplest and quickest way to deploy Wowza Streaming Engine server software is to host your infrastructure in the cloud. Wowza has prebuilt machine images on every major cloud provider, including Amazon Web Services, Microsoft Azure, and Google Compute Engine. Leveraging a prebuilt machine image on one of these cloud providers lets you deploy fast, as you can leverage preconfigured software, powerful processors, and readily available network access points. Additionally, a cloud infrastructure has the financial advantage of low up-front costs and pay-as-you-go pricing.
A cloud-hosted solution provides you with the most flexible deployment options and greatly reduces your streaming equipment needed on premises. For example, instead of buying heavy industrial-grade encoders you can offload most of your live encoding workflow to the cloud. All you need is a small mobile encoder (like the Teradek VidiU) or software encoder (such as Telestream Wirecast) on premises. From these affordable-yet-powerful products you can send a single stream to the cloud and use your cloud-deployed Wowza Streaming Engine software to both transcode and deliver your streams. Moving part of your video workflow into the cloud greatly reduces your required equipment and bandwidth onsite.
When deciding on a cloud-hosted server, your primary decision is around processing power and network usage. While Wowza Streaming Engine has no connections limit, the software is naturally limited by the server and network capacity. For example, as a rule of thumb, a 1 Gbps uplink can typically accommodate up to 800 streams at 1 Mbps (no more than 80% of capacity) because of network overhead. For transcoding workflows, we recommend using a compute-optimized instance to maximize performance. (To read more about transcoding performance, see the Wowza Transcoder performance benchmarks.) If transcoding in high volume, we recommend you consider an origin-edge configuration, using a compute-intensive instance for transcoding and a smaller instance for delivery. This will maximize performance and minimize costs.
Small On-Premises Deployment
Some organizations simply can't leverage a cloud-based infrastructure. For example, some organizations choose to deploy on premises so they can use existing servers, deploy behind a firewall, or place a server in a large existing data center. An on-premises streaming solution provides you with full control over your servers. While managing on-premises servers requires maintenance and staffing, it can also be economically beneficial if you can highly leverage your equipment and bandwidth.
When deploying on premises, it’s important to note that for best performance, servers should be geographically close to your audience. If your audience is geographically dispersed (e.g., you're streaming to multiple countries around the globe) we recommend using an origin-edge configuration, where one server packages the stream and sends it to geographically distributed edge servers for local delivery.
Deploying with a CDN for Delivery
While a single Wowza Streaming Engine server can be used to deliver thousands of streams directly to end users, there are limitations. If you need to scale to tens of thousands of viewers or are streaming to geographically dispersed viewers, you should consider leveraging a content distribution network (CDN) for delivery.
A CDN can greatly simplify your streaming workflow. By using a reliable global CDN such as Wowza CDN, you can remove the headache of scaling, and focus on your content and the quality of your streams. Wowza CDN is powered by Akamai and is easy to configure within Wowza Streaming Engine using the Stream Targets feature. Enabling Wowza CDN will push your stream from Wowza Streaming Engine to the CDN. Once inside the Wowza content distribution network, your stream can be delivered anywhere on the globe.
Using Wowza CDN saves time and can even reduce your total spend. While delivering with a CDN can often be expensive, Wowza CDN is pay-as-you-go and requires no up-front commitment. Additionally, Wowza CDN rates are very affordable, and offloading delivery to Wowza CDN can reduce other expenses, including bandwidth costs.
Multi-Server Origin-Edge Configuration
While delivering with a CDN is the quickest (and sometimes the least expensive) way to scale, some use cases have specific requirements that prevent them from using a CDN. This may be due to security, latency, or simply the desire to own the infrastructure. In such scenarios, you can scale with additional Wowza Streaming Engine servers.
For any streaming server deployment, network and hardware specifications will create a maximum number of concurrent streams that a single server can handle. When server capacity is being reached, it’s time to scale. (In simple terms, scaling is where you have two or more media servers set up to stream to a large audience.)
Often bandwidth is the primary limiting factor for a single server, and a general guideline is that a well-tuned server will max out at 10 Gbps uplink. Additional edge servers can be added manually in anticipation of peak loads or automatically based on real-time metrics. When determining when, where, and how to scale, considerations include the number of concurrent viewers, the average video bitrate being delivered, the geographical location of the audience, and server uptime.
Wowza Streaming Engine provides users with the flexibility to customize and scale large streaming solutions and effectively manage your edge servers. Various methods can be used to scale, depending on stream type and target audience, and you may choose a combination of methods to suit your needs. Wowza has lots of built-in functionality to help you manage loads and communicate between servers. Here are a few features to consider:
- Wowza Load Balancer can help you distribute player connections across edge servers. It consists of a listener, which receives the initial player requests and sends status updates to the edge servers, and a sender, which sends load information to the listener.
- Wowza Live Stream Repeater can be used to make live streams available to a larger audience. The live stream repeater uses a proprietary WOWZ™ protocol between the origin and edge servers to pull streams in the correct format for the players.
- Wowza Media Cache can scale on-demand libraries. It caches assets from various sources across servers to create workflow and server efficiencies.
Some Final Tips
Everyone we talk to about streaming has the same goal: power a professional-grade viewing and listening experience while realizing maximum return on investment. Configuration and deployment can get complicated, but many architecture decisions come back to the same constraints of audience size, audience location, resources, ease of deployment, and network constraints. Wowza Streaming Engine media server software is designed to be reliable and scalable to fit both small and large streaming architectures. This versatility allows Wowza to power streaming for wide variety of customers—from small local churches to public and private universities, local and national governments, and local and global broadcasters.
If you ever need help identifying the best streaming architecture for you needs, feel free to contact us. We're happy to help.