Zaka zisanu ndi zitatu zofuna kupanga makaseti 45 pa digito. Gawo 2

Gawo loyamba likufotokoza za kufunitsitsa kovutirapo kujambula makanema apabanja akale ndikuwagawa m'magawo osiyana. Nditakonza makanema onse, ndidafuna kukonza zowonera pa intaneti monga momwe ziliri pa YouTube. Popeza izi ndi zokumbukira zapabanja, sizingayikidwe pa YouTube pomwe. Tikufuna kuchititsa kwachinsinsi komwe kuli kosavuta komanso kotetezeka.

Gawo 3. Sindikizani

ClipBucket, chojambula chotseguka cha YouTube chomwe mutha kuyika pa seva yanu

Poyamba ndinayesera ClipBucket, yomwe imadzitcha yokha gwero lotseguka la YouTube clone lomwe mutha kuyika pa seva yanu.

Zaka zisanu ndi zitatu zofuna kupanga makaseti 45 pa digito. Gawo 2

Chodabwitsa, ClipBucket ilibe malangizo aliwonse oyika. Zikomo ku kasamalidwe kakunja я makina okhazikitsa ndi thandizo Amatha, chida chowongolera ma seva.

Chimodzi mwazovuta chinali chakuti zolemba za ClipBucket zidasweka kwathunthu. Nthawi imeneyo ine ntchito pa google ndipo malinga ndi mgwirizanowu analibe ufulu wopereka nawo pagulu lotseguka la YouTube, koma ine adalemba lipoti la cholakwika, kumene kuwongolera kofunikira kukanapangidwa mosavuta. Miyezi inadutsa, ndipo sankamvetsabe kuti vuto linali chiyani. M’malo mwake anawonjezera chilichonse akuluakulu zolakwika pakutulutsidwa kulikonse.

ClipBucket inagwiritsa ntchito chitsanzo chaupangiri - adatulutsa code yawo kwaulere ndikulipiritsa kuti athandizidwe potumiza. Pang'ono ndi pang'ono ndinazindikira kuti kampani yomwe imapanga ndalama kuchokera ku chithandizo cholipidwa mwina sichifuna kuti makasitomala aziyikira okha malonda.

MediaGoblin, njira yamakono

Pambuyo pa miyezi ingapo ndikukhumudwa ndi ClipBucket, ndinayang'ananso zomwe zilipo ndikupeza media goblin.

Zaka zisanu ndi zitatu zofuna kupanga makaseti 45 pa digito. Gawo 2
media goblin ndi standalone media kugawana nsanja

MediaGoblin ili ndi zabwino zambiri. Mosiyana ndi ClipBucket mu PHP yosawoneka bwino, MediaGoblin imalembedwa mu Python, chilankhulo chomwe ndili nacho cholemba zambiri. Idyani lamulo mzere mawonekedwe, zomwe zimapangitsa kuti zikhale zosavuta kutsitsa makanema. Chofunika kwambiri, MediaGoblin imabwera Chithunzi cha Docker, zomwe zimathetsa mavuto aliwonse ndi kukhazikitsa.

Docker ndi teknoloji yomwe imapanga malo odzipangira okha pa ntchito yomwe imagwira ntchito kulikonse. Ndimagwiritsa ntchito Docker mkati zambiri zamapulojekiti anga.

Zovuta Zodabwitsa za Redockerizing MediaGoblin

Ndinaganiza kuti kuyika chithunzi cha MediaGoblin docker ingakhale ntchito yaing'ono. Chabwino, sizinayende mwanjira imeneyo.

Chithunzi chomalizidwa chinalibe ntchito ziwiri zofunika:

  • Kutsimikizika
    • MediaGoblin imapanga malo ochezera pagulu mwachisawawa, ndipo ndimafunikira njira yoletsa anthu akunja.
  • Transcoding
    • Nthawi zonse mukatsitsa kanema, MediaGoblin amayesa kuyiyikanso kuti ikhale yosangalatsa. Ngati vidiyoyo idakonzeka kuti iyambe kuseweredwa, transcoding imatsitsa mtunduwo.
    • MediaGoblin Amapereka kuletsa transcoding kudzera muzosankha zosintha, koma izi sizingachitike mu chithunzi cha Docker chomwe chilipo.

Chabwino, palibe vuto. Chithunzi cha Docker chimabwera ndi gwero lotseguka, kotero inu mukhoza umanganso wekha.

Tsoka ilo, chithunzi cha Docker sichinamangidwenso kuchokera pano MediaGoblin posungira. Ndinayesa kulunzanitsa ndi Baibulo kuchokera omaliza bwino kumanga, koma izo sizinagwire ntchito mwina. Ngakhale ndidagwiritsa ntchito nambala yomweyo, zodalira za MediaGoblin zasintha, ndikuphwanya kumanga. Maola ambiri pambuyo pake, ndidayendetsa njira yomanga ya 10-15 ya MediaGoblin mobwerezabwereza mpaka idagwira ntchito.

