Analysis de AWS Lambda

Cov lus txhais ntawm tsab xov xwm tau npaj tshwj xeeb rau cov tub ntxhais kawm ntawm chav kawm "Cloud services". Txaus siab rau kev txhim kho hauv cov lus qhia no? Saib cov chav kawm master los ntawm Egor Zuev (TeamLead ntawm InBit) "AWS EC2" thiab koom nrog pab pawg tom ntej: pib lub Cuaj Hlis 26.

Analysis de AWS Lambda

Ntau tus neeg tsiv teb tsaws chaw rau AWS Lambda rau kev ua kom muaj zog, kev ua tau zoo, kev txuag nyiaj, thiab muaj peev xwm tswj tau ntau lab lossis ntau txhiab lab ntawm kev thov hauv ib hlis. Txhawm rau ua qhov no, koj tsis tas yuav tswj hwm cov txheej txheem uas cov kev pabcuam khiav haujlwm. Thiab autoscaling tso cai rau koj los pab ntau txhiab qhov kev thov ib txhij ib ob. Kuv xav tias AWS Lambda tuaj yeem raug hu ua ib qho ntawm cov kev pabcuam AWS nrov tshaj plaws.

AWS Lambda

AWS Lambda yog ib qho kev tshwm sim-tsav serverless kev pabcuam uas tso cai rau koj los khiav cov cai yam tsis muaj kev tswj lossis tswj cov servers thiab txuas ntxiv lwm cov kev pabcuam AWS uas siv cov kev cai logic. Lambda cia li teb rau ntau yam xwm txheej (hu ua tshwm sim), xws li HTTP thov los ntawm Amazon API Gateway, hloov cov ntaub ntawv hauv Amazon S3 thoob lossis Amazon DynamoDB cov rooj; lossis koj tuaj yeem khiav koj cov cai los ntawm API hu siv AWS SDK thiab lub xeev hloov pauv hauv AWS Step Functions.

Lambda sau cov cai ntawm kev siv cov cuab yeej siv tau zoo heev thiab muaj lub luag haujlwm tag nrho rau kev tswj hwm lub hauv paus platform, suav nrog kev saib xyuas cov neeg rau zaub mov thiab kev khiav haujlwm, kev muab peev txheej, nws pib-scaling, saib xyuas cov cai, thiab kev nkag. Ntawd yog, koj tsuas yog yuav tsum tau upload koj cov cai thiab teeb tsa yuav ua li cas thiab thaum twg nws yuav tsum raug tua. Nyob rau hauv tas li ntawd, qhov kev pab cuam yuav saib xyuas nws lub community launch thiab xyuas kom meej muaj siab ntawm koj daim ntawv thov.

Thaum twg hloov mus rau Lambda?

AWS Lambda yog lub khoos phis tawj yooj yim uas tsim nyog rau ntau yam kev siv, tsuav yog cov lus thiab lub sijhawm ua haujlwm ntawm koj cov cai tau txais kev txhawb nqa los ntawm cov kev pabcuam. Yog tias koj xav tsom mus rau koj cov cai thiab kev lag luam logic thaum outsourcing server tu, muab, thiab scaling ntawm tus nqi tsim nyog, AWS Lambda yog txoj hauv kev mus.

Lambda yog qhov zoo tagnrho rau kev tsim cov programming interfaces, thiab thaum siv nrog API Gateway, koj tuaj yeem txo cov nqi thiab tau txais kev lag luam sai dua. Muaj ntau txoj hauv kev los siv Lambda lub luag haujlwm thiab cov kev xaiv rau kev teeb tsa serverless architecture - txhua tus tuaj yeem xaiv qee yam tsim nyog raws li lawv lub hom phiaj.

Lambda tso cai rau koj ua ntau yam haujlwm. Yog li, ua tsaug rau CloudWatch kev txhawb nqa, koj tuaj yeem tsim cov haujlwm ncua sij hawm thiab ua kom cov txheej txheem ntawm tus kheej. Tsis muaj kev txwv rau qhov xwm txheej thiab kev siv ntawm kev siv cov kev pabcuam (nco txog kev siv sijhawm thiab sijhawm raug coj mus rau hauv tus account), thiab tsis muaj dab tsi tiv thaiv koj los ntawm kev ua haujlwm ntawm lub microservice tag nrho raws li Lambda.

