Umnqweno wam weminyaka esibhozo wokwenza idijithali kwiikhasethi zevidiyo ezingama-45. Icandelo loku-2

Inxalenye yokuqala ichaza umnqweno onzima wokwenza iividiyo zosapho ezidala zibe kwidijithali kwaye uzihlukanise zibe ziindawo ezahlukeneyo.. Emva kokucubungula zonke iikliphu, bendifuna ukucwangcisa ukubukela kwabo kwi-intanethi ngokulula njengakuYouTube. Kuba ezi ziinkumbulo zobuqu zosapho, azinakuthunyelwa kuYouTube uqobo. Sifuna ukusingathwa kwabucala ngakumbi okufanelekileyo kwaye kukhuselekile.

Inyathelo 3: Ukupapasha

I-ClipBucket, umthombo ovulekileyo we-YouTube clone enokufakwa kwiseva yakho

Into yokuqala ndizamile ClipBucket, ezibiza ngokuba yi-clone ye-YouTube evulelekileyo onokuthi uyifake kwiseva yakho.

Umnqweno wam weminyaka esibhozo wokwenza idijithali kwiikhasethi zevidiyo ezingama-45. Icandelo loku-2

Okothusayo kukuba, iClipBucket ayinayo imiyalelo yokufaka. Enkosi Ku kubaphathi bangaphandle я inkqubo yokuhlohla ngokuzenzekelayo ngoncedo Efanelekileyo, isixhobo solawulo loqwalaselo lomncedisi.

Inxalenye yobunzima yayikukuba izikripthi zofakelo lweClipBucket zaphulwa ngokupheleleyo. Ngelo xesha mna usebenze kuGoogle kwaye ngokwemiqathango yekhontrakthi andinalo ilungelo lokufaka isandla kumthombo ovulekileyo we-clone ye-YouTube, kodwa mna iposelwe ingxelo yebug, ekunokwenziwa kuzo ngokulula izilungiso eziyimfuneko. Zaqengqeleka iinyanga bengaqondi ukuba yintoni ingxaki. Endaweni yoko bongeza yonke into ngaphezu bugs kulo lonke ukhupho.

I-ClipBucket isebenze kwimodeli yokubonisana-bakhupha ikhowudi yabo mahhala kwaye bahlawuliswe ngoncedo lokuthunyelwa. Kuye kwacaca kum ukuba inkampani eyenza imali ngenkxaso ehlawulwayo mhlawumbi ayinamdla kakhulu wokuba abathengi bazifakele ngokwabo imveliso.

I-MediaGoblin, enye indlela yangoku

Emva kweenyanga zokukhungatheka ngeClipBucket, ndajonga kwiinketho ezikhoyo kwaye ndazifumana Imithombo yeendaba yeGoblin.

Umnqweno wam weminyaka esibhozo wokwenza idijithali kwiikhasethi zevidiyo ezingama-45. Icandelo loku-2
Imithombo yeendaba yeGoblin liqonga lokwabelana ngemidiya ngaphandle kweintanethi

I-MediaGoblin inezinto ezininzi ezimnandi. Ngokungafaniyo ne-ClipBucket kwi-PHP engabonakaliyo, i-MediaGoblin ibhalwe kwi-Python, ulwimi endinalo ulwazi oluninzi lwekhowudi. Yitya ujongano lomgca womyalelo, ekuvumela ukuba ukhuphele ividiyo ngokulula. Okona kubaluleke kakhulu, iMediaGoblin iza nayo Umfanekiso weDocker, ephelisa naziphi na iingxaki zokufakela.

Docker bubuchwephesha obenza imeko-bume yokuzimela ukuze isicelo siqhube naphi na. Ndisebenzisa iDocker ngaphakathi ezininzi zeeprojekthi zakhe.

Ubunzima obumangalisayo bokwenza kwakhona i-MediaGoblin

Ndicinge ukuba ukuthumela umfanekiso weMediaGoblin docker kuya kuba ngumsebenzi omncinci. Ewe, ayizange isebenze ngolo hlobo.

Umfanekiso ogqityiweyo ubungaqulathanga imisebenzi emibini eyimfuneko:

  • Uqinisekiso
    • I-MediaGoblin yenza i-portal yemidiya yoluntu ngokuzenzekelayo, kwaye ndandifuna indlela yokuthintela ukufikelela kubantu bangaphandle.
  • Ukuguqula iikhowudi
    • Ngalo lonke ixesha ukhuphela ividiyo, iMediaGoblin izama ukuyigqithisa ukuze isasazeke ngokufanelekileyo. Ukuba ividiyo ilungele ukusasazwa ekuqaleni, i-transcoding ithoba umgangatho.
    • MediaGoblin ibonelela ikhubaza i-transcoding ngokusebenzisa iinketho zoqwalaselo, kodwa oku akunakukwenziwa kumfanekiso weDocker okhoyo.

