Вельмі важна разумець, што сапраўды мае на ўвазе бессервернае выкарыстанне, таму што гэта не значыць, што сервера няма.
На самай справе, як распрацоўшчык, вы не хвалюеце сервер у фонавым рэжыме. Паколькі код, які распрацоўвае распрацоўшчык, павінен дзесьці працаваць, у фонавым рэжыме заўсёды працуе сервер.
Адрозненне ў тым, што калі вы распрацоўшчык, вам не трэба турбавацца аб стварэнні, абслугоўванні або разгортванні сервера або напісанні кода, звязанага з серверам.
Вы больш не нясеце адказнасці ні за што з гэтых рэчаў, таму вам не трэба пра іх турбавацца.
Вы павінны звярнуць увагу на распрацоўку кода як распрацоўшчык, а не на інфраструктуру.
Бессерверныя рамкі
Метад распрацоўкі і разгортвання воблачных прыкладанняў - бессерверны. Воблачная інфраструктура падтрымліваецца пастаўшчыком воблака, а не распрацоўшчыкамі.
Яны проста абавязаны заплаціць суму на аснове выкарыстання.
Бессерверная структура - гэта платформа, якая дазваляе вам ствараць сэрвісныя прыкладанні - прыкладанні, якія надзвычай маштабуюцца самі па сабе і пры гэтым каштуюць вам усяго капейкі - і цяпер ён уключае інструменты маніторынгу, тэсціравання і бяспекі, якія дапамагаюць вам кіраваць такімі праграмамі.
Давайце больш падрабязна разгледзім розныя тыпы бессерверных фрэймворкаў.
1. Без сервера
Вы можаце падумаць, што той, каму пашанцавала замацаваць даменнае імя Serverless.com проста зарабляе на іх удачы, але я павінен вас запэўніць, што гэта не так.
Самая вядомая бессерверная структура - гэта Serverless Framework, якая мае больш за 43,000 XNUMX зорак на GitHub.
Самая папулярная бессерверная структура - Serverless, якая першапачаткова была створана, каб дапамагчы распрацоўшчыкам ствараць праграмы для AWS Lambda.
З Lambda і іншымі платформамі FaaS гэта дазваляе хутка распрацоўваць, разгортваць і кіраваць бессервернымі праграмамі. У дадатак да Kubeless і Apache OpenWhisk ён падтрымлівае функцыі Azure, воблачныя функцыі Google і інш.
Інфраструктура, неабходная для дадзеных функцый і падзей, аўтаматычна ствараецца бессерверным фрэймворкам.
Такім чынам, вы можаце ствараць складаныя, кіраваныя падзеямі праграмы або мікрасэрвісы, якія будуць маштабавацца ў залежнасці ад попыту.
Акрамя таго, паколькі ён не залежыць ад пастаўшчыка, вы можаце аб'ядноўваць і разгортваць прыкладанні ў розных воблаках, уключаючы Google Cloud, Azure, AWS і г.д.
Акрамя таго, вы можаце пашырыць варыянты яго выкарыстання, змяніўшы функцыянальнасць фрэймворка з дапамогай убудоў.
Для распрацоўкі варыянтаў выкарыстання, якія ў цяперашні час не разглядаюцца, Serverless прапануе шырокую экасістэму плагінаў.
2. AWS Чарлі
Вы шукаеце структуру Python для стварэння бессерверных прыкладанняў?
AWS Chalice - гэта Python бессерверная платформа распрацоўкі прыкладанняў гэта праект для энтузіястаў Python.
Ён прапануе мікрафреймворк, які дазваляе хуткую распрацоўку і разгортванне прыкладанняў з выкарыстаннем AWS Lambda і API Gateway.
Chalice аўтаматычна наладжвае адпаведныя рэсурсы, дазваляючы вам хутка запускаць і разгортваць бессерверныя мікрасэрвісы і вэб-прыкладання.
Акрамя таго, REST API можна хутка разгарнуць у AWS з дапамогай Chalice CLI. Акрамя таго, ствараць канвееры CI/CD проста, паколькі Chalice аўтаматычна стварае канвееры разгортвання з дапамогай AWS CodeBuild і CodePipeline.
Напрыклад, CyberArk стварыў бессерверныя мікрасэрвісы з выкарыстаннем Chalice і большай інфраструктуры з AWS CDK. Чаліца спрасціла пераход распрацоўшчыкаў ад лакальнай да воблачнай архітэктуры.
Інтэграцыя Amazon API Gateway, Amazon S3, Amazon SNS, Amazon SQS і іншых сэрвісаў AWS паляпшае API.
Chalice арыентаваны на Python, таму варыянты выкарыстання могуць быць абмежаваныя службамі, створанымі на Python.
3. Claudia.js
Ён служыць хутчэй інструментам разгортвання, чым асновай.
Гэта інструмент з адкрытым зыходным кодам, які дазваляе праграмістам хутка і лёгка разгортваць прыкладанні Node у AWS Lambda і API Gateway (не ведаючы пра самі серверы).
Ён аўтаматычна наладжвае асяроддзе JavaScript і аўтаматызуе працу па канфігурацыі і разгортванні.
Акрамя таго, ён можа выкарыстоўвацца без праблем з хостынгам, маштабаванасцю і г.д. у якасці кліенцкага кода або бессерверных функцый.
У выніку распрацоўшчыкі могуць хутка і без клопатаў ствараць і разгортваць праграмы, якія кіруюцца падзеямі, і вэб-API з аўтаматычным маштабаваннем.
Яго бібліятэкі пашырэнняў дазваляюць карыстальнікам лёгка ствараць чат-боты і канчатковыя кропкі вэб-API. Гэта цудоўны спосаб адначасовага кіравання многімі версіямі вашага сайта без шкоды для зручнасці і задавальнення, якіх вы чакалі ад Клаўдзіі.
Ён уключае просты інструмент кіравання версіямі, які дазваляе вам працаваць над мноствам версій адначасова, не клапоцячыся аб канфліктах і не губляючыся ў моры кода.
4. Запа
Zappa, іншая структура Python, простая ў выкарыстанні і багатая функцыямі. Гэта дазваляе распрацоўваць і разгортваць кіраваныя падзеямі бессерверныя прыкладанні на аснове Python для AWS Lambda бесперашкодным спосабам.
Zappa таксама з'яўляецца папулярным фрэймворкам для распрацоўкі праграм і праектаў на аснове WSGI.
Ён сумяшчальны практычна з любым фрэймворкам, сумяшчальным з WSGI, уключаючы Pyramid, Bottle і нават Django.
Акрамя таго, пры выкарыстанні ў спалучэнні з Flask Zappa ідэальна падыходзіць для бессервернага хостынгу складаных вэб-прыкладання, апрацоўка малюнкаў, апрацоўка тэксту і рэзкасць лікаў.
Zappa наладжвае параметры разгортвання аўтаматычна. Разгарніце прыкладанне на стадыі вытворчасці з дапамогай аднаго каманднага радка, калі налады былі адпаведным чынам вызначаны.
Калі вам патрэбны шаблон API Gateway CloudFormation, выкарыстоўвайце каманду template.
Выкарыстоўвайце сертыфікаты SSL, сертыфікаты дыспетчара сертыфікатаў AWS і сертыфікаты Let's Encrypt для разгортвання Zappa ў карыстальніцкіх субдаменах і даменных імёнах.
Уключыце бяспечныя канчатковыя кропкі шлюза API, уключаючы ключ API, палітыку IAM, аўтарызатары Lambda, аўтарызатары пула карыстальнікаў Cognito і палітыку рэсурсаў.
Акрамя таго, з дапамогай файла S3 вы можаце змяняць зменныя асяроддзя для лакальнага асяроддзя, аддаленага асяроддзя AWS і аддаленага асяроддзя.
5. Архітэктар
Architect - гэта моцная структура для стварэння хуткіх, сучасных і маштабуемых воблачных праграм.
Гэта складаная і ўсёабдымная структура. Гэта дазваляе праграмістам хутка ствараць бессерверную архітэктуру з выкарыстаннем мінімальнага кода, адсутнасці фармальнасцей і сціслай канфігурацыі.
Такім чынам, яны могуць засяродзіцца выключна на бізнес-логіцы. Акрамя таго, вы плаціце толькі за тыя паслугі, якія выкарыстоўваюцца, якія запытваюцца або памяншаюцца да нуля.
Architect прызначаны для стварэння вэб-прыкладанняў з падтрымкай дынамічнай базы дадзеных. У тэхнічным сэнсе гэта ўдасканаленая абалонка для AWS SAM.
Такім чынам, усё, што можна зрабіць з дапамогай SAM, таксама можна зрабіць з дапамогай Architect.
Аднак фрэймворк выдатна спраўляецца са стварэннем вэб-прыкладанняў. Каб зрабіць разгортванне простым, архітэктар выкарыстоўвае такія папулярныя тэхналогіі, як Google Cloud Build і ўмовы G Init.
Без чалавечай працы архітэктар выкарыстоўвае файл app.arc для стварэння кода, аўтаматычна сканфігураванага і прадастаўленага ў адпаведнасці з параметрамі аўтарызацыі карыстальніка.
Проста запускаючы іх скрыпты, дапаможнікі Распрацоўшчыкі Javascript у напісанні, адладцы і тэсціраванні іх бізнес-логікі.
6. Сігма
Новая воблачная IDE пад назвай Sigma заснавана на канцэпцыі бессервернай распрацоўкі.
Гэта поўнафункцыянальная IDE, якая дазваляе ствараць код і публікаваць яго як жывое прыкладанне ў рэжыме рэальнага часу. Гэта не проста просты тэкставы рэдактар з некалькімі мудрагелістымі функцыямі.
Sigma IDE можа мець зносіны наперад і назад з бессервернай (FaaS) платформай па вашаму выбару, але толькі пры наяўнасці файла канфігурацыі.
Як следства, вы можаце пазбегнуць выканання стомнай працы на працягу незлічоных гадзін. Sigma па сваёй прыродзе бессерверная, у адрозненне ад іншых праграм, якія спрабуюць дасягнуць параўнальнай мэты.
За некаторымі выключэннямі, IDE можна выкарыстоўваць без бэкэнд-службы, працуючы выключна ў браўзеры. У прыватнасці, бэкэнд неабходны для збору аналітычных даных і аўтэнтыфікацыі карыстальнікаў.
Прыкладанні разгортваюцца паступова і падключаюцца да многіх іншых сэрвісаў AWS, у тым ліку DynamoDB, AWS Lambda і AWS API.
NodeJS добра падтрымліваецца Sigma IDE, паколькі дазваляе выкарыстоўваць прыкладанні ў рэжыме рэальнага часу. Важна сачыць за гэтым і паспрабаваць.
7. Бруі
Вы шануеце Рубі?
Тады вы можаце ацаніць Jets, бессерверную Ruby Framework для распрацоўкі і разгортвання мікрасэрвісаў. Вы можаце ствараць структуры API і дастаўляць іх у Lambda з дапамогай поўнага набору інструментаў фрэймворка.
Jets таксама можна выкарыстоўваць для стварэння аўтаномных функцый, якія злучаюць некалькі сэрвісаў і рэсурсаў AWS.
Ваш бягучы код пераўтворыцца ў функцыі для Lambda і іншых сэрвісаў AWS праз фрэймворк Jets.
Гэта дазваляе марнаваць больш часу на стварэнне функцыянальнага кода, прапускаючы такія працэсы, як разгортванне і падрыхтоўка.
Код Ruby можа быць напісаны распрацоўшчыкамі і канвертаваны Jets у функцыі Lambda і рэсурсы Amazon API Gateway.
У выніку Jets дазваляе ствараць разнастайныя шаблоны праектавання, такія як онлайн-прыкладанні API, праграмы, якія кіруюцца падзеямі, архітэктуру IoT і многае іншае.
Каб зэканоміць час, ён прызначаны для лёгкага пераўтварэння кода ў лямбда-функцыі і рэсурсы AWS.
8. Бессерверная мадэль прыкладанняў AWS
Прасцей кажучы, AWS SAM палягчае стварэнне бессерверных праграм, якія інтэгруюцца з рознымі сэрвісамі AWS.
Гэта палягчае распрацоўку, разгортванне і адладку бессерверных праграм у асяроддзі AWS, таму што гэта афіцыйная структура бессервернага разгортвання ад AWS.
З дапамогай скарочанага сінтаксісу SAM распрацоўшчыкі могуць апісваць рэсурсы ў невялікай колькасці радкоў, неабходных для AWS CloudFormation. З дапамогай AWS SAM вы можаце ствараць розныя праграмы, у тым ліку моцныя асінхронныя дзеянні, кіраваныя падзеямі.
Акрамя таго, ён уключае лямбда-функцыі на аснове малюнкаў Docker, што значна спрашчае бессерверную распрацоўку.
Выкарыстоўваючы ў якасці асновы AWS Lambda, API Gateway, табліцы DynamoDB і службы S3, структура часта выкарыстоўваецца для аўтаматызацыі разгортвання бессерверных прыкладанняў.
Прыкладанні, вызначаныя шаблонамі SAM або AWS CDK, можна ствараць, тэставаць і адладжваць лакальна з дапамогай лямбда-падобнага асяроддзя выканання SAM CLI.
Распрацоўшчыкі могуць тэставаць змены кода ў воблаку з дапамогай SAM Accelerate для воблачнай распрацоўкі, пазбаўляючы ад неабходнасці лакальнай эмуляцыі для бессерверных праграм. падключаецца да мноства розных бессерверных прадуктаў AWS.
Ён уключае мноства практычных каманд SAM CLI (напрыклад, sam init, sam logs і sam package, сярод папулярных).
9. Flogo
Flogo ідэальна падыходзіць для распрацоўкі бессерверных прыкладанняў на аснове Docker.
Гэта экасістэма з адкрытым зыходным кодам з функцыямі, якія кіруюцца падзеямі, што палягчае стварэнне сучасных бессерверных прыкладанняў, якія патрабуюць рэсурсаў.
Ён прапануе спецыялізаваную структуру для хуткага праектавання, разгортвання і кіравання праграмамі на AWS Lambda, выкарыстоўваючы толькі выявы Docker, і напісаны на мове праграмавання Golang.
Праект Flogo выкарыстоўваўся некалькімі прадпрыемствамі, у тым ліку Thingstream, Liturgical Publishing, Biogen, Cosentino і Campari Group, для падтрымкі сваіх варыянтаў выкарыстання.
CargoSmart, напрыклад, можа выкарыстоўваць штучны інтэлект для аналізу даных IoT, каб палепшыць карыстальніцкае ўражанне за кошт лепшай ацэнкі.
Ён выкарыстоўваў прастату Flogo пры інтэграцыі навучанне з дапамогай машыны (ML) мадэлі.
Ён прапануе рашэнні для розных прадпрыемстваў, якім неабходна хутка рэагаваць і хутка распрацоўваць праграмы, каб зэканоміць час.
Мова праграмавання Golang і візуальны вэб-інтэрфейс падтрымліваюцца Flogo і могуць выкарыстоўвацца для распрацоўкі і стварэння вашых праграм.
10. AWS Узмацненне
Выкарыстоўвайце фрэймворк AWS Amplify, каб лёгка ствараць маштабуемыя бессерверныя прыкладанні для вэб- і мабільных платформаў і карыстацца бязмежнай гнуткасцю.
Выкарыстоўваючы інтэлектуальныя працэсы, вы можаце наладзіць бессерверныя серверы з дадзенымі, сховішчам, аўтэнтыфікацыяй і іншым.
З меншай колькасцю радкоў кода падключыце мабільныя і вэб-праграмы да новых або існуючых сэрвісаў AWS.
Аднастаронкавыя вэб-прыкладанні, прыкладанні, якія адлюстроўваюцца на баку сервера, і вэб-старонкі стану - усе яны могуць быць размешчаны і разгорнуты ўсяго ў некалькі клікаў.
Акрамя таго, гэта спрашчае кіраванне карыстальнікамі праграмы і змесцівам. Мабільныя і вэб-распрацоўшчыкі інтэрфейсу могуць хутчэй ствараць прыкладанні з поўным стэкам на AWS і змяняць іх у любы час з дапамогай AWS Amplify.
Шматлікія вэб-фреймворкі, у тым ліку Рэагаваць, Angular, JavaScript, Vue.js, Next.js і г.д., а таксама мабільныя платформы, уключаючы iOS, Ionic, Flutter, Android і React Native, падтрымліваюцца Amplify.
заключэнне
Цяпер мы разгледзелі лепшыя бессерверныя фрэймворкі, якія вы можаце інтэграваць у сваё прыкладанне.
Гэтая тэхналогія дазваляе нам хутчэй публікаваць прыкладанні на рынку і павялічваць каштоўнасць шляхам аптымізацыі вашага прыкладання, а таксама эканоміць грошы і рэсурсы за кошт маштабавання рэсурсаў у адпаведнасці з попытам на трафік.
Найноўшая тэндэнцыя ў стварэнні і прадастаўленні нашых воблачных прыкладанняў - бессерверныя вылічэнні. У наступныя гады будзе створана яшчэ шмат зусім новых бессерверных фрэймворкаў, каб спрасціць бізнес-рашэнні, знізіць выдаткі і даць тэхналогіям некаторыя дадатковыя перавагі.
Пакінуць каментар