Ntawm no koj tuaj yeem tsim cov kev pabcuam-taw qhia uas tsis ua haujlwm tsis tu ncua. Ib qho piv txwv yog kev ntsuas duab. Txawm hais tias nyob rau hauv cov ntaub ntawv ntawm kev faib tshuab, Lambda ua haujlwm tseem cuam tshuam.

Yog li, yog tias koj tsis xav cuam tshuam nrog kev faib thiab tswj hwm cov peev txheej, sim AWS Lambda; Yog hais tias koj tsis xav tau hnyav, muaj peev xwm-intensive xam, kuj sim AWS Lambda; Yog tias koj cov cai khiav ib ntus, qhov ntawd yog, koj yuav tsum sim AWS Lambda.

Kev ruaj ntseg

Txog tam sim no tsis muaj kev tsis txaus siab txog kev nyab xeeb. Ntawm qhov tod tes, txij li ntau cov txheej txheem sab hauv thiab kev siv cov yam ntxwv ntawm tus qauv no tau muab zais los ntawm tus neeg siv ntawm AWS Lambda tswj hwm lub sijhawm ib puag ncig, qee qhov kev lees paub feem ntau ntawm huab kev nyab xeeb tsis cuam tshuam.

Zoo li feem ntau AWS cov kev pabcuam, Lambda yog muab los ntawm kev sib koom kev ruaj ntseg thiab kev ua raws cai ntawm AWS thiab cov neeg siv khoom. Lub hauv paus ntsiab lus no txo ​​qis kev ua haujlwm ntawm tus neeg siv khoom, txij li AWS ua haujlwm ntawm kev tswj hwm, tswj hwm thiab saib xyuas cov khoom siv pabcuam - los ntawm cov tswj hwm kev ua haujlwm thiab txheej txheej virtualization rau lub cev kev ruaj ntseg ntawm cov cuab yeej cuab tam.

Tshwj xeeb hais txog AWS Lambda, AWS yog lub luag haujlwm rau kev tswj hwm cov txheej txheem hauv qab, cov kev pabcuam hauv qab, kev ua haujlwm, thiab daim ntawv thov platform. Thaum tus neeg siv khoom yog lub luag haujlwm rau kev ruaj ntseg ntawm nws cov cai, khaws cia cov ntaub ntawv tsis pub lwm tus paub, tswj kev nkag mus rau nws, nrog rau cov kev pabcuam Lambda thiab cov peev txheej (Identity and Access Management, IAM), suav nrog hauv cov kev txwv ntawm cov haujlwm siv.

Daim duab hauv qab no qhia txog kev sib koom ua qauv raws li nws siv rau AWS Lambda. AWS Responsibility yog txiv kab ntxwv thiab Customer Responsibility yog xiav. Raws li koj tuaj yeem pom, AWS siv lub luag haujlwm ntau dua rau cov ntawv thov siv rau ntawm qhov kev pabcuam.

Analysis de AWS Lambda

Shared Responsibility Model Applicable to AWS Lambda

Lambda runtime

Qhov txiaj ntsig tseem ceeb ntawm Lambda yog los ntawm kev ua haujlwm ntawm koj tus kheej, kev pabcuam nws tus kheej faib cov peev txheej tsim nyog. Koj tuaj yeem zam kev nkim sij hawm thiab kev siv zog ntawm kev tswj hwm thiab tsom mus rau kev lag luam logic thiab coding.