Ewe, akukho ngxaki. Umfanekiso weDocker uza nayo Vula Umnikezi, ngoko kunokwenzeka uyakhe kwakhona.

Ngelishwa, umfanekiso weDocker awusakhiwanga ngoku. Indawo yokugcina yeMediaGoblin. Ndizamile ukuyingqamanisa noguqulelo olusuka kulwakhiwo oluphumeleleyo lokugqibela, kodwa nayo yasilela. Nangona ndisebenzise ikhowudi efanayo, ukuxhomekeka kwangaphandle kweMediaGoblin kwatshintsha, kwaphula ukwakhiwa. Emva kweeyure ezininzi, ndibaleke nge-10-15 imizuzu yenkqubo yokwakha iMediaGoblin ngokuphindaphindiweyo de yade yasebenza.

Kwiinyanga ezimbalwa kamva kwenzeka into efanayo. Lilonke, ikhonkco lokuxhomekeka kweMediaGoblin liye laphula ulwakhiwo lwam izihlandlo ezininzi kule minyaka imbalwa idlulileyo, kwaye ixesha lokugqibela yenzeka kanye ngelixa ndibhala eli nqaku. Ekugqibeleni ndapapasha ifolokhwe yeMediaGoblin c ukuxhomekeka okunzima kunye neenguqulelo ezicacisiweyo zamathala eencwadi. Ngamanye amazwi, endaweni yebango elithandabuzekayo lokuba iMediaGoblin isebenza nayo nayiphi na inguqulelo isileri >= 3.0, ndifakele uhlobo oluthile lokuxhomekeka iseleri 4.2.1kuba ndivavanye iMediaGoblin ngale nguqulo. Kubonakala ngathi iimfuno zemveliso indlela yokwakha ephinda-phindayo, kodwa andikayenzi.

Nangona kunjalo, emva kweeyure ezininzi zomzabalazo, ekugqibeleni ndakwazi ukwakha kunye nokuqwalasela iMediaGoblin kumfanekiso weDocker. Kwasele kulula apho tsiba i-transcoding engeyomfuneko ΠΈ faka iNginx yokuqinisekisa.

Inyathelo 4. Ukusingatha

Kuba iMediaGoblin yayiqhuba iDocker kwikhompyuter yam yasekhaya, inyathelo elilandelayo yayikukuyithumela kwiseva yelifu ukuze usapho luyibukele ividiyo.

MediaGoblin kunye nengxaki yokugcina ividiyo

Kukho amaqonga amaninzi athatha umfanekiso weDocker kwaye awubambe kwi-URL yoluntu. Ukubamba kukuba ukongeza kwi-app ngokwayo, i-33 GB yeefayile zevidiyo kwafuneka ipapashwe. Kwakunokwenzeka ukuzifaka nzima kumfanekiso weDocker, kodwa oko kuya kuba nzima kwaye kubi. Ukutshintsha umgca omnye woqwalaselo kuya kufuna ukuthunyelwa kwakhona kwe-33 GB yedatha.

Xa ndisebenzisa iClipBucket ndayisombulula ingxaki nge gcsfuse -isixhobo esivumela inkqubo yokusebenza ukuba ilayishe abalawuli kwi-Google Cloud yokugcina ilifu njengeendlela eziqhelekileyo kwinkqubo yefayile. Ndibambe iifayile zevidiyo kwiLifu likaGoogle kwaye ndasebenzisa i-gcsfuse ukuze zibonakale kwiClipBucket njengeefayile zasekhaya.

Umahluko yayikukuba iClipBucket yabaleka kumatshini wokwenyani, ngelixa iMediaGoblin yayibaleka kwisitya seDocker. Apha, ukunyuswa kweefayile ukusuka kwisitoreji selifu kuye kwaba nzima kakhulu. Ndichithe iiyure ezininzi ndisombulula zonke iingxaki ndaza ndabhala ngazo yonke iposti yeblogi.

