Ji bo Pêşveçûna Bilez a Xizmetek Vîdyoyê ya Xebatkar Nêzîkatiya Bê Server

Ji bo Pêşveçûna Bilez a Xizmetek Vîdyoyê ya Xebatkar Nêzîkatiya Bê Server

Ez di derve de dixebitim, ku prensîba sereke dikare bi gotina "gelek bifroşe, zû bike." Em çiqas zûtir bikin, em ê bêtir qezenc bikin. Û, tê xwestin ku her tişt ne li ser kulm û snotan, lê bi astek qalîteya pejirandî bixebite. Ez ê ji we re behsa serpêhatiya xwe bikim dema ku hewce bû ku di demek kurt de karûbarek danasînê pêş bixe.

Dayîn: Hesabê root li ser AWS, li ser bijartina stacka teknolojiyê, yek paşde, û mehek ji bo pêşkeftinê ti sînorkirin tune.

Karekî: karûbarek danasînê bicîh bikin ku bikarhêner ji yek heya çar vîdyoyên ku ji yek heya çar çirkeyan dirêj dikin bar dikin, ku dûv re di rêze vîdyoya orjînal de têne bicîh kirin.

biryar

Nivîsandina karûbarê xweya bisîklêtê di demek wusa kurt de ne ramanek baş e. Wekî din, ji bo ku karûbar bi bargiraniyê re rû bi rû bimîne û ji bo ku her kes vîdyoya xwestî bistîne, dê binesaziyek hewce bike. Û bi tercîh ne bi buhayê ji balafirê. Ji ber vê yekê, em tavilê balê dikişînin ser çareseriyên amade bi xwerûkirina hindiktirîn.

Çareseriya standard a ji bo xebata bi vîdyoyê FFmpeg e, karûbarek konsolê ya cross-platformê ye ku, bi argumanan, dihêle hûn deng qut bikin û zêde bikin. Tiştê ku maye bikin ev e ku pêçekek binivîsin û wê berdin jiyanê. Em prototîpek dinivîsin ku du vîdyoyan bi hev ve girêdide, û ... kêf dest pê dike. Pirtûkxane li ser bingeha .NET Core 2-ê ye, divê ew li ser her makîneyek virtual bixebite, ji ber vê yekê em mînakek AWS EC2 digirin û her tişt dê bixebite

Nivîsa veşartîna, ew ê nexebite
.
Her çend FFmpeg peywirê hêsan dike, ji bo çareseriyek bi rastî xebitîn hûn hewce ne ku mînakek EC2 biafirînin û ji bo wê binesaziyek torê sêwirînin, tevî Balansek Load. Karê hêsan a bicîhkirina ji sifrê "piçek" tevlihevtir dibe, û binesaziya tavilê dest bi daxwaza drav dike - her demjimêrek mîqdara dema xebitandinê ji hesabê xerîdar tê kişandin.

Karûbarê me pêvajoyên Dûr-Rêvekêş nagire, databasek pêwendiyek mezin û qelew hewce nake, û bi zincîreka bangên mîkroxizmetê re bi rengekî bêkêmasî di nav mîmariyek-based bûyerê de cih digire. Çareserî bi xwe pêşniyar dike - em dikarin EC2-ê biterikînin û serîlêdanek bê server-a rastîn, mîna Resizer-a wêneya standard a li ser bingeha AWS Lambda, bicîh bikin.

Bi awayê, tevî nerazîbûna eşkere ya pêşdebirên AWS-ê ji bo .NET-ê, ew piştgirî didin .NET Core 2.1 wekî dema xebitandinê, ku cûrbecûr derfetên pêşkeftinê peyda dike.

Û kiraz li ser kekê - AWS ji bo xebitandina pelên vîdyoyê karûbarek cihê peyda dike - AWS Elemental MediaConvert.

Esasê xebatê pir hêsan e: em girêdanek S3 bi vîdyoya derketinê digirin, bi AWS Console, .NET SDK an bi tenê JSON tiştê ku em dixwazin bi vîdyoyê re bikin dinivîsin û gazî karûbarê dikin. Ew bi xwe ji bo pêkanîna daxwazên hatin rêzan bicîh tîne, encamê li S3 bixwe bar dike û ya herî girîng jî, ji bo her guhertina statûyê Bûyerek CloudWatch çêdike. Ev rê dide me ku em pêlavên lambda bicîh bikin da ku pêvajoya vîdyoyê temam bikin.

