Falanqaynta faahfaahsan ee AWS Lambda

Turjumaada maqaalka waxaa si gaar ah loogu diyaariyey ardayda koorsada "Adeegyada daruuraha". Xiisaynaya horumarinta jihadan? Daawo fasalka sare ee Egor Zuev (TeamLead at InBit) "AWS EC2 adeegga" oo ku biir kooxda koorsada xigta: bilaabma Sebtembar 26.

Falanqaynta faahfaahsan ee AWS Lambda

Dad badan ayaa u haajiray AWS Lambda si ay u cabbiraan, waxqabadka, kaydinta, iyo kartida ay ku maareeyaan malaayiin ama xitaa trillion codsi bishii. Si tan loo sameeyo, uma baahnid inaad maamusho kaabayaasha uu adeeggu ku socdo. Iyo autoscaling waxay kuu ogolaaneysaa inaad u adeegto kumanaan codsiyo isku mar ah ilbiriqsikii. Waxaan u maleynayaa in AWS Lambda si sax ah loogu yeeri karo mid ka mid ah adeegyada AWS ugu caansan.

AWS Lambda

AWS Lambda waa adeeg kombuyuutar la'aan ah oo ay wadaan dhacdada kaas oo kuu oggolaanaya inaad socodsiiso koodka adigoon bixin ama maamulin server-yada oo aad kordhiso adeegyada kale ee AWS adoo isticmaalaya caqli-gal caado ah. Lambda waxay si toos ah uga jawaabtaa dhacdooyin kala duwan (oo loo yaqaan kiciyeyaasha), sida codsiyada HTTP iyada oo loo marayo Amazon API Gateway, isbeddelada xogta Amazon S3 baaldiyada ama miisaska Amazon DynamoDB; ama waxaad ku socodsiin kartaa koodhkaaga wicitaanada API adoo isticmaalaya AWS SDK iyo kala-guurka gobolka ee AWS Talaabada Tallaabo.

Lambda waxay ku shaqeysaa koodka kaabayaal xisaabeed oo aad loo heli karo waxayna si buuxda mas'uul uga tahay maamulida goobta hoose, oo ay ku jiraan server-ka iyo nidaamka hawlgalka, bixinta kheyraadka, is-qiyamaynta, ilaalinta koodhka, iyo gaynta. Taasi waa, kaliya waxaad u baahan tahay inaad geliyaan koodkaaga oo aad habayso sida iyo goorta la fulinayo. Dhanka kale, adeeggu wuxuu daryeeli doonaa bilaabitaankiisa wuxuuna hubin doonaa helitaanka sare ee codsigaaga.

Goorma ayaa loo beddelayaa Lambda?

AWS Lambda waa madal xisaabeed habboon oo ku habboon kiisaska kala duwan ee isticmaalka, ilaa iyo inta luqadda iyo wakhtiga furaha koodkaagu uu taageerayo adeegga. Haddii aad rabto inaad diirada saarto koodhkaaga iyo macquulka ganacsiga markaad dibadda u bixinayso dayactirka server-ka, bixinta, iyo miisaanaynta kharash macquul ah, AWS Lambda hubaal waa dariiqa loo maro.

Lambda waxay ku habboon tahay abuurista is-dhexgalka barnaamijyada, iyo marka lala isticmaalo API Gateway, waxaad si weyn u dhimi kartaa kharashyada oo aad si dhakhso leh u suuqgeyn kartaa. Waxaa jira siyaabo kala duwan oo loo isticmaalo hawlaha Lambda iyo fursadaha abaabulka qaab dhismeedka server-la'aanta - qof kastaa wuxuu dooran karaa shay ku habboon oo ku saleysan hadafkiisa.

