Raadintayda siddeedda sano ah ee ah in aan digitize 45 cajalad muuqaal ah. Qaybta 2

Qaybta hore waxa ay sharraxaysaa baadi-goobka adag ee lagu samaynayo muuqaallo qoys oo duug ah oo lagu jebinayo muuqaallo kala duwan. Ka dib markii la habeeyey dhammaan clips-yada, waxaan rabay inaan abaabulo daawashahooda khadka tooska ah sida YouTube-ka. Maadaama kuwani ay yihiin xusuus gaar ah oo qoyska, lama soo dhejin karo YouTube lafteeda. Waxaan u baahanahay martigelin gaar ah oo labadaba ku habboon oo ammaan ah.

Tallaabada 3. Daabac

ClipBucket, ilo furan YouTube clone oo aad ku rakiban karto serfarkaga

Marka hore waan isku dayay ClipBucket, kaas oo isku magacaabay ilo furan YouTube clone oo aad ku rakibi karto server-kaaga.

Raadintayda siddeedda sano ah ee ah in aan digitize 45 cajalad muuqaal ah. Qaybta 2

Waxa la yaab leh, ClipBucket ma laha wax tilmaamo rakibid ah. Mahadsanid maamulka dibadda я si otomaatig ah nidaamka rakibidda iyadoo gacan ka heleysa Caqli ahaan, qalab maamulka habaynta server.

Dhibaatada qayb ka mid ah waxay ahayd in qoraallada rakibaadda ClipBucket ay gabi ahaanba jabeen. Waqtigaas waxaan ka shaqeeyay Google iyo sida waafaqsan shuruudaha qandaraasku xaq uma lihin inay wax ku biiriyaan clone isha furan ee YouTube, laakiin aniga soo dhejiyay warbixin kutaantaas oo ay fududahay in la sameeyo sixiddii loo baahnaa. Bilo ayaa ka soo wareegay, welina ma ay fahmin waxa dhibku yahay. Halkii, wax walba ayay ku dareen in ka badan dhiqlaha soo daynta kasta.

ClipBucket waxay ku shaqeysay qaab latalin - waxay ku sii daayeen koodkooda lacag la'aan waxaana lagu dalacay caawinta geynta. Si tartiib tartiib ah waxaa ii soo baxday in shirkad lacag ka hesha taageerada lacag bixinta ay u badan tahay inaysan aad u daneyneynin in macaamiishu ay iyagu rakibaan alaabta.

MediaGoblin, beddelka ka casrisan

Dhawr bilood oo niyad jab ah ka dib ClipBucket, waxaan dib u eegay fursadaha jira oo aan helay warbaahinta goblin.

Raadintayda siddeedda sano ah ee ah in aan digitize 45 cajalad muuqaal ah. Qaybta 2
warbaahinta goblin waa madal wadaaga warbaahinta oo kali ah

MediaGoblin waxay leedahay waxyaabo badan oo wanaagsan. Si ka duwan ClipBucket ee PHP aan fiicneyn, MediaGoblin wuxuu ku qoran yahay Python, luqad aan khibrad badan u leeyahay qorista koodka. Cun interface line amarka, taasoo sahlaysa in si otomaatig ah loo soo dejiyo fiidiyowyada. Tan ugu muhiimsan, MediaGoblin ayaa soo gashay Sawirka docker, taas oo meesha ka saaraysa wixii dhibaato ah ee ku saabsan rakibidda.

Docker waa tignoolajiyada abuurta jawi iskiis u ah codsiga ka shaqeeya meel kasta. Waxaan isticmaalayaa Docker gudaha qaar badan oo ka mid ah mashaariicdayda.

Dhibaatada La Yaabka leh ee Dib-u-hagaajinta MediaGoblin

Waxaan u qaatay in keenista sawirka docker MediaGoblin ay noqon doonto hawl yar. Hagaag, si fiican uma shaqayn.

