Table of Contents[Ferstopje][Toanje]
D'r is in frij fatsoenlike mooglikheid dat jo wat hawwe streamd as jo tiid online hawwe trochbrocht.
Streaming is ien fan 'e meast foarkommende gebrûk foar de meast bekende apps fan it ynternet, of it no is fia YouTube, Spotify, Netflix, of hûndert oare.
Lykwols, sjoen hoe gewoan streaming is, is it ienfâldich om it as fanselssprekkend te nimmen. Bygelyks: Wat is streaming, krekt?
Elk mediamateriaal, live as opnommen, dat oer it ynternet nei kompjûters en mobile apparaten stjoerd wurdt en yn realtime ôfspield wurdt, wurdt streaming neamd.
Algemiene soarten streamingmateriaal omfetsje podcasts, webcasts, films, televyzjesearjes en muzykfideo's.
Media-items lykas muzyk, fideo en oare soarten wurde pland en oerdroegen yn opienfolgjende gegevenspakketten, sadat se direkt kinne wurde streamd.
In geskikt apparaat, tagong ta in streamingtsjinst of app, en in rappe, betroubere ynternetferbining mei hege snelheid binne alles wat jo nedich binne om te streamen.
Opmerking: wy sille as foarbyld in fideostreamingtsjinst brûke.
Dizze post sil in djippe blik nimme op it systeemûntwerp fan 'e streamingtsjinst en wichtige faktoaren om te rekkenjen by it ûntwikkeljen fan fideo-streamingapplikaasjes.
Systeem eask
Under de populêrste fideostreamingtsjinsten yn 'e wrâld binne YouTube en Netflix. Om de brûkersûnderfining te ferbetterjen, omfettet har arsjitektuer in oantal eleminten.
Sa'n tsjinst omfettet populêre films, fakturearring, AI-basearre oanbefellingssystemen, en sjoch letter funksjonaliteit, mar wy sille konsintrearje op 'e essensjele eleminten.
Kearnkwaliteiten
Wy hawwe de folgjende mooglikheden opnommen yn ús konsept foar in fideo streaming betsjinning:
- Makkers fan ynhâld kinne fideo's pleatse.
- Sjoggers kinne in protte apparaten brûke om fideo's te besjen (mobyl, tv, ensfh.).
- Op fideo's kinne brûkers opmerke, leukje of net leukje.
- De titels fan fideo's kinne brûkt wurde om har te sykjen.
- Om dizze statistiken oan brûkers sjen te litten, kin it systeem werjeften, likes en dislikes opslaan.
Systeemdoelen
- D'r soe gjin buffering wêze moatte, sadat sjoggers fideo's yn realtime kinne besjen.
- Opslach foar fideo moat betrouber wêze. Jo moatte de fideo's dy't jo hawwe upload net ferlieze.
- Mei in tanimming fan brûkers soe it systeem skalberber wêze moatte.
- Lege latency en hege beskikberens moatte funksjes fan it systeem wêze. Yn dizze situaasje is konsistinsje net sa wichtich, om't it goed is foar in brûker om wat tiid te wachtsjen foardat hy in nij yntsjinne film sjocht.
In inkele tsjinner kin it folume fan gegevens net omgean, om't it systeem op reguliere basis sterk ferkear moat beheare. In groep servers sil brûkt wurde om it systeem te betsjinjen.
D'r moatte gjin merkbere snelheidseffekten wêze foar kliïnten, sels as ien server crasht.
Arsjitektuer op hege nivo
In fideo-streamingprogramma kin ien fan trije ferskillende soarten oanfragen akseptearje:
- Upload (skriuwe)
- Sykje (lêze)
- Besjoch (lêze)
Sûnt lêsfragen (sykjen en besjen) faaks ferskate kearen faker sille wêze as skriuwfragen (upload), wurdt elk fan har behannele troch in apart kluster fan tsjinners.
Om't it programma lêsintensyf is, moatte jo mear servers ynstelle om lêsfersiken te behanneljen as uploads.
Elts fersyk makke troch in klant wurdt trochstjoerd nei de goede microservice troch de load balancer as it wurdt ûntfongen.
Upload Service
De uploadtsjinst, dy't de fideo ferwurket, uploadt nei Open Connect-tsjinners en makket it tagonklik foar alle brûkers, foltôget in uploadfersyk.
Search Service
De load balancer stjoert it sykfersyk nei de sykmikrotsjinst, dy't it dan stjoert nei Netflix's Elastic sykjen. De klant krijt it antwurd fan it Elastic-sykjen.
Elastysk sykjen, in ongelooflijk skalberbere iepenboarne sykmasjine mei folsleine tekst, wurdt brûkt troch Netflix om troch miljoenen fideo's te sykjen.
Elastysk sykjen wurdt brûkt troch Netflix om operaasjes fan klanttsjinsten te analysearjen.
Besjoch Service
De mearderheid fan werjefteoanfragen sil net stjoerd wurde nei de loadbalancer of de servers fan Netflix. Ynstee dêrfan sille brûkers ferbine mei lokale ISP's en wurde direkt fied fan 'e tichtstbye Open Connect-tsjinner.
As de oanfrege fideo lykwols net tagonklik is, sil it stjoerd wurde nei de loadbalancer en de werjeftemikroservice.
De fideo wurdt dan socht yn 'e metadata-database, ophelle fan it paad oantsjutte yn' e metadata, en oerdroegen oan de kliïnt.
Fansels omfettet dizze technyk latency, en dêrom wurde praktysk alle werjefteoanfragen oanbean fia Open Connect.
Upload fideo's
It haaddoel fan YouTube is om in film of fideo op te laden. In fideostreamingtsjinst moat in oantal obstakels oerwinne foardat jo in fideo tagonklik meitsje foar har konsuminten.
Hâld yn stikken
Elke yntsjinne fideo sil wurde ferdield yn ferskate lytsere bestannen ynstee fan bewarre as ien enoarm bestân.
Dit is essensjeel, om't ynhâldprodusinten enoarme fideo's kinne yntsjinje. In inkele grutte triem kin in skoft duorje om te ferwurkjen of te streamen.
De sjogger sil de folsleine fideo net hoege te downloaden om it te spyljen as it is bewarre en beskikber steld foar har yn stikken.
Om derfoar te soargjen dat d'r in bytsje wachttiid is tusken brokken en dat de brûker in soepele besjenûnderfining hat, sil de kliïnt earst de earste brok oanfreegje fan 'e tsjinner en dan de folgjende brok oanfreegje wylst dat brok spilet.
Ferwurkjen Wachtrige
Elke fideo hat in protte brokken, en Netflix sil ferskate simultane arbeiders brûke om se te analysearjen, dus is in ferwurkingswachtrige fereaske. Troch se oan de wachtrige ta te foegjen, wurdt dit ienfâldiger makke.
De banen sille wurde sammele troch de arbeiders (as encoders, dy't wy sille dekke folgjende), kodearre yn ferskate formaten, en dan opslein yn de ferspraat triem opslach.
Fideo kodearring
It is krúsjaal om de fideobrokken te konvertearjen en te bewarjen yn ferskate formaten, sadat sjoggers tagong kinne ta har mei de technology en ynternetferbining dy't it bêste foar har wurket.
De fideo kin sjoen wurde op in laptop, tillefoan, TV of oare gadgets troch sjoggers. De optimale formaten foar ferskate apparaten ferskille fan elkoar.
Op in fergelykbere manier kinne ferskate sjoggers ferskate bânbreedtes brûke om tagong te krijen ta it ynternet.
Guon sjoggers kinne films mei hege resolúsje mei gemak streame ôfhinklik fan 'e snelheid fan har ynternetferbining of bânbreedte, wylst dyjingen mei in minder bânbreedte in protte makliker fideo's fan lege kwaliteit kinne streame.
Iepenje Connect
As jo jo blêder brûke om Netflix.com oan te freegjen, wurdt jo ISP (ynternettsjinstferliener) echt frege om in ferbining te meitsjen tusken jo kompjûter en de Netflix-tsjinner.
Jo ISP kontaktet it Netflix IP-adres út namme fan jo en jout it resultaat oan jo werom. It publyk yn in naasje op ôfstân lykas Tokio sil signifikante fertragingen ûnderfine yn it ferstjoeren en ûntfangen fan sinjalen fanwege de konsintraasje fan dizze servers yn 'e FS.
Mei fideo's binne fertragingen folle mear in soarch, om't in protte gegevens moatte wurde oerdroegen oan 'e sjogger, en as dat is, sil de streaming fertrage wurde en sil de brûkersûnderfining lije.
Netflix brûkt in tûke technyk om it probleem op te lossen. It is bekend as Open Connect (OC). Open Connect is it CDN dat Netflix brûkt (Content Delivery Network).
Om online ynformaasje te cache en it rap oan konsuminten te leverjen troch de fysike ôfstân tusken de brûker en it materiaal te ferminderjen, is CDN in netwurk fan ferspriedingsservers en byhearrende datasintra.
Load Balancing
A inkele applikaasje tsjinner is net yn steat om it folume fan fersiken te behanneljen (ynklusyf uploaden, sykjen en besjen fan fersiken) dy't elke sekonde oankomme.
D'r moat in loadbalancer wêze om de wurkdruk effektyf te fersprieden oer de ferskate servers, om't d'r ferskate servers belutsen binne.
Netflix brûkt konstante hashing om loads te fersprieden ûnder servers, om't it serverfouten kin omgean en de ynstallaasje fan ekstra servers mei gemak oanpasse kin.
Sûnt de populariteit fan elke fideo ferskilt, kinne de eigentlike servers dy't dizze films hostje in ûngelikense lading ûnderfine. Mei dynamyske HTTP-omliedingen, wêrtroch in drokke tsjinner in nij fersyk nei in iepen tsjinner kin omliede, kinne wy dit probleem oplosse.
Oerwegingen by it ûntwikkeljen fan in applikaasje foar fideostreaming
Fyn en ûntwikkelje jo niche
Mei safolle ferskillende soarten materiaal beskikber, fan fermaak oant ûnderwiis oant fitness, is it kritysk om in differinsjator te bouwen mei in spesjalisearre spesjaliteit. Jo kinne in platfoarm meitsje foar dokumintêres as unôfhinklike films.
De monetarisaasje fan 'e applikaasje
It fersteuren fan tradisjonele monetarisaasjepatroanen kin resultearje yn ynnovaasje en groei. Plannen moatte altyd oanpast wurde oan 'e doelgroep.
Om't de amtners de merk al monopolisearre hawwe, kinne jo besykje fergees lidmaatskippen te monetearjen mei advertinsjes of produkt pleatsing.
Tegearre mei dit, as jo in wrâldwide streamingtsjinstplatfoarm wolle bouwe, moatte jo de behoeften fan meardere faluta beskôgje.
Bettere ûnderfining
De prestaasjes fan it programma moatte wurde ferbettere foar râneomstannichheden lykas traach ynternet of brûkers mei beheinde tagong.
Streaming fideo's
Netflix stjoert net allinich ynhâld út, mar it brûkt ek techniken foar brûkersyngenieur en personaliseare suggestjes om brûkers oan 'e tsjinst te hâlden.
Plan om in streamingtsjinst op te stellen lykas Netflix mei in klam op gegevensanalytyk en oanpassing fan brûkers.
Behear fan de protte rollen fan 'e App
Yn 'e Netflix-app is brûkerswerjefte gewoan ien fan ferskate brûkersrollen. Planning is nedich foar in ferskaat oan brûkers en har tagong, ynklusyf de behearder, fideo-eigner, partners, moderators, ensfh.
Konklúzje
Ta beslút, dit is hoe't fideostreamingtsjinsten lykas Netflix, YouTube, en oaren oan board fideo's, har byhâlde en se sjen litte oan miljoenen konsuminten.
Hoewol elk fan dizze applikaasjes in pear ekstra funksjes hawwe kinne dy't se útinoar sette, is de fûnemintele funksjonaliteit basearre op deselde algoritmen.
Ik haw myn bêst dien om jo in algemien oersjoch te jaan fan 'e arsjitektuer fan it streamingtsjinstsysteem, mar d'r bart in protte mear op 'e eftergrûn.
Ik hoopje echt dat jo dizze kennis weardefol sille fine en der gebrûk fan meitsje.
Leave a Reply