Pregled sadržaja[Sakriti][Pokazati]
Postoji prilično pristojna mogućnost da ste nešto streamali ako ste neko vrijeme proveli online.
Streaming je jedna od najčešćih upotreba najpoznatijih aplikacija na internetu, bilo da se radi o YouTubeu, Spotifyju, Netflixu ili stotinama drugih.
Međutim, s obzirom na to koliko je streaming uobičajen, jednostavno ga je uzeti zdravo za gotovo. Na primjer: Što je točno strujanje?
Svaki medijski materijal, bilo uživo ili snimljen, koji se putem interneta šalje na računala i mobilne uređaje i reproducira u stvarnom vremenu naziva se strujanje.
Uobičajene vrste materijala za strujanje uključuju podcaste, webcastove, filmove, televizijske emisije i glazbene video zapise.
Medijske stavke kao što su glazba, video i druge vrste planiraju se i prenose u uzastopnim podatkovnim paketima tako da se mogu trenutno prenijeti.
Prikladan uređaj, pristup usluzi ili aplikaciji za strujanje te brza, pouzdana internetska veza velike brzine sve su što trebate za strujanje.
Napomena: Kao primjer ćemo koristiti uslugu strujanja videa.
Ovaj će post detaljno razmotriti dizajn sustava usluge strujanja i ključne čimbenike koje treba uzeti u obzir pri razvoju aplikacija za strujanje videa.
Zahtjev sustav
Među najpopularnijim video streaming servisima na svijetu su YouTube i Netflix. Kako bi poboljšali korisničko iskustvo, njihova arhitektura uključuje niz elemenata.
Takva usluga uključuje popularne filmove, fakturiranje, sustave preporuka temeljene na umjetnoj inteligenciji i funkciju gledanja kasnije, ali mi ćemo se usredotočiti na bitne elemente.
Temeljne kvalitete
Uključili smo sljedeće mogućnosti u naš koncept za a video streaming servis:
- Kreatori sadržaja mogu objavljivati videozapise.
- Gledatelji mogu koristiti mnoge uređaje za gledanje videozapisa (mobilni uređaj, TV itd.).
- Na videozapisima korisnici mogu označiti, označiti da im se sviđa ili ne sviđaju.
- Naslovi videa mogu se koristiti za njihovo traženje.
- Kako bi prikazao ovu statistiku korisnicima, sustav može pohraniti prikaze, sviđanja i nesviđanja.
Ciljevi sustava
- Ne bi trebalo biti nikakvog spremanja u međuspremnik kako bi gledatelji mogli gledati videozapise u stvarnom vremenu.
- Pohrana za video treba biti pouzdana. Ne biste trebali izgubiti videozapise koje ste prenijeli.
- S povećanjem broja korisnika, sustav bi trebao biti skalabilan.
- Niska latencija i visoka dostupnost trebale bi biti značajke sustava. U ovoj situaciji dosljednost nije toliko važna jer je u redu da korisnik pričeka neko vrijeme prije nego što vidi svježe poslani film.
Jedan poslužitelj ne može podnijeti količinu podataka budući da sustav mora redovito upravljati velikim prometom. Skupina poslužitelja koristit će se za servisiranje sustava.
Ne bi trebalo biti primjetnih utjecaja na brzinu za klijente čak i ako se jedan poslužitelj sruši.
Arhitektura visoke razine
Program za strujanje videa može prihvatiti jednu od tri različite vrste zahtjeva:
- Upload (pisati)
- Traži (čitaj)
- Pogledati (pročitati)
Budući da će upiti za čitanje (pretraživanje i pregled) često biti nekoliko puta češći od zahtjeva za pisanje (upload), svakim od njih upravlja zaseban klaster poslužitelja.
Budući da je program intenzivan za čitanje, morat ćete postaviti više poslužitelja za obradu zahtjeva za čitanje nego za prijenos.
Svaki zahtjev klijenta usmjerava se na odgovarajuću mikroservis balansiranje opterećenja kad se primi.
Usluga učitavanja
Upload servis, koji obrađuje video, učitava ga na Open Connect poslužitelje i čini ga dostupnim svim korisnicima, ispunjava zahtjev za upload.
Usluga traženja
Balanser opterećenja šalje zahtjev za pretraživanje mikroservisu pretraživanja, koji ga zatim šalje Netflixovom elastičnom pretraživanju. Klijent dobiva odgovor elastične pretrage.
Elastično pretraživanje, nevjerojatno skalabilnu tražilicu otvorenog koda punog teksta, Netflix koristi za pretraživanje milijuna videozapisa.
Netflix koristi elastično pretraživanje za analizu operacija korisničke službe.
Pogledajte uslugu
Većina zahtjeva za prikaz neće biti poslana balanseru opterećenja ili Netflixovim poslužiteljima. Umjesto toga, korisnici će se spajati na lokalne ISP-ove i primati podatke izravno s najbližeg poslužitelja Open Connect.
Međutim, ako traženi video nije dostupan, bit će poslan balanseru opterećenja i mikroservisu za prikaz.
Videozapis se zatim pretražuje u bazi metapodataka, dohvaća s putanje navedenog u metapodacima i prenosi klijentu.
Naravno, ova tehnika uključuje kašnjenje, zbog čega se praktički svi zahtjevi za prikaz pružaju putem Open Connecta.
Prenesite videozapise
Glavna svrha YouTubea je učitavanje filma ili videa. Usluga video streaminga mora prevladati niz prepreka prije nego što video učini dostupnim svojim korisnicima.
Čuvanje u komadima
Svaki poslani videozapis bit će podijeljen u brojne manje datoteke umjesto da se čuva kao jedna velika datoteka.
Ovo je bitno budući da proizvođači sadržaja mogu poslati ogromne videozapise. Obrada ili strujanje jedne velike datoteke može potrajati neko vrijeme.
Gledatelj neće morati preuzeti cijeli video kako bi ga reproducirao ako je spremljen i dostupan mu u dijelovima.
Kako bi se osiguralo da postoji malo kašnjenja između dijelova i da korisnik ima glatko iskustvo gledanja, klijent će prvo zatražiti prvi dio od poslužitelja, a zatim zatražiti sljedeći dio dok se taj komad reproducira.
Obrada reda čekanja
Svaki video ima brojne dijelove, a Netflix će koristiti nekoliko istodobnih radnika za njihovu analizu, stoga je potreban red čekanja za obradu. Njihovim dodavanjem u red čekanja to postaje jednostavnije.
Poslove će prikupiti radnici (ili enkoderi, o čemu ćemo kasnije govoriti), kodirati u različite formate, a zatim pohraniti u distribuiranu pohranu datoteka.
Video kodiranje
Presudno je pretvoriti i spremiti dijelove videozapisa u nekoliko formata kako bi im gledatelji mogli pristupiti pomoću tehnologije i internetske veze koja im najbolje odgovara.
Gledatelji mogu vidjeti video na prijenosnom računalu, telefonu, TV-u ili drugim napravama. Optimalni formati za različite uređaje međusobno se razlikuju.
Na sličan način, različiti gledatelji mogu koristiti različite propusnosti za pristup internetu.
Neki bi gledatelji mogli s lakoćom strujati filmove visoke razlučivosti ovisno o brzini svoje internetske veze ili propusnosti, dok će oni s manjom propusnošću moći puno lakše strujati videozapise niske kvalitete.
Otvorite Connect
Kada koristite svoj preglednik za traženje Netflix.com, vaš ISP (Internet Service Provider) se zaista traži da uspostavi vezu između vašeg računala i Netflix poslužitelja.
Vaš ISP kontaktira Netflix IP adresu u vaše ime i vraća vam rezultat. Publika u udaljenoj naciji poput Tokija doživjet će značajna kašnjenja u prijenosu i primanju signala zbog koncentracije ovih poslužitelja u SAD-u.
Kod videozapisa kašnjenja su mnogo veća briga jer se gledatelju mora prenijeti mnogo podataka, a ako jest, strujanje će biti odgođeno i korisničko iskustvo će patiti.
Netflix koristi pametnu tehniku za rješavanje problema. Poznato je kao Open Connect (OC). Open Connect je CDN koji koristi Netflix (Content Delivery Network).
Kako bi se mrežne informacije spremile u predmemoriju i brzo ih dostavile potrošačima smanjenjem fizičke udaljenosti između korisnika i materijala, CDN je mreža raširenih poslužitelja i povezanih podatkovnih centara.
Balansiranje opterećenja
A jedna aplikacija poslužitelj ne može obraditi količinu zahtjeva (uključujući zahtjeve za učitavanje, pretraživanje i gledanje) koji stižu svake sekunde.
Mora postojati balanser opterećenja kako bi se radno opterećenje učinkovito rasporedilo na brojne poslužitelje jer je uključeno nekoliko poslužitelja.
Netflix upotrebljava stalno raspršivanje za raspodjelu opterećenja između poslužitelja jer može riješiti kvarove poslužitelja i s lakoćom prilagoditi instalaciju dodatnih poslužitelja.
Budući da popularnost svakog videozapisa varira, stvarni poslužitelji koji ugošćuju te filmove mogli bi imati nejednako opterećenje. Korištenjem dinamičkih HTTP preusmjeravanja, koja omogućuju zauzetom poslužitelju da preusmjeri novi zahtjev na otvoreni poslužitelj, možemo riješiti ovaj problem.
Razmatranja pri razvoju aplikacije za strujanje videa
Pronađite i razvijte svoju nišu
Uz toliko različitih dostupnih vrsta materijala, od zabave preko obrazovanja do fitnessa, ključno je izgraditi diferencijator sa specijaliziranom specijalnošću. Možete stvoriti platformu za dokumentarce ili nezavisne filmove.
Monetizacija aplikacije
Narušavanje tradicionalnih obrazaca monetizacije može rezultirati inovacijama i rastom. Planovi uvijek trebaju biti prilagođeni ciljanoj publici.
Budući da su vodeći proizvođači već monopolizirali tržište, možete pokušati unovčiti besplatna članstva pomoću oglasa ili plasmana proizvoda.
Uz to, ako želite izgraditi globalnu platformu usluge strujanja, morate uzeti u obzir potrebe za više valuta.
Bolje iskustvo
Izvedbu programa trebalo bi poboljšati za rubne okolnosti poput sporog interneta ili korisnika s ograničenim pristupom.
Strujanje videozapisa
Ne samo da Netflix emitira sadržaj, već također koristi tehnike korisničkog inženjeringa i personalizirane prijedloge kako bi korisnike zadržao zakačenim za uslugu.
Planirajte uspostaviti streaming uslugu sličnu Netflixu s naglaskom na analitiku podataka i prilagodbu korisnika.
Upravljanje brojnim ulogama aplikacije
U aplikaciji Netflix, korisnički prikaz jednostavno je jedna od nekoliko korisničkih uloga. Planiranje je potrebno za različite korisnike i njihov pristup, uključujući administratora, vlasnika videozapisa, partnere, moderatore itd.
Zaključak
U zaključku, ovo je način na koji servisi za strujanje videozapisa poput Netflixa, YouTubea i drugih ugrađenih videozapisa održavaju njihovu evidenciju i prikazuju ih milijunima potrošača.
Iako svaka od ovih aplikacija može imati nekoliko dodatnih značajki koje ih razlikuju, temeljna funkcionalnost temelji se na istim algoritmima.
Dao sam sve od sebe da vam dam opći pregled arhitekture sustava usluge strujanja, ali još se puno toga događa u pozadini.
Iskreno se nadam da će vam ovo znanje biti dragocjeno i da ćete ga iskoristiti.
Ostavi odgovor