Sawirka la dhammeeyey, waxaa jiray laba hawlood oo lagama maarmaan ah:

  • Xaqiijinta
    • MediaGoblin waxay u abuurtaa barta warbaahinta guud si caadi ah, waxaanan u baahday hab lagu xaddido gelitaanka dadka dibadda.
  • Transcoding
    • Mar kasta oo aad soo rogto muqaal, MediaGoblin waxa ay isku daydaa in ay dib u kood u geliso si ay u socoto baahinta ugu fican. Haddii fiidiyowgu asal ahaan diyaar u yahay baahinta, beddelka codaynta ayaa hoos u dhigta tayada.
    • MediaGoblin ayaa bixisa curyaaminta transcoding iyada oo loo marayo ikhtiyaarka qaabeynta, laakiin suurtogal maaha in tan lagu sameeyo sawirka Docker ee jira.

Hagaag, dhib malahan. Sawirka Docker ayaa la socda il furan, si aad awooddo adigu dib u dhis.

Nasiib darro, sawirka Docker hadda kama dhisna kaydka MediaGoblin. Waxaan isku dayay inaan la jaanqaado qaabkii dhismihii ugu dambeeyay ee lagu guulaystay, laakiin taasi sidoo kale ma shaqayn. Inkasta oo aan si sax ah u isticmaalay koodka isku midka ah, ku tiirsanaanta dibadda ee MediaGoblin ayaa isbeddelay, jebinta dhismaha. Daraasiin saacadood ka dib, waxaan ku orday 10-15 daqiiqo habka dhismaha MediaGoblin marar badan iyo marar badan ilaa uu ugu dambeyntii shaqeeyay.

Si la mid ah ayaa dhacday dhowr bilood ka dib. Isku soo wada duuboo, labadii sano ee la soo dhaafay, silsiladda ku-tiirsanaanta MediaGoblin ayaa jebisay dhismayaasheyda dhowr jeer, markii ugu dambeysayna waxay ahayd markii aan qorayay maqaalkan. Waxaan ku dhameeyay qoraal fargeeto u gaar ah MediaGoblin c ku tiirsanaanta kood adag iyo noocyada maktabadda oo si cad loo cayimay. Si kale haddii loo dhigo, halkii laga ahaan lahaa sheegashada shakiga leh ee ah in MediaGoblin la shaqeyso nooc kasta celery >= 3.0, waxaan rakibay ku-tiirsanaan gaar ah nooca celery 4.2.1, sababtoo ah waxaan ku tijaabiyay MediaGoblin noocaan. Waxay u egtahay in badeecadu u baahan tahay habka dhisidda dib loo soo saari karolaakiin wali ma aanan samayn.

Si kastaba ha ahaatee, saacado badan oo halgan ah ka dib, waxaan ugu dambeyntii awooday inaan dhiso oo aan ku habeeyo MediaGoblin sawirka Docker. Durba way fududahay ka bood transcoding aan loo baahnayn ΠΈ rakib Nginx si loo xaqiijiyo.

Tallaabada 4. Martigelinta

Maadaama MediaGoblin ay ku shaqaynaysay Docker mishiinka deegaankayga, tillaabada xigta waxay ahayd in la geeyo server-ka daruuraha si qoysku u daawado fiidyaha.

MediaGoblin iyo dhibaatada kaydinta muuqaalka

Waxaa jira goobo badan oo qaada sawirka Docker oo ku martigeliya URL dadweyne. Qabashada ayaa ah in marka lagu daro abka laftiisa, 33 GB oo faylal muuqaal ah ay ahayd in la daabaco. Waxay ahayd suurtogal in si adag loogu dhejiyo sawirka docker, laakiin waxay noqotay mid dhib badan oo fool xun. Beddelidda hal xariiq oo qaabeynta waxay u baahan doontaa dib-u-dejin 33 GB oo xog ah.

Markii aan isticmaalay ClipBucket, waxaan ku xaliyay dhibaatada gcsfuse - utility u ogolaanaya nidaamka qalliinka si ay u geliyaan hagaha kaydinta daruuraha Google Cloud sida waddooyinka caadiga ah ee nidaamka file. Waxaan ku marti galiyay faylalka fiidiyowga Google Cloud oo waxaan adeegsaday gcsfuse si aan ugu tuso faylal maxalli ah oo ku jira ClipBucket.

Farqiga u dhexeeya ayaa ahaa in ClipBucket uu ku dhex orday mashiinka farsamada gacanta, halka MediaGoblin uu ku dhex orday weel Docker ah. Halkan, ku-kordhinta faylalka kaydinta daruuraha ayaa noqday mid aad u adag. Waxaan qaatay daraasiin saacadood xallinta dhammaan dhibaatooyinka oo wax ka qoray boostada blog oo dhan.

