Serverless nzira yekukurumidza kusimudzira yebasa revhidhiyo inoshanda

Serverless nzira yekukurumidza kusimudzira yebasa revhidhiyo inoshanda

Ini ndinoshanda mukushambadzira, uko musimboti mukuru unogona kutsanangurwa nemutsara wekuti "tengesa zvakanyanya, ita nekukurumidza." Kukurumidza kwatinozviita, ndipo patinozowana mari yakawanda. Uye, zvinodikanwa kuti zvinhu zvose zvishande kwete pamadondoro uye snot, asi nehuwandu hunogamuchirwa hwehutano. Ini ndichakuudza nezve chiitiko changu pazvaive zvakafanira kukudziridza sevhisi yekusimudzira munguva pfupi.

Zvapiwa: midzi account paAWS, hapana zvirambidzo pakusarudza tekinoroji stack, imwe backend, uye mwedzi mumwechete wekusimudzira.

Basa: shandisa sevhisi yekusimudzira uko vashandisi vanorodha kubva kune imwe kusvika kune ina mavhidhiyo anogara kubva kune imwe kusvika kumasekonzi mana, ayo anobva aiswa mukati meiyo yekutanga mavhidhiyo akateedzana.

chisarudzo

Kunyora sevhisi yako yebhasikoro munguva pfupi yakadaro haisi pfungwa yakanaka. Pamusoro pezvo, kuitira kuti sevhisi igone kubata nemutoro uye kuti munhu wese agamuchire vhidhiyo inoshuvira, zvivakwa zvichadikanwa. Uye zviri nani kwete nemutengo weti kubva mundege. Naizvozvo, isu tinobva tangotarisa pane akagadzirira-akagadzirwa mhinduro ane kushoma customization.

Iyo yakajairwa mhinduro yekushanda nevhidhiyo ndeye FFmpeg, muchinjika-chikuva chekoni utility iyo, kuburikidza nekupokana, inobvumidza iwe kucheka uye overdub odhiyo. Chasara kuita kunyora chiputiriso nekuchisunungura muhupenyu. Isu tinonyora prototype inobatanidza mavhidhiyo maviri pamwe chete, uye ... kunakidzwa kunotanga. Raibhurari yakavakirwa pa.NET Core 2, inofanira kushanda pane chero muchina chaiwo, saka tinotora muenzaniso weAWS EC2 uye zvese zvichashanda.

Zvinyorwa zvakavanzwakwete, hazvishande
.
Kunyangwe FFmpeg ichirerutsa basa, kune mhinduro inoshanda chaizvo iwe unofanirwa kugadzira EC2 muenzaniso uye kugadzira network network yayo, kusanganisira Rokureja Balancer. Basa rakareruka rekuisa kubva pakutanga rinova "zvishoma" zvakanyanya kuomarara, uye zvivakwa zvinotanga kuda mari nekukasira - awa yega yega mari yenguva yekumhanya inobviswa kubva kuaccount yemutengi.

Sevhisi yedu haisanganisire marefu-Kumhanya maitiro, haadi yakakura uye ine mafuta ehukama dhatabhesi, uye inokodzera zvakakwana muchiitiko-chakavakirwa chivakwa chine ketani ye microservice mafoni. Mhinduro inozviratidza - isu tinogona kusiya EC2 uye kuita yechokwadi-serverless application, seyakajairwa Image Resizer yakavakirwa paAWS Lambda.

Nenzira, pasinei nekusada kuri pachena kwevagadziri veAWS ye.NET, vanotsigira .NET Core 2.1 senguva yekumhanya, iyo inopa huwandu hwakazara hwemikana yekuvandudza.

Uye iyo cherry pakiki - AWS inopa sevhisi yakaparadzana yekushanda nemavhidhiyo mafaera - AWS Elemental MediaConvert.

Izvo zvakakosha zvebasa zviri nyore zvinoshamisa: tinotora S3 link kuvhidhiyo inobuda, nyora kuburikidza neAWS Console, .NET SDK kana kungoita JSON zvatinoda kuita nevhidhiyo uye kudana basa. Iyo pachayo inoshandisa mitsetse yekugadzirisa zvikumbiro zvinouya, inoisa mhedzisiro kuS3 pachayo uye, zvakanyanya kukosha, inogadzira CloudWatch Chiitiko chega chega shanduko. Izvi zvinotibvumira kushandisa lambda zvinokonzeresa kupedzisa vhidhiyo kugadzirisa.

