Serverless mus kom ze rau kev txhim kho sai ntawm kev ua haujlwm video

Serverless mus kom ze rau kev txhim kho sai ntawm kev ua haujlwm video

Kuv ua haujlwm hauv outsourcing, qhov twg lub ntsiab lus tseem ceeb tuaj yeem piav qhia los ntawm kab lus "muag ntau, ua sai sai." Qhov peb ua sai, peb yuav khwv tau ntau dua. Thiab, nws yog qhov xav tau tias txhua yam ua haujlwm tsis yog ntawm cov ntoo thiab cov snot, tab sis nrog rau qib kev ua tau zoo. Kuv yuav qhia koj txog kuv qhov kev paub dhau los thaum nws tsim nyog los tsim cov kev pabcuam tshaj tawm hauv lub sijhawm luv luv.

Muab: hauv paus account ntawm AWS, tsis muaj kev txwv rau kev xaiv cov txheej txheem thev naus laus zis, ib qho backend, thiab ib hlis rau kev txhim kho.

Kev sib tw: siv cov kev pabcuam tshaj tawm uas cov neeg siv upload los ntawm ib mus rau plaub cov yeeb yaj kiab ntev li ntawm ib mus rau plaub vib nas this, uas tau muab tso rau hauv cov yeeb yaj kiab thawj zaug.

kev txiav txim siab

Sau koj tus kheej kev pabcuam tsheb kauj vab hauv lub sijhawm luv luv no tsis yog lub tswv yim zoo. Ib qho ntxiv, txhawm rau kev pabcuam kom tau txais kev tiv thaiv nrog lub nra thiab rau txhua tus kom tau txais cov yees duab zoo, cov txheej txheem tsim qauv yuav tsum tau ua. Thiab zoo dua tsis nrog tus nqi tag los ntawm lub dav hlau. Yog li ntawd, peb tam sim ntawd tsom ntsoov rau cov kev daws teeb meem uas tsim nyog nrog tsawg kawg customization.

Cov txheej txheem kev daws teeb meem rau kev ua haujlwm nrog vis dis aus yog FFmpeg, kev siv hluav taws xob hla lub platform uas, los ntawm kev sib cav, tso cai rau koj txiav thiab tshaj tawm suab. Txhua yam uas tseem tshuav ua yog sau ib daim ntaub qhwv thiab tso rau hauv lub neej. Peb sau tus qauv uas muab ob lub yeeb yaj kiab ua ke, thiab ... qhov kev lom zem pib. Lub tsev qiv ntawv yog raws li .NET Core 2, nws yuav tsum khiav ntawm txhua lub tshuab virtual, yog li peb coj ib qho piv txwv AWS EC2 thiab txhua yam yuav ua haujlwm.

Cov ntawv zaistsis yog, nws yuav tsis ua haujlwm
.
Txawm hais tias FFmpeg ua kom yooj yim rau txoj hauj lwm, rau qhov kev daws teeb meem tiag tiag koj yuav tsum tsim ib qho EC2 piv txwv thiab tsim lub network infrastructure rau nws, suav nrog Load Balancer. Txoj haujlwm yooj yim ntawm kev xa tawm los ntawm kos dhau los ua "me ntsis" nyuaj, thiab cov txheej txheem pib thov nyiaj tam sim ntawd - txhua teev tus nqi rau lub sijhawm ua haujlwm raug rho tawm ntawm tus neeg siv nyiaj.

Peb cov kev pabcuam tsis cuam tshuam nrog cov txheej txheem Long-Running, tsis tas yuav muaj cov ntaub ntawv loj thiab muaj roj sib raug zoo, thiab haum txig rau hauv qhov kev tshwm sim-based architecture nrog cov saw ntawm microservice hu. Txoj kev daws teeb meem qhia nws tus kheej - peb tuaj yeem tso tseg EC2 thiab siv qhov tseeb-serverless daim ntawv thov, zoo li tus qauv Image Resizer raws li AWS Lambda.

Los ntawm txoj kev, txawm tias pom tseeb tsis nyiam ntawm AWS cov neeg tsim khoom rau .NET, lawv txhawb .NET Core 2.1 ua haujlwm, uas muab ntau yam kev txhim kho.

Thiab cherry ntawm lub ncuav mog qab zib - AWS muab kev pabcuam cais rau kev ua haujlwm nrog cov ntaub ntawv video - AWS Elemental MediaConvert.

Lub ntsiab lus ntawm kev ua haujlwm yog qhov yooj yim heev: peb nqa S3 txuas rau cov yeeb yaj kiab tawm, sau los ntawm AWS Console, .NET SDK lossis tsuas yog JSON qhov peb xav ua nrog cov vis dis aus thiab hu rau qhov kev pabcuam. Nws nws tus kheej siv cov kab rau kev ua cov lus thov tuaj, uploads qhov tshwm sim rau S3 nws tus kheej thiab, qhov tseem ceeb tshaj plaws, tsim CloudWatch Event rau txhua qhov kev hloov pauv. Qhov no tso cai rau peb siv cov lambda ua kom tiav kev ua yeeb yaj kiab.

