Playbook škálování Netflixu: cloud, CDN a mikroslužby
Pokaždé, když na Netflixu kliknete na „Přehrát“, spustíte distribuovanou výpočetní událost, která překračuje kontinenty, datová centra a tisíce mikroslužeb. Aby společnost zajistila nepřetržité streamování pro více než 270 milionů předplatitelů po celém světě, musela zásadně přehodnotit, jak je obsah kódován, doručován a spravován ve velkém měřítku. Tento článek se zabývá jak Netflix škáluje svou streamovací infrastrukturu pomocí třídílné strategie: cloudové řídicí roviny pro flexibilitu, masivního vlastního CDN s názvem Open Connect pro efektivní doručování a architektury mikroslužeb založené na principu odolnosti vůči chybám. Pochopením těchto vrstev uvidíte, jak společnost stabilně dosahuje latence pod 100 milisekund a minimalizuje ukládání do vyrovnávací paměti pro miliardy denních požadavků.
Co se dozvíte
Na konci tohoto článku pochopíte architektonická rozhodnutí, která stojí za globální streamovací infrastrukturou Netflixu. Dozvíte se, jak společnost odděluje svůj „mozek“ (řídicí rovinu) a „svaly“ (datovou rovinu), jak optimalizovala vlastní CDN pro úsporu miliard a proč považuje výpadky za normální stav. Získáte jasný mentální model toho, jak se cloud computing, vlastní hardware a chaos engineering spojují pro škálování jedné z největších internetových služeb na světě.
Dvoutvárná architektura: řídicí rovina a datová rovina
Pro efektivní škálování Netflix rozdělil svou architekturu na dvě samostatné vrstvy: řídicí rovinu a datovou rovinu. Toto rozdělení je základním kamenem toho, jak Netflix škáluje svou streamovací infrastrukturu, což umožňuje každé straně optimalizovat se nezávisle pro své specifické pracovní zatížení.
Řídicí rovina (AWS): Mozek
Vše, co děláte před kliknutím na „Přehrát“, zpracovává řídicí rovina běžící na AWS. To zahrnuje procházení, vyhledávání, doporučovací engine, autentizaci uživatelů, fakturaci a správu účtů. Tato vrstva se skládá z tisíců Java mikroslužeb zpracovávajících miliardy požadavků denně. Protože je tento provoz nepředvídatelný a souvisí s interakcí uživatele, je ideální pro elasticitu cloudu. Netflix používá AWS k dynamickému škálování těchto služeb, zejména během velkých spuštění obsahu, kdy uživatelská poptávka prudce stoupá.
Datová rovina: Open Connect
Jakmile kliknete na „Přehrát“, nastupuje datová rovina. Na rozdíl od řídicí roviny, která spoléhá na veřejný cloud, datová rovina běží převážně na Open Connect – vlastním globálním CDN Netflixu. To je pravděpodobně nejdůležitější součást toho, jak Netflix škáluje svou streamovací infrastrukturu pro doručování petabajtů dat denně. Netflix investoval za poslední desetiletí více než 1 miliardu dolarů do vybudování této sítě, což z něj činí jedinou velkou streamovací službu, která spravuje vlastní globální CDN.
Open Connect: uvnitř miliardového CDN Netflixu
Open Connect je kouzlo, které Netflixu umožňuje streamovat video ve 4K do 165+ zemí, přičemž více než 95 % provozu je doručováno s latencí pod 100 ms. Místo placení třetím stranám CDN za stále rostoucí šířku pásma převzal Netflix kontrolu nad svým osudem.
Zařízení Open Connect (OCA)
Netflix umisťuje fyzické servery, nazývané Open Connect Appliances (OCA), přímo u poskytovatelů internetu (ISP) a ve více než 6000 okrajových bodech po celém světě. Ukládáním populárního obsahu do mezipaměti poblíž uživatele Netflix zkracuje vzdálenost, kterou musí data urazit, a výrazně snižuje náklady na šířku pásma jak pro Netflix, tak pro ISP. Tyto servery nejsou určeny pouze pro obsah na vyžádání; byly rozšířeny pro podporu živého vysílání, přičemž kapacita je sdílena mezi různými případy použití.
Optimalizace doručování a efektivita
Pro živé vysílání provedl Netflix významná vylepšení Open Connect, aby se vypořádal s charakterem obsahu v reálném čase. Server Live Origin, vlastní mikroslužba, je umístěn mezi cloudovou kódovací linkou a Open Connect. Používá techniku „hold-open“ požadavku: když klient požaduje segment, který ještě nebyl publikován, server drží požadavek otevřený, dokud není segment připraven, čímž snižuje „povídání“ neustálých chyb 404. Kromě toho, pro zpracování nepředvídatelnosti kódování s proměnným datovým tokem (VBR), Netflix změnil logiku distribuce provozu. Místo směrování na základě aktuálního provozu (který klesá během jednoduchých scén) rezervuje kapacitu na základě nominálního datového toku každého streamu, aby se zabránilo přetížení serveru během složitých scén s vysokým datovým tokem.
Chytřejší kódování pro efektivitu
Jednou z posledních inovací Netflixu je přechod od konstantního datového toku (CBR) k proměnnému datovému toku (VBR) pro živé vysílání. Při CBR spotřebovává záběr s rozhovorem a akční scéna stejný datový tok, plýtvají data na jednoduché scény a riskují kvalitu u složitých. VBR rozděluje bity podle složitosti scény. Netflix zavedl VBR pro všechna živá vysílání na začátku roku 2026, což vedlo k snížení přenášených bajtů v průměru o 15 % a snížení provozu ve špičkové minutě o 10 %, současně snížil počet opakovaných ukládání do vyrovnávací paměti o 5 %.
Mikroslužby a odolnost vůči chybám: navrhování s ohledem na výpadky
Netflix provozuje tisíce nezávislých mikroslužeb, převážně napsaných v Javě. Tato architektura umožňuje týmům nasazovat služby nezávisle a škálovat je podle poptávky. Při tisících pohyblivých částí jsou však výpadky nevyhnutelné. Netflix to nejen přijímá; navrhuje systémy s ohledem na výpadky.
Filozofie chaos engineeringu
Netflix vynalezl slavný Chaos Monkey – nástroj, který náhodně ukončuje servery v produkci. To nutí inženýry vytvářet systémy odolné vůči náhlým výpadkům. Tato praxe se vztahuje i na linku živého vysílání, kde automatické testy s vnášením chyb simulují chybějící segmenty, ztrátu cloudového regionu nebo výpadek sítě, aby se ujistily, že systémy zvládnou nejhorší scénář.
Inteligentní odhazování zátěže
Když špičky provozu překročí kapacitu, automatické škálování často reaguje příliš pomalu. K vyřešení tohoto problému Netflix vyvinul Service-Level Prioritized Load Shedding. Místo odhazování všech požadavků stejně systém upřednostňuje kritické akce uživatele.
⚠️ Klíčová myšlenka: Během přetížení Netflix odhazuje nízko prioritní požadavky (např. přednačítání), aby zachoval svůj „Success Buffer“ pro vysoce prioritní požadavky (např. uživatelem iniciované přehrávání). To zajišťuje, že základní zážitek ze sledování zůstává nedotčen i při extrémním zatížení.
Vrstva operací pro živé vysílání: lidská infrastruktura
Škálování technologií je jen částí rovnice. Škálování operací pro jejich provádění je stejně důležité. Pro živé vysílání vytvořil Netflix vyhrazenou lidskou infrastrukturu odpovídající té technické. Proces se vyvinul od monitorování dashboardů softwarovými inženýry na noteboocích ke složitému modelu „Centra řízení vysílání“ (TOC). Pro řízení až 10 současných živých vysílání byly role rozděleny na specializované operátory:
- Operátoři řízení vysílání (TCO): Spravují příchozí signály z míst.
- Operátoři řízení streamování (SCO): Monitorují odchozí streamy.
- Operátoři řízení vysílání (BCO): Zaměřují se na kreativní a kvalitativní realizaci události.
Tento „flotilový“ model umožňuje Netflixu vysílat více než 400 globálních událostí ročně bez potřeby obrovského poměru operátorů k událostem 1:1, přičemž zachovává model „Velké sázky“ pro důležité události, kde je celá řídicí místnost věnována jedné show.
Často kladené otázky
Jak Netflix zvládá náhlé špičky provozu bez výpadků? Netflix používá kombinaci prediktivního předběžného rezervování pro očekávanou poptávku (např. vydání nové sezóny) a reaktivních mechanismů. Jeho hlavní obrana během neplánovaných špiček je Service-Level Prioritized Load Shedding, který odhazuje nízko prioritní úlohy na pozadí, aby zachoval kapacitu pro kritické požadavky na přehrávání, což zajišťuje plynulou degradaci systému, nikoli úplný výpadek.
Co je Open Connect a proč si Netflix postavil vlastní CDN? Open Connect je vlastní globální CDN Netflixu. Skládá se z tisíců fyzických serverů umístěných přímo u ISP a v okrajových bodech. Tím, že Netflix kontroluje hardwarový a softwarový stack, snižuje latenci pro uživatele, šetří miliardy na šířce pásma a může optimalizovat doručování speciálně pro své streamovací protokoly.
Jak Netflix zajišťuje stabilní kvalitu videa na různých zařízeních? Netflix používá adaptivní streamování s proměnným datovým tokem a žebříček datových toků. Každé video je kódováno do stovek variant s různým rozlišením a datovým tokem (SD, HD, 4K). Přehrávač Netflixu na vašem zařízení v reálném čase monitoruje stav sítě a automaticky přepíná na vhodnou variantu, aby minimalizoval ukládání do vyrovnávací paměti a maximalizoval kvalitu.
Jak Netflix vysílá živé přenosy, jako je WWE nebo fotbalové zápasy? Netflix postavil vlastní cloudovou linku s použitím AWS Elemental MediaLive pro příjem signálů z vysílacích center, vlastní server „Live Origin“ pro správu publikování segmentů a Open Connect pro globální distribuci streamu. Vyhrazené Centrum řízení živého vysílání (LCC) v reálném čase monitoruje celou linku, zpracovává až 38 milionů událostí za sekundu pro okamžité odhalení a řešení problémů.
Jak Netflix používá chaos engineering pro udržení stability platformy? Netflix používá nástroje jako Chaos Monkey pro náhodné ukončování serverů nebo vnášení chyb (např. zpoždění sítě nebo poškozené segmenty) do produkčního prostředí. Tento proaktivní přístup zajišťuje, že inženýři vytvářejí systémy schopné automaticky se zotavit z výpadků, čímž se zabrání přeměně malého problému v masivní výpadek.
Zdroje
- Blog technologií Netflix: Smarter Live Streaming at Scale: Rolling Out VBR for All Netflix Live Events
- Blog technologií Netflix: The Human Infrastructure: How Netflix Built the Operations Layer Behind Live at Scale
- InfoQ: From On-Demand to Live: Netflix Streaming to 100 Million Devices in under 1 Minute
- Codemotion: How Netflix Scales to 270 Million Users with Java and Microservices
- Blog technologií Netflix: Netflix Live Origin
- Blog technologií Netflix: Introducing Netflix's Key-Value Data Abstraction Layer
- InfoQ: Enhancing Reliability Using Service-Level Prioritized Load Shedding at QCon SF 2025
- Blog technologií Netflix: Behind the Streams: Three Years Of Live at Netflix. Part 1
— Editorial Team
Zatím žádné komentáře.