Детаљна анализа АВС Ламбда

Превод чланка је припремљен посебно за студенте курса „Цлоуд услуге“. Заинтересовани сте за развој у овом правцу? Погледајте мајсторску класу Егора Зуева (ТеамЛеад на ИнБит-у) „АВС ЕЦ2 услуга“ и придружите се следећој групи курса: почиње 26. септембра.

Детаљна анализа АВС Ламбда

Све више људи прелази на АВС Ламбда ради скалабилности, перформанси, уштеде и могућности да се обрађују милиони или чак трилиони захтева месечно. Да бисте то урадили, не морате да управљате инфраструктуром на којој сервис ради. А аутоматско скалирање вам омогућава да послужите хиљаде истовремених захтева у секунди. Мислим да се АВС Ламбда с правом може назвати једним од најпопуларнијих АВС сервиса.

АВС Ламбда

АВС Ламбда је рачунарска услуга вођена догађајима без сервера која вам омогућава да покренете код без обезбеђивања или управљања серверима и проширите друге АВС услуге користећи прилагођену логику. Ламбда аутоматски одговара на различите догађаје (који се називају окидачи), као што су ХТТП захтеви преко Амазон АПИ Гатеваи-а, промене података у Амазон С3 буцкетс или Амазон ДинамоДБ табеле; или можете да покренете свој код кроз АПИ позиве користећи АВС СДК и прелазе стања у АВС Степ Фунцтионс.

Ламбда покреће код на високо доступној рачунарској инфраструктури и у потпуности је одговоран за администрацију основне платформе, укључујући одржавање сервера и оперативног система, обезбеђивање ресурса, аутоматско скалирање, праћење кода и евидентирање. То јест, само треба да отпремите свој код и конфигуришете како и када треба да се изврши. Заузврат, услуга ће се побринути за њено покретање и обезбедити високу доступност ваше апликације.

Када прећи на Ламбда?

АВС Ламбда је згодна рачунарска платформа која је погодна за различите случајеве коришћења, све док услуга подржава језик и време извршавања вашег кода. Ако желите да се усредсредите на свој код и пословну логику док екстернализујете одржавање сервера, обезбеђивање и скалирање по разумној цени, АВС Ламбда је дефинитивно прави пут.

Ламбда је идеална за креирање програмских интерфејса, а када се користи у комбинацији са АПИ Гатеваи-ом, можете значајно смањити трошкове и брже доћи на тржиште. Постоје различити начини коришћења Ламбда функција и опција за организовање архитектуре без сервера - свако може да изабере нешто погодно на основу свог циља.

Ламбда вам омогућава да обављате широк спектар задатака. Тако, захваљујући подршци за ЦлоудВатцх, можете креирати одложене задатке и аутоматизовати појединачне процесе. Нема ограничења у погледу природе и интензитета коришћења услуге (узимају се у обзир потрошња меморије и време), и ништа вас не спречава да систематски радите на пуноправном микросервису заснованом на Ламбди.

Овде можете креирати радње оријентисане на услуге које се не покрећу непрекидно. Типичан пример је скалирање слике. Чак иу случају дистрибуираних система, Ламбда функције остају релевантне.

Дакле, ако не желите да се бавите додељивањем и управљањем рачунарским ресурсима, испробајте АВС Ламбда; ако вам нису потребне тешке прорачуне које захтевају велике ресурсе, испробајте и АВС Ламбда; ако се ваш код повремено покреће, то је тачно, требало би да испробате АВС Ламбда.

безбедност

За сада нема притужби на безбедност. С друге стране, пошто су многи интерни процеси и карактеристике имплементације овог модела скривени од корисника АВС Ламбда окружења за извођење, нека општеприхваћена правила безбедности у облаку постају ирелевантна.

Као и већина АВС услуга, Ламбда се обезбеђује на основу заједничке безбедности и усклађености између АВС-а и корисника. Овај принцип смањује оперативни терет за клијента, пошто АВС преузима задатке одржавања, администрирања и надгледања компоненти услуга – од оперативног система домаћина и слоја виртуелизације до физичке безбедности инфраструктурних средстава.

Конкретно говорећи о АВС Ламбда, АВС је одговоран за управљање основном инфраструктуром, повезаним основним услугама, оперативним системом и платформом апликација. Док је клијент одговоран за безбедност свог кода, чување поверљивих података, контролу приступа њима, као и Ламбда сервису и ресурсима (Идентити анд Аццесс Манагемент, ИАМ), укључујући и у границама функција које се користе.