Cov kev pabcuam Lambda tau muab faib ua ob lub dav hlau. Thawj yog lub dav hlau tswj. Raws li Wikipedia, lub dav hlau tswj yog ib feem ntawm lub network lub luag haujlwm rau kev thauj cov teeb liab kev tsheb thiab kev mus. Nws yog lub hauv paus tseem ceeb uas ua rau kev txiav txim siab thoob ntiaj teb txog kev muab, kev pabcuam, thiab faib cov haujlwm ua haujlwm. Tsis tas li ntawd, lub dav hlau tswj tau ua raws li cov kev daws teeb meem ntawm lub network topology, lub luag haujlwm rau routing thiab tswj kev khiav tsheb.

Lub dav hlau thib ob yog lub dav hlau cov ntaub ntawv. Nws, zoo li lub dav hlau tswj, muaj nws txoj haujlwm. Lub dav hlau tswj muab APIs rau kev tswj hwm kev ua haujlwm (CreateFunction, UpdateFunctionCode) thiab tswj xyuas seb Lambda sib txuas lus nrog lwm cov kev pabcuam AWS. Cov ntaub ntawv dav hlau tswj hwm Invoke API, uas ua haujlwm Lambda. Tom qab lub luag haujlwm hu ua, lub dav hlau tswj tau faib lossis xaiv qhov chaw khiav haujlwm uas twb muaj lawm uas tau npaj ua ntej rau txoj haujlwm ntawd, thiab tom qab ntawd ua tiav cov cai hauv nws.

AWS Lambda txhawb ntau hom lus programming, suav nrog Java 8, Python 3.7, Go, NodeJS 8, .NET Core 2, thiab lwm yam, los ntawm lawv qhov chaw khiav haujlwm. AWS tsis tu ncua hloov kho lawv, faib kev ruaj ntseg thaj ua rau thaj, thiab ua lwm yam kev saib xyuas ntawm cov cheeb tsam no. Lambda tso cai rau koj siv lwm yam lus ib yam nkaus, yog tias koj siv lub sijhawm ua haujlwm tsim nyog koj tus kheej. Thiab tom qab ntawd koj yuav tsum tau saib xyuas nws cov kev saib xyuas, suav nrog kev saib xyuas nws txoj kev nyab xeeb.

Nws ua haujlwm li cas thiab qhov kev pabcuam yuav ua haujlwm li cas?

Txhua qhov haujlwm ua haujlwm nyob rau hauv ib lossis ntau qhov kev mob siab rau ib puag ncig, uas tsuas yog muaj rau lub neej ntawm qhov haujlwm ntawd thiab raug rhuav tshem. Txhua qhov chaw ua rau tsuas yog ib qho hu rau ib lub sijhawm, tab sis nws rov siv dua yog tias muaj ntau qhov kev hu xov tooj rau tib lub luag haujlwm. Txhua lub sijhawm ua haujlwm ib puag ncig khiav ntawm cov tshuab virtual nrog kho vajtse virtualization - hu ua microVMs. Txhua microVM raug xa mus rau ib tus account AWS tshwj xeeb thiab tuaj yeem siv rov qab los ntawm ib puag ncig los ua haujlwm sib txawv hauv tus lej ntawd. MicroVMs tau ntim rau hauv lub tsev thaiv ntawm Lambda Worker hardware platform, uas yog tus tswv thiab ua haujlwm los ntawm AWS. Tib lub sijhawm siv tsis tuaj yeem siv los ntawm cov haujlwm sib txawv, tsis yog microVMs tshwj xeeb rau cov nyiaj AWS sib txawv.

Analysis de AWS Lambda

AWS Lambda Isolation Model

Kev rho tawm ntawm lub sijhawm khiav ib puag ncig yog siv los ntawm ntau lub tshuab. Nyob rau theem sab saum toj ntawm txhua qhov chaw muaj cais cov ntawv luam ntawm cov khoom hauv qab no:

  • Function code
  • Txhua txheej Lambda xaiv rau kev ua haujlwm
  • Kev ua haujlwm ua haujlwm ib puag ncig
  • Tsawg tus neeg siv qhov chaw raws li Amazon Linux

