{"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\/ro\/blog\/administrirovanie\/serverless-po-stoechkam","title":{"rendered":"Serverless pe scurt","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Serverless pe scurt\" src=\"\/wp-content\/uploads\/2019\/05\/cea6dc9da0a3a1b0241246cdf3eba900.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nServerless nu \u00eenseamn\u0103 absen\u021ba fizic\u0103 a serverelor. Nu este un \u201euciga\u0219\u201d al containerelor \u0219i nici o mod\u0103 trec\u0103toare. Este o nou\u0103 abordare pentru construirea sistemelor \u00een cloud. \u00cen articolul de ast\u0103zi vom discuta despre arhitectura aplica\u021biilor Serverless, vom analiza rolul furnizorului de servicii Serverless \u0219i proiectele open-source. La final, vom aborda \u00eentreb\u0103rile legate de aplicarea Serverless.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nVreau s\u0103 scriu partea de server a aplica\u021biei (chiar dac\u0103 este vorba despre un magazin online). Poate fi un chat, un serviciu pentru publicarea de con\u021binut sau un echilibrator de \u00eenc\u0103rcare. \u00cen orice caz, va fi destul de complicat: va trebui s\u0103 preg\u0103tesc infrastructura, s\u0103 definesc dependen\u021bele aplica\u021biei \u0219i s\u0103 m\u0103 g\u00e2ndesc la sistemul de operare al gazdei. Apoi, va fi necesar s\u0103 actualizez componentele mici care nu afecteaz\u0103 func\u021bionarea restului monolitului. \u0218i s\u0103 nu uit\u0103m de scalarea sub \u00eenc\u0103rcare.<\/p>\n<p>Dar ce ar fi dac\u0103 am lua containere efemere, \u00een care dependen\u021bele necesare sunt deja preinstalate, iar containerele sunt izolate unul de cel\u0103lalt \u0219i de OS-ul gazdei? Monolitul va fi \u00eemp\u0103r\u021bit \u00een microservicii, fiecare dintre care poate fi actualizat \u0219i scalat independent de ceilal\u021bi. Pun\u00e2nd codul \u00eentr-un astfel de container, voi putea s\u0103-l rulez pe orice infrastructur\u0103. Este deja mai bine. <\/p>\n<p>Dar dac\u0103 nu vreau s\u0103 configurez containere? Dac\u0103 nu vreau s\u0103 m\u0103 g\u00e2ndesc la scalarea aplica\u021biei. Dac\u0103 nu vreau s\u0103 pl\u0103tesc pentru perioada \u00een care containerele sunt pornite, c\u00e2nd \u00eenc\u0103rc\u0103tura pe serviciu este minim\u0103. Vreau s\u0103 scriu cod. S\u0103 m\u0103 concentrez pe logica de afaceri \u0219i s\u0103 lansez produse pe pia\u021b\u0103 cu viteza luminii. <\/p>\n<p>Aceste g\u00e2nduri m-au dus la computa\u021bia f\u0103r\u0103 server. Serverless, \u00een acest caz, \u00eenseamn\u0103 <em>nu absen\u021ba fizic\u0103 a serverelor, ci absen\u021ba grijilor legate de gestionarea infrastructurii.<\/em><\/p>\n<p>Ideea este c\u0103 logica aplica\u021biei este \u00eemp\u0103r\u021bit\u0103 \u00een func\u021bii independente. Acestea au o structur\u0103 bazat\u0103 pe evenimente. Fiecare func\u021bie \u00eendepline\u0219te o \u201emicrosarcin\u0103\u201d. Tot ce se cere de la dezvoltator este s\u0103 \u00eencarce func\u021biile \u00een consola oferit\u0103 de furnizorul de servicii cloud \u0219i s\u0103 le asocieze cu sursele de evenimente. Codul va fi executat la cerere \u00eentr-un container preg\u0103tit automat, iar eu voi pl\u0103ti doar pentru timpul de execu\u021bie. <\/p>\n<p>S\u0103 vedem acum cum va ar\u0103ta procesul de dezvoltare a aplica\u021biei.<\/p>\n<h2>Din perspectiva dezvoltatorului<\/h2>\n<p>\nAnterior, am \u00eenceput s\u0103 vorbim despre aplica\u021bia pentru un magazin online. \u00cen abordarea tradi\u021bional\u0103, logica principal\u0103 a sistemului este gestionat\u0103 de o aplica\u021bie monolitic\u0103. Iar serverul cu aplica\u021bia este pornit constant, chiar dac\u0103 nu exist\u0103 sarcini.<\/p>\n<p><strong>Pentru a trece la serverless, \u00eemp\u0103r\u021bim aplica\u021bia \u00een microsarcini.<\/strong> Pentru fiecare dintre ele scriem func\u021bia sa. Func\u021biile sunt independente una de alta \u0219i nu p\u0103streaz\u0103 informa\u021bii despre stare (stateless). Ele pot fi scrise chiar \u0219i \u00een limbi diferite. Dac\u0103 una dintre ele \u201ecade\u201d, aplica\u021bia \u00een ansamblu nu se va opri. Arhitectura aplica\u021biei va ar\u0103ta astfel:<\/p>\n<p><img decoding=\"async\" alt=\"Serverless pe scurt\" src=\"\/wp-content\/uploads\/2019\/05\/f62c5c08bbf587766198dbb807123273.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n\u00cemp\u0103r\u021birea pe func\u021bii \u00een Serverless este similar\u0103 cu lucrul cu microservicii. Dar microserviciul poate efectua mai multe sarcini, \u00een timp ce func\u021bia, \u00een ideal, ar trebui s\u0103 efectueze una singur\u0103. S\u0103 presupunem c\u0103 avem sarcina de a aduna statistici \u0219i a le afisa la cererea utilizatorului. \u00cen abordarea microserviciilor, sarcina este realizat\u0103 de un singur serviciu cu dou\u0103 puncte de intrare: pentru scriere \u0219i pentru citire. \u00cen calculul serverless, acestea vor fi dou\u0103 func\u021bii diferite, nelegate \u00eentre ele. Dezvoltatorul economise\u0219te resurse de calcul dac\u0103, de exemplu, statistica se actualizeaz\u0103 mai des dec\u00e2t este desc\u0103rcat\u0103. <\/p>\n<p>Func\u021biile Serverless trebuie s\u0103 fie executate \u00eentr-un interval scurt de timp (timeout), care este definit de furnizorul de serviciu. De exemplu, pentru AWS, timeout-ul este de 15 minute. Asta \u00eenseamn\u0103 c\u0103 func\u021biile de lung\u0103 durat\u0103 (long-lived) trebuie adaptate la cerin\u021be - acesta este un aspect care diferen\u021biaz\u0103 Serverless de alte tehnologii populare de ast\u0103zi (containere \u0219i Platform as a Service).<\/p>\n<p><strong>Fiec\u0103rei func\u021bii \u00eei atribuim un eveniment.<\/strong> Evenimentul este un trigger pentru ac\u021biune:<\/p>\n<p><strong>Eveniment<\/strong><br \/>\n<strong>Ac\u021biunea pe care o execut\u0103 func\u021bia<\/strong><\/p>\n<p>\u00cen stocare a fost \u00eenc\u0103rcat\u0103 o imagine a produsului<br \/>\nComprim\u0103 imaginea \u0219i o descarc\u0103 \u00een catalog<\/p>\n<p>\u00cen baza de date s-a actualizat adresa magazinului fizic<br \/>\n\u00cenc\u0103rca\u021bi pe h\u0103r\u021bi noua loca\u021bie<\/p>\n<p>Clientul pl\u0103te\u0219te produsul<br \/>\nLansa\u021bi procesarea pl\u0103\u021bii<\/p>\n<p>Evenimentele pot fi cereri HTTP, date \u00een flux, cozi de mesaje \u0219i a\u0219a mai departe. Sursele de evenimente sunt modificarea sau apari\u021bia de date. \u00cen plus, func\u021biile pot fi activate de un temporizator.<\/p>\n<p>Arhitectura a fost lucrat\u0103, iar aplica\u021bia a devenit aproape serverless. Urm\u0103torul pas este s\u0103 ne \u00eendrept\u0103m c\u0103tre furnizorul de servicii.<\/p>\n<h2>Din partea furnizorului<\/h2>\n<p>\nDe obicei, computa\u021bia serverless este oferit\u0103 de furnizorii de servicii cloud. Ace\u0219tia folosesc denumiri diferite: Azure Functions, AWS Lambda, Google Cloud Functions, IBM Cloud Functions. <\/p>\n<p>Vom folosi serviciul prin intermediul consolei sau al contului personal al furnizorului. Codul func\u021biilor poate fi \u00eenc\u0103rcat prin una dintre urm\u0103toarele metode:<\/p>\n<ul>\n<li>scriend codul \u00een editorii \u00eencorpora\u021bi prin consola web,<\/li>\n<li>\u00eenc\u0103rc\u00e2nd un arhiv\u0103 cu codul,<\/li>\n<li>lucr\u00e2nd cu repozitorii git publice sau private.<\/li>\n<\/ul>\n<p>\nAici configur\u0103m evenimentele care declan\u0219eaz\u0103 func\u021bia. La diferi\u021bi furnizori, seturile de evenimente pot varia.<\/p>\n<p><img decoding=\"async\" alt=\"Serverless pe scurt\" src=\"\/wp-content\/uploads\/2019\/05\/98676fa23a9911aae5758ecdb2cd9a03.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Furnizorul a construit \u0219i automatizat un sistem Function as a Service (FaaS) pe infrastructura sa:<\/p>\n<ol>\n<li>Codul func\u021biilor ajunge \u00eentr-un depozit de partea furnizorului.<\/li>\n<li>C\u00e2nd apare un eveniment, containerele cu mediu preg\u0103tit se desf\u0103\u0219oar\u0103 automat pe server. Fiec\u0103rui exemplar de func\u021bie \u00eei corespunde un container izolat.<\/li>\n<li>Din depozit, func\u021bia este trimis\u0103 \u00een container, calculat\u0103 \u0219i returneaz\u0103 rezultatul.<\/li>\n<li>Num\u0103rul de evenimente paralele cre\u0219te - odat\u0103 cu el, num\u0103rul de containere. Sistemul se scaleaz\u0103 automat. Dac\u0103 utilizatorii nu acceseaz\u0103 func\u021bia, aceasta va fi inactiv\u0103.<\/li>\n<li>Furnizorul stabile\u0219te timpul de nefunc\u021bionare pentru containere - dac\u0103 func\u021biile nu apar \u00een container \u00een acest interval, acesta este distrus.<\/li>\n<\/ol>\n<p>\nAstfel ob\u021binem Serverless \u201edin cutie\u201d. Vom pl\u0103ti pentru serviciu pe baza modelului pay-as-you-go \u0219i doar pentru func\u021biile utilizate \u0219i doar pentru timpul \u00een care au fost utilizate.<\/p>\n<p>Pentru a familiariza dezvoltatorii cu serviciul, furnizorii ofer\u0103 p\u00e2n\u0103 la 12 luni de testare gratuit\u0103, dar limiteaz\u0103 timpul total de calcul, num\u0103rul de solicit\u0103ri pe lun\u0103, fondurile sau puterea consumat\u0103.<\/p>\n<p>Principalul avantaj al lucrului cu furnizorul este posibilitatea de a nu te \u00eengrijora de infrastructur\u0103 (servers, ma\u0219ini virtuale, containere). Din partea sa, furnizorul poate implementa FaaS at\u00e2t prin dezvolt\u0103rile proprii, c\u00e2t \u0219i cu ajutorul instrumentelor open-source. Despre ele vom discuta mai departe.<\/p>\n<h2>Din partea open source<\/h2>\n<p>\n\u00cen ultimii c\u00e2\u021biva ani, comunitatea open-source a lucrat activ la instrumentele Serverless. Printre care, cei mai mari juc\u0103tori de pe pia\u021b\u0103 contribuie la dezvoltarea platformelor f\u0103r\u0103 server:<\/p>\n<ul>\n<li><strong>Google<\/strong> ofer\u0103 dezvoltatorilor instrumentul s\u0103u open-source - <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/knative\/\">Knative<\/a><\/noindex>. \u00cen dezvoltarea sa au participat IBM, RedHat, Pivotal \u0219i SAP;<\/li>\n<li><strong>IBM<\/strong> au lucrat la platforma Serverless <noindex><a rel=\"nofollow\" href=\"https:\/\/openwhisk.apache.org\/\">OpenWhisk<\/a><\/noindex>, care a devenit apoi un proiect al Apache Foundation;<\/li>\n<li><strong>de Microsoft<\/strong> au deschis par\u021bial codul platformei <noindex><a rel=\"nofollow\" href=\"https:\/\/azure.microsoft.com\/en-us\/services\/functions\/\">Azure Functions<\/a><\/noindex>.<\/li>\n<\/ul>\n<p>\nDezvolt\u0103rile sunt \u00een curs \u0219i \u00een direc\u021bia framework-urilor serverless. <noindex><a rel=\"nofollow\" href=\"https:\/\/kubeless.io\/\">Kubeless<\/a><\/noindex> \u0219i <noindex><a rel=\"nofollow\" href=\"https:\/\/fission.io\/\">Fission<\/a><\/noindex> se desf\u0103\u0219oar\u0103 \u00een cadrul clusterelor Kubernetes preg\u0103tite anterior, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.openfaas.com\/\">OpenFaaS<\/a><\/noindex> func\u021bioneaz\u0103 at\u00e2t cu Kubernetes, c\u00e2t \u0219i cu Docker Swarm. Framework-ul ac\u021bioneaz\u0103 ca un fel de controler - la cerere preg\u0103te\u0219te un mediu de execu\u021bie \u00een interiorul clusterului, apoi ruleaz\u0103 func\u021bia acolo.<\/p>\n<p>Framework-urile las\u0103 loc pentru configurarea instrumentului conform nevoilor proprii. Astfel, \u00een Kubeless, dezvoltatorul poate seta timeout-ul execu\u021biei func\u021biei (valoarea implicit\u0103 este de 180 de secunde). Fission, \u00een \u00eencercarea de a rezolva problema pornirii reci, sugereaz\u0103 s\u0103 men\u021bin\u0103 o parte a containerelor mereu pornite (de\u0219i acest lucru duce la costuri pe resursele inactive). OpenFaaS ofer\u0103 un set variat de declan\u0219atoare pentru toate gusturile: HTTP, Kafka, Redis, MQTT, Cron, AWS SQS, NATs \u0219i altele.<\/p>\n<p>Instruc\u021biunile pentru \u00eenceput pot fi g\u0103site \u00een documenta\u021bia oficial\u0103 a framework-urilor. Lucrul cu ele implic\u0103 un set ceva mai mare de abilit\u0103\u021bi dec\u00e2t atunci c\u00e2nd lucrezi cu un furnizor - asta presupune cel pu\u021bin abilitatea de a lansa un cluster Kubernetes prin CLI. La maxim, \u00eencorporarea altor instrumente open-source (de exemplu, managerul de cozi Kafka).<\/p>\n<p>Indiferent de metoda prin care vom lucra cu Serverless - fie prin intermediul unui furnizor, fie cu ajutorul open-source, vom ob\u021bine o serie de avantaje \u0219i dezavantaje ale abord\u0103rii Serverless.<\/p>\n<h2>Din perspectiva avantajelor \u0219i dezavantajelor<\/h2>\n<p>\nServerless dezvolt\u0103 ideile infrastructurii pe containere \u0219i abord\u0103rii microservicii, prin care echipele pot lucra \u00een mod multilingv, f\u0103r\u0103 a fi legate de o singur\u0103 platform\u0103. Construirea sistemului este simplificat\u0103, iar corectarea erorilor devine mai u\u0219oar\u0103. Arhitectura microservicii permite ad\u0103ugarea de noi func\u021bionalit\u0103\u021bi \u00een sistem mult mai repede dec\u00e2t \u00een cazul unei aplica\u021bii monolitice.<\/p>\n<p><strong>Serverless reduce \u0219i mai mult timpul de dezvoltare,<\/strong> permi\u021b\u00e2nd dezvoltatorului s\u0103 se concentreze exclusiv pe logica de afaceri a aplica\u021biei \u0219i pe scrierea codului. Ca urmare, timpul de lansare al dezvolt\u0103rilor pe pia\u021b\u0103 este redus.<\/p>\n<p><strong>Bonus, ob\u021binem scalare automat\u0103 \u00een func\u021bie de \u00eenc\u0103rcare,<\/strong> iar pl\u0103tim doar pentru resursele utilizate \u0219i doar \u00een perioada \u00een care acestea sunt folosite.<\/p>\n<p>Ca orice tehnologie, Serverless are dezavantaje.<\/p>\n<p><em>De exemplu, un astfel de dezavantaj poate fi timpul de pornire rece (\u00een medie p\u00e2n\u0103 la 1 secund\u0103 pentru limbaje precum JavaScript, Python, Go, Java, Ruby).<\/em><\/p>\n<p>Pe de o parte, durata real\u0103 a unui start la rece depinde de multe variabile: limbajul \u00een care a fost scris\u0103 func\u021bia, num\u0103rul de biblioteci, volumul de cod, comunicarea cu resurse externe (baze de date sau servere de autentificare). Deoarece dezvoltatorul controleaz\u0103 aceste variabile, el poate reduce timpul de pornire. Dar, pe de alt\u0103 parte, dezvoltatorul nu poate controla timpul de pornire al containerului - aici totul depinde de furnizor.<\/p>\n<p>Startul la rece poate deveni unul cald atunci c\u00e2nd func\u021bia reutilizeaz\u0103 un container care a fost \u00eenceput de un eveniment anterior. Aceast\u0103 situa\u021bie va ap\u0103rea \u00een trei cazuri:<\/p>\n<ul>\n<li>dac\u0103 clien\u021bii folosesc frecvent serviciul \u0219i num\u0103rul de apeluri c\u0103tre func\u021bie cre\u0219te;<\/li>\n<li>dac\u0103 furnizorul, platforma sau cadrul permit men\u021binerea anumitor containere pornite tot timpul;<\/li>\n<li>dac\u0103 dezvoltatorul ruleaz\u0103 func\u021bii la un anumit interval (de exemplu, la fiecare 3 minute).<\/li>\n<\/ul>\n<p>\nPentru multe aplica\u021bii, startul la rece nu este o problem\u0103. Aici trebuie s\u0103 ne baz\u0103m pe tipul \u0219i obiectivele serviciului. O \u00eent\u00e2rziere de pornire de o secund\u0103 nu este \u00eentotdeauna critic\u0103 pentru o aplica\u021bie de afaceri, dar poate deveni critic\u0103 pentru serviciile medicale. Probabil, \u00een acest caz, abordarea serverless nu mai este potrivit\u0103.<\/p>\n<p><em>Urm\u0103toarea disfunc\u021bionalitate men\u021bionat\u0103 la Serverless este durata scurt\u0103 de via\u021b\u0103 a func\u021biei (timeout-ul \u00een care func\u021bia trebuie s\u0103 fie executat\u0103).<\/em><\/p>\n<p>\u00cens\u0103, dac\u0103 este necesar s\u0103 lucr\u0103m cu sarcini de lung\u0103 durat\u0103, putem utiliza o arhitectur\u0103 hibrid\u0103 - combin\u00e2nd Serverless cu o alt\u0103 tehnologie.<\/p>\n<p><em>Nu toate sistemele vor putea func\u021biona pe baza schema Serverless.<\/em><\/p>\n<p>Unele aplica\u021bii vor continua s\u0103 stocheze date \u0219i starea \u00een timpul execu\u021biei. Unele arhitecturi vor r\u0103m\u00e2ne monolitice iar unele func\u021bii vor fi de lung\u0103 durat\u0103. Totu\u0219i (la fel cum s-a \u00eent\u00e2mplat odat\u0103 cu tehnologiile cloud, \u0219i apoi cu containerele), Serverless este o tehnologie cu un viitor promi\u021b\u0103tor.<\/p>\n<p>\u00cen aceast\u0103 cheie, mi-ar pl\u0103cea s\u0103 trec treptat la subiectul aplic\u0103rii abord\u0103rii Serverless.<\/p>\n<h2>Din perspectiva aplic\u0103rii<\/h2>\n<p>\n\u00cen anul 2018, procentul de utilizare a Serverless <noindex><a rel=\"nofollow\" href=\"https:\/\/media.flexera.com\/documents\/rightscale-2019-state-of-the-cloud-report-from-flexera.pdf\">a crescut cu o dat\u0103 \u0219i jum\u0103tate<\/a><\/noindex>. Printre companiile care au implementat deja tehnologia \u00een serviciile lor se num\u0103r\u0103 gigan\u021bi ai pie\u021bei precum Twitter, PayPal, Netflix, T-Mobile, Coca-Cola. Totu\u0219i, trebuie s\u0103 \u00een\u021belegem c\u0103 Serverless nu este o panacee, ci un instrument pentru rezolvarea unui anumit set de probleme:<\/p>\n<ul>\n<li><strong>Reducerea timpului de inactivitate al resurselor.<\/strong> Nu este necesar s\u0103 men\u021bine\u021bi constant o ma\u0219in\u0103 virtual\u0103 pentru servicii la care se apeleaz\u0103 rar.<\/li>\n<li><strong>A procesa datele \u201e\u00een timp real\u201d.<\/strong> A comprima imagini, a t\u0103ia fundalul, a schimba codificarea video, a lucra cu senzorii IoT, a efectua opera\u021bii matematice.\n<\/li>\n<li><strong>A \u201elipi\u201d \u00eentre ele alte servicii.<\/strong> Un repository Git cu programe interne, un chatbot \u00een Slack cu Jira \u0219i cu calendarul.<\/li>\n<li><strong>A echilibra sarcina.<\/strong> Aici ne vom opri mai \u00een detaliu.<\/li>\n<\/ul>\n<p>\nS\u0103 presupunem c\u0103 exist\u0103 un serviciu care prime\u0219te 50 de persoane. Acesta are o ma\u0219in\u0103 virtual\u0103 cu hardware slab. Perioadele de sarcin\u0103 pe serviciu cresc sporadic. Atunci hardware-ul slab nu poate face fa\u021b\u0103.<\/p>\n<p>Se poate ad\u0103uga un echilibror de sarcin\u0103 \u00een sistem, care va distribui sarcina, s\u0103 zicem, pe trei ma\u0219ini virtuale. La acest moment nu putem prognoza cu exactitate sarcina, a\u0219adar p\u0103str\u0103m un anumit num\u0103r de resurse active \u201ede rezerv\u0103\u201d. \u0218i pl\u0103tim \u00een plus pentru inactivitate. <\/p>\n<p>\u00cen aceast\u0103 situa\u021bie putem optimiza sistemul printr-o abordare hibrid\u0103: l\u0103s\u0103m o ma\u0219in\u0103 virtual\u0103 \u00een spatele echilibrorului de sarcin\u0103 \u0219i punem un link la Serverless Endpoint cu func\u021bii. Dac\u0103 sarcina dep\u0103\u0219e\u0219te un anumit prag, echilibrorul va porni instan\u021be de func\u021bii care vor prelua o parte din procesarea solicit\u0103rilor.<\/p>\n<p><img decoding=\"async\" alt=\"Serverless pe scurt\" src=\"\/wp-content\/uploads\/2019\/05\/79262c19faba29a4639a05e3097f7914.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nAstfel, Serverless poate fi utilizat acolo unde este necesar\u0103 o procesare rar\u0103, dar intens\u0103 a unui mare num\u0103r de solicit\u0103ri. \u00cen acest caz, este mai costisitor s\u0103 porne\u0219ti mai multe func\u021bii timp de 15 minute dec\u00e2t s\u0103 men\u021bii constant o ma\u0219in\u0103 virtual\u0103 sau un server.<\/p>\n<p>\u00cen ciuda tuturor avantajelor calculului f\u0103r\u0103 server, \u00eenainte de implementare este important s\u0103 evalu\u0103m logica aplica\u021biei \u0219i s\u0103 \u00een\u021belegem ce reguli poate rezolva Serverless \u00een cazul concret. <\/p>\n<h2>Serverless \u0219i Selectel<\/h2>\n<p>\nLa Selectel deja <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\">am simplificat opera\u021biunile cu Kubernetes<\/a><\/noindex> prin intermediul panoului nostru de control. Acum construim propria noastr\u0103 platform\u0103 FaaS. Vrem ca dezvoltatorii s\u0103 poat\u0103 rezolva sarcinile lor cu ajutorul Serverless printr-o interfa\u021b\u0103 convenabil\u0103 \u0219i flexibil\u0103.<\/p>\n<p>Dac\u0103 ave\u021bi idei despre cum ar trebui s\u0103 fie platforma ideal\u0103 FaaS \u0219i cum dori\u021bi s\u0103 folosi\u021bi Serverless \u00een proiectele dumneavoastr\u0103, \u00eemp\u0103rt\u0103\u0219i\u021bi-le \u00een comentarii. Vom lua \u00een considerare sugestiile dumneavoastr\u0103 \u00een timpul dezvolt\u0103rii platformei.<br \/>\n\u00a0<br \/>\nMaterialele utilizate \u00een articol:<\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/www.rightscale.com\/lp\/state-of-the-cloud\">Procentul de utilizare a Serverless a crescut de 1,5 ori (raport complet RightScale)<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/mikhail.io\/serverless\/coldstarts\/aws\/\">Cum depinde timpul de pornire la rece de limbajul aplica\u021biei<\/a><\/noindex><\/li>\n<\/ul>\n<p>Sursa: <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.2.1 - 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\/ro\/blog\/administrirovanie\/serverless-po-stoechkam\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\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\/ro\/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 pe scurt | ProHoster","description":"Serverless \u2014 nu este vorba despre absen\u021ba fizic\u0103 a serverelor.","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/serverless-po-stoechkam","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","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\/ro\/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\/ro\/wp-json\/wp\/v2\/posts\/33935","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=33935"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/33935\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/25594"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=33935"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=33935"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=33935"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}