Raadintayda siddeedda sano ah ee ah in aan digitize 45 cajalad muuqaal ah. Qaybta 2
Is dhexgalka bilawga ah ee MediaGoblin ee kaydinta Google Cloud, kaas oo I ayaa sheegay in 2018

Ka dib dhowr toddobaad oo lagu hagaajinayo dhammaan qaybaha, wax walbaa way shaqeeyeen. Anigoon wax isbeddel ah ku samaynin koodka MediaGoblin, waan khiyaameeyaa si aan u akhriyo oo u qoro faylasha warbaahinta kaydinta daruuraha Google.

Dhibaatada kaliya ayaa ahayd in MediaGoblin uu bilaabay inuu u shaqeeyo si aan habboonayn si tartiib tartiib ah. Waxay qaadatay 20 ilbiriqsi oo culus in la soo geliyo sawirada thumbnails ee bogga hoyga. Haddii aad horay u boodday adigoo daawanaya muuqaal, MediaGoblin waxay hakad ku jirtay 10 ilbiriqsi oo aan dhammaanayn ka hor intaysan dib u bilaabin dib u ciyaarida.

Dhibaatada ugu weyni waxay ahayd in fiidiyowyada iyo sawiradu ay u tageen isticmaalaha hab dheer oo wareeg ah. Waxay ahayd inay ka baxaan kaydinta daruuraha Google iyada oo loo marayo gcsfuse ilaa MediaGoblin, Nginx - ka dibna kaliya waxay galeen browserka isticmaalaha. Dhalada ugu weyn waxay ahayd gcsfuse, kaas oo aan loo hagaajin waxqabadka degdega ah. Horumariyayaashu waxay ka digayaan dib u dhac weyn oo ku yimaadda tamarta ee ku taal bogga ugu weyn ee mashruuca:

Raadintayda siddeedda sano ah ee ah in aan digitize 45 cajalad muuqaal ah. Qaybta 2
Beddeli Digniinta ku saabsan waxqabadka liita dukumeenti gcsfuse

Fikrad ahaan, browserku waa inuu si toos ah uga soo jiidaa faylasha Google Cloud, isagoo ka gudbaya dhammaan lakabyada dhexe. Sideen u sameeyaa tan aniga oo aan si qoto dheer u gelin codebase MediaGoblin oo aan ku darin caqli-gal kakan Google Cloud isdhexgalka?

sub_filter khiyaamo gudaha nginx

Nasiib wanaag waxaan helay xal sahlan in kastoo waxoogaa yar fool xun. Waxaan ku daray qaabka default.conf ee Nginx filtar sida:

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

Dejintayda, Nginx wuxuu u dhaqmay sidii wakiil ka dhexeeya MediaGoblin iyo isticmaalaha dhamaadka. Dardaaranka kore wuxuu u sheegayaa Nginx inuu raadiyo oo beddelo dhammaan jawaabaha HTML ee MediaGoblin ka hor inta aan loo adeegin isticmaaleha ugu dambeeya. Nginx waxay ku beddeshaa dhammaan waddooyinka qaraabada ah ee faylasha warbaahinta MediaGoblin URL-yada kaydinta daruuraha Google.

Tusaale ahaan, MediaGoblin waxay soo saartaa HTML-kan:

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

Nginx waxay beddeshaa jawaabta:

<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>

Hadda wax walba waxay u shaqeeyaan sidii la rabay:

Raadintayda siddeedda sano ah ee ah in aan digitize 45 cajalad muuqaal ah. Qaybta 2
Nginx waxay dib u qortaa jawaabaha MediaGoblin si ay macaamiishu uga codsadaan faylasha warbaahinta si toos ah kaydinta daruuraha Google

Qeybta ugu fiican ee ku saabsan xalkeyga waa in aysan u baahnayn wax isbeddel ah oo ku yimaada koodka MediaGoblin. Dardaaranka labada sadar ee Nginx wuxuu si aan kala go 'lahayn isugu daraa MediaGoblin iyo Google Cloud, in kasta oo labada adeeg aysan waxba ka ogeyn midba midka kale.