Cov txheej txheem hauv qab no yog siv los cais cov kev ua haujlwm sib txawv:

  • cgroups - txwv kev nkag mus rau CPU, nco, cia thiab network cov peev txheej rau txhua qhov chaw khiav haujlwm;
  • namespaces - pab pawg txheej txheem IDs, tus neeg siv IDs, network interfaces thiab lwm yam kev pab cuam tswj hwm los ntawm Linux kernel. Txhua lub sijhawm khiav hauv nws tus kheej lub npe;
  • seccomp-bpf - txwv tsis pub hu xov tooj tuaj yeem siv tau hauv lub sijhawm ua haujlwm;
  • iptables thiab routing tables - cais ntawm kev ua haujlwm ib puag ncig los ntawm ib leeg;
  • chroot - muab kev txwv tsis pub nkag mus rau cov ntaub ntawv hauv qab.

Ua ke nrog AWS cov cuab yeej cais tawm, cov txheej txheem no ua kom ntseeg tau tias kev sib cais ua haujlwm tau zoo. Ib puag ncig kev sib cais ntawm txoj kev no tsis tuaj yeem nkag mus lossis hloov kho cov ntaub ntawv los ntawm lwm qhov chaw.

Txawm hais tias ntau lub sijhawm ua haujlwm ntawm tib tus account AWS tuaj yeem khiav ntawm ib qho microVM, tsis muaj qhov xwm txheej tuaj yeem sib koom ntawm AWS sib txawv. AWS Lambda tsuas yog siv ob lub tswv yim los cais microVMs: EC2 piv txwv thiab Firecracker. Kev cais tus qhua hauv Lambda raws li EC2 piv txwv tau nyob ib puag ncig txij li xyoo 2015. Firecracker yog qhov qhib tshiab hypervisor tshwj xeeb tsim los ntawm AWS rau serverless workloads thiab qhia hauv 2018. Cov cuab yeej siv lub cev ua haujlwm microVMs sib koom ntawm cov haujlwm ua haujlwm thoob plaws cov nyiaj sib txawv.

Txuag ib puag ncig thiab lub xeev txheej txheem

Txawm hais tias Lambda runtimes yog qhov tshwj xeeb rau cov haujlwm sib txawv, lawv tuaj yeem hu rau tib lub luag haujlwm ntau zaus, txhais tau tias lub sijhawm khiav tuaj yeem muaj sia nyob rau ob peb teev ua ntej raug puas tsuaj.

Txhua Lambda runtime kuj muaj cov ntaub ntawv sau tau siv tau los ntawm /tmp directory. Nws cov ntsiab lus tsis tuaj yeem nkag los ntawm lwm lub sijhawm. Raws li cov txheej txheem hauv lub xeev muaj kev txhawj xeeb, cov ntaub ntawv sau rau /tmp muaj nyob rau tag nrho lub neej voj voog ntawm lub sijhawm ua haujlwm. Qhov no tso cai rau cov txiaj ntsig ntawm ntau qhov kev hu yuav raug sau, uas yog tshwj xeeb tshaj yog muaj txiaj ntsig zoo rau kev ua haujlwm kim xws li thauj cov qauv kev kawm tshuab.

Hu rau kev hloov ntaub ntawv

Invoke API tuaj yeem siv tau hauv ob hom: hom kev tshwm sim thiab hom kev thov- teb. Hauv hom kev tshwm sim, hu tau ntxiv rau ib kab rau kev ua tiav tom qab. Hauv hom kev thov teb, qhov ua haujlwm tau hu ua tam sim nrog cov nyiaj them poob haujlwm, tom qab ntawd cov lus teb rov qab. Nyob rau hauv ob qho tib si, txoj haujlwm khiav hauv ib puag ncig Lambda, tab sis nrog cov kev them nyiaj sib txawv.

Thaum lub sij hawm thov-teb hu, lub payload ntws los ntawm kev thov ua API (API Caller), xws li AWS API Gateway lossis AWS SDK, mus rau lub load balancer, thiab tom qab ntawd mus rau Lambda call service (Invoke Service). Lub tom kawg txiav txim siab qhov tsim nyog ib puag ncig rau kev ua tiav cov haujlwm thiab dhau lub payload muaj los ua kom tiav kev hu. Lub load balancer tau txais TLS-tiv thaiv tsheb khiav hauv Is Taws Nem. Tsheb thauj mus los hauv Lambda qhov kev pabcuam - tom qab lub load balancer - dhau los ntawm VPC sab hauv hauv ib cheeb tsam AWS.

