{"id":33935,"date":"2019-10-31T21:55:27","date_gmt":"2019-10-31T18:55:27","guid":{"rendered":"https:\/\/prohoster.info\/blog\/serverless-po-stoechkam\/"},"modified":"2019-10-31T21:55:27","modified_gmt":"2019-10-31T18:55:27","slug":"serverless-po-stoechkam","status":"publish","type":"post","link":"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/serverless-po-stoechkam","title":{"rendered":"Serverless pa plauktiem","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Serverless pa plauktiem\" src=\"\/wp-content\/uploads\/2019\/05\/cea6dc9da0a3a1b0241246cdf3eba900.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nServerless nav par fizisku serveru neesam\u012bbu. Tas nav 'n\u0101ves izn\u012bcin\u0101t\u0101js' konteineriem un ne mirk\u013ca modes tendence. Tas ir jauns pieejas veids sist\u0113mu veido\u0161anai m\u0101ko\u0146os. \u0160aj\u0101 rakst\u0101 apskat\u012bsim Serverless lietojumprogrammu arhitekt\u016bru, noskaidrosim, k\u0101da loma ir Serverless pakalpojumu sniedz\u0113jam un open-source projektiem. Beig\u0101s run\u0101sim par Serverless pielieto\u0161anas jaut\u0101jumiem.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nEs gribu uzrakst\u012bt lietojumprogrammas servera pusi (pat interneta veikalam). Tas var b\u016bt gan \u010dats, gan saturu public\u0113\u0161anas pakalpojums, gan slodzes l\u012bdzsvarot\u0101js. Katr\u0101 zi\u0146\u0101 b\u016bs daudz galvass\u0101pju: b\u016bs j\u0101prepar\u0113 infrastrukt\u016bra, j\u0101nosaka lietojuma atkar\u012bbas, j\u0101sprie\u017e par hosta oper\u0113t\u0101jsist\u0113mu. P\u0113c tam b\u016bs nepiecie\u0161ams atjaunin\u0101t nelielus komponentus, kas neietekm\u0113 p\u0101r\u0113jo monol\u012btu. Un par slodzes m\u0113rogo\u0161anu ar\u012b nedr\u012bkstam aizmirst.<\/p>\n<p>Bet ko dar\u012bt, ja pa\u0146em efem\u0113rus konteinerus, kuros nepiecie\u0161am\u0101s atkar\u012bbas jau ir iepriek\u0161 instal\u0113tas, un pa\u0161i konteineri ir izol\u0113ti viens no otra un no OS hosta? Monol\u012btu sadal\u0101m mikroservisos, katrs no kuriem var tikt atjaunin\u0101ts un m\u0113rogots neatkar\u012bgi no citiem. Ievietojot kodu \u0161\u0101d\u0101 konteiner\u0101, es var\u0113\u0161u to palaist uz jebkuras infrastrukt\u016bras. Jau lab\u0101k. <\/p>\n<p>Bet, ja negribas konfigur\u0113t konteinerus? Negribas dom\u0101t par lietojumprogrammas m\u0113rogo\u0161anu. Negribas maks\u0101t par palaistiem konteineriem, kad slodze uz pakalpojumu ir minim\u0101la. Gribas rakst\u012bt kodu. Koncentr\u0113ties uz biznesa lo\u0123iku un laist tirg\u016b produktus ar gaismas \u0101trumu. <\/p>\n<p>T\u0101das domas noveda mani pie bezserveru skait\u013co\u0161anas. Serverless \u0161aj\u0101 gad\u012bjum\u0101 noz\u012bm\u0113 <em>ne fizisku serveru neesam\u012bbu, bet galvass\u0101pju neesam\u012bbu par infrastrukt\u016bras p\u0101rvald\u012b\u0161anu.<\/em><\/p>\n<p>Ideja ir t\u0101da, ka lietojumprogrammas lo\u0123ika tiek sadal\u012bta neatkar\u012bg\u0101s funkcij\u0101s. T\u0101m ir notikumu strukt\u016bra. Katras funkcijas izpilda vienu \"mikrodarbu\". Viss, kas ir nepiecie\u0161ams izstr\u0101d\u0101t\u0101jam, ir aug\u0161upiel\u0101d\u0113t funkcijas pieg\u0101d\u0101t\u0101ja nodro\u0161in\u0101taj\u0101 m\u0101ko\u0146a konsol\u0113 un sasaist\u012bt t\u0101s ar notikumu avotiem. Kods tiks izpild\u012bts piepras\u012bjuma laik\u0101 autom\u0101tiski sagatavot\u0101 konteiner\u0101, un es maks\u0101\u0161u tikai par izpildes laiku. <\/p>\n<p>Paskat\u012bsimies, k\u0101 tagad izskat\u012bsies lietojumprogrammas izstr\u0101des process.<\/p>\n<h2>No izstr\u0101d\u0101t\u0101ja puses<\/h2>\n<p>\nIepriek\u0161 m\u0113s s\u0101k\u0101m run\u0101t par interneta veikala lietojumprogrammu. Tradicion\u0101laj\u0101 pieej\u0101 sist\u0113mas pamatlo\u0123iku veic monol\u012bta lietojumprogramma. Un serveris ar lietojumprogrammu darbojas past\u0101v\u012bgi, pat ja nav slodzes.<\/p>\n<p><strong>Lai p\u0101rietu uz serverless, m\u0113s sadal\u0101m lietojumprogrammu mikroda\u013c\u0101s.<\/strong> Katram no tiem m\u0113s rakst\u0101m savu funkciju. Funkcijas ir neatkar\u012bgas viena no otras un neuzglab\u0101 st\u0101vok\u013ca inform\u0101ciju (stateless). T\u0101s pat var b\u016bt uzrakst\u012btas da\u017e\u0101d\u0101s valod\u0101s. Ja viena no t\u0101m \u201enokrit\u012bs\u201d, lietojumprogramma kopum\u0101 netiks aptur\u0113ta. Lietojumprogrammas arhitekt\u016bra izskat\u012bsies \u0161\u0101di:<\/p>\n<p><img decoding=\"async\" alt=\"Serverless pa plauktiem\" src=\"\/wp-content\/uploads\/2019\/05\/f62c5c08bbf587766198dbb807123273.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nDal\u012b\u0161ana funkcij\u0101s Serverless atg\u0101dina darbu ar mikroservisiem. Tom\u0113r mikroserviss var izpild\u012bt vair\u0101kas uzdevumus, bet funkcijai ide\u0101li j\u0101veic viens. Iedom\u0101simies, ka uzdevums ir v\u0101k\u0161anas statistika un izsnieg\u0161ana p\u0113c lietot\u0101ja piepras\u012bjuma. Mikroservisa pieej\u0101 \u0161o uzdevumu veic viens serviss ar diviem ieejas punktiem: ierakst\u012b\u0161anai un las\u012b\u0161anai. Bezservera apr\u0113\u0137inos tie b\u016bs divi atsevi\u0161\u0137i funkcijas, kuri nav savstarp\u0113ji saist\u012bti. Izstr\u0101d\u0101t\u0101js ietaupa apr\u0113\u0137inu resursus, ja, piem\u0113ram, statistika tiek atjaunota bie\u017e\u0101k, nek\u0101 t\u0101 tiek izvad\u012bta. <\/p>\n<p>Serverless funkcij\u0101m j\u0101izpild\u0101s \u012bs\u0101 laika posm\u0101 (timeout), ko nosaka pakalpojumu sniedz\u0113js. Piem\u0113ram, AWS izpildes laiks ir 15 min\u016btes. Tas noz\u012bm\u0113, ka ilgsto\u0161as funkcijas (long-lived) b\u016bs j\u0101p\u0101rveido atbilsto\u0161i pras\u012bb\u0101m \u2014 \u0161is serverless at\u0161\u0137iras no cit\u0101m \u0161odien popul\u0101r\u0101m tehnolo\u0123ij\u0101m (konteineriem un Platform as a Service).<\/p>\n<p><strong>Katr\u0101 funkcij\u0101 pie\u0161\u0137iram notikumu.<\/strong> Notikums ir darb\u012bbas trigeris:<\/p>\n<p><strong>Notikums<\/strong><br \/>\n<strong>Darb\u012bba, ko veic funkcija<\/strong><\/p>\n<p>Kr\u0101tuv\u0113 aug\u0161upiel\u0101d\u0113ja produkta att\u0113lu<br \/>\nSaspie\u017eam att\u0113lu un aug\u0161upiel\u0101d\u0113jam katalog\u0101<\/p>\n<p>Datu b\u0101z\u0113 tika atjaunota fizisk\u0101 veikala adrese<br \/>\nIel\u0101d\u0113jam kart\u0113s jauno atra\u0161an\u0101s vietu<\/p>\n<p>Klients apmaks\u0101 preci<br \/>\nS\u0101kam maks\u0101juma apstr\u0101di<\/p>\n<p>Notikumi var b\u016bt HTTP piepras\u012bjumi, straum\u0113jo\u0161i dati, zi\u0146ojumu rindas un t\u0101 t\u0101l\u0101k. Notikumu avoti ir datu izmai\u0146as vai par\u0101d\u012b\u0161an\u0101s. Turkl\u0101t funkcijas var palaist p\u0113c taimeriem.<\/p>\n<p>Arhitekt\u016bru esam izstr\u0101d\u0101ju\u0161i, un lietojumprogramma gandr\u012bz ir k\u013cuvusi par serverless. P\u0101r\u0113jais ved uz pakalpojumu sniedz\u0113ju.<\/p>\n<h2>No pakalpojumu sniedz\u0113ja puses<\/h2>\n<p>\nParasti bezservera apr\u0113\u0137inus pied\u0101v\u0101 m\u0101ko\u0146u pakalpojumu sniedz\u0113ji. Tos sauc da\u017e\u0101di: Azure Functions, AWS Lambda, Google Cloud Functions, IBM Cloud Functions. <\/p>\n<p>Izmantosim pakalpojumu caur konsoli vai pakalpojumu sniedz\u0113ja lietot\u0101ja kontu. Funkciju kodu var aug\u0161upiel\u0101d\u0113t vien\u0101 no veidiem:<\/p>\n<ul>\n<li>uzrakst\u012bt kodu ieb\u016bv\u0113tos redaktoros caur t\u012bmek\u013ca konsoli,<\/li>\n<li>aug\u0161upiel\u0101d\u0113t arh\u012bvu ar kodu,<\/li>\n<li>str\u0101d\u0101t ar publiskiem vai priv\u0101tiem git-repozitorijiem.<\/li>\n<\/ul>\n<p>\n\u0160eit m\u0113s konfigur\u0113jam notikumus, kas aktiviz\u0113 funkciju. At\u0161\u0137ir\u012bgiem pakalpojumu sniedz\u0113jiem notikumu kopas var at\u0161\u0137irties.<\/p>\n<p><img decoding=\"async\" alt=\"Serverless pa plauktiem\" src=\"\/wp-content\/uploads\/2019\/05\/98676fa23a9911aae5758ecdb2cd9a03.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Pakalpojumu sniedz\u0113js ir izveidojis un automatiz\u0113jis funkcijas k\u0101 pakalpojuma (FaaS) sist\u0113mu sav\u0101 infrastrukt\u016br\u0101:<\/p>\n<ol>\n<li>Funkciju kods tiek glab\u0101ts pakalpojumu sniedz\u0113ja kr\u0101tuv\u0113.<\/li>\n<li>Kad notikums notiek, uz servera autom\u0101tiski tiek palaisti konteineri ar sagatavotu vid\u0113jo. Katram funkcijas piem\u0113ram ir sava izol\u0113ta konteineru.<\/li>\n<li>No kr\u0101tuves funkcija tiek nos\u016bt\u012bta uz konteineru, tiek apr\u0113\u0137in\u0101ta un sniedz rezult\u0101tu.<\/li>\n<li>Vienlaic\u012bgo notikumu skaits pieaug, l\u012bdz ar to pieaug ar\u012b konteineru skaits. Sist\u0113ma autom\u0101tiski piel\u0101gojas. Ja lietot\u0101ji neizmanto funkciju, t\u0101 paliks neakt\u012bva.<\/li>\n<li>Pakalpojumu sniedz\u0113js nosaka konteineru bezdarb\u012bbas laiku \u2014 ja \u0161aj\u0101 laik\u0101 funkcijas nepar\u0101d\u0101s konteiner\u0101, tas tiek izn\u012bcin\u0101ts.<\/li>\n<\/ol>\n<p>\nT\u0101d\u0113j\u0101di m\u0113s ieg\u016bstam serverless risin\u0101jumu \u201eno kastes\u201d. Par pakalpojumu maks\u0101sim p\u0113c pay-as-you-go mode\u013ca tikai par t\u0101m funkcij\u0101m, kuras tiek izmantotas, un tikai par to laiku, kad t\u0101s tika izmantotas.<\/p>\n<p>Lai iepaz\u012bstin\u0101tu izstr\u0101d\u0101t\u0101jus ar pakalpojumu, pakalpojumu sniedz\u0113ji pied\u0101v\u0101 l\u012bdz 12 m\u0113ne\u0161u bezmaksas izm\u0113\u0123in\u0101juma periodu, ta\u010du ierobe\u017eo kop\u0113jo apr\u0113\u0137inu laiku, piepras\u012bjumu skaitu m\u0113nes\u012b, naudas l\u012bdzek\u013cus vai pat\u0113r\u0113t\u0101s jaudas.<\/p>\n<p>Galven\u0101 priek\u0161roc\u012bba sadarbojoties ar pakalpojumu sniedz\u0113ju ir tas, ka nav j\u0101uztraucas par infrastrukt\u016bru (serveriem, virtu\u0101laj\u0101m ma\u0161\u012bn\u0101m, konteineriem). No savas puses pakalpojumu sniedz\u0113js var \u012bstenot FaaS gan ar saviem izstr\u0101d\u0101jumiem, gan ar open-source r\u012bkiem. Par to m\u0113s run\u0101sim t\u0101l\u0101k.<\/p>\n<h2>No open source puses<\/h2>\n<p>\nP\u0113d\u0113jos p\u0101ris gados open-source kopiena akt\u012bvi str\u0101d\u0101 pie serverless r\u012bkiem. Taj\u0101 skait\u0101 ieguld\u012bjumu bezservertisko platformu att\u012bst\u012bb\u0101 sniedz liel\u0101kie tirgus sp\u0113l\u0113t\u0101ji:<\/p>\n<ul>\n<li><strong>Google<\/strong> pied\u0101v\u0101 izstr\u0101d\u0101t\u0101jiem savu open-source r\u012bku \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/knative\/\">Knative<\/a><\/noindex>. T\u0101s izstr\u0101d\u0113 piedal\u012bju\u0161ies IBM, RedHat, Pivotal un SAP;<\/li>\n<li><strong>IBM<\/strong> str\u0101d\u0101ja pie serverless platformas <noindex><a rel=\"nofollow\" href=\"https:\/\/openwhisk.apache.org\/\">OpenWhisk<\/a><\/noindex>, kas v\u0113l\u0101k k\u013cuva par Apache Foundation projektu;<\/li>\n<li><strong>Microsoft<\/strong> da\u013c\u0113ji atkl\u0101ja platformas kodu <noindex><a rel=\"nofollow\" href=\"https:\/\/azure.microsoft.com\/en-us\/services\/functions\/\">Azure Functions<\/a><\/noindex>.<\/li>\n<\/ul>\n<p>\nIzstr\u0101des tiek veiktas ar\u012b virzien\u0101 uz serverless ietvariem. <noindex><a rel=\"nofollow\" href=\"https:\/\/kubeless.io\/\">Kubeless<\/a><\/noindex> un <noindex><a rel=\"nofollow\" href=\"https:\/\/fission.io\/\">Fission<\/a><\/noindex> tiek uzst\u0101d\u012bti iepriek\u0161 sagatavotos Kubernetes klasteros, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.openfaas.com\/\">OpenFaaS<\/a><\/noindex> darbojas gan ar Kubernetes, gan ar Docker Swarm. R\u0101mju darbs kalpo k\u0101 savdab\u012bgs kontrolieris \u2013 p\u0113c piepras\u012bjuma sagatavo izpildes vidi iek\u0161pus\u0113 klastera un p\u0113c tam uzs\u0101k funkciju tur.<\/p>\n<p>R\u0101mji atst\u0101j iesp\u0113ju konfigur\u0113t r\u012bku sav\u0101m vajadz\u012bb\u0101m. Piem\u0113ram, Kubeless izstr\u0101d\u0101t\u0101js var iestat\u012bt funkcijas izpildes laika ierobe\u017eojumu (noklus\u0113juma v\u0113rt\u012bba \u2013 180 sekundes). Fission, cen\u0161oties risin\u0101t aukst\u0101 starta probl\u0113mu, pied\u0101v\u0101 da\u013cu konteineru tur\u0113t vienm\u0113r aizs\u0101ktus (lai gan tas rada resursu neizmantot\u012bbu). OpenFaaS pied\u0101v\u0101 virkni trigeru, kas piem\u0113roti jebkurai gaumei: HTTP, Kafka, Redis, MQTT, Cron, AWS SQS, NATs un citi.<\/p>\n<p>Nor\u0101d\u012bjumus, k\u0101 s\u0101kt str\u0101d\u0101t, var atrast r\u0101mju ofici\u0101laj\u0101 dokument\u0101cij\u0101. Darbs ar tiem prasa nedaudz vair\u0101k prasmju nek\u0101, str\u0101d\u0101jot ar pakalpojumu sniedz\u0113ju \u2013 vismaz iesp\u0113ju palaist Kubernetes klasteri caur CLI. Maksimums \u2013 iek\u013caut darb\u0101 citus open-source r\u012bkus (piem\u0113ram, Kafka rindas p\u0101rvaldnieku).<\/p>\n<p>Neatkar\u012bgi no t\u0101, k\u0101du veidu m\u0113s izmantosim Serverless \u2013 caur pakalpojumu sniedz\u0113ju vai izmantojot open-source, m\u0113s ieg\u016bstam virkni priek\u0161roc\u012bbu un tr\u016bkumu Serverless pieej\u0101.<\/p>\n<h2>No priek\u0161roc\u012bbu un tr\u016bkumu poz\u012bcijas<\/h2>\n<p>\nServerless att\u012bsta idejas par konteineru infrastrukt\u016bru un mikroservisu pieeju, kur komand\u0101m ir iesp\u0113jams str\u0101d\u0101t daudzvalodu re\u017e\u012bm\u0101, nepiesaistoties vienai platformai. Sist\u0113mas veido\u0161ana k\u013c\u016bst vienk\u0101r\u0161\u0101ka, un k\u013c\u016bdu labo\u0161ana top viegl\u0101ka. Mikroservisu arhitekt\u016bra \u013cauj pievienot sist\u0113mai jaunu funkcionalit\u0101ti daudz \u0101tr\u0101k nek\u0101 monol\u012btaj\u0101 lietojumprogramm\u0101.<\/p>\n<p><strong>Serverless v\u0113l vair\u0101k samazina izstr\u0101des laiku,<\/strong> \u013caujot izstr\u0101d\u0101t\u0101jam koncentr\u0113ties tikai uz lietojumprogrammas biznesa lo\u0123iku un koda rakst\u012b\u0161anu. Rezult\u0101t\u0101 izstr\u0101d\u0101jumu izn\u0101k\u0161anas laiks uz tirgu sa\u012bsin\u0101s.<\/p>\n<p><strong>Mums ar\u012b ir autom\u0101tiska lieluma piel\u0101go\u0161ana slodzei,<\/strong> bet m\u0113s maks\u0101jam tikai par izmantotajiem resursiem un tikai taj\u0101 laik\u0101, kad tie tiek izmantoti.<\/p>\n<p>K\u0101 jebkurai tehnolo\u0123ijai, Serverless ir tr\u016bkumi.<\/p>\n<p><em>Piem\u0113ram, viens no \u0161iem tr\u016bkumiem var b\u016bt aukst\u0101 starta laiks (vid\u0113ji l\u012bdz 1 sekundei t\u0101diem valod\u0101m k\u0101 JavaScript, Python, Go, Java, Ruby).<\/em><\/p>\n<p>No vienas puses, re\u0101laj\u0101 dz\u012bv\u0113 aukst\u0101 starta laiks ir atkar\u012bgs no daudziem main\u012bgajiem faktoriem: valoda, kur\u0101 ir uzrakst\u012bta funkcija, bibliot\u0113ku skaits, koda apjoms, mijiedarb\u012bba ar papildu resursiem (t\u0101d\u0101m k\u0101 datu b\u0101z\u0113m vai autentifik\u0101cijas serveriem). T\u0101 k\u0101 izstr\u0101d\u0101t\u0101js kontrol\u0113 \u0161os main\u012bgos, vi\u0146\u0161 var samazin\u0101t starta laiku. Bet no otras puses, izstr\u0101d\u0101t\u0101js nevar kontrol\u0113t konteineru palai\u0161anas laiku - \u0161eit viss ir atkar\u012bgs no pakalpojumu sniedz\u0113ja.<\/p>\n<p>Aukst\u0101 starta situ\u0101cija var p\u0101rv\u0113rsties silt\u0101, kad funkcija izmanto jau iepriek\u0161 palaistu konteineru no iepriek\u0161\u0113jas notikumu. \u0160\u0101da situ\u0101cija var rasties trijos gad\u012bjumos:<\/p>\n<ul>\n<li>ja klienti bie\u017ei izmanto pakalpojumu un palielin\u0101s piepras\u012bjumu skaits p\u0113c funkcijas;<\/li>\n<li>ja pakalpojumu sniedz\u0113js, platforma vai ietvars \u013cauj tur\u0113t da\u013cu konteineru palaist visu laiku;<\/li>\n<li>ja izstr\u0101d\u0101t\u0101js iedarbina funkcijas p\u0113c taimera (piem\u0113ram, ik p\u0113c 3 min\u016bt\u0113m).<\/li>\n<\/ul>\n<p>\nDaudz\u0101m lietojumprogramm\u0101m aukst\u0101 starta jaut\u0101jums nav probl\u0113ma. \u0160eit j\u0101koncentr\u0113jas uz servisa veidu un uzdevumiem. Startup aizkave uz sekundi ne vienm\u0113r ir kritiska biznesa lietojumprogrammas gad\u012bjum\u0101, bet var b\u016bt kritiska medic\u012bnas pakalpojumos. Visticam\u0101k, \u0161aj\u0101 gad\u012bjum\u0101 serverless pieeja vairs neb\u016bs piem\u0113rota.<\/p>\n<p><em>N\u0101kamais tr\u016bkums, ko min Serverless, ir \u012bss funkcijas m\u016b\u017ea laiks (timeout, kur\u0101 funkcijai j\u0101izpild\u0101s).<\/em><\/p>\n<p>Ta\u010du, ja paredz\u0113ts str\u0101d\u0101t ar ilgsto\u0161\u0101m uzdevumiem, var izmantot hibr\u012bdu arhitekt\u016bru - kombin\u0113jot Serverless ar citu tehnolo\u0123iju.<\/p>\n<p><em>Ne visas sist\u0113mas sp\u0113s darboties saska\u0146\u0101 ar Serverless sh\u0113mu.<\/em><\/p>\n<p>Da\u017eas lietojumprogrammas joproj\u0101m glab\u0101s datus un st\u0101vokli izpildes laik\u0101. Da\u017eas arhitekt\u016bras paliks monol\u012btiskas, savuk\u0101rt da\u017eas funkcijas b\u016bs ilgsto\u0161as. Tom\u0113r (k\u0101 k\u0101dreiz m\u0101ko\u0146u tehnolo\u0123ijas, tad konteineri), Serverless - tehnolo\u0123ija ar lielu n\u0101kotni.<\/p>\n<p>\u0160aj\u0101 kontekst\u0101 es v\u0113l\u0113tos pak\u0101peniski p\u0101riet uz Serverless pieejas izmanto\u0161anas jaut\u0101jumu.<\/p>\n<h2>Pielietojuma pus\u0113<\/h2>\n<p>\n2018. gad\u0101 Serverless lieto\u0161anas procentu\u0101lais \u012bpatsvars <noindex><a rel=\"nofollow\" href=\"https:\/\/media.flexera.com\/documents\/rightscale-2019-state-of-the-cloud-report-from-flexera.pdf\">pieauga par 50%<\/a><\/noindex>. Starp uz\u0146\u0113mumiem, kas jau ir integr\u0113ju\u0161i tehnolo\u0123iju savos pakalpojumos, ir t\u0101di tirgus giganti k\u0101 Twitter, PayPal, Netflix, T-Mobile, Coca-Cola. Taj\u0101 pa\u0161\u0101 laik\u0101 ir j\u0101apzin\u0101s, ka Serverless nav panaceja, bet instruments noteiktu uzdevumu risin\u0101\u0161anai:<\/p>\n<ul>\n<li><strong>Samazin\u0101t resursu d\u012bkst\u0101vi.<\/strong> Nav nepiecie\u0161ams nep\u0101rtraukti uztur\u0113t virtu\u0101lo ma\u0161\u012bnu pakalpojumiem, kuriem ir maz atsau\u010du.<\/li>\n<li><strong>Apstr\u0101d\u0101t datus \"uz vietas\".<\/strong> Saspie\u017eot att\u0113lus, izgrie\u017eot fonu, mainot video kod\u0113\u0161anu, str\u0101d\u0101jot ar IoT sensoriem, veicot matem\u0101tiskas oper\u0101cijas.\n<\/li>\n<li><strong>\"Savienot\" kop\u0101 citus pakalpojumus.<\/strong> Git repozitorijs ar iek\u0161\u0113jiem programm\u0101m, \u010data bots Slack ar Jira un kalend\u0101ru.<\/li>\n<li><strong>Balans\u0113t slodzi.<\/strong> \u0160eit apst\u0101sies detaliz\u0113t\u0101k.<\/li>\n<\/ul>\n<p>\nPie\u0146emsim, ka ir pakalpojums, uz kuru n\u0101k 50 cilv\u0113ki. Tam tiek pie\u0161\u0137irta virtu\u0101l\u0101 ma\u0161\u012bna ar v\u0101ju aparat\u016bru. Periodiski slodze uz pakalpojumu pieaug vair\u0101kk\u0101rt\u012bgi. Tad v\u0101ja aparat\u016bra nesp\u0113j tikt gal\u0101.<\/p>\n<p>Var iek\u013caut sist\u0113m\u0101 balans\u0113t\u0101ju, kur\u0161 sadal\u012bs slodzi, teiksim, uz trim virtu\u0101laj\u0101m ma\u0161\u012bn\u0101m. \u0160aj\u0101 posm\u0101 m\u0113s nevaram prec\u012bzi prognoz\u0113t slodzi, t\u0101p\u0113c k\u0101du resursu daudzumu turpin\u0101m darbin\u0101t \"rezerv\u0113\". Un p\u0101rmaks\u0101jam par d\u012bkst\u0101vi. <\/p>\n<p>\u0160\u0101d\u0101 situ\u0101cij\u0101 m\u0113s varam optimiz\u0113t sist\u0113mu, izmantojot hibr\u012bda pieeju: aiz slodzes balans\u0113t\u0101ja atst\u0101jam vienu virtu\u0101lo ma\u0161\u012bnu un iestat\u0101m saiti uz Serverless Endpoint ar funkcij\u0101m. Ja slodze p\u0101rsniedz robe\u017eu, balans\u0113t\u0101js aktiviz\u0113 funkciju instanc\u0113, kas uz\u0146em da\u013cu piepras\u012bjumu apstr\u0101des.<\/p>\n<p><img decoding=\"async\" alt=\"Serverless pa plauktiem\" src=\"\/wp-content\/uploads\/2019\/05\/79262c19faba29a4639a05e3097f7914.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nT\u0101d\u0113j\u0101di Serverless var izmantot tur, kur ir nepiecie\u0161ams ne p\u0101r\u0101k bie\u017ei, bet intens\u012bvi apstr\u0101d\u0101t lielu piepras\u012bjumu skaitu. \u0160aj\u0101 gad\u012bjum\u0101 ir izdev\u012bg\u0101k palaist vair\u0101kas funkcijas uz 15 min\u016bt\u0113m, nek\u0101 visu laiku uztur\u0113t virtu\u0101lo ma\u0161\u012bnu vai serveri.<\/p>\n<p>Neskatoties uz vis\u0101m bezserveru skait\u013co\u0161anas priek\u0161roc\u012bb\u0101m, pirms ievie\u0161anas vispirms ir j\u0101nov\u0113rt\u0113 lietojumprogrammas lo\u0123ika un j\u0101izprot, k\u0101das probl\u0113mas Serverless var atrisin\u0101t konkr\u0113taj\u0101 gad\u012bjum\u0101. <\/p>\n<h2>Serverless un Selectel<\/h2>\n<p>\nSelectel m\u0113s jau esam <noindex><a rel=\"nofollow\" href=\"https:\/\/kb.selectel.ru\/42078178.html?utm_source=habr.com&amp;amp;utm_medium=referral&amp;amp;utm_campaign=Functions_Serverless_Article_170519\">atviegloju\u0161i darbu ar Kubernetes<\/a><\/noindex> caur m\u016bsu vad\u012bbas paneli. Tagad m\u0113s veidojam savu FaaS platformu. M\u0113s v\u0113lamies, lai izstr\u0101d\u0101t\u0101ji var\u0113tu risin\u0101t savus uzdevumus, izmantojot Serverless caur \u0113rtu, elast\u012bgu interfeisu.<\/p>\n<p>Ja jums ir idejas, k\u0101dai j\u0101b\u016bt ide\u0101lai FaaS platformai un k\u0101 j\u016bs v\u0113laties izmantot Serverless savos projektos, dalieties ar t\u0101m koment\u0101ros. M\u0113s \u0146emsim v\u0113r\u0101 j\u016bsu v\u0113lmes platformas izstr\u0101d\u0113.<br \/>\n\u00a0<br \/>\nMateri\u0101li, kas izmantoti rakst\u0101:<\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/www.rightscale.com\/lp\/state-of-the-cloud\">Serverless izmanto\u0161anas procents pieauga par pusotru reizi (pilns zi\u0146ojums RightScale)<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/mikhail.io\/serverless\/coldstarts\/aws\/\">K\u0101 aukst\u0101 starta laiks ir atkar\u012bgs no lietojumprogrammas valodas<\/a><\/noindex><\/li>\n<\/ul>\n<p>Avots: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/selectel\/blog\/452266\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>Serverless \u2015 \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u043e \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432. \u042d\u0442\u043e \u043d\u0435 \u00ab\u0443\u0431\u0438\u0439\u0446\u0430\u00bb \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u0438 \u043d\u0435 \u043c\u0438\u043c\u043e\u043b\u0435\u0442\u043d\u044b\u0439 \u0442\u0440\u0435\u043d\u0434. \u042d\u0442\u043e \u043d\u043e\u0432\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043a \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044e \u0441\u0438\u0441\u0442\u0435\u043c \u0432 \u043e\u0431\u043b\u0430\u043a\u0435. \u0412 \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043a\u043e\u0441\u043d\u0435\u043c\u0441\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b Serverless-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a\u0443\u044e \u0440\u043e\u043b\u044c \u0438\u0433\u0440\u0430\u0435\u0442 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440 Serverless-\u0443\u0441\u043b\u0443\u0433\u0438 \u0438 open-source \u043f\u0440\u043e\u0435\u043a\u0442\u044b. \u0412 \u043a\u043e\u043d\u0446\u0435 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u0432\u043e\u043f\u0440\u043e\u0441\u0430\u0445 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f Serverless. \u042f \u0445\u043e\u0447\u0443 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f (\u0434\u0430 \u0445\u043e\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0430). [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":25594,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-33935","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.5 - aioseo.com -->\n\t<meta name=\"description\" content=\"Serverless \u2015 \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u043e \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/serverless-po-stoechkam\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.5\" \/>\n\t\t<meta property=\"og:locale\" content=\"lv_LV\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Serverless \u043f\u043e \u0441\u0442\u043e\u0435\u0447\u043a\u0430\u043c | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"Serverless \u2015 \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u043e \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/serverless-po-stoechkam\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:55:27+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:55:27+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Serverless pa stendiem | ProHoster","description":"Serverless \u2014 tas nav par fizisku serveru neesam\u012bbu.","canonical_url":"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/serverless-po-stoechkam","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"lv_LV","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Serverless \u043f\u043e \u0441\u0442\u043e\u0435\u0447\u043a\u0430\u043c | ProHoster","og:description":"Serverless \u2015 \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u043e \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432.","og:url":"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/serverless-po-stoechkam","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:55:27+00:00","article:modified_time":"2019-10-31T18:55:27+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"33935","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 17:17:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:31:21","updated":"2026-01-21 17:17:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts\/33935","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/comments?post=33935"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts\/33935\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/media\/25594"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/media?parent=33935"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/categories?post=33935"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/tags?post=33935"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}