tacliiqXalkani wuxuu u baahan yahay in faylasha Google Cloud Storage uu noqdo mid qof walba akhriyi karo. Si loo yareeyo khatarta gelitaanka aan la ogalayn, waxaan isticmaalaa magac baaldi random dheer (tusaale ahaan, mediagoblin-39dpduhfz1wstbprmyk5ak29) oo xaqiiji in nidaamka xakamaynta gelitaanka baaldigu aanu u oggolaan isticmaalayaasha aan la oggolayn inay soo bandhigaan waxa ku jira hagaha.

Wax soo saarka u dambeeya

Halkaa marka ay marayso, waxa aan helay xal dhamaystiran oo shaqaynaya. MediaGoblin waxay si farxad leh ugu dhex orday weelkeeda Google Cloud Platform sidaa darteed uma baahnayn in la dhejiyo ama la cusbooneysiiyo si joogto ah. Wax kasta oo habkayga ku jira waxa ay ahaayeen kuwo toos ah oo dib loo soo saari karo, taas oo u oggolaanaysa in wax laga beddelo ama dib loogu noqdo noocyadii hore.

Qoyskaygu aad bay u jeclaysteen sida ay u fududahay in la daawado fiidiyowyada. Iyada oo la kaashanayo hack-ka Nginx ee kor lagu sharaxay, la shaqeynta fiidiyaha waxay noqotay mid dhakhso badan sida YouTube-ka.

Shaashada muuqaalku waxay u egtahay sidan:

Raadintayda siddeedda sano ah ee ah in aan digitize 45 cajalad muuqaal ah. Qaybta 2
Nuxurka buug-yaraha fiidiyowyada qoyska oo lagu sumadeeyo "Best"

Gujista thumbnail-ka waxay keenaysaa shaashadda soo socota:

Raadintayda siddeedda sano ah ee ah in aan digitize 45 cajalad muuqaal ah. Qaybta 2
Daawashada goos goos gaar ah server-ka warbaahinta

Sannado badan oo shaqo ah ka dib, waxaan si cajiib ah ugu faraxsanahay inaan siiyo qaraabada fursad ay ku daawadaan fiidiyowyadayada isla interface ku habboon sida YouTube, oo aan markii hore rabay.

Gunnada: Kharash dhimis wax ka yar $1 bishii

Waxaad daawataa fiidiyowyada guriga si aan badnayn, kaliya dhowrkii biloodba mar. Qoyskaygu waxay si wadajir ah u dhalin jireen ilaa 20 saacadood oo taraafikada sannadkii, laakiin seerfarku waxa uu socday 15/99,7. Waxaan bixin jiray $XNUMX bishii server-ka hoos u dhacay XNUMX% wakhtiga.

Dhamaadka 2018, Google ayaa soo saartay badeecad Cloud Run. Sifada dilaaga ah ayaa ku shaqaynaysay weelasha Docker si dhakhso ah si codsigu uga jawaabi karo codsiyada HTTP. Taasi waa, server-ku wuxuu ku sii jirayaa qaabka heeganka - oo wuxuu bilaabmaa kaliya marka qof doonayo inuu aado. Barnaamijyada aan badnayn ee sida kayga oo kale ah, kharashyadu waxay ka tageen $15 bishii ilaa dhawr senti sannadkii.

Sababaha aanan xasuusan dartood, Cloud Run kuma shaqayn sawirkayga MediaGoblin. Laakin markii uu soo baxay Cloud Run, ayaan taas xasuustay Heroku waxay ku bixisaa adeeg la mid ah bilaash, qalabkooduna aad buu uga sahlan yahay kan Google-ka.

Adeegaha codsiga bilaashka ah, kharashka kaliya ayaa ah kaydinta xogta. Kaydinta caadiga ah ee Google qiimuhu waa 2,3 senti/GB. Kaydka muuqaalku waa 33 GB, markaa waxaan bixiyaa kaliya 77 senti bishii.

Raadintayda siddeedda sano ah ee ah in aan digitize 45 cajalad muuqaal ah. Qaybta 2
Xalkani wuxuu ku kacayaa kaliya $0,77 bishii

Talooyin loogu talagalay kuwa isku dayaya