Lambda waxay kuu ogolaanaysaa inaad qabato hawlo kala duwan. Markaa, mahadsanid taageerada CloudWatch, waxaad abuuri kartaa hawlo dib loo dhigay oo waxaad otomaatig u noqon kartaa hababka gaarka ah. Ma jiraan wax xaddidaad ah oo ku saabsan dabeecadda iyo xoojinta isticmaalka adeegga (isticmaalka xusuusta iyo waqtiga ayaa lagu xisaabtamayaa), waxna kama diidayo inaad si nidaamsan uga shaqeyso adeeg-yar oo buuxa oo ku saleysan Lambda.

Halkan waxaad ku abuuri kartaa waxqabadyo ku jihaysan adeegga oo aan si joogto ah u socon. Tusaalaha caadiga ah waa sawir-qaadista. Xataa marka laga hadlayo nidaamyada la qaybiyay, hawlaha Lambda ayaa weli ah kuwo khuseeya.

Markaa, haddii aadan rabin inaad wax ka qabato qoondaynta iyo maaraynta agabka xisaabinta, isku day AWS Lambda; Haddii aadan u baahnayn xisaabin culus, kheyraad-dhaqaale, sidoo kale isku day AWS Lambda; haddii code-kaagu uu si xilliyo ah u socdo, waa sax, waa inaad isku daydaa AWS Lambda.

Amniga

Ilaa hadda ma jiraan cabashooyin ku saabsan badbaadada. Dhanka kale, maadaama qaar badan oo ka mid ah hababka gudaha iyo astaamaha hirgelinta qaabkani ay ka qarsoon yihiin isticmaalaha AWS Lambda ee la maareeyay jawi runtime, qaar ka mid ah xeerarka guud ee la aqbalay ee amniga daruuraha ayaa noqda kuwo aan khusayn.

Sida inta badan adeegyada AWS, Lambda waxa lagu bixiyaa badbaado la wadaago iyo ku salaysan u hoggaansanaanta u dhaxaysa AWS iyo macmiilka. Mabda'aani wuxuu yareynayaa culeyska hawlgalka ee macmiilka, maadaama AWS ay qaadato hawlaha ilaalinta, maaraynta iyo kormeerka qaybaha adeegga - laga bilaabo nidaamka hawlgalka martida loo yahay iyo lakabka qiyamka ilaa amniga jirka ee hantida kaabayaasha.

Si gaar ah uga hadlaya AWS Lambda, AWS ayaa mas'uul ka ah maaraynta kaabayaasha hoose, adeegyada hoose ee la xidhiidha, nidaamka hawlgalka, iyo aaladda codsiga. Iyadoo macmiilku uu mas'uul ka yahay amniga koodkiisa, kaydinta xogta qarsoodiga ah, xakamaynta helitaanka, iyo sidoo kale adeegga Lambda iyo agabka (Aqoonsiga iyo Maareynta Helitaanka, IAM), oo ay ku jiraan xadka shaqooyinka loo isticmaalo.

Jaantuska hoose wuxuu muujinayaa qaabka mas'uuliyadda la wadaago sida ay u khuseyso AWS Lambda. Mas'uuliyadda AWS waa orange mas'uuliyadda macmiilkuna waa buluug. Sida aad arki karto, AWS waxay qaadataa mas'uuliyad dheeraad ah codsiyada la soo geliyo adeegga.

Falanqaynta faahfaahsan ee AWS Lambda

Qaabka Mas'uuliyadda La Wadaago ee lagu dabaqi karo AWS Lambda

Lambda runtime

Faa'iidada ugu weyn ee Lambda waa in adoo fulinaya shaqo adiga oo matalaya, adeegga laftiisa ayaa qoondeynaya agabyada lagama maarmaanka ah. Waxaad ka fogaan kartaa inaad waqti iyo dadaal ku lumiso maamulka nidaamka oo aad diirada saarto macquulnimada ganacsiga iyo codaynta.

Adeegga Lambda wuxuu u qaybsan yahay laba diyaaradood. Midda koowaad waa diyaaradda kontoroolka. Sida laga soo xigtay Wikipedia, diyaaradda xakamaynta waa qayb ka mid ah shabakada mas'uulka ka ah qaadista calaamadaynta taraafikada iyo jiheynta. Waa qaybta aasaasiga ah ee go'aannada caalamiga ah ka gaarta bixinta, u adeegidda, iyo qaybinta culayska shaqada. Intaa waxaa dheer, diyaaradda kontoroolka waxay u shaqeysaa sidii shabakad bixiyaha xalka, mas'uul ka ah marin-u-socodka iyo maareynta taraafikada.

