Building a Video Platform That Scales

When we began building Panopto’s video platform, we wanted to ensure that our infrastructure provided on-premises and cloud-hosted customers with great scalability, so that as your use of Panopto grows, our platform can scale to easily accommodate it.

Before we talk about how Panopto scales, let’s begin with a basic definition of scalability: the ability of a system to handle a growing amount of work in a capable manner or its ability to be enlarged to accommodate that growth.

With a video platform, scalability applies to a number of elements in the system, including: web servers which require scalability to accommodate increasing HTTP requests, encoding servers which need to scale as more and more encoding jobs are submitted, and data scalability to accommodate a rapidly increasing amount of video storage.

As you’ll see in the slide deck, Panopto is architected to enable each of these components as well as other elements of the platform to scale. We call out four major server roles that comprise Panopto:

Web servers, which include IIS and handle incoming HTTP requests for live and on-demand video streaming.

Storage servers, which house video content and support a variety of storage types, including Storage Area Networks (SANs), Network Attached Storage (NAS), and Direct Attached Storage (DAS).

For customers deploying Panopto on-premises, we support a number of server topologies, including:

Single-server, in which all four server types are installed on a single machine. This is often where customers start if they have a test environment or a small Panopto installation.

Two-server, in which the encoder server is typically given a dedicated machine to handle encoding jobs which can be CPU-intensive.

Multi-server, in which each of the four server roles is on a dedicated machine and storage is centralized.

Load-balanced, in which a load balancer sits in front of multiple web servers, distributing incoming HTTP requests for live and on-demand streaming.

For customers running Panopto as a hosted service in the cloud, we share the same code base and installation binaries as on-premises customers. We simply change the configuration to allow for greater scale. Specifically, we break out server roles even further to include:

Upload servers – Similar to broadcast servers, but these process upload requests for pre-recorded videos.

Search servers – Given the quantity of video searches on our hosted servers, we break out dedicated search server clusters that interact with our database servers.

Because our hosted offer is built on Amazon Web Services (AWS) – specifically Amazon’s Elastic Compute Cloud (EC2) and Simple Storage Service (S3), we benefit from built-in Amazon functionality that allows our platform to dynamically scale up our encoding servers based on current demand, and grow our storage as more content is uploaded into Panopto. Auto-scaling in the cloud helps ensure that we’re running our platform efficiently, and that we’re never billing our customers for idle server time.

To ensure the uptime and reliability of our hosted cloud, we also scale Panopto across multiple Amazon availability zones – mirroring our server infrastructure across different Amazon data centers in different geographic locations. This helps ensure that, even during a catastrophic data center outage, our servers remain functioning and our customers can continue using the video platform without interruption.

As you evaluate different video platforms for your business or university, you should ask the provider about how they scale – both on-premises and in the cloud. The ability to scale out easily and dynamically based on demand can be critical to the success of your deployment, as we’ve seen with universities like Newcastle and Essex, who both capture tens of thousands of hours of video each school year.

If you have any questions about Panopto’s scalability story or are interested in discussing how our video platform can help your organization, drop us a line or give us a call at (855) PANOPTO.