TECH EXCELLENCE

How our production is running as fast as an overcaffeinated teenager

Heapcon 2023

Heapcon, the largest IT conference in the Serbian market, traditionally organized by Heapspace, gathered the biggest names from the tech industry this November. With over 30 speakers and support from more than 21 IT companies, the event attracted over 500 attendees. Under the flagship slogan "Think beyond tech," participants enjoyed various topics and talks, interacted with companies, and engaged in extensive networking.

As Heapcon's Gold Sponsor, we believe in nurturing the tech community and recognize the conference's importance as a hub of creativity and collaboration in the tech world.

Our senior engineers Boris Petrović and Dejan Janković shared insights into how our production is running as fast as an overcaffeinated teenager! In a packed conference hall, we discussed our challenges in navigating live video content, the evolution of our flagship TV 2.0 platform (globally recognized under the brand name EON TV), and its innovative fast-forward and rewind feature. We delved into our tech choices like Nginx and Lua. Additionally, attendees had the chance to hear about Cilium, the centerpiece of our on-premises Kubernetes setup, showcasing its strength, speed, and ease of production monitoring.

Dejan, please tell us about the concept of fast production.

The concept of fast production in software development, especially in streaming services, involves efficiently delivering a high-quality user experience. This is crucial due to the dynamic nature of content delivery, addressing specific requirements on both the backend and client side, as well as infrastructure considerations. Satisfying each requirement on all architectural layers increases the speed of your application. Achieving seamless playback, faster zap time, key-frame accuracy, and cross-platform compatibility requires careful system architecture design and smart infrastructure building. Solutions for fast production differ, but key points from the streaming service perspective include implementing efficient streaming protocols, adaptive streaming techniques, various caching mechanisms, and CDN optimizations for global content distribution.

 

And why Nginx and Lua?

Nginx is a high-performance web server used in scenarios where scalability, efficiency, and flexibility are crucial. It's popular for its characteristics like reverse proxy capabilities, low resource usage, and content caching. Our Heapcon 2023 topic focused on making our content closer to clients and improving performance through dynamic content caching based on each request time. The perfect match was the combination of Nginx and Lua, used through the OpenResty web platform. Lua, as a lightweight scripting language, enabled us to extend and customize content caching rules on Nginx. With LuaJIT, we handled requests dynamically in a performant way by executing Lua scripts directly on Nginx workers and caching content properly.

Boris, can you tell us more about Cilium?

Cilium is a Container Network Interface (CNI) plugin, a third-party component that facilitates networking within a Kubernetes cluster. What sets Cilium apart from other available CNI plugins is the layer at which it operates. Cilium utilizes revolutionary eBPF technology that enables loading and executing small applications into the Linux kernel. The eBPF datapath of Cilium operates at a low level within the Linux networking stack. This feature allows us to maintain consistent network throughput while utilizing fewer compute resources for containerized workloads running in Kubernetes. This distinction is particularly crucial as we transition from monolithic applications hosted on bare-metal machines to a microservices architecture, deploying our workloads in Kubernetes clusters. It allows us to preserve bare-metal performance while incorporating all the improvements offered by Kubernetes.

What has it brought to our Kubernetes setup?

Aside from raw performance, a significant aspect in itself, we now have the capability for cross-cluster connectivity, data encryption, network policy enforcement, and state-of-the-art observability, all consolidated within a single tool. Due to its core being written in eBPF, Cilium efficiently exposes valuable network-related metrics. When combined with Hubble, the observability component of Cilium, it allows us to observe our system from the perspective of the Linux Kernel. This, in combination with userspace metrics, enables us to answer questions that were previously challenging, such as:

Does service A communicate with service B?

Why can't service A communicate with service B?

Is this communication restricted by network policy?

Is it DNS?

Which HTTP endpoints of service B does service A call?

Which DNS names does service A resolve?

With which public domains does service A communicate?

Sign In