Diyaaradda labaad waa diyaaradda xogta. Waxay, sida diyaaradda kontoroolka, waxay leedahay hawlo u gaar ah. Diyaaradda xakamaynta waxay siisaa API-yada maaraynta hawlaha (CreateFunction, UpdateFunctionCode) waxayna maamushaa sida Lambda ula xidhiidho adeegyada kale ee AWS. Diyaarada xogta ayaa maamusha Invoke API, kaas oo maamula hawlaha Lambda. Kadib marka shaqada la yiraahdo, diyaaradda kontoroolka ayaa qoondaynaysa ama dooranaysa jawi runtime jira oo horay loogu sii diyaariyay shaqadaas, ka dibna waxay fulinaysaa koodka ku jira.

AWS Lambda waxay taageertaa luuqado kala duwan oo barnaamij ah, oo ay ku jiraan Java 8, Python 3.7, Go, NodeJS 8, .NET Core 2, iyo kuwa kale, iyada oo loo marayo deegaanadooda runtime. AWS waxay si joogto ah u cusbooneysiisaa, u qaybisaa balastarrada amniga, waxayna ku qabataa waxqabadyo kale oo dayactir ah oo ku saabsan deegaankan. Lambda wuxuu kuu ogolaanayaa inaad isticmaasho luqado kale sidoo kale, waa haddii aad hirgeliso wakhtiga ku haboon ee adiga laftaadu. Kadibna waa inaad daryeeshaa dayactirkeeda, oo ay ku jirto la socodka ammaankeeda.

Sidee dhammaan u shaqeeyaan sideese adeeggu u fulin doonaa hawlahaaga?

Hawl kastaa waxay ku socotaa hal ama in ka badan oo deegaan gaar ah, kuwaas oo u jira oo kaliya nolosha shaqadaas ka dibna la burburiyo. Deegaan kastaa wuxuu sameeyaa hal wicitaan oo keliya, laakiin dib ayaa loo istcimaalayaa haddii ay jiraan wicitaanno taxane ah oo isku mid ah. Dhammaan degaannada runtime-ku waxay ku shaqeeyaan mashiinnada farsamada gacanta ee leh qalabaynta qalabka - waxa loogu yeero microVMs. MicroVM kasta waxaa lagu meeleeyaa akoon gaar ah oo AWS ah waxaana dib u isticmaali kara deegaanku si ay u qabtaan hawlo kala duwan oo koontada dhexdeeda ah. MicroVM-yada waxaa lagu baakadeeyay dhismooyinka dhismaha qalabka Lambda Worker, kaas oo ay iska leedahay oo ay maamusho AWS. Isla runtime looma isticmaali karo hawlo kala duwan, sidoo kale microVM-yadu maaha kuwo u gaar ah xisaabaadka AWS ee kala duwan.

Falanqaynta faahfaahsan ee AWS Lambda

AWS Lambda Go'doominta Model

Go'doominta jawiga runtime waxaa la hirgeliyaa iyadoo la adeegsanayo dhowr habab. Heerka ugu sarreeya ee deegaan kasta waxaa jira nuqullo gaar ah oo ka mid ah qaybaha soo socda:

  • Koodhka shaqada
  • Lambda kasta oo loo doortay shaqada
  • Deegaanka fulinta shaqada
  • Meesha isticmaale ee ugu yar ee ku salaysan Amazon Linux

