The expectations of end-users when viewing live streaming content are always increasing as video streaming sites continue to up their offerings with news and sporting events, television shows and movies, and any webcam footage that users want to store. With the increased availability of video streaming services, customers are also demanding increased speed, uptime, no outages, and instant access to any stored streaming content delivered to any device at any time.
From a customer perspective, this makes perfect sense; the improvements to technology, both software and hardware, have trained us to expect more from the services we register for. For a company that is responsible for delivering streaming media, this becomes a sizeable challenge. Not only does the company have to account for the potentially enormous amount of storage space needed to house all of this streaming data in the form of a dedicated data center or, more commonly, cloud space, but it also needs to structure and architect its solution to allow for thousands of concurrent user sessions, redundancy for failover, and scalability to keep up with session connects as well as shuffling of data across networks. All of this must be done with as little latency as possible because any perceived delay on the part of the end-user can put a dent in the company’s reputation.
Wowza is a live streaming engine serving tens of thousands of companies that have come to rely on its services due to its ability to manage video streams with minimal effort once properly configured. The challenge put before ClearScale, an AWS Premier Consulting Partner, was to take the Wowza solution and integrate it directly into the AWS platform using a dedicated version of the Wowza Streaming Engine. The client asked ClearScale to implement a solution where dedicated video environments could stream content (e.g., concerts, live educational events, etc.) that could be served for user access in either real-time broadcasts, such as a concert with multiple camera angles or in playback situations where stored content could be requested ad hoc.
This presented a challenge. In order to create individual video environments for this type of content, an Origin and Edge instance had to be created as needed. ClearScale’s goal was to leverage Java to instantiate the Origin and Edge instance, then pair it with the streaming content being created for delivery to the end-user as required.
Further complicating the situation, the Origin and Edge instance needed to be terminated at the end of use so that resources could return to a non-use state and prepare for later requests. On the surface, this would seem a relatively straightforward approach, but the client wanted to be certain that whatever solution was deployed would service up to 10,000 concurrent users at any moment in time, so scalability and reactivity of the solution were paramount.
In order to store the data in AWS, S3 buckets were configured for the client. ClearScale set about configuring the Wowza servers to house the streaming engine and for transcoding the instances as well as the Edge servers that could be used to instantiate an individual video environment for viewers as needed. The footprint of these servers had to be minimal to save on operational costs as well as streamline latency.
ClearScale then used Java libraries to create API wrappers that would be used to integrate to the client’s administrative portal for instance configuration management. These instances were utilized for smooth streaming content delivery to end-users. The functionality in question needed to address situations where the end-user could cancel a stream and start or stop a recording.
We created an additional wrapper that leveraged AWS CloudFormation technologies to automate the creation and removal of individual video environments. This wrapper was integrated directly with the API so that as endpoints were called for specific behaviors, the CloudFormation automation would activate and execute the necessary commands to instantiate a video environment or cancel it out as needed.
Once this integration was accomplished, ClearScale incorporated the solution directly into the dedicated Wowza Dedicated Server API. Beyond the ability to serve up streaming content, this allowed the solution to get detailed information about the stream, including status and statistics. An end-user who wanted to see a given piece of streaming content would use the client’s user interface to make the request. The API wrapper, in turn, would make a call to CloudFormation where it would instantiate a video environment for the user while also calling the Wowza Dedicated Server API to connect to the streaming content housed in the client’s S3 bucket in AWS. The content was then delivered to the video environment and could be viewed on any number of end-user devices.
ClearScale’s approach was tested and proven to support 10,000 concurrent users at any one point in time — from individual contributors streaming a single-angle video, to curated concerts with multiple angles. In order to manage all of this, ClearScale also built out a robust custom data model with unique metadata attributes so that each and every streaming content object displayed pertinent information describing it. This allowed ClearScale to then create functionality that administrators could use to create recording entities, edit recording details, and delete or download recordings.
ClearScale also implemented comprehensive monitoring and logging to report on the current status of the content stream wrapper API and integrated that with the Wowza API so that the client’s administrative team could identify which streams were currently playing, get status reports on selected streams, identify which end users were subscribed to a given stream, and cancel selected streams as needed.
Like all efforts ClearScale has executed against, a robust testing plan was created to validate that the solution would meet the client’s requirements, including load testing and functional testing. Additional tests were created to ensure that S3 buckets could be created, modified, or removed as needed based on the need of the end-users and the amount of streaming content that needed to be stored. Finally, the functional testing included testing against the latest and most popular browsers for both Mac and PC as well as several mobile hardware and browser combinations.
ClearScale has shown in many different client engagements that, by leveraging AWS services, any complex requirement is achievable with an outcome that is both desirable and sustainable. Whether it is building a custom application from the ground up or integrating a third-party solution into AWS services to build out a robust product, ClearScale has the expertise to deliver solutions that exceed our customer’s expectations.