Kazalo[Skrij][Pokaži]
Obstaja dokaj spodobna možnost, da ste nekaj pretakali, če ste nekaj časa preživeli na spletu.
Pretakanje je ena najpogostejših uporab najbolj znanih internetnih aplikacij, pa naj gre za YouTube, Spotify, Netflix ali sto drugih.
Vendar glede na to, kako običajno je pretakanje, ga je preprosto vzeti za samoumevnega. Na primer: Kaj točno je pretakanje?
Vsako predstavnostno gradivo, v živo ali posneto, ki je poslano prek interneta v računalnike in mobilne naprave ter predvajano v realnem času, se imenuje pretakanje.
Običajne vrste pretočnega gradiva vključujejo poddaje, spletne oddaje, filme, televizijske oddaje in glasbene videe.
Medijski elementi, kot so glasba, videoposnetki in druge vrste, so načrtovani in preneseni v zaporednih podatkovnih paketih, tako da jih je mogoče takoj pretakati.
Za pretakanje potrebujete ustrezno napravo, dostop do storitve ali aplikacije za pretakanje ter hitro in zanesljivo internetno povezavo visoke hitrosti.
Opomba: kot primer bomo uporabili storitev pretakanja videa.
Ta objava bo podrobno preučila sistemsko zasnovo storitve pretakanja in ključne dejavnike, ki jih je treba upoštevati pri razvoju aplikacij za pretakanje videa.
Sistemska zahteva
Med najbolj priljubljenimi storitvami pretakanja videa na svetu sta YouTube in Netflix. Za izboljšanje uporabniške izkušnje njihova arhitektura vključuje številne elemente.
Takšna storitev vključuje priljubljene filme, izdajanje računov, priporočilne sisteme, ki temeljijo na AI, in funkcijo poznejšega ogleda, vendar se bomo osredotočili na bistvene elemente.
Temeljne lastnosti
V naš koncept smo vključili naslednje zmogljivosti za a video streaming storitev:
- Ustvarjalci vsebin lahko objavljajo videoposnetke.
- Gledalci lahko za gledanje videoposnetkov uporabljajo številne naprave (mobilne naprave, TV itd.).
- Na videoposnetkih lahko uporabniki označijo, všečkajo ali nevšečkajo.
- Naslove videoposnetkov lahko uporabite za iskanje.
- Za prikaz te statistike uporabnikom lahko sistem shrani oglede, všečke in nevšečke.
Sistemski cilji
- Medpomnjenja ne sme biti, tako da lahko gledalci gledajo videoposnetke v realnem času.
- Shramba za video mora biti zanesljiva. Videoposnetkov, ki ste jih naložili, ne smete izgubiti.
- S povečanjem števila uporabnikov bi moral biti sistem prilagodljiv.
- Nizka zakasnitev in visoka razpoložljivost bi morali biti značilnosti sistema. V tej situaciji doslednost ni tako pomembna, saj je v redu, da uporabnik počaka nekaj časa, preden vidi sveže predložen film.
Posamezen strežnik ne more obdelati količine podatkov, saj mora sistem redno upravljati močan promet. Za servisiranje sistema bo uporabljena skupina strežnikov.
Za stranke ne bi smelo biti opaznih vplivov na hitrost, tudi če se en strežnik zruši.
Arhitektura na visoki ravni
Program za pretakanje videa lahko sprejme eno od treh različnih vrst zahtev:
- Naloži (piši)
- Išči (beri)
- Pogled (preberi)
Ker bodo poizvedbe za branje (iskanje in ogled) pogosto večkrat pogostejše od zahtev za pisanje (nalaganje), vsako od njih obravnava ločena gruča strežnikov.
Ker program intenzivno bere, boste morali nastaviti več strežnikov za obravnavanje zahtev za branje kot za nalaganje.
Vsaka zahteva odjemalca je usmerjena k ustrezni mikrostoritvi uravnavanje obremenitve ko je prejeto.
Storitev nalaganja
Storitev za nalaganje, ki obdela video, ga naloži na strežnike Open Connect in omogoči dostop vsem uporabnikom, izpolni zahtevo za nalaganje.
Iskalna storitev
Izravnalnik obremenitve pošlje iskalno zahtevo iskalni mikrostoritvi, ki jo nato pošlje Netflixovemu elastičnemu iskanju. Stranka prejme odgovor elastičnega iskanja.
Elastično iskanje, neverjetno razširljiv odprtokodni iskalnik s polnim besedilom, Netflix uporablja za iskanje po milijonih videoposnetkov.
Netflix uporablja elastično iskanje za analizo storitev za stranke.
Ogled storitve
Večina zahtev za ogled ne bo poslana na izravnalnik obremenitve ali Netflixove strežnike. Namesto tega se bodo uporabniki povezali z lokalnimi ponudniki internetnih storitev in prejeli neposredno iz najbližjega strežnika Open Connect.
Če pa zahtevani videoposnetek ni dostopen, bo poslan v izravnalnik obremenitve in mikrostoritev pogleda.
Videoposnetek se nato preišče v zbirki metapodatkov, pridobi s poti, določene v metapodatkih, in prenese odjemalcu.
Seveda ta tehnika vključuje zakasnitev, zato so praktično vse zahteve za oglede posredovane prek Open Connect.
Naložite videoposnetke
Glavni namen YouTuba je naložiti film ali video. Storitev pretakanja videa mora premagati številne ovire, preden omogoči dostop do videa svojim uporabnikom.
Ohranjanje v kosih
Vsak predložen videoposnetek bo razdeljen na številne manjše datoteke, namesto da bi bil shranjen kot ena velika datoteka.
To je bistveno, saj lahko proizvajalci vsebin predložijo ogromne videoposnetke. Obdelava ali pretakanje posamezne velike datoteke lahko traja nekaj časa.
Gledalcu ne bo treba prenesti celotnega videoposnetka, da bi ga predvajal, če je shranjen in mu je na voljo v delih.
Da bi zagotovili majhno zakasnitev med kosi in da ima uporabnik nemoteno izkušnjo gledanja, odjemalec najprej zahteva prvi kos od strežnika in nato zahteva naslednjega kosa, medtem ko se ta kos predvaja.
Obdelava čakalne vrste
Vsak videoposnetek ima številne dele in Netflix bo za njihovo analizo uporabil več hkratnih delavcev, zato je potrebna čakalna vrsta obdelave. Če jih dodate v čakalno vrsto, je to poenostavljeno.
Opravila bodo zbirali delavci (ali kodirniki, ki jih bomo obravnavali v nadaljevanju), jih kodirali v različne formate in nato shranili v porazdeljeno shrambo datotek.
Video Encoding
Ključnega pomena je, da pretvorite in shranite videoposnetke v več formatih, tako da lahko gledalci do njih dostopajo z uporabo tehnologije in internetne povezave, ki jim najbolj ustreza.
Video si gledalci lahko ogledajo na prenosnem računalniku, telefonu, televiziji ali drugih pripomočkih. Optimalni formati za različne naprave se med seboj razlikujejo.
Podobno lahko različni gledalci uporabljajo različne pasovne širine za dostop do interneta.
Nekateri gledalci bi lahko z lahkoto pretakali filme visoke ločljivosti, odvisno od hitrosti njihove internetne povezave ali pasovne širine, medtem ko bodo tisti z manjšo pasovno širino lahko veliko lažje pretakali videoposnetke nizke kakovosti.
Odprite povezavo
Ko z brskalnikom zahtevate Netflix.com, mora vaš ISP (ponudnik internetnih storitev) resnično vzpostaviti povezavo med vašim računalnikom in strežnikom Netflix.
Vaš ponudnik internetnih storitev vzpostavi stik z naslovom IP Netflix v vašem imenu in vam vrne rezultat. Občinstvo v oddaljeni državi, kot je Tokio, bo imelo znatne zamude pri oddajanju in sprejemanju signalov zaradi koncentracije teh strežnikov v ZDA.
Pri videoposnetkih so zamude veliko bolj zaskrbljujoče, saj je treba gledalcu prenesti veliko podatkov, in če se, bo pretakanje zakasnjeno in uporabniška izkušnja bo trpela.
Netflix uporablja pametno tehniko za odpravo težave. Znan je kot Open Connect (OC). Open Connect je CDN, ki ga uporablja Netflix (omrežje za dostavo vsebine).
Za shranjevanje spletnih informacij v predpomnilnik in njihovo hitro dostavo potrošnikom z zmanjšanjem fizične razdalje med uporabnikom in gradivom je CDN mreža razširjenih strežnikov in povezanih podatkovnih centrov.
Balansiranje obremenitve
A ena aplikacija strežnik ne more obdelati količine zahtev (vključno z zahtevami za nalaganje, iskanje in ogledovanje), ki prispejo vsako sekundo.
Za učinkovito porazdelitev delovne obremenitve na številne strežnike mora biti vzpostavljen izenačevalnik obremenitve, saj je vključenih več strežnikov.
Netflix uporablja stalno zgoščevanje za porazdelitev obremenitev med strežnike, ker lahko obvlada napake strežnikov in z lahkoto sprejme namestitev dodatnih strežnikov.
Ker se priljubljenost posameznih videoposnetkov razlikuje, so lahko dejanski strežniki, ki gostijo te filme, neenakomerno obremenjeni. To težavo lahko odpravimo z uporabo dinamičnih preusmeritev HTTP, ki omogočajo zasedenemu strežniku, da preusmeri novo zahtevo na odprt strežnik.
Premisleki pri razvoju aplikacije za pretakanje videa
Poiščite in razvijajte svojo nišo
Ker je na voljo toliko različnih vrst gradiva, od zabave do izobraževanja in fitnesa, je ključnega pomena zgraditi diferenciatorja s specializirano specialnostjo. Ustvarite lahko platformo za dokumentarne ali neodvisne filme.
Monetizacija aplikacije
Prekinitev tradicionalnih vzorcev monetizacije lahko povzroči inovacije in rast. Načrti morajo biti vedno prilagojeni ciljni publiki.
Ker so prvotni ponudniki že monopolizirali trg, lahko poskusite z oglasi ali promocijskim prikazovanjem izdelkov unovčiti brezplačna članstva.
Poleg tega, če želite zgraditi globalno platformo za storitve pretakanja, morate upoštevati potrebe po več valutah.
Boljše izkušnje
Učinkovitost programa je treba izboljšati za robne okoliščine, kot je počasen internet ali uporabniki z omejenim dostopom.
Pretočni videoposnetki
Ne samo, da Netflix oddaja vsebino, ampak uporablja tudi tehnike inženiringa uporabnikov in prilagojene predloge, da uporabnike ohrani zasvojenost s storitvijo.
Načrtujte vzpostavitev storitve pretakanja, podobne Netflixu, s poudarkom na analizi podatkov in prilagajanju uporabnikov.
Upravljanje številnih vlog aplikacije
V aplikaciji Netflix je uporabniški pogled preprosto ena od več uporabniških vlog. Načrtovanje je potrebno za različne uporabnike in njihov dostop, vključno s skrbnikom, lastnikom videa, partnerji, moderatorji itd.
zaključek
Skratka, tako storitve pretakanja videa, kot so Netflix, YouTube in drugi vgrajeni videoposnetki, spremljajo in jih prikazujejo milijonom potrošnikov.
Čeprav ima lahko vsaka od teh aplikacij nekaj dodatnih funkcij, ki jih ločujejo, temeljna funkcionalnost temelji na istih algoritmih.
Potrudil sem se, da bi vam dal splošen pregled sistemske arhitekture pretočnih storitev, vendar se v ozadju dogaja še veliko več.
Iskreno upam, da se vam bo to znanje zdelo dragoceno in ga boste izkoristili.
Pustite Odgovori