Umnqweno wam weminyaka esibhozo wokwenza idijithali kwiikhasethi zevidiyo ezingama-45. Icandelo loku-2
Ukuhlanganiswa kokuqala kweMediaGoblin kunye nokugcinwa kweLifu likaGoogle, endithetha ngalo kuxelwe ngo-2018

Emva kweeveki ezininzi zokulungelelanisa onke amacandelo, yonke into yasebenza. Ngaphandle kokwenza naluphi na utshintsho kwikhowudi yeMediaGoblin, ndiyiqhathile ekufundeni nasekubhaleni iifayile zemidiya kwindawo yokugcina ilifu likaGoogle.

Ingxaki kuphela yayikukuba iMediaGoblin yacotha ngamanyala. Kuthathe imizuzwana engama-20 epheleleyo ukuba ii-thumbnails zevidiyo zilayishwe kwiphepha lasekhaya. Ukuba uthe watsibela phambili ngelixa ubukele ividiyo, iMediaGoblin iya nqumama imizuzwana eli-10 engapheliyo ngaphambi kokuba iphinde idlale kwakhona.

Ingxaki ephambili yayikukuba iividiyo kunye nemifanekiso ithathe indlela ende, ejikelezayo eya kumsebenzisi. Kwakufuneka bahambe ukusuka kugcino lwelifu likaGoogle nge-gcsfuse ukuya kwiMediaGoblin, iNginx-kwaye kuphela emva koko bafika kwisikhangeli somsebenzisi. Eyona nto iphambili ibiyi-gcsfuse, engalungiselelwanga isantya. Abaphuhlisi balumkisa malunga nokulibaziseka okukhulu ekusebenzeni kwesixhobo kwiphepha eliphambili leprojekthi:

Umnqweno wam weminyaka esibhozo wokwenza idijithali kwiikhasethi zevidiyo ezingama-45. Icandelo loku-2
Hlela izilumkiso malunga nokusebenza okuphantsi kuxwebhu lwegcsfuse

Ngokufanelekileyo, isikhangeli kufuneka silande iifayile ngokuthe ngqo kwiLifu likaGoogle, sigqitha kuyo nayiphi na imigangatho ephakathi. Ungayenza njani le nto ngaphandle kokuntywila kwi-codebase yeMediaGoblin okanye ukongeza ingqiqo yokudityaniswa kweLifu likaGoogle?

I-Sub_filter trick kwi nginx

Ngethamsanqa ndafumana isisombululo esilula, nangona kunjalo kancinane imbi. Ndongeze kuqwalaselo olungagqibekanga.conf kwiNginx isihluzo esinjalo:

sub_filter "/mgoblin_media/media_entries/" "https://storage.googleapis.com/MY-GCS-BUCKET/media_entries/";
sub_filter_once off;

Kuseto lwam, iNginx isebenze njengommeli phakathi kweMediaGoblin kunye nomsebenzisi wokugqibela. Lo myalelo ungasentla uyalela i-Nginx ukuba ikhangele kwaye ibuyisele zonke iimpendulo ze-MediaGoblin ze-HTML ngaphambi kokuba zisebenze kumsebenzisi wokugqibela. I-Nginx ithatha indawo yazo zonke iindlela ezihambelanayo kwiifayile zeMediaGoblin zemidiya ngee-URL ezisuka kugcino lwelifu likaGoogle.

Umzekelo, iMediaGoblin ivelisa iHTML ngolu hlobo:

<video width="720" height="480" controls autoplay>
  <source
    src="/mgoblin_media/media_entries/16/Michael-riding-a-bike.mp4"
    type="video/mp4">
</video>

I-Nginx itshintsha impendulo:

<video width="720" height="480" controls autoplay>
  <source
    src="https://storage.googleapis.com/MY-GCS-BUCKET/media_entries/16/Michael-riding-a-bike.mp4"
    type="video/mp4">
</video>

Ngoku yonke into isebenza njengoko bekulindelwe:

Umnqweno wam weminyaka esibhozo wokwenza idijithali kwiikhasethi zevidiyo ezingama-45. Icandelo loku-2
I-Nginx iphinda ibhale iimpendulo kwiMediaGoblin ukuze abathengi bakwazi ukucela iifayile zemidiya ngqo kugcino lukaGoogle kwilifu

Elona candelo lilungileyo malunga nesisombululo sam kukuba ayifuni naluphi na utshintsho kwikhowudi yeMediaGoblin. Umyalelo wemigca emibini ye-Nginx udibanisa ngaphandle komthungo iMediaGoblin kunye neLifu likaGoogle, nangona iinkonzo zingazi nto malunga nomnye.