Ji bo Pêşveçûna Bilez a Xizmetek Vîdyoyê ya Xebatkar Nêzîkatiya Bê Server
Ya ku mîmariya paşîn xuya dike ev e:

Tevahiya paşîn di du lambdayan de cih digire. Yeka din ji bo zivirandina vîdyoyên vertîkal e, ji ber ku karek weha bi yek derbasbûnê nayê kirin.

Em ê pêşiyê di forma serîlêdana SPA-yê de ku bi JS-yê hatî nivîsandin û bi pug-ê di nav kelekek S3 ya gelemperî de hatî berhev kirin, bi cih bikin. Ji bo ku vîdyoyan bixwe dakêşin, em ne hewceyê kodek serverê ne - em tenê hewce ne ku xalên dawiya REST-ê yên ku S3 ji me re peyda dike vekin. Tiştek tenê ev e ku ji bîr nekin ku hûn polîtîka û CORS-ê mîheng bikin.

dahfikên

  • AWS MediaConvert, ji ber hin sedemên nenas, tenê deng li ser her perçeyek vîdyoyê ji hev veqetîne, lê ji me re stranek dilşad ji tevahiya dîmenderê hewce dike.
  • Vîdyoyên vertîkal hewce ne ku ji hev veqetînin. AWS ji barên reş hez nake û çîtikan li 90° datîne.

Qada skating hêsan

Tevî hemî bedewiya Bêdewlet, hûn hewce ne ku hûn tiştên ku divê bi vîdyoyê re bêne kirin bişopînin: zeliqînin an deng li rêzika vîdyoya qediyayî zêde bikin. Xwezî, MediaConvert derbaskirina metadata bi Karên xwe re piştgirî dike, û em her gav dikarin alayek sade ya forma "isMasterSoundJob" bikar bînin, vê metadata di her qonaxê de pars bikin.

Server bêkêmasî dihêle ku bi NoOps re bixebite - nêzîkatiyek ku nepêwistiya tîmek cihê ku berpirsiyarê binesaziya projeyê ye destnîşan dike. Ji ber vê yekê, ew tiştek piçûk bû - em çareseriyê li ser AWS-ê bêyî tevlêbûna rêveberên pergalê, yên ku her gav tiştek bikin heye, bicîh dikin.
Û ji bo lezkirina van hemîyan, em bi qasî ku pêkan li ser AWS CloudFormation, ku destûrê dide te ku hûn bi yek bişkokê rasterast ji VS-ê bicîh bikin, skrîpta bicîhkirinê otomatîk dikin. Wekî encamek, pelek ji 200 rêzikên kodê destûrê dide we ku hûn çareseriyek amade derxînin, her çend hevoksaziya CloudFormation dikare şok be heke hûn jê re nexwestî bin.

Tevahî

Bê server ne dermanek e. Lê ew ê di rewşên bi sê sînoran de jiyanê pir hêsantir bike: "çavkaniyên bisînor-kurt-kurt-pereyên hindik."

Taybetmendiyên Serlêdan ji bo Serverless Minasib

  • bêyî pêvajoyên Long-Running. Sînorê hişk API Gateway 29 saniye ye, sînorê hişk a lambda 5 hûrdem e;
  • ji hêla mîmariya Event-Driven ve hatî şirove kirin;
  • di nav pêkhateyên bi hev ve girêdayî yên mîna SOA de perçe dibe;
  • bi rewşa we re pir xebat hewce nake;
  • di .NET Core de hatî nivîsandin. Ji bo ku hûn bi Çarçoveya .NET-ê re bixebitin, hûn ê dîsa jî bi kêmanî Docker-ê bi dema xebitandinê ya guncan re hewce bikin.

Feydeyên nêzîkbûna Serverless

  • lêçûnên binesaziyê kêm dike;
  • lêçûna gihandina çareseriyê kêm dike;
  • scalability otomatîk;
  • pêşkeftina li kêleka pêşkeftina teknolojîk.

Kêmasî, bi mînakek taybetî

  • Şopandin û têketinê belavkirî - bi qismî bi navgîniya AWS X-Ray û AWS CloudWatch ve hatî çareser kirin;
  • debugging nerehetî;
  • Dema ku bar tune ye Destpêka Sar;
  • Navbera bikarhêner-dijminatî ya AWS pirsgirêkek gerdûnî ye :)

Source: www.habr.com

Add a comment