Serverless nzira yekukurumidza kusimudzira yebasa revhidhiyo inoshanda
Izvi ndizvo zvinoita senge yekupedzisira architecture:

Iyo yese backend inogara muma lambdas maviri. Imwe yacho ndeyekutenderedza mavhidhiyo akatwasuka, sezvo basa rakadaro risingagone kuitwa mukupfuura kumwe.

Isu tichaisa kumberi muchimiro cheSPA application yakanyorwa muJS uye yakanyorwa kuburikidza nepug mune yeruzhinji S3 bucket. Kurodha iwo mavhidhiyo pachawo, isu hatidi chero server kodhi - isu tinongoda kuvhura iyo REST magumo ayo S3 anotipa. Chinhu chega ndechekuti usakanganwa kugadzirisa marongero uye CORS.

Pitfalls

  • AWS MediaConvert, nekuda kwechimwe chikonzero chisingazivikanwe, inongoshandisa ruzha kune yega yega chidimbu chevhidhiyo zvakasiyana, asi isu tinoda rwiyo runonakidza kubva kune yese skrini.
  • Mavhidhiyo akatwasuka anoda kugadziridzwa akaparadzana. AWS haifarire mbariro nhema uye inoisa rollers pa90 Β°.

Easy skating rink

Pasinei nekunaka kwese kweStateless, iwe unofanirwa kuchengetedza izvo zvinoda kuitwa nevhidhiyo: glue kana kuwedzera odhiyo kune yapera vhidhiyo kutevedzana. Sezvineiwo, MediaConvert inotsigira kupfuudza metadata kuburikidza neMabasa ayo, uye isu tinogona kugara tichishandisa mureza wakapfava wefomu "isMasterSoundJob", tichiparura iyi metadata chero nguva.

Serverless inobvumira zvakakwana kushanda neNoOps - nzira inotora kusakosha kwechikwata chakasiyana chine mutoro wezvivakwa zveprojekiti. Naizvozvo, yaive nyaya diki - isu tinotumira mhinduro paAWS pasina kubatanidzwa kwevatariri vehurongwa, avo vanogara vaine chimwe chinhu chekuita zvakadaro.
Uye kuti tikurumidze zvese izvi, isu tinogadzirisa script yekutumira zvakanyanya sezvinobvira paAWS CloudFormation, iyo inokutendera kuti uendese nebhatani rimwe zvakananga kubva kuVS. Nekuda kweizvozvo, faira ye200 mitsetse yekodhi inobvumidza iwe kuburitsa yakagadzirira-yakagadziriswa mhinduro, kunyangwe iyo CloudFormation syntax inogona kuvhundutsa kana iwe usina kuijaira.

Total

Serverless haisi panacea. Asi ichaita kuti hupenyu huve nyore mumamiriro ezvinhu ane miganhu mitatu: "zviwanikwa zvishoma - zvenguva pfupi - mari shoma."

Hunhu hweMaapplication Akakodzera kune Serverless

  • pasina Long-Running maitiro. API Gateway yakaoma muganho ndeye 29 masekonzi, lambda yakaoma muganho maminetsi mashanu;
  • inotsanangurwa neChiitiko-Chinotyairwa architecture;
  • inoputsika muzvikamu zvakasununguka zvakabatanidzwa seSOA;
  • haidi basa rakawanda nemamiriro ako;
  • yakanyorwa mu .NET Core. Kuti ushande neNET Framework, iwe uchazoda kanenge Docker ine yakakodzera nguva yekumhanya.

Mabhenefiti eServerless maitiro

  • inoderedza mari yezvivakwa;
  • inoderedza mari yekuendesa mhinduro;
  • otomatiki scalability;
  • kuvandudzwa pamucheto wekucheka kwekufambira mberi kwetekinoroji.

Zvakaipa, nemuenzaniso chaiwo

  • Kugovera kutsvaga uye kutema miti - yakagadziriswa zvishoma kuburikidza neAWS X-Ray uye AWS CloudWatch;
  • inconvenient debugging;
  • Cold Start kana pasina mutoro;
  • AWS mushandisi-anovenga interface idambudziko repasi rose :)

Source: www.habr.com

Voeg