Analysis de AWS Lambda

AWS Lambda Call Processing Model: Request-Response Mode

Kev hu xov tooj tuaj yeem ua tam sim lossis ntxiv rau hauv kab. Qee qhov xwm txheej, cov kab yog siv los ntawm Amazon SQS (Amazon Simple Queue Service), uas hla kev hu mus rau Lambda hu ua kev pabcuam los ntawm cov txheej txheem sau npe sab hauv. Txoj kev sib kis tau muaj kev tiv thaiv los ntawm TLS, thiab tsis muaj kev encryption ntxiv ntawm cov ntaub ntawv khaws cia hauv Amazon SQS.

Kev hu xov tooj tsis rov qab teb - Tus Neeg Ua Haujlwm Lambda tsuas yog tsis quav ntsej cov lus teb. Kev hu xov tooj los ntawm Amazon S3, Amazon SNS, CloudWatch, thiab lwm qhov chaw tau ua tiav los ntawm Lambda hauv hom kev tshwm sim. Kev hu xov tooj los ntawm Amazon Kinesis thiab DynamoDB kwj, SQS queues, Application Load Balancer, thiab API Gateway hu tau ua tiav hauv qhov kev thov teb.

Saib xyuas

Koj tuaj yeem saib xyuas thiab txheeb xyuas cov haujlwm Lambda siv ntau yam ntawm AWS mechanisms thiab cov kev pabcuam, suav nrog cov hauv qab no.

amazoncloudwatch
Sau ntau yam txheeb cais xws li tus naj npawb ntawm kev thov, lub sijhawm thov, thiab tus naj npawb ntawm kev thov ua tsis tiav.

Amazon CloudTrail
Tso cai rau koj nkag mus, tsis tu ncua saib xyuas, thiab tswj hwm cov ntaub ntawv kev ua ub no uas cuam tshuam nrog koj cov txheej txheem AWS. Koj yuav muaj keeb kwm ua tiav ntawm kev ua tiav siv AWS Management Console, AWS SDK, cov cuab yeej kab hais kom ua, thiab lwm yam kev pabcuam AWS.

AWS X-Ray
Muab kev pom ua tiav rau txhua theem ntawm kev thov ua tiav hauv koj daim ntawv thov raws li daim duab qhia ntawm nws cov khoom siv sab hauv. Tso cai rau koj los tshuaj xyuas cov ntawv thov thaum lub sijhawm txhim kho thiab hauv qhov chaw tsim khoom.

AWS Config
Koj yuav muaj peev xwm taug qab cov kev hloov pauv rau Lambda muaj nuj nqi configuration (xws li kev tshem tawm) thiab runtimes, tags, handler names, code size, memory allocation, timeout settings and concurrency settings, as well as Lambda IAM execution role, subnetting, and security group bindings .

xaus

AWS Lambda muab cov cuab yeej muaj zog rau kev tsim kom muaj kev ruaj ntseg thiab ua kom muaj peev xwm. Ntau qhov kev nyab xeeb thiab kev ua raws cai hauv AWS Lambda yog tib yam li hauv lwm cov kev pabcuam AWS, txawm tias muaj kev zam. Raws li lub Peb Hlis 2019, Lambda tau ua raws li SOC 1, SOC 2, SOC 3, PCI DSS, Health Insurance Portability thiab Accountability Act (HIPAA) ua raws, thiab lwm yam kev cai. Yog li, thaum koj xav txog kev siv koj daim ntawv thov tom ntej, xav txog qhov kev pabcuam AWS Lambda - nws yuav yog qhov zoo tshaj plaws haum rau koj txoj haujlwm.

Tau qhov twg los: www.hab.com

Ntxiv ib saib