Zomwezo zinachitikanso miyezi ingapo pambuyo pake. Pazonse, pazaka zingapo zapitazi, unyolo wodalira MediaGoblin wathyola nyumba yanga kangapo, ndipo nthawi yomaliza idachitika pomwe ndimalemba nkhaniyi. Ndinamaliza kutumiza foloko yake ya MediaGoblin c kudalira hard coded ndi mitundu ya library yotchulidwa mwatsatanetsatane. Mwa kuyankhula kwina, m'malo mokayikira kuti MediaGoblin imagwira ntchito ndi mtundu uliwonse selari > = 3.0, ndinayika kudalira kwina kwa mtundu udzu winawake 4.2.1, chifukwa ndinayesa MediaGoblin ndi Baibuloli. Zikuwoneka ngati zofunikira zamalonda reproducible kumanga ndondomekokoma sindinachitebe.

Komabe, patatha maola ambiri akuvutika, ndinatha kupanga ndi kukonza MediaGoblin mu chithunzi cha Docker. Zinali zophweka kale kulumpha ma transcoding osafunikira ΠΈ khazikitsani Nginx kuti mutsimikizire.

Gawo 4. Hosting

Popeza MediaGoblin inali kuyendetsa Docker pamakina anga am'deralo, chotsatira chinali kutumiza ku seva yamtambo kuti banja liwone kanemayo.

MediaGoblin ndi vuto yosungirako kanema

Pali nsanja zambiri zomwe zimatenga chithunzi cha Docker ndikuchiyika pa ulalo wapagulu. Chogwira ndichakuti kuwonjezera pa pulogalamuyo, 33GB yamafayilo amakanema adayenera kutumizidwa. Zinali zotheka kuziyika molimba kuti zikhale chithunzi cha docker, koma zidakhala zovuta komanso zonyansa. Kusintha mzere umodzi wa kasinthidwe kungafune kutumizidwanso kwa data 33 GB.

Nditagwiritsa ntchito ClipBucket, ndinathetsa vutoli gcsfuse - chida chomwe chimalola opareshoni kukweza maulozera ku Google Cloud yosungirako mitambo ngati njira zokhazikika pamafayilo. Ndidasungira mafayilo amakanema pa Google Cloud ndikugwiritsa ntchito gcsfuse kuwawonetsa ngati mafayilo aku ClipBucket.

Kusiyana kwake kunali kuti ClipBucket idathamanga mumakina enieni, pomwe MediaGoblin idathamanga mu chidebe cha Docker. Apa, kuyika mafayilo kuchokera kumtambo wosungirako kunakhala kovuta kwambiri. Ndinathera maola ambiri ndikuthetsa mavuto onse ndi kulemba za izo positi yonse ya blog.

Zaka zisanu ndi zitatu zofuna kupanga makaseti 45 pa digito. Gawo 2
Kuphatikiza koyambirira kwa MediaGoblin ndi Google Cloud yosungirako, yomwe I idanenedwa mu 2018

Pambuyo pa masabata angapo akusintha zigawo zonse, zonse zinagwira ntchito. Popanda kusintha pa code ya MediaGoblin, ndimabera kuti ndiwerenge ndikulemba mafayilo atolankhani ku yosungirako mitambo ya Google.

Vuto lokhalo linali loti MediaGoblin idakhala yosakwiya msanga. Zinatenga masekondi athunthu a 20 kuti tizithunzi tating'ono zamakanema tikweze patsamba loyambira. Mukadumphira kutsogolo ndikuwonera kanema, MediaGoblin idayima kwa masekondi 10 osatha isanayambe kusewera.

Vuto lalikulu linali loti mavidiyo ndi zithunzi zinapita kwa wogwiritsa ntchito nthawi yayitali, yozungulira. Amayenera kuchoka pamtambo wa Google kudzera pa gcsfuse kupita ku MediaGoblin, Nginx - ndipo ndipamene adalowa mu msakatuli wa wosuta. Botolo lalikulu linali gcsfuse, lomwe silinakonzedwe kuti ligwire ntchito mwachangu. Madivelopa akuchenjeza za kuchedwa kwakukulu kwazinthu patsamba lomwe lili patsamba lalikulu la polojekitiyi:

Zaka zisanu ndi zitatu zofuna kupanga makaseti 45 pa digito. Gawo 2
Machenjezo za kusachita bwino muzolemba za gcsfuse

Momwemo, msakatuli ayenera kukokera mafayilo mwachindunji kuchokera ku Google Cloud, kudutsa zigawo zonse zapakatikati. Kodi ndimachita bwanji izi osalowa mozama mu MediaGoblin codebase ndikuwonjezera malingaliro ophatikiza a Google Cloud?