Sida iska cad, hawshu waxay igu qaadatay waqti dheer. Laakiin waxaan rajeynayaa in maqaalkani uu kaa caawin doono inaad badbaadiso 80-90% dadaalkaaga daabacaada fiidiyoowga gurigaaga. Qayb gaar ah ayaad ka heli kartaa tillaabo tifaftiran hage tallaabo Inta lagu jiro nidaamka, laakiin halkan waxaa ah qaar ka mid ah talooyin guud:

  • Keydi inta ugu badan ee xogta badan ee suurtogalka ah inta lagu jiro marxaladda digitizing iyo tafatirka.
    • Macluumaadka qiimaha leh ayaa inta badan lagu duubaa calaamadaha cajaladaha fiidiyowga.
    • Diiwaangeli cajaladda laga soo qaaday cajaladaha iyo sida ay u kala horreeyaan.
    • Qor taariikhda toogashada, oo laga yaabo in lagu tilmaamo fiidiyowga.
  • Tixgeli inaad bixiso adeegyada xirfadaysan ee digitization.
    • Waad yeeli doontaa aad u Way adag tahay oo waa qaali in la isku waafajiyo xagga tayada digitization.
    • Laakin ka fogow shirkad la yiraahdo EverPresent (i soo ogeysii haddii aad u baahan tahay faahfaahin dheeraad ah).
  • Haddii aad adigu samaysato digitization-ka, iibso HDD.
    • Fiidiyowga qeexida caadiga ah ee aan la adkeyn wuxuu qaataa 100-200 MB daqiiqadii.
    • Wax walba waan ku hayay Sayniska DS412 + (10 TB).
  • Ku qor xogta badan qaab caadi ah oo aan ku xidhnayn codsi gaar ah.
    • Sharaxaadda goos gooska, code-yada wakhtiga, taariikhaha, iwm.
    • Haddii aad ku kaydiso xogta badan qaab codsi gaar ah (ama ka sii xun, haba yaraatee ha kaydin), ma awoodid inaad dib u sameyso shaqada haddii aad go'aansato inaad isticmaasho xal kale.
    • Markaad tafatirayso, waxaad arkaysaa xog badan oo faa'iido leh oo ku saabsan fiidiyowga. Waad waayi doontaa haddii aadan badbaadin.
      • Maxaa ka dhacaya muuqaalka?
      • Yaa halkaas ka diiwaan gashan?
      • Goorma ayaa la duubay?
  • Tag fiidiyowyada aad jeceshahay
    • Run ahaantii, inta badan waxa ku jira fiidyowga guriga waa caajis.
    • Waxaan codsadaa summada "ugu fiican" ee cajaladaha aan jeclahay oo aan furo markaan rabo inaan daawado fiidiyowyada qosolka leh.
  • Abaabulka xal dhamaystiran sida ugu dhaqsaha badan si hawshu u socoto isla markiiba bilaw ilaa dhamaad.
    • Waxaan isku dayey inaan marka hore dhammaan cajaladaha digitize, ka dibna wax ka beddelo dhammaan cajaladaha, iwm.
    • Waxaa aad u xun in aanan ku bilaabin hal cajalad oo aan ku qabtay shaqada oo dhan. Markaa waxaan fahmi lahaa go'aamada iyo marxaladahee saameeya natiijada kama dambaysta ah.
  • Yaree dib u habeynta
    • Mar kasta oo aad wax ka beddesho ama dib-u-dejiso clip, waxaad hoos u dhigtaa tayadiisa.
    • Digitize muuqalka cayriin tayada ugu sareysa, ka dibna u beddel muuqaal kasta hal mar si sax ah qaabka daalacashadu u ciyaaraan asal ahaan.
  • Isticmaal xalka ugu fudud ee suurtogalka ah ee ku dhejinta fiidiyowyada.
    • Marka dib loo eego, MediaGoblin waxay u egtahay qalab aad u adag oo loogu talagalay xaalad fudud oo fudud oo soo saarista bogag shabakad ah oo wata galal muuqaal ah oo taagan.
    • Haddii aan dib u bilaabo, waxaan isticmaali lahaa koronto-dhaliyaha goobta taagan sida Hugo, Jekyll ama Gridsome.
  • Samee montage.
    • Tafatirka fiidiyowgu waa hab madadaalo leh oo la isku daro daqiiqadaha ugu fiican ee fiidiyowyo badan.
    • Waxa ugu weyn ee tafatirka waa muusigga. Tusaale ahaan, dulucdu waa cajiib Baraf qunyar laga bilaabo The National, tani waa daahfurtayda shakhsi ahaaneed.

Source: www.habr.com