Дијаграм испод приказује модел подељене одговорности који се примењује на АВС Ламбда. АВС одговорност је наранџаста, а одговорност корисника плава. Као што видите, АВС преузима већу одговорност за апликације које се примењују на услузи.

Детаљна анализа АВС Ламбда

Модел заједничке одговорности применљив на АВС Ламбда

Ламбда рунтиме

Главна предност Ламбде је у томе што обављањем функције у ваше име, сама услуга додељује потребне ресурсе. Можете избећи губљење времена и труда на администрацију система и фокусирати се на пословну логику и кодирање.

Ламбда сервис је подељен у две равни. Први је контролни авион. Према Википедији, контролни авион је део мреже одговоран за транспорт сигналног саобраћаја и рутирање. То је примарна компонента која доноси глобалне одлуке о обезбеђивању, сервисирању и дистрибуцији радног оптерећења. Поред тога, контролна раван делује као мрежна топологија добављача решења, одговорна за рутирање и управљање саобраћајем.

Друга раван је раван података. Он, као и контролни авион, има своје задатке. Контролна раван обезбеђује АПИ-је за управљање функцијама (ЦреатеФунцтион, УпдатеФунцтионЦоде) и контролише како Ламбда комуницира са другим АВС услугама. Раван података контролише Инвоке АПИ, који покреће Ламбда функције. Након што се функција позове, контролна раван додељује или бира постојеће окружење за извршавање које је унапред припремљено за ту функцију, а затим извршава код у њему.

АВС Ламбда подржава различите програмске језике, укључујући Јава 8, Питхон 3.7, Го, НодеЈС 8, .НЕТ Цоре 2 и друге, преко њихових одговарајућих окружења за извршавање. АВС их редовно ажурира, дистрибуира безбедносне закрпе и обавља друге активности одржавања у овим окружењима. Ламбда вам омогућава да користите и друге језике, под условом да сами имплементирате одговарајуће време извршавања. А онда ћете морати да водите рачуна о његовом одржавању, укључујући праћење његове безбедности.

Како све то функционише и како ће служба обављати ваше функције?

Свака функција ради у једном или више наменских окружења, која постоје само током живота те функције, а затим се уништавају. Свако окружење упућује само један позив у исто време, али се поново користи ако постоји више серијских позива исте функције. Сва окружења која се извршавају раде на виртуелним машинама са хардверском виртуелизацијом - такозваним микроВМ-овима. Сваки мицроВМ је додељен одређеном АВС налогу и окружења га могу поново користити за обављање различитих функција у оквиру тог налога. МицроВМ-ови су упаковани у саставне блокове хардверске платформе Ламбда Воркер, која је у власништву и којом управља АВС. Различите функције не могу користити исто време извођења, нити су мицроВМ јединствени за различите АВС налоге.

Детаљна анализа АВС Ламбда

АВС Ламбда модел изолације

Изолација рунтиме окружења се спроводи коришћењем неколико механизама. На највишем нивоу сваког окружења постоје засебне копије следећих компоненти:

  • Код функције
  • Било који Ламбда слој изабран за функцију
  • Окружење за извршавање функције
  • Минимални кориснички простор заснован на Амазон Линук-у

Следећи механизми се користе за изоловање различитих окружења извршавања:

  • цгроупс - ограничавају приступ ЦПУ-у, меморији, складишту и мрежним ресурсима за свако рунтиме окружење;
  • простори имена – груписање ИД-ова процеса, корисничких ИД-ова, мрежних интерфејса и других ресурса којима управља Линук кернел. Свако време извођења ради у сопственом именском простору;
  • сеццомп-бпф - ограничава системске позиве који се могу користити у рунтиме-у;
  • иптаблес и табеле рутирања - изолација извршних окружења једно од другог;
  • цхроот - пружа ограничен приступ основном систему датотека.

У комбинацији са АВС власничким технологијама изолације, ови механизми обезбеђују поуздано одвајање времена рада. Окружења изолована на овај начин не могу приступити подацима из других окружења нити их мењати.

Иако вишеструко време извршавања истог АВС налога може да ради на једном мицроВМ-у, ни под којим околностима се микроВМ-ови не могу делити између различитих АВС налога. АВС Ламбда користи само два механизма за изолацију мицроВМ-а: ЕЦ2 инстанце и Фирецрацкер. Изолација гостију у Ламбди заснована на ЕЦ2 инстанцама постоји од 2015. године. Фирецрацкер је нови хипервизор отвореног кода који је посебно дизајнирао АВС за радна оптерећења без сервера и представљен 2018. Физички хардвер који покреће мицроВМ се дели између радних оптерећења на различитим налозима.

