Netflix uses Titus as their container management platform on top of AWS. Compare Titus's architecture with vanilla Kubernetes and explain what design decisions Netflix made differently for running containers at their scale (millions of containers per week).
Quick Answer
Titus uses a flat scheduling model without pods (one container per task), direct EC2 integration for resource isolation (ENI per container, EBS per container), and a centralized scheduler optimized for bin-packing and GPU workloads. Unlike K8s, Titus was designed for batch and streaming workloads from the start.
Detailed Answer
Titus Architecture vs Kubernetes
Scheduling Model
Titus uses a Fenzo-based scheduler (custom Mesos scheduler, later moved to their own) that operates on 'tasks' rather than pods. Each task is a single container with dedicated resources. There's no pod abstraction with sidecars - auxiliary functions are handled differently (network proxying via Titus Gateway, not sidecar injection). This simplifies scheduling but loses the co-location benefits of pod-based design.
Resource Isolation
Netflix's Titus allocates a dedicated ENI (Elastic Network Interface) to each container, giving every container its own IP address and security group. This is similar to AWS VPC CNI but was implemented before EKS existed. Each container gets dedicated EBS volumes rather than sharing node-level storage. This provides stronger isolation than Kubernetes' shared-node model.
Scale Optimizations
Titus processes millions of container launches per week. Key optimizations: - Image pre-caching: Titus agents pre-pull popular images based on prediction models - Fast container startup: Custom container runtime optimized for <5s cold start - Opportunistic scheduling: Batch jobs run on spare capacity from service tier, preempted when capacity is needed - GPU scheduling: Native support for fractional GPU allocation (before K8s had device plugins)
Applying Titus Concepts to Kubernetes
You can replicate many Titus patterns in K8s: - Use Karpenter for intelligent instance selection (similar to Titus capacity management) - VPC CNI with pod-level security groups for network isolation - PriorityClasses for opportunistic batch scheduling - Device plugins for GPU sharing - Warm image caches via DaemonSets or Spegel for P2P distribution
Why Netflix Didn't Use Kubernetes Initially
Titus was built in 2015-2016 when Kubernetes was immature. Netflix needed deep AWS integration (IAM per container, VPC networking, EBS) that K8s didn't support. Today, with EKS Pod Identity, VPC CNI, and EBS CSI driver, many of these gaps are closed.