sub_filter trick mu nginx

Mwamwayi ndinapeza yankho losavuta komabe Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ wonyansa. Ndawonjezera ku default.conf kasinthidwe mu Nginx fyuluta yotere:

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

Pakukhazikitsa kwanga, Nginx idakhala ngati woyimira pakati pa MediaGoblin ndi wogwiritsa ntchito. Malangizo omwe ali pamwambapa amauza Nginx kuti afufuze ndikusintha mayankho onse a MediaGoblin HTML asanawatumize kwa wogwiritsa ntchito. Nginx imalowa m'malo mwa njira zonse zamafayilo a MediaGoblin ndi ma URL kuchokera ku Google cloud storage.

Mwachitsanzo, MediaGoblin imapanga HTML iyi:

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

Nginx amasintha yankho:

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

Tsopano zonse zikuyenda momwe ziyenera kukhalira:

Zaka zisanu ndi zitatu zofuna kupanga makaseti 45 pa digito. Gawo 2
Nginx imalembanso mayankho kuchokera ku MediaGoblin kuti makasitomala athe kupempha mafayilo atolankhani mwachindunji kuchokera ku Google Cloud yosungirako

Gawo labwino kwambiri la yankho langa ndikuti silifuna kusintha kwa MediaGoblin code. Malangizo a mizere iwiri ya Nginx amaphatikiza MediaGoblin ndi Google Cloud, ngakhale mautumiki awiriwa sakudziwana chilichonse.

ndemanga: Yankho ili limafuna kuti mafayilo omwe ali mu Google Cloud Storage awerengedwe ndi aliyense. Kuti ndichepetse mwayi wopezeka mosaloledwa, ndimagwiritsa ntchito dzina lachidebe lalitali (mwachitsanzo, mediagoblin-39dpduhfz1wstbprmyk5ak29) ndikuwonetsetsa kuti ndondomeko yoyendetsera chidebe sichilola ogwiritsa ntchito osaloledwa kuwonetsa zomwe zili m'ndandanda.

Chomaliza

Panthawiyi, ndinali ndi yankho lathunthu, logwira ntchito. MediaGoblin idathamanga mosangalala mu chidebe chake pa Google Cloud Platform, chifukwa chake sichinafunikire kuzigamba kapena kusinthidwa pafupipafupi. Chilichonse chomwe ndinali kuchita chinali chokhazikika komanso chopangidwanso, kulola kusintha kosavuta kapena kubweza kumitundu yam'mbuyomu.

Banja langa lidakonda kwambiri momwe zimakhalira zosavuta kuwonera makanema. Mothandizidwa ndi kuthyolako kwa Nginx komwe tafotokoza pamwambapa, kugwira ntchito ndi kanema kunakhala mwachangu ngati pa YouTube.

Chiwonetsero chowonekera chikuwoneka motere:

Zaka zisanu ndi zitatu zofuna kupanga makaseti 45 pa digito. Gawo 2
Zomwe zili m'gulu la makanema apabanja ndi tag "Best"

Kudina pa thumbnail kumabweretsa chophimba chotsatirachi:

Zaka zisanu ndi zitatu zofuna kupanga makaseti 45 pa digito. Gawo 2
Kuwona kopanira payokha pa seva yapa media

Nditagwira ntchito kwa zaka zambiri, ndinali wokondwa kupatsa achibale mwayi wowonera makanema athu panjira yofananira ndi YouTube, yomwe ndidafuna poyambirira.

Bonasi: Kuchepetsa mtengo mpaka kuchepera $1 pamwezi

Mumawonera makanema apanyumba pafupipafupi, miyezi ingapo iliyonse. Banja langa pamodzi limapanga pafupifupi maola 20 a magalimoto pachaka, koma seva inali kuyenda 15/99,7. Ndinalipira $ XNUMX pamwezi pa seva yomwe inali pansi XNUMX% ya nthawiyo.

Kumapeto kwa 2018, Google idatulutsa malonda Cloud Run. Chophacho chinali kuyendetsa zotengera za Docker mwachangu kwambiri kuti pulogalamuyo iyankhe zopempha za HTTP. Ndiye kuti, seva ikhoza kukhalabe mumayendedwe oyimilira - ndikuyamba pokhapokha wina akafuna kupitako. Kwa mapulogalamu omwe amagwiritsidwa ntchito kawirikawiri ngati anga, ndalama zachoka pa $ 15 pamwezi kufika pa masenti ochepa pachaka.

Pazifukwa zomwe sindikukumbukiranso, Cloud Run sinagwire ntchito ndi chithunzi changa cha MediaGoblin. Koma ndikubwera kwa Cloud Run ndinakumbukira zimenezo Heroku imapereka ntchito yofananira kwaulere, ndipo zida zawo ndizosavuta kuposa za Google.

