Transforming the Media & Entertainment landscape with DevOps
The media and entertainment industry is one of the frontrunners when it comes to adopting new technology. Netflix, which started as a DVD rental shop, is one of the pioneers when it comes to adopting and inventing newer methods on the technology front to serve its customers better. The transformation has revolutionized how consumers consume media, and its share in internet traffic and consumption is an indicator of the same. The shift in media consumption has led the industry to invent newer models to attract customers. Online media services providers have turned into major producers. TV networks like HBO and Showtime are coming with direct-to-customer options. With every major TV network expected to come up with apps and streaming services, a race for aggregators and over-the-top providers is hotting up. And this race is not only for movies and TV shows; it is for music, gaming, radio, podcasts - anything and everything that your brain can consume.
Let me specifically talk about video streaming. Now, I come from a generation where I had to go to DVD parlors to rent a movie that was released 2-3 years ago. It is enthralling for me to see the revolution that this industry has gone through. Who would have thought that we could play, pause, or stop a movie on our devices at will? The modern video streaming service providing giants like Netflix, Amazon Prime Video, and many others are not only providing content on-demand but are also implementing intelligent systems that can analyze your consumption patterns and suggest tailored content according to your interests.
There is a new world altogether sitting behind your devices that has made it possible to deliver all this to you. However, this increasing consumption and demand have not only changed consumption and production patterns but also posed some challenges on the technology side.
Major challenges faced by video streaming platforms
The challenges can be divided into business challenges and technology challenges. Business challenges are the ones when there is an oversaturation of media and difficulty in monetizing media in terms of consumer’s changing habits. But I, being a developer at heart, will focus on the technology-related challenges, and some of these are -
- Reaching out to subscribers anytime, anywhere on demand
- Dynamic scaling for when the demand is high, especially in case of live events, premiers, popular content
- Auto-adjusting the quality of content depending upon the dynamic network environments and internet connection speeds
- Packet loss due to errors in data transmission
- Latency, congestion, and delays
- Maintaining a seamless viewing experience across devices
- Ensuring the video quality as per the viewing preferences
- Outages, slow clouds, and Content Delivery Network (CDN) issues
- Deliver fast-track rollouts to support next-gen media services.
Every one of us is a subscriber of some or the other provider, and we all understand that nobody loves slow, buffering, and low-quality viewing experience. Reliability, capacity, and scalability are major benchmarks for any video streaming provider. Especially the capacity and scale are one of critical factors because you never know when, where, and which content may go viral.
What’s the solution?
Continuous updates and rollouts in the process while delivering content seamlessly are essential. There is no option to stop the ongoing delivery during the upgrades as downtimes result in loss of business. In Christmas 2012, Netflix, which is a pioneer when it comes to using modern technologies to deliver content, suffered from a partial outage that cost them thousands of dollars in just a few hours. Hence it is important to tackle such challenges for the M&E industry, where customer experience is of utmost importance. Let’s see what you can do about that -
- Cloud and Containers: Infrastructure is the most important part of any system. Advancements in the Cloud space have brought forth the best possible option for any IT requirement and media is no exception to this. Cloud services provided by almost all the leading providers are perfectly able to fit the infrastructure requirements. Horizontal scaling has reduced possible downtimes and provided dynamic scaling abilities. Containers, apart from providing consistency between environments, have provided an ability to spin up and destroy new instances quickly as per the requirement. Container management and orchestration tools are the best options for efficient cluster scaling and resource management.
Thus the cloud and container combination can perfectly cater to the scaling and reliability requirements of the video streaming industry.
- Multi-CDN setup: Traditional CDNs deploy several servers throughout the world and store the content to be delivered. With a multi-CDN approach, you will be doing the same but with multiple networks at multiple places. This means the content will be physically close to the subscriber and this will reduce the delivery time. Furthermore, it guarantees 100% uptime.
- Build for failure: In simple words, it means accepting the fact that some sections of your application won’t work as expected. And considering this, prepare yourselves in the best possible way to deal with it. This is a method introduced by Netflix, which they call Failure Injection Testing.
- Meticulous testing for quality & reliability: Ensuring the best customer experience is mostly to the development and delivery team. However, making sure it is what they are looking for is up to the test teams. With continuous everything, the changes are pushed faster and delivered faster. So, it is the responsibility of the testing team to ensure quality and reliability by quickly measuring these changes while minimizing risk. This is possible with continuous and agile QA. Integrating the testing process into the product and adding automation not only reduces the time but also ensures that any change to even a single line of code in the CDN and media service. And with automation, you can do n number of tests within a given time frame. Controlled testing measures provide a choice of region to be tested without affecting the entire customer base. The robust automated workflow ensures safe movement to production to facilitate a smooth deployment.
- Big Data and Machine Learning: For video streaming platforms, the amount of data, apart from the content data, such as customer demographics, viewing times, preferences, and financial information, is huge to analyze consumption patterns and preferences. This data can be analyzed for outputs that can help businesses to serve their customers in a better way with customized content suggestions and timely reminders of subscription renewals.
- Monitoring and security: Monitoring this huge setup is a big and important task. Building a dashboard with the ability to monitor end-to-end deployment and delivery pipelines, resource usage, upgrades, and rollouts, could save a lot of hassle. And for this, tools such as AWS CloudWatch, Google StackDriver, Prometheus, Grafana, InfluxDB, Nagios, etc., could come in handy. Security of the content and, most importantly, user data such as login credentials, and financial information used for transactions need to be secured. Tools like Hashicorp’s Vault can be the solution that you might need. Another way to secure the system could be - control of the user access rights. Along with these, following the policies and standard norms can assist in overall security.
- Automation: Faster & continuous development, testing, deployment, and delivery means more need to automate the processes. For the video streaming platforms, apart from the video content, most of the processes are common and repetitive. This means greater scope for automation. An automated delivery pipeline can be built for predictable rollouts/rollbacks, snapshots, and validation scripts. Even for the typical infrastructure requirements, infrastructure as code can be used. For uniform traffic distribution to nodes, you can choose load balancers such as Nginx, Akamai Application Load Balancer, or ELB. Automated testing practices explained earlier, combined with automated security checks, will ensure the reliability of the delivery. For automation, possibilities are endless.
- DevOps is the key: Adopting the DevOps culture will help in promoting frequent releases, high automation, and software reliability and will boost the stability and upgradability of applications. It helps to align development and operations environments with the greater goals of striving for success in the online world. The true essence of DevOps is - increasing collaboration between teams. It is advisable to share intricate objectives and other aspects that make a successful DevOps culture amongst the teams. Adopting agile and DevOps practices can reduce the environment provisioning and software deployment cycle time. And with increased possibilities of automation, DevOps will enable teams with frequent and reliable roll-outs.
Online video streaming services should know their goals properly and then analyze how DevOps can fit into it. Identification of the areas where you can fit DevOps and Agile to add value is a must. All the platforms, VOD, OTT, DSP, streaming, live broadcasting, or direct-to-customer, irrespective of the type of service, have one common goal - serving customers in the best possible way. And for this, the system involved needs to be dynamically scalable and resilient. Parallel deployment across multiple tenants, improved predictability with significantly reduced fall-outs and downtime, and optimum resource utilization with reduced IT spending help in streamlining operations.
The technology involved in media & entertainment is evolving rapidly. Both content producers and consumers want greater quality at faster speeds. Opcito can help in providing the technology that sits behind the devices for providing an enhanced experience. Contact us today to know more about what you need to do to get the best out of your DevOps initiatives.