Video-On-Demand Implementation with Infrastructure as Code & DevOps

Cardinal Peak provided DevOps services to bolster our client’s video-on-demand product infrastructure management, including implementing Infrastructure as Code and CI/CD, resulting in more entertainment options for their subscribers.

Cable television was once the ultimate in entertainment. With hundreds of channels and service bundles that include internet and phone service, cable providers could once sit back, relax and know that you, the consumer, would continue forking over $200-plus each month for a service you’re not wholly using.

However, as consumer demands for simplicity, convenience and options that better align with their lifestyles continue increasing, organizations across the cable sector must evolve their product offerings and enhance user experiences to remain competitive. For cable companies, that means updating to the latest technologies, hiring experienced engineers and innovating to keep pace with product preferences.

As one of the largest cable operators and leading broadband providers in the U.S., our client recognizes how these shifts in television consumption are ushering in a new era of television. Leveraging our DevOps knowledge to enhance its new video-on-demand product, our client is positioned to improve development and infrastructure, and more quickly deliver new functionality to provide endless entertainment for users.

Scaling a Video-On-Demand Infrastructure

In our world of apps, smart devices and ubiquitous streaming services offering simpler, contract-free solutions, cable companies must compete harder than ever. Cable operators remain the leading provider of broadband and TV services in the U.S., accounting for more than 60% of all connected homes. Still, heightened expectations and potential long-term challenges loom.

Video on demand infrastructure implementationThe consumer cord-cutting trend has taken a sizable bite out of cable’s customer base. That trend appears set to continue as more people cancel their subscriptions to multichannel television services in favor of rival media available over the internet.

To better combat this cord-cutting trend and deliver the services consumers across the country increasingly covet, our client — which offers telephone, cable television and broadband internet services — created a new, easy-to-use video-on-demand cable service that essentially untethers its current set-top cable infrastructure and moves it to the internet.

Customers either purchase or rent a cable box that connects to their Wi-Fi so they have fewer wires to manage and can quickly access live TV and thousands of on-demand titles. Once hooked up to their TV, the device converts the source signal into content in a form that can be displayed on the TV screen or other display device (e.g., Amazon Fire TV Stick and most iOS or Android phones or tablets).

A solution for customers that want a traditional TV experience without all the clunky cable equipment, this box not only gives consumers access to their favorite TV networks for shows, sports, movies, local news and more but dozens of streaming apps through Google Play as well. Equipped with convenient enhanced viewing features like cloud DVR storage and voice control, this unique solution aims to simplify the process of selecting and customizing the entertainment experience that fits each customer’s budget and lifestyle.

The challenge for our client, however, was ensuring the video-on-demand service worked correctly, repeatably and at scale. Their development team had built an initial product in 2019 — manually developing the software by hand and continuously improvising without formal guidelines, structure or rules.

Development can be done manually when building servers, but that doesn’t scale well with dozens of servers at a time. To scale the solution to more than 10,000 customers, our client tapped our software development and IT operations services to bolster the video-on-demand software and unlock access to its best-in-class home entertainment experience.

Leveraging DevOps in a Video-On-Demand Implementation

Before tapping our DevOps expertise, our client’s development team was writing most of the code that runs their new small-scale service manually. Furthermore, there was nothing in the way of a code pipeline, any repeatable processes or documentation. Everyone was doing their own piece, but no one was documenting or thinking ahead to the next step. This creates a big mess, especially when scaling.

Compiling on the challenges for our client’s internal development team, they were developing the new service while simultaneously supporting the production system. In the event of an outage, this internal engineering team was drawn away from building new features and functionality to address the service interruption.

Combining software “development” and organizational “operations,” DevOps is an evolving philosophy and set of practices aimed at automating and integrating processes between development and operations teams. We were brought in to help streamline development and operations and set up our client’s infrastructure as code, which unlocks the ability to design, implement and deploy application infrastructure with known software best practices.

Video-On-Demand Infrastructure as Code

By managing and provisioning infrastructure through code instead of manual processes, we are ultimately setting our client’s new video-on-demand product up to be repeatable.

Utilizing Ansible, an open-source suite of software tools and our favorite infrastructure as code tool, Terraform, we wrote the code that tells our client’s servers what to install and how to run it to manage the infrastructure better and scale the solution. Named after fictional instantaneous communication systems in Ursula K. Le Guin’s 1966 novel Rocannon’s World, Ansible deploys and provisions software, enabling infrastructure as code. Terraform simplifies the definition and provisioning of data center infrastructure to provision, change and version resources on any environment.

Our engineers recognized that our client could employ a few common agile programming methods to speed and improve product development. Some agile practices deliver greater responsiveness to evolving user needs and shifting requirements, better requirement documentation and the ability to implement continuous feedback.

The DevOps “toolchain” further streamlines the software delivery process by promoting automation, collaboration and integration. Whether planning, coding, building, testing, deploying, monitoring or supporting after launch, there are tools for every stage of the DevOps lifecycle.

Consider passwords during the build phase as an example. Early on, our client was, unfortunately, plugging plain-text passwords into their Git repository and sharing passwords and user IDs. To address this concern, we leveraged Ansible to help compile and package the code and infrastructure needed for product release. We built a software vault to access encrypted passwords, pull them out and encrypt them as required so that plain-text passwords were not written into the repository. Rather than manually setting it up and configuring resources, we automate the provisioning and management of infrastructure using software development techniques — and code.

Provisioning infrastructure has historically been time-consuming and costly, but infrastructure as code manages IT infrastructure needs while improving consistency and reducing errors associated with manual configuration. From greater scalability and availability and faster development to better resource utilization and enhanced automation and innovation, our DevOps expertise unlock multiple business and technical benefits.

The value DevOps services deliver can be broken down into three primary categories: cost, speed and risk. By removing the manual component, we’re helping our client refocus its efforts on other more thoughtful tasks. Infrastructure automation enables faster execution and improved visibility, assisting other teams to work quickly and more efficiently. Finally, automation ameliorates the risk associated with manual misconfiguration, decreasing downtime and increasing reliability.

Even before we launched the new video-on-demand service to production, our DevOps consulting services help our client think about its product in a more organized way and ultimately provide a framework to build for the future. By encouraging easier continuous communication, collaboration, integration and visibility between our client’s internal teams and enabling developers and system administrators to interact with infrastructure programmatically and at scale, we are helping our client confidently deliver the services and capabilities they need to retain and attract customers.

Are you interested in exploring how we can help you increase efficiency and streamline delivery with DevOps and infrastructure as code services? Reach out to our DevOps experts.