Qaphela:: Esi sisombululo sifuna ukuba iifayile ezigcinwe kwilifu likaGoogle zifundeke ngumntu wonke. Ukunciphisa umngcipheko wokufikelela okungagunyaziswanga, ndisebenzisa igama lebhakethi elide, elingahleliwe (umz. mediagoblin-39dpduhfz1wstbprmyk5ak29) kwaye uqinisekise ukuba inkqubo yolawulo lofikelelo lwebhakethi ayivumeli abasebenzisi abangagunyaziswanga ukuba babonise imixholo yolawulo.

Imveliso yokugqibela

Ngeli xesha bendinesisombululo esipheleleyo, esisebenzayo. I-MediaGoblin ibaleke ngokonwaba kwisikhongozeli sayo kwiqonga lelifu likaGoogle, ke bekungafuneki ukuba icocwe okanye ihlaziywe rhoqo. Yonke into kwinkqubo yam yayizenzekela kwaye iphinda iphindeke, ivumela ukuhlelwa okulula okanye ukubuyisela umva kwiinguqulelo zangaphambili.

Intsapho yam yayiyithanda kakhulu indlela ekulula ngayo ukubukela iividiyo. Ngoncedo lwe-Nginx hack echazwe ngasentla, ukusebenza ngeevidiyo kuye kwakhawuleza njengakwiYouTube.

Isikrini sokujonga sijongeka ngolu hlobo:

Umnqweno wam weminyaka esibhozo wokwenza idijithali kwiikhasethi zevidiyo ezingama-45. Icandelo loku-2
Imixholo yekhathalogu yevidiyo yosapho ngethegi "Eyona nto ingcono"

Ukucofa kwi-thumbnail kuzisa isikrini esinje:

Umnqweno wam weminyaka esibhozo wokwenza idijithali kwiikhasethi zevidiyo ezingama-45. Icandelo loku-2
Ukujonga ikliphu enye kwiseva yemidiya

Emva kweminyaka yokusebenza, kwaba luncedo kakhulu ukunika amalungu osapho ithuba lokubukela iividiyo zethu ngendlela efanayo yomsebenzisi efana ne-YouTube endandiyifuna kuqala.

Ibhonasi: Nciphisa iindleko ukuya ngaphantsi kwe $1 ngenyanga

Awuzibukeli iividiyo zasekhaya rhoqo, kuphela emva kweenyanga ezimbalwa. Usapho lwam ngokudibeneyo luvelise malunga neeyure ze-20 zetrafikhi ngonyaka, kodwa umncedisi wayeqhuba i-15/99,7. Ndihlawule i-$ XNUMX ngenyanga kwi-server eyayiphantsi kwe-XNUMX% yexesha.

Ekupheleni kwe2018, uGoogle wayikhulula imveliso Cloud Run. Into ebulalayo yayiqhuba izitya zeDocker ngokukhawuleza kangangokuba isicelo sinokuphendula kwizicelo zeHTTP. Oko kukuthi, iseva inokuhlala ikwimowudi yokulinda kwaye iqale kuphela xa umntu efuna ukufikelela kuyo. Ukuqhuba izicelo ezinqabileyo ezifana nezam, iindleko zehle ukusuka kwi-15 yeedola ngenyanga ukuya kwiisenti ezimbalwa ngonyaka.

Ngezizathu endingazikhumbuliyo, i-Cloud Run ayizange isebenze nomfanekiso wam weMediaGoblin. Kodwa ngokufika kwe-Cloud Run ndakhumbula oko Heroku ibonelela ngenkonzo efanayo simahla, kwaye izixhobo zabo zisebenziseka ngakumbi kunezo zikaGoogle.

Ngomncedisi wesicelo samahhala, iindleko kuphela kukugcinwa kwedatha. Ugcino lwengingqi olusemgangathweni lukaGoogle luxabisa i-2,3 cent/GB. I-archive yevidiyo ithatha i-33 GB, ngoko ndihlawula kuphela i-77 cent ngenyanga.

Umnqweno wam weminyaka esibhozo wokwenza idijithali kwiikhasethi zevidiyo ezingama-45. Icandelo loku-2
Esi sisombululo sixabisa i-$ 0,77 kuphela ngenyanga

Iingcebiso kwabo baceba ukuzama