Ndi seva yaulere yaulere, ndalama zokhazokha ndikusungirako deta. Malo osungira a Google okhazikika amawononga masenti 2,3/GB. Makanema osungidwa ndi 33 GB, chifukwa chake ndimalipira masenti 77 pamwezi.

Zaka zisanu ndi zitatu zofuna kupanga makaseti 45 pa digito. Gawo 2
Njira yothetsera vutoli imangotengera $ 0,77 pamwezi

Malangizo kwa omwe ayesa

Mwachionekere, ntchitoyi inanditengera nthawi yaitali. Koma ndikhulupilira kuti nkhaniyi ikuthandizani kupulumutsa 80-90% ya makanema anu apanyumba ndikuyesa kusindikiza. Mu gawo lapadera mungapeze mwatsatanetsatane sitepe ndi sitepe kalozera nthawi yonseyi, koma apa pali malangizo ena:

  • Sungani metadata yochuluka momwe mungathere panthawi ya digito ndi kusintha.
    • ChidziΕ΅itso chamtengo wapatali nthaΕ΅i zambiri chimalembedwa pamakaseti avidiyo.
    • Lembani kapepala kamene katengedwa kuchokera ku kaseti iti komanso mwadongosolo lotani.
    • Lembani tsiku lowombera, lomwe lingawonekere pavidiyo.
  • Lingalirani zolipirira ntchito zamaukadaulo zama digito.
    • Mudzachita kwambiri ndizovuta komanso zokwera mtengo kuzifananiza potengera mtundu wa digito.
    • Koma khalani kutali ndi kampani yotchedwa EverPresent (ndidziwitseni ngati mukufuna zambiri).
  • Ngati mukupanga digito nokha, gulani HDD.
    • Kanema wotanthauzira wosakanizidwa amatenga 100-200 MB pamphindi.
    • Ndinasunga zonse pa ine Synology DS412 + (10 TB).
  • Lembani metadata m'njira zina zomwe sizikugwirizana ndi pulogalamu inayake.
    • Mafotokozedwe a clip, ma code anthawi, masiku, ndi zina.
    • Ngati musunga metadata m'njira yeniyeni yogwiritsira ntchito (kapena choyipa, osasunga konse), simungathe kuyambiranso ntchitoyo ngati mutasankha kugwiritsa ntchito njira ina.
    • Pamene mukukonzekera, mumawona zambiri zothandiza pavidiyo. Mudzawataya ngati simuwapulumutsa.
      • Kodi chikuchitika ndi chiyani pavidiyoyi?
      • Ndani adalembetsedwa pamenepo?
      • Kodi zinalembedwa liti?
  • Ikani makanema omwe mumakonda.
    • Kunena zowona, makanema ambiri apanyumba amakhala otopetsa.
    • Ndimagwiritsa ntchito tag "zabwino kwambiri" pazokonda zomwe ndimakonda ndikuzitsegula ndikafuna kuwonera makanema oseketsa.
  • Konzani yankho lathunthu mwachangu momwe mungathere kuti ntchitoyi ipite nthawi yomweyo kuyambira koyambira mpaka kumapeto.
    • Ndinayesa kuyika makaseti onse pa digito kaye, kenako ndikusintha makaseti onse, ndi zina zotero.
    • Zachisoni kuti sindinayambe ndi kaseti imodzi ndikuchita nayo ntchito yonse. Kenako ndimatha kumvetsetsa zomwe zisankho komanso magawo omwe zimakhudza zotsatira zomaliza.
  • Chepetsani kukopera.
    • Nthawi iliyonse mukasintha kapena kukonzanso kopanira, mumanyozetsa mtundu wake.
    • Onetsani zojambulidwa pamlingo wapamwamba kwambiri, kenaka tembenuzani chokopa chilichonse chimodzimodzi monga momwe asakatuli amasewera.
  • Gwiritsani ntchito njira yosavuta kwambiri yotumizira mavidiyo.
    • Poyang'ana m'mbuyo, MediaGoblin ikuwoneka ngati chida chovuta kwambiri pazochitika zosavuta kupanga masamba awebusayiti okhala ndi mafayilo amakanema osasunthika.
    • Ndikadati ndiyambirenso, ndikadagwiritsa ntchito jenereta yamalo osasintha monga Hugo, Jekyll kapena Gridsome.
  • Pangani montage.
    • Kusintha kwamavidiyo ndi njira yosangalatsa yophatikizira nthawi zabwino kwambiri zamakanema angapo.
    • Chinthu chachikulu pakusintha ndi nyimbo. Mwachitsanzo, mutuwu ndi wodabwitsa Chipale Chofewa kuchokera ku The National, izi ndi zomwe ndapeza.

Source: www.habr.com