Hababka soo socda ayaa loo isticmaalaa in lagu go'doomiyo deegaan fulinta kala duwan:

  • koox-koox - xaddid gelitaanka CPU, xusuusta, kaydinta iyo ilaha shabakadda ee jawi kasta oo runtime;
  • meelaha magacyada - habraaca kooxaynta aqoonsiga, ID-yada isticmaalaha, isku xidhka shabakada iyo agabyada kale ee ay maamusho kernel Linux. Runtime kasta wuxuu ku socdaa meel u gaar ah;
  • seccomp-bpf - waxay xaddidaysaa wicitaannada nidaamka ee la isticmaali karo wakhtiga runtime;
  • iptables iyo miisaska dariiqa - go'doominta deegaanka fulinta midba midka kale;
  • chroot - waxay siisaa marin xaddidan ee nidaamka faylka hoose.

Marka lagu daro tignoolajiyada go'doominta iska leh ee AWS, hababkani waxay xaqiijinayaan kala-saar runtime la isku halayn karo. Deegaannada sidaan u go'doonsan ma heli karaan ama ma beddeli karaan xogta deegaan kale.

In kasta oo dhowr jeer oo runtimes ah oo isla xisaabta AWS ah ay ku socon karto hal microVM, xaaladna ma jirto microVM-yada lala wadaagi karo xisaabaadka AWS ee kala duwan. AWS Lambda waxay isticmaashaa kaliya laba hab si ay u go'doomiso microVM-yada: EC2 iyo Firecracker. Go'doominta martida ee Lambda ee ku salaysan xaaladaha EC2 waxay jirtay ilaa 2015. Firecracker waa il cusub oo furan oo si gaar ah loogu talagalay AWS culeysyada shaqo la'aanta waxaana lagu soo bandhigay 2018. Qalabka jireed ee ku shaqeeya microVM-yada waxaa la wadaaga inta u dhexeysa culeysyada shaqada ee xisaabaadka kala duwan.

Badbaadinta bay'ada iyo xaaladaha habsocodka

Inkastoo Lambda runtimes ay gaar u yihiin hawlo kala duwan, waxay wici karaan isla hawl isku celcelin, taasoo la micno ah in runtime-ku uu noolaan karo dhowr saacadood ka hor inta aan la burburin.

Runtime kasta oo Lambda sidoo kale wuxuu leeyahay nidaam faylal la qori karo oo laga heli karo tusaha /tmp. Waxa ku jira lagama heli karo runtimes kale. Ilaa iyo inta nidaamka ku adkaysiga uu khuseeyo, faylalka ku qoran /tmp ayaa jira dhammaan wareegga nolosha ee jawiga runtime. Tani waxay u oggolaanaysaa natiijooyinka wicitaanada badan in la ururiyo, taas oo si gaar ah faa'iido u leh hawlgallada qaaliga ah sida moodooyinka barashada mashiinka.

Wac wareejinta xogta

Invoke API waxa loo isticmaali karaa laba nooc: qaabka dhacdada iyo qaabka jawaabta codsiga. Qaabka dhacdada, wicitaanka waxaa lagu daraa safka fulinta dambe. Qaabka jawaab celinta codsiga, shaqada ayaa isla markiiba loogu yeeraa culeyska la bixiyay, ka dib markaa jawaabta waa la soo celinayaa. Labada xaaladoodba, shaqadu waxay ku socotaa jawiga Lambda, laakiin leh wadooyin kala duwan oo lacag-bixineed.

Inta lagu jiro wicitaanada jawaab-celinta codsiga, culeysku wuxuu ka soo qulqulaa codsiga API (API Caller), sida AWS API Gateway ama AWS SDK, oo u gudba dheelitiriyaha culeyska, ka dibna adeega wacitaanka Lambda (Adeegga Caddaynta). Midda dambe ayaa go'aamisa jawiga ku habboon fulinta shaqada oo u gudbiya culeyska mushaharka halkaas si uu u dhammaystiro wicitaanka. Isku-dheellitirka culeysku wuxuu helayaa taraafikada TLS ee laga ilaaliyo intarneedka. Taraafikada gudaha adeegga Lambda-kadib dheellitiriyaha culeyska-wuxuu maraa gudaha VPC ee gobolka AWS gaar ah.

