Comcast cable is undergoing a major technical shift. The company is moving away from an always-on transmission of every single channel to every single customer, with the signal converted on either end by a piece of proprietary hardware, which is how cable has worked for decades. The new system is IP-based, on-demand streaming model where channel signal is sent only when requested by the user, explained Erik St. Martin, a systems architect at Comcast, at CloudNativeCon in November.
The change will save an enormous amount of bandwidth for Comcast, improving signal quality and allowing the transmission of several different formats and device-specific tailored signals.
Simple, right? Turns out, it’s not so simple, especially when you consider the shift must happen while keeping 99.999 percent uptime so customers don’t freak out.
Out of the Box
St. Martin is part of the team building Comcast’s new widely distributed and intensely fault tolerant broadcast system. The list of requirements is daunting, he said, and was difficult to face at the start. Then, he found Kubernetes, and out of the box many of the tricky technical obstacles were addressed.
“Can you imagine trying to design a system like this from scratch? … it’d be a massive effort and it’d have a ton of edge cases,” St. Martin said. “It probably comes as no surprise, standing here talking to you at a Kubernetes conference, the Kubernetes has actually solved most of these problems for us.”
The Kubernetes platform for dealing with applications clusters is very well suited to help Comcast update to an IP-based streaming system, said St. Martin; the system of labels and notations works perfectly for different channel streams thanks to its flexibility and simplicity. Teams tasked with managing streams needn’t worry about hardware; hardware teams needn’t worry about bandwidth.
“This is a huge shift from the way things currently work,” he said. “Today, the video engineering team needs to know about every single one of those [signal transmission and translation] devices. They maintain spreadsheets of these things and log into them by IP address … sometimes it even comes down to physically moving hardware or cables.”
There are still many facets that need to be built through Comcast’s Kubernetes implementation, with plenty of tricky engineering problems to keep everyone up at night. But the Kubernetes platform — and the community — has already made a significant dent in what seemed like an impossible task.
“All in all, these are tiny issues in comparison to the complexity and edge cases of the system we would’ve had to create from scratch,” St. Martin said. “With each release of Kubernetes, there seems to be less work for our own components to do. There’s no doubt that Kubernetes has changed the way we deploy and manage applications.
“Kubernetes can be just as impactful as a framework for building your own applications,” he said. “You can save yourself complexity and development time by leveraging functionality in tools that already exist. We can also create clean abstractions between teams by writing our own resource types and controllers. It’s a beautifully abstracted system. Each component, with a distinct role, making it effortless to replace components or customize them to fit our use cases, and even use cases that are at their surface may not seem particularly suited for Kubernetes.”
Watch the complete video below:
Do you need training to prepare for the upcoming Kubernetes certification? Pre-enroll today to save 50% on Kubernetes Fundamentals (LFS258), a self-paced, online training course from The Linux Foundation. Learn More >>