Чување окружења и стања процеса

Иако су Ламбда времена извођења јединствена за различите функције, она могу позвати исту функцију више пута, што значи да време извођења може преживети неколико сати пре него што буде уништено.

Свако Ламбда рунтиме такође има систем датотека на који се може писати, а доступан је преко /тмп директоријума. Његовом садржају се не може приступити из других рунтимеа. Што се тиче постојаности стања процеса, датотеке записане у /тмп постоје током читавог животног циклуса окружења за извршавање. Ово омогућава да се акумулирају резултати вишеструких позива, што је посебно корисно за скупе операције као што је учитавање модела машинског учења.

Пренос података позива

Инвоке АПИ се може користити у два режима: режим догађаја и режим захтев-одговор. У режиму догађаја, позив се додаје у ред за касније извршење. У режиму захтев-одговор, функција се тренутно позива са датим корисним оптерећењем, након чега се враћа одговор. У оба случаја, функција ради у Ламбда окружењу, али са различитим путањама корисног оптерећења.

Током позива захтев-одговор, корисни терет тече од АПИ-ја за обраду захтева (АПИ Цаллер), као што је АВС АПИ Гатеваи или АВС СДК, до балансера оптерећења, а затим до услуге Ламбда позива (Инвоке Сервице). Потоњи одређује одговарајуће окружење за извршавање функције и тамо прослеђује корисни терет да би завршио позив. Балансатор оптерећења прима саобраћај заштићен ТЛС-ом преко Интернета. Саобраћај унутар Ламбда услуге—након балансера оптерећења—пролази кроз интерни ВПЦ у одређеном АВС региону.

Детаљна анализа АВС Ламбда

АВС Ламбда модел обраде позива: Режим Рекуест-Респонсе

Позиви догађаја се могу упутити одмах или додати у ред чекања. У неким случајевима, ред се имплементира помоћу Амазон СКС (Амазон Симпле Куеуе Сервице), који прослеђује позиве услузи Ламбда испуњења позива кроз интерни процес анкетирања. Саобраћај који се преноси заштићен је ТЛС-ом и не постоји додатна енкрипција података ускладиштених у Амазон СКС.

Позиви догађаја не враћају одговоре — Ламбда Воркер једноставно игнорише све информације о одговору. Позиве засноване на догађајима из Амазон С3, Амазон СНС, ЦлоудВатцх и других извора Ламбда обрађује у режиму догађаја. Позиви из Амазон Кинесис и ДинамоДБ токова, СКС редова, апликације за балансирање оптерећења и позиви АПИ мрежног пролаза се обрађују на начин захтев-одговор.

Праћење

Можете надгледати и ревидирати Ламбда функције користећи различите АВС механизме и услуге, укључујући следеће.

Амазон ЦлоудВатцх
Прикупља различите статистичке податке као што су број захтева, трајање захтева и број захтева који нису успели.

Амазон ЦлоудТраил
Омогућава вам да евидентирате, континуирано надгледате и одржавате информације о активностима налога повезане са вашом АВС инфраструктуром. Имаћете комплетну историју радњи које се обављају помоћу АВС конзоле за управљање, АВС СДК-а, алата командне линије и других АВС услуга.

АВС Кс-Раи
Пружа потпуну видљивост у свим фазама обраде захтева у вашој апликацији на основу мапе њених унутрашњих компоненти. Омогућава вам да анализирате апликације током развоја иу производном окружењу.

АВС Цонфиг
Моћи ћете да пратите промене у конфигурацији Ламбда функције (укључујући брисање) и времена извођења, ознака, имена руковаоца, величине кода, доделе меморије, подешавања временског ограничења и подешавања паралелности, као и Ламбда ИАМ извршне улоге, подмреже и везивања безбедносних група .

Закључак

АВС Ламбда нуди моћан скуп алата за изградњу сигурних и скалабилних апликација. Многе праксе безбедности и усклађености у АВС Ламбда су исте као у другим АВС услугама, иако постоје изузеци. Од марта 2019., Ламбда је у складу са СОЦ 1, СОЦ 2, СОЦ 3, ПЦИ ДСС, Законом о преносивости и одговорности здравственог осигурања (ХИПАА) и другим прописима. Дакле, када размишљате о имплементацији своје следеће апликације, размислите о АВС Ламбда услузи – она може бити најбоља за ваш задатак.

Извор: ввв.хабр.цом

Додај коментар