Falanqaynta faahfaahsan ee AWS Lambda

Qaabka Hagaajinta Wicitaanka AWS Lambda: Qaabka Jawaabta Codsiga

Wicitaanada dhacdada markiiba waa la samayn karaa ama lagu dari karaa saf. Xaaladaha qaarkood, safka waxaa lagu fuliyaa iyadoo la adeegsanayo Amazon SQS (Adeegyada Queue ee fudud ee Amazon), kaas oo u gudbiya wicitaanada adeegga buuxinta wacitaanka Lambda iyada oo loo marayo habka cod-bixinta gudaha. Gaadiidka la kala qaado waxaa ilaaliya TLS, mana jirto sir dheeraad ah oo xogta lagu kaydiyay Amazon SQS.

Wicitaanada dhacdada dib uma soo celiyaan jawaabaha-Shaqaalaha Lambda ayaa si fudud u iska indhatiraya wixii macluumaad jawaab ah. Wicitaanada ku saleysan dhacdada ee ka imanaya Amazon S3, Amazon SNS, CloudWatch, iyo ilo kale waxaa habeeya Lambda qaabka dhacdada. Wicitaanada ka imanaya Amazon Kinesis iyo DynamoDB durdurrada, SQS safafka, Balancer Load Balancer, iyo API Gateway wicitaanada waxaa loo habeeyey qaab codsi-jawaabid.

Kormeerka

Waxaad la socon kartaa oo aad xisaabin kartaa hawlaha Lambda adiga oo isticmaalaya habab iyo adeegyo kala duwan oo AWS ah, oo ay ku jiraan kuwan soo socda.

Amazon CloudWatch
Wuxuu ururiyaa tirokoobyo kala duwan sida tirada codsiyada, muddada codsiyada, iyo tirada codsiyada ee guuldarraystay.

Amazon CloudTrail
Waxay kuu ogolaataa inaad gasho, si joogto ah ula socoto, oo aad ilaaliso macluumaadka dhaqdhaqaaqa akoonkaaga ee la xidhiidha kaabayaasha AWS. Waxaad yeelan doontaa taariikh dhammaystiran oo ah ficillada la sameeyay iyadoo la adeegsanayo AWS Management Console, AWS SDK, aaladaha khadka taliska, iyo adeegyada kale ee AWS.

AWS X-ray
Waxay ku siinaysaa muuqaal dhammaystiran dhammaan heerarka habaynta codsigaaga ee ku salaysan khariidad qaybaheeda gudaha ah. Ku ogolaanayaa inaad falanqeyso codsiyada inta lagu jiro horumarinta iyo jawiga wax soo saarka.

AWS Config
Waxaad awoodi doontaa inaad raadraacdo isbeddelada qaabeynta shaqada Lambda (ay ku jirto tirtirka) iyo runtimes, tags, magacyada maamulaha, cabbirka koodhka, qoondaynta xusuusta, dejimaha wakhtiga wakhtigu ka baxay iyo goobaha isku midka ah, iyo sidoo kale doorka fulinta Lambda IAM, xidhidhiyaha hoose, iyo xidhitaanka kooxda amniga .

gunaanad

AWS Lambda waxa ay soo bandhigtaa qalab awood badan oo lagu dhisayo codsiyo sugan oo la cabbiri karo. Qaar badan oo ka mid ah amniga iyo dhaqamada u hogaansanaanta ee AWS Lambda waxay la mid yihiin adeegyada kale ee AWS, in kasta oo ay jiraan waxyaabo ka reeban. Laga bilaabo Maarso 2019, Lambda waxay u hoggaansantaa SOC 1, SOC 2, SOC 3, PCI DSS, u hoggaansanaanta Caymiska Caafimaadka iyo Qaadashada Caymiska (HIPAA), iyo xeerarka kale. Marka, marka aad ka fekereyso hirgelinta codsigaaga soo socda, tixgeli adeegga AWS Lambda - waxay noqon kartaa tan ugu habboon hawshaada.

Source: www.habr.com

Add a comment