Serverless mus kom ze rau kev txhim kho sai ntawm kev ua haujlwm video
Nov yog qhov kawg architecture zoo li:

Tag nrho cov backend yog nyob rau hauv ob lambdas. Lwm qhov yog rau tig cov yeeb yaj kiab ntsug, txij li cov haujlwm no tsis tuaj yeem ua tiav hauv ib qho dhau los.

Peb yuav muab tso rau pem hauv ntej ntawm daim ntawv thov SPA sau rau hauv JS thiab muab tso ua ke ntawm pug nyob rau hauv ib tug pej xeem S3 thoob. Txhawm rau rub tawm cov yeeb yaj kiab lawv tus kheej, peb tsis xav tau tus lej server - peb tsuas yog xav qhib REST qhov kawg uas S3 muab rau peb. Qhov tsuas yog tsis txhob hnov ​​​​qab teeb tsa txoj cai thiab CORS.

kev cov nyom

  • AWS MediaConvert, rau qee qhov tsis paub, tsuas yog siv suab rau txhua qhov video fragment cais, tab sis peb xav tau ib zaj nkauj zoo siab los ntawm tag nrho cov tshuaj ntsuam xyuas.
  • Cov yeeb yaj kiab ntsug yuav tsum tau ua tiav nyias. AWS tsis nyiam cov kab dub thiab muab cov chais rau ntawm 90 °.

Ib qho yooj yim skating rink

Txawm tias tag nrho cov kev zoo nkauj ntawm Stateless, koj yuav tsum tau ua raws li dab tsi yuav tsum tau ua nrog lub yees duab: kua nplaum los yog ntxiv suab rau lub tiav lawm video ib theem zuj zus. Hmoov zoo, MediaConvert txhawb nqa cov metadata dhau los ntawm nws Txoj Haujlwm, thiab peb tuaj yeem siv tus chij yooj yim ntawm daim ntawv "isMasterSoundJob", parsing no metadata ntawm txhua theem.

Serverless zoo kawg nkaus tso cai ua haujlwm nrog NoOps - ib txoj hauv kev uas xav tias qhov tsis tsim nyog ntawm ib pab neeg sib cais lub luag haujlwm rau qhov project infrastructure. Yog li ntawd, nws yog ib qho teeb meem me me - peb xa cov kev daws teeb meem ntawm AWS yam tsis muaj kev koom tes ntawm cov thawj tswj hwm, uas ib txwm muaj ib yam dab tsi los ua.
Thiab txhawm rau ua kom tag nrho cov no, peb automate cov ntawv xa tawm kom ntau li ntau tau ntawm AWS CloudFormation, uas tso cai rau koj xa nrog ib lub pob ncaj qha los ntawm VS. Raws li qhov tshwm sim, cov ntaub ntawv ntawm 200 kab ntawm cov cai tso cai rau koj los yob tawm cov kev daws teeb meem npaj txhij, txawm hais tias CloudFormation syntax tuaj yeem ua rau poob siab yog tias koj tsis paub siv nws.

Tag nrho

Serverless tsis yog panacea. Tab sis nws yuav ua rau lub neej yooj yim dua hauv cov xwm txheej nrog peb qhov txwv: "cov peev txheej tsawg-lub sij hawm luv-nyiaj me me."

Cov yam ntxwv ntawm daim ntawv thov tsim nyog rau Serverless

  • tsis muaj cov txheej txheem Long-Running. API Gateway nyuaj txwv yog 29 vib nas this, lambda nyuaj txwv yog 5 feeb;
  • piav los ntawm Event-Driven architecture;
  • lov rau hauv cov khoom sib txuas xoob xws li SOA;
  • tsis xav tau kev ua haujlwm ntau nrog koj tus mob;
  • sau hauv .NET Core. Txhawm rau ua haujlwm nrog .NET Framework, koj tseem yuav xav tau tsawg kawg Docker nrog lub sijhawm ua haujlwm tsim nyog.

Cov txiaj ntsig ntawm Serverless mus kom ze

  • txo nqi infrastructure;
  • txo tus nqi xa cov tshuaj;
  • tsis siv neeg scalability;
  • kev loj hlob ntawm kev txiav ntug ntawm kev vam meej.

Disadvantages, nrog rau ib qho piv txwv

  • Distributed tracing and loggging - ib feem ntawm AWS X-Ray thiab AWS CloudWatch;
  • tsis yooj yim debugging;
  • Txias Pib thaum tsis muaj load;
  • AWS user-hostile interface is a universal problem :)

Tau qhov twg los: www.hab.com

Ntxiv ib saib