Kucacile ukuba le nkqubo yandithatha ixesha elide. Kodwa ndiyathemba ukuba eli nqaku liza kukunceda ugcine i-80-90% yomzamo wokwenza idijithali kunye nokupapasha iividiyo zakho zasekhaya. Kwicandelo elahlukileyo ungafumana isikhokelo esineenkcukacha ngenyathelo kuyo yonke le nkqubo, kodwa nazi iingcebiso ngokubanzi:

  • Ngexesha ledijithali kunye nesigaba sokuhlela, gcina imetadata eninzi kangangoko kunokwenzeka.
    • Ulwazi oluxabisekileyo lusoloko lurekhodwa kwiilebhile zeekhasethi zevidiyo.
    • Gcina umkhondo ukuba yeyiphi ikliphu edutyulwe kweyiphi iteyiphu kwaye ingalandelelani.
    • Bhala phantsi umhla wokudubula, onokuvela kwividiyo.
  • Cinga ngokuhlawulela iinkonzo zobuchwephesha bedijithali.
    • uza ku kakhulu kunzima kwaye kuyabiza ukuzidibanisa ngokomgangatho wokufakwa kwedijithali.
    • Kodwa hlala kude nenkampani ebizwa ngokuba yi-EverPresent (ndithumele umyalezo ukuba ufuna iinkcukacha).
  • Ukuba uyazenzela ngokwakho, thenga iHDD.
    • Ividiyo yenkcazo esemgangathweni engaxinzekanga ithatha i-100-200 MB ngomzuzu.
    • Ndandigcine yonke into kum Synology DS412 + (10 TB).
  • Rekhoda imetadata kwifomati eqhelekileyo engabotshelelwanga kwisicelo esithile.
    • Iinkcazo zekliphu, iikhowudi zexesha, imihla, njl.
    • Ukuba ugcina imetadata kwifomati yesicelo-ethile (okanye okubi ngakumbi, ungayigcini kwaphela), awuyi kukwazi ukuphinda wenze umsebenzi ukuba uthatha isigqibo sokusebenzisa isisombululo esahlukileyo.
    • Njengoko uhlela, ubona uninzi lwemetadata eluncedo kwividiyo. Uya kuphulukana nazo ukuba awuzigcini.
      • Kwenzeka ntoni kwividiyo?
      • Ngubani obhalisiweyo apho?
      • Ibhalwe nini le nto?
  • Phawula iividiyo zakho ozithandayo.
    • Ukunyaniseka, uninzi lweevidiyo zasekhaya ziyadika.
    • Ndisebenzisa eyona thegi β€œyeyona ilungileyo” kwiziqendu endizithandayo kwaye ndizivule xa ndifuna ukubukela iividiyo ezihlekisayo.
  • Lungiselela isisombululo esibanzi kwangoko kangangoko ukuze inkqubo ihambe ngqo ukusuka ekuqaleni ukuya ekugqibeleni.
    • Ndizame ukwenza zonke iikhasethi zibe yidijithali kuqala, emva koko ndihlele zonke iikhasethi, njl.
    • Akwaba bendiqale ngeteyiphu enye kwaye ndenze wonke umsebenzi ngayo. Emva koko ndiza kuqonda ukuba zeziphi izigqibo kwaye ngawaphi amanqanaba achaphazela umphumo wokugqibela.
  • Gcina urekhoda ubuncinci.
    • Ngalo lonke ixesha uhlela okanye uguqulela ikliphu, wehlisa umgangatho wayo.
    • Yenza umboniso wakho okrwada ube ngowona mgangatho uphezulu, emva koko uguqule ikliphu nganye kanye kanye kwifomathi enikelwa ngabakhangeli ngokwemveli.
  • Sebenzisa esona sisombululo silula ukupapasha iiklip zevidiyo.
    • Xa sijonga umva, iMediaGoblin ibonakala ngathi sisixhobo esintsonkothileyo kakhulu semeko elula yokuvelisa amaphepha ewebhu aneseti emileyo yeefayile zevidiyo.
    • Ukuba bendiqala phantsi, bendiza kusebenzisa ijenereyitha yendawo engatshintshiyo Hugo, Jekyll okanye Igridsome.
  • Yenza ufakelo.
    • Ukuhlelwa kwevidiyo yindlela eyonwabisayo yokudibanisa elona xesha lilungileyo kwiividiyo ezininzi.
    • Eyona nto iphambili ekuhleleni umculo. Umzekelo, umxholo uyamangalisa Ikhephu elicothayo ukusuka kuZwelonke, oku kukufumanisa kwam.

umthombo: www.habr.com