{"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\/cs\/blog\/administrirovanie\/serverless-po-stoechkam","title":{"rendered":"Serverless po stojan\u00edc\u00edch","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Serverless po stojan\u00edc\u00edch\" src=\"\/wp-content\/uploads\/2019\/05\/cea6dc9da0a3a1b0241246cdf3eba900.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nServerless nen\u00ed o fyzick\u00e9 absenci server\u016f. Nen\u00ed to 'zabij\u00e1k' kontejner\u016f a nen\u00ed to p\u0159echodn\u00fd trend. Je to nov\u00fd p\u0159\u00edstup k budov\u00e1n\u00ed syst\u00e9m\u016f v cloudu. V dne\u0161n\u00edm \u010dl\u00e1nku se dotkneme architektury Serverless aplikac\u00ed, pod\u00edv\u00e1me se, jakou roli hraje poskytovatel Serverless slu\u017eeb a open-source projekty. Na z\u00e1v\u011br se budeme zab\u00fdvat ot\u00e1zkami aplikace Serverless.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nChci napsat serverovou \u010d\u00e1st aplikace (t\u0159eba internetov\u00e9ho obchodu). M\u016f\u017ee to b\u00fdt i chat, slu\u017eba pro publikov\u00e1n\u00ed obsahu, nebo vyva\u017eova\u010d z\u00e1t\u011b\u017ee. V ka\u017ed\u00e9m p\u0159\u00edpad\u011b m\u011b \u010dek\u00e1 spousta probl\u00e9m\u016f: budu muset p\u0159ipravit infrastrukturu, ur\u010dit z\u00e1vislosti aplikace a zamyslet se nad opera\u010dn\u00edm syst\u00e9mem hostitele. Pot\u00e9 bude t\u0159eba aktualizovat mal\u00e9 komponenty, kter\u00e9 se net\u00fdkaj\u00ed fungov\u00e1n\u00ed ostatn\u00edho monolitu. A nezapom\u00ednejme na \u0161k\u00e1lov\u00e1n\u00ed pod z\u00e1t\u011b\u017e\u00ed.<\/p>\n<p>A co kdy\u017e vezmeme efem\u00e9rn\u00ed kontejnery, ve kter\u00fdch jsou po\u017eadovan\u00e9 z\u00e1vislosti ji\u017e p\u0159edinstalov\u00e1ny, a samotn\u00e9 kontejnery jsou od sebe i od OS hostitele izolov\u00e1ny? Monolit rozd\u011bl\u00edme na mikroslu\u017eby, z nich\u017e ka\u017edou m\u016f\u017eeme aktualizovat a \u0161k\u00e1lovat nez\u00e1visle na ostatn\u00edch. Um\u00edst\u011bn\u00edm k\u00f3du do takov\u00e9ho kontejneru ho mohu spou\u0161t\u011bt na jak\u00e9koli infrastruktu\u0159e. U\u017e je to lep\u0161\u00ed. <\/p>\n<p>A co kdy\u017e se mi nechce konfigurovat kontejnery? Nechci p\u0159em\u00fd\u0161let o \u0161k\u00e1lov\u00e1n\u00ed aplikace. Nechci platit za ne\u010dinnost spu\u0161t\u011bn\u00fdch kontejner\u016f, kdy\u017e je z\u00e1t\u011b\u017e slu\u017eby minim\u00e1ln\u00ed. Chci ps\u00e1t k\u00f3d. Soust\u0159edit se na byznys logiku a uv\u00e1d\u011bt produkty na trh neuv\u011b\u0159itelnou rychlost\u00ed. <\/p>\n<p>Tyto my\u0161lenky m\u011b p\u0159ivedly k bezserverov\u00fdm v\u00fdpo\u010dt\u016fm. Serverless v tomto p\u0159\u00edpad\u011b znamen\u00e1 <em>ne fyzickou absenci server\u016f, ale absenci bolesti hlavy s \u0159\u00edzen\u00edm infrastruktury.<\/em><\/p>\n<p>My\u0161lenka je, \u017ee logika aplikace je rozd\u011blena na nez\u00e1visl\u00e9 funkce. Maj\u00ed ud\u00e1lostn\u00ed strukturu. Ka\u017ed\u00e1 z funkc\u00ed vykon\u00e1v\u00e1 jeden \u201emikro\u00fakol\u201c. V\u0161echno, co se o\u010dek\u00e1v\u00e1 od v\u00fdvoj\u00e1\u0159e, je nahr\u00e1t funkce do konzole poskytovan\u00e9 cloudov\u00fdm poskytovatelem a p\u0159i\u0159adit je k ud\u00e1lostem. K\u00f3d se bude spou\u0161t\u011bt na po\u017e\u00e1d\u00e1n\u00ed v automaticky p\u0159ipraven\u00e9m kontejneru a j\u00e1 zaplat\u00edm pouze za \u010das vykon\u00e1n\u00ed. <\/p>\n<p>Poj\u010fme se pod\u00edvat, jak nyn\u00ed bude vypadat proces v\u00fdvoje aplikace.<\/p>\n<h2>Z pohledu v\u00fdvoj\u00e1\u0159e<\/h2>\n<p>\nD\u0159\u00edve jsme za\u010dali mluvit o aplikaci pro internetov\u00fd obchod. V tradi\u010dn\u00edm p\u0159\u00edstupu vykon\u00e1v\u00e1 hlavn\u00ed logiku syst\u00e9mu monolitn\u00ed aplikace. A server s aplikac\u00ed b\u011b\u017e\u00ed neust\u00e1le, i kdy\u017e nen\u00ed \u017e\u00e1dn\u00e1 z\u00e1t\u011b\u017e.<\/p>\n<p><strong>Abychom p\u0159e\u0161li k serverless, rozd\u011bl\u00edme aplikaci na mikro\u00fakoly.<\/strong> Pro ka\u017edou z nich p\u00ed\u0161eme svou funkci. Funkce jsou nez\u00e1visl\u00e9 na sob\u011b a neuchov\u00e1vaj\u00ed informace o stavu (stateless). Mohou b\u00fdt dokonce naps\u00e1ny v r\u016fzn\u00fdch jazyc\u00edch. Pokud jedna z nich 'spadne', aplikace se cel\u00e1 nezastav\u00ed. Architektura aplikace bude vypadat takto:<\/p>\n<p><img decoding=\"async\" alt=\"Serverless po stojan\u00edc\u00edch\" src=\"\/wp-content\/uploads\/2019\/05\/f62c5c08bbf587766198dbb807123273.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nD\u011blen\u00ed na funkce v Serverless p\u0159ipom\u00edn\u00e1 pr\u00e1ci s mikroslu\u017ebami. Mikroslu\u017eba v\u0161ak m\u016f\u017ee vykon\u00e1vat n\u011bkolik \u00fakol\u016f, zat\u00edmco funkce by m\u011bla vykon\u00e1vat ide\u00e1ln\u011b pouze jeden. P\u0159edstavme si, \u017ee c\u00edlem je shroma\u017e\u010fovat statistiky a zobrazovat je na z\u00e1klad\u011b po\u017eadavk\u016f u\u017eivatele. V mikroslu\u017ebov\u00e9m p\u0159\u00edstupu tuto \u00falohu vykon\u00e1v\u00e1 jeden servis se dv\u011bma vstupn\u00edmi body: pro z\u00e1pis a \u010dten\u00ed. V bezserverov\u00e9m v\u00fdpo\u010detn\u00edm p\u0159\u00edstupu to budou dv\u011b r\u016fzn\u00e9 funkce, kter\u00e9 nejsou navz\u00e1jem spojeny. V\u00fdvoj\u00e1\u0159 \u0161et\u0159\u00ed v\u00fdpo\u010detn\u00ed zdroje, pokud nap\u0159\u00edklad statistika je aktualizov\u00e1na \u010dast\u011bji, ne\u017e je vykl\u00e1d\u00e1na. <\/p>\n<p>Serverless funkce by m\u011bly b\u00fdt prov\u00e1d\u011bny b\u011bhem kr\u00e1tk\u00e9ho \u010dasov\u00e9ho \u00faseku (timeout), kter\u00fd ur\u010duje poskytovatel slu\u017eby. Nap\u0159\u00edklad pro AWS je timeout 15 minut. To znamen\u00e1, \u017ee dlouhotrvaj\u00edc\u00ed funkce (long-lived) budou muset b\u00fdt p\u0159izp\u016fsobeny po\u017eadavk\u016fm \u2212 to je to, \u010d\u00edm se Serverless li\u0161\u00ed od dal\u0161\u00edch dnes popul\u00e1rn\u00edch technologi\u00ed (kontejner\u016f a Platform as a Service).<\/p>\n<p><strong>Ka\u017ed\u00e9 funkci p\u0159i\u0159ad\u00edme ud\u00e1lost.<\/strong> Ud\u00e1lost je spou\u0161t\u011b\u010d pro akci:<\/p>\n<p><strong>Ud\u00e1lost<\/strong><br \/>\n<strong>Akce, kterou funkce vykon\u00e1v\u00e1<\/strong><\/p>\n<p>Do \u00falo\u017ei\u0161t\u011b byla nahr\u00e1na fotografie produktu<br \/>\nZmen\u0161it obr\u00e1zek a nahr\u00e1t do katalogu<\/p>\n<p>V datab\u00e1zi se aktualizovala adresa fyzick\u00e9ho obchodu<br \/>\nNa map\u00e1ch na\u010d\u00edst novou lokaci<\/p>\n<p>Z\u00e1kazn\u00edk plat\u00ed za zbo\u017e\u00ed<br \/>\nSpustit zpracov\u00e1n\u00ed platby<\/p>\n<p>Ud\u00e1lostmi mohou b\u00fdt HTTP po\u017eadavky, streamov\u00e1 data, fronty zpr\u00e1v a podobn\u011b. Zdroje ud\u00e1lost\u00ed jsou zm\u011bna nebo vznik dat. Funkce lze tak\u00e9 spou\u0161t\u011bt na z\u00e1klad\u011b \u010dasova\u010de.<\/p>\n<p>Architektura byla promy\u0161lena a aplikace se t\u00e9m\u011b\u0159 stala serverless. D\u00e1le p\u0159ech\u00e1z\u00edme k poskytovateli slu\u017eby.<\/p>\n<h2>Z pohledu poskytovatele<\/h2>\n<p>\nObvykle bezserverov\u00e9 v\u00fdpo\u010dty nab\u00edzej\u00ed poskytovatel\u00e9 cloudov\u00fdch slu\u017eeb. Naz\u00fdvaj\u00ed se r\u016fzn\u011b: Azure Functions, AWS Lambda, Google Cloud Functions, IBM Cloud Functions. <\/p>\n<p>Slu\u017ebu budeme pou\u017e\u00edvat prost\u0159ednictv\u00edm konzole nebo osobn\u00edho \u00fa\u010dtu poskytovatele. K\u00f3d funkc\u00ed lze nahr\u00e1t jedn\u00edm ze zp\u016fsob\u016f:<\/p>\n<ul>\n<li>napsat k\u00f3d ve vestav\u011bn\u00fdch editorech prost\u0159ednictv\u00edm webov\u00e9 konzole,<\/li>\n<li>nahr\u00e1t archiv s k\u00f3dem,<\/li>\n<li>pracovat s ve\u0159ejn\u00fdmi nebo soukrom\u00fdmi git repozit\u00e1\u0159i.<\/li>\n<\/ul>\n<p>\nZde nastavujeme ud\u00e1losti, kter\u00e9 vyvol\u00e1vaj\u00ed funkci. Sady ud\u00e1lost\u00ed se mohou li\u0161it mezi r\u016fzn\u00fdmi poskytovateli.<\/p>\n<p><img decoding=\"async\" alt=\"Serverless po stojan\u00edc\u00edch\" src=\"\/wp-content\/uploads\/2019\/05\/98676fa23a9911aae5758ecdb2cd9a03.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Poskytovatel na sv\u00e9 infrastruktu\u0159e vybudoval a automatizoval syst\u00e9m Function as a Service (FaaS):<\/p>\n<ol>\n<li>K\u00f3d funkc\u00ed se dost\u00e1v\u00e1 do \u00falo\u017ei\u0161t\u011b na stran\u011b poskytovatele.<\/li>\n<li>Kdy\u017e dojde k ud\u00e1losti, na serveru se automaticky spou\u0161t\u011bj\u00ed kontejnery s p\u0159ipraven\u00fdm prost\u0159ed\u00edm. Ka\u017ed\u00e1 instance funkce m\u00e1 sv\u016fj izolovan\u00fd kontejner.<\/li>\n<li>Z \u00falo\u017ei\u0161t\u011b se funkce odes\u00edl\u00e1 do kontejneru, vykon\u00e1v\u00e1 se a vrac\u00ed v\u00fdsledek.<\/li>\n<li>Po\u010det paraleln\u00edch ud\u00e1lost\u00ed roste \u2014 roste i po\u010det kontejner\u016f. Syst\u00e9m se automaticky \u0161k\u00e1luje. Pokud u\u017eivatel\u00e9 na funkci nevolaj\u00ed, z\u016fstane neaktivn\u00ed.<\/li>\n<li>Poskytovatel ur\u010duje dobu ne\u010dinnosti kontejner\u016f \u2014 pokud v t\u00e9to dob\u011b funkce v kontejneru neexistuj\u00ed, bude zni\u010den.<\/li>\n<\/ol>\n<p>\nTak z\u00edsk\u00e1v\u00e1me Serverless \"out of the box\". Budeme platit za slu\u017ebu podle modelu pay-as-you-go a pouze za ty funkce, kter\u00e9 se pou\u017e\u00edvaj\u00ed, a pouze za dobu, kdy byly pou\u017e\u00edv\u00e1ny.<\/p>\n<p>Aby se v\u00fdvoj\u00e1\u0159i sezn\u00e1mili se slu\u017ebou, poskytovatel\u00e9 nab\u00edzej\u00ed a\u017e 12 m\u011bs\u00edc\u016f bezplatn\u00e9ho testov\u00e1n\u00ed, ale omezuj\u00ed celkov\u00fd \u010das v\u00fdpo\u010dt\u016f, po\u010det po\u017eadavk\u016f za m\u011bs\u00edc, finan\u010dn\u00ed prost\u0159edky nebo spot\u0159ebovan\u00e9 zdroje.<\/p>\n<p>Hlavn\u00ed v\u00fdhodou pr\u00e1ce s poskytovatelem je mo\u017enost nezat\u011b\u017eovat se infrastrukturou (servery, virtu\u00e1ln\u00ed stroje, kontejnery). Z pohledu poskytovatele m\u016f\u017ee b\u00fdt FaaS realizov\u00e1n jak na vlastn\u00edch \u0159e\u0161en\u00edch, tak pomoc\u00ed open-source n\u00e1stroj\u016f. O t\u011bch budeme hovo\u0159it d\u00e1le.<\/p>\n<h2>Z pohledu open source<\/h2>\n<p>\nV posledn\u00edch dvou letech aktivn\u011b pracuje open-source komunita na n\u00e1stroj\u00edch Serverless. Mezi nejv\u011bt\u0161\u00edmi hr\u00e1\u010di na trhu p\u0159isp\u00edvaj\u00ed k rozvoji bezserverov\u00fdch platforem:<\/p>\n<ul>\n<li><strong>Google<\/strong> nab\u00edz\u00ed v\u00fdvoj\u00e1\u0159\u016fm sv\u016fj open-source n\u00e1stroj \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/knative\/\">Knative<\/a><\/noindex>. Na jeho v\u00fdvoji se pod\u00edleli IBM, RedHat, Pivotal a SAP;<\/li>\n<li><strong>IBM<\/strong> pracovali na platform\u011b Serverless <noindex><a rel=\"nofollow\" href=\"https:\/\/openwhisk.apache.org\/\">OpenWhisk<\/a><\/noindex>, kter\u00e1 se pozd\u011bji stala projektem Apache Foundation;<\/li>\n<li><strong>Microsoft<\/strong> \u010d\u00e1ste\u010dn\u011b otev\u0159eli k\u00f3d platformy <noindex><a rel=\"nofollow\" href=\"https:\/\/azure.microsoft.com\/en-us\/services\/functions\/\">Azure Functions<\/a><\/noindex>.<\/li>\n<\/ul>\n<p>\nV\u00fdvoj tak\u00e9 pokra\u010duje sm\u011brem ke serverless framework\u016fm. <noindex><a rel=\"nofollow\" href=\"https:\/\/kubeless.io\/\">Kubeless<\/a><\/noindex> a <noindex><a rel=\"nofollow\" href=\"https:\/\/fission.io\/\">Fission<\/a><\/noindex> se deployuj\u00ed uvnit\u0159 p\u0159edem p\u0159ipraven\u00fdch cluster\u016f Kubernetes, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.openfaas.com\/\">OpenFaaS<\/a><\/noindex> funguje jak s Kubernetes, tak i s Docker Swarm. Framework se chov\u00e1 jako kontroler, kter\u00fd na po\u017e\u00e1d\u00e1n\u00ed p\u0159iprav\u00ed prost\u0159ed\u00ed pro b\u011bh uvnit\u0159 clusteru a pak spust\u00ed funkci.<\/p>\n<p>Frameworky umo\u017e\u0148uj\u00ed flexibiln\u00ed p\u0159izp\u016fsoben\u00ed n\u00e1stroje vlastn\u00edm pot\u0159eb\u00e1m. Nap\u0159\u00edklad v Kubeless si m\u016f\u017ee v\u00fdvoj\u00e1\u0159 nastavit timeout vykon\u00e1n\u00ed funkce (v\u00fdchoz\u00ed hodnota je 180 sekund). Fission se sna\u017e\u00ed vy\u0159e\u0161it probl\u00e9m studen\u00e9ho startu t\u00edm, \u017ee n\u011bkter\u00e9 kontejnery dr\u017e\u00ed neust\u00e1le spu\u0161t\u011bn\u00e9 (i kdy\u017e to s sebou nese n\u00e1klady na ne\u010dinnost zdroj\u016f). OpenFaaS nab\u00edz\u00ed \u0161irok\u00fd v\u00fdb\u011br spou\u0161t\u011b\u010d\u016f podle libosti: HTTP, Kafka, Redis, MQTT, Cron, AWS SQS, NATs a dal\u0161\u00ed.<\/p>\n<p>Pokyny k zah\u00e1jen\u00ed pr\u00e1ce lze nal\u00e9zt v ofici\u00e1ln\u00ed dokumentaci framework\u016f. Pr\u00e1ce s nimi vy\u017eaduje o n\u011bco v\u00edce dovednost\u00ed ne\u017e pr\u00e1ce s poskytovatelem \u2014 to minim\u00e1ln\u011b zahrnuje schopnost spustit Kubernetes cluster p\u0159es CLI. Maxim\u00e1ln\u011b zahrnout do pr\u00e1ce dal\u0161\u00ed open-source n\u00e1stroje (nap\u0159\u00edklad spr\u00e1vce front Kafka).<\/p>\n<p>Bez ohledu na to, jak\u00fdm zp\u016fsobem budeme pracovat se Serverless \u2014 prost\u0159ednictv\u00edm poskytovatele nebo pomoc\u00ed open-source, z\u00edsk\u00e1me \u0159adu v\u00fdhod a nev\u00fdhod p\u0159\u00edstupu Serverless.<\/p>\n<h2>Z pohledu v\u00fdhod a nev\u00fdhod<\/h2>\n<p>\nServerless rozv\u00edj\u00ed my\u0161lenky kontejnerov\u00e9 infrastruktury a mikroslu\u017eeb, kde t\u00fdmy mohou pracovat v multijazy\u010dn\u00e9m re\u017eimu, ani\u017e by byly v\u00e1z\u00e1ny na jednu platformu. Budov\u00e1n\u00ed syst\u00e9mu se zjednodu\u0161uje a opravit chyby je sna\u017e\u0161\u00ed. Mikroslu\u017ebov\u00e1 architektura umo\u017e\u0148uje mnohem rychleji p\u0159id\u00e1vat do syst\u00e9mu nov\u00e9 funkce ne\u017e v p\u0159\u00edpad\u011b monolitick\u00e9 aplikace.<\/p>\n<p><strong>Serverless je\u0161t\u011b v\u00edce zkracuje \u010das v\u00fdvoje,<\/strong> co\u017e umo\u017e\u0148uje v\u00fdvoj\u00e1\u0159\u016fm soust\u0159edit se v\u00fdhradn\u011b na byznys logiku aplikace a psan\u00ed k\u00f3du. V d\u016fsledku toho se zkracuje \u010das uveden\u00ed v\u00fdvoje na trh.<\/p>\n<p><strong>Jako bonus z\u00edsk\u00e1v\u00e1me automatick\u00e9 \u0161k\u00e1lov\u00e1n\u00ed podle zat\u00ed\u017een\u00ed,<\/strong> a plat\u00edme pouze za pou\u017eit\u00e9 zdroje a jen v tu dobu, kdy jsou vyu\u017e\u00edv\u00e1ny.<\/p>\n<p>Stejn\u011b jako ka\u017ed\u00e1 technologie m\u00e1 Serverless sv\u00e9 nev\u00fdhody.<\/p>\n<p><em>Jednou z takov\u00fdch nev\u00fdhod m\u016f\u017ee b\u00fdt doba studen\u00e9ho startu (pr\u016fm\u011brn\u011b a\u017e 1 sekunda pro takov\u00e9 jazyky jako JavaScript, Python, Go, Java, Ruby).<\/em><\/p>\n<p>Z jedn\u00e9 strany doba studen\u00e9ho startu ve skute\u010dnosti z\u00e1vis\u00ed na mnoha prom\u011bnn\u00fdch: jazyk, ve kter\u00e9m je funkce naps\u00e1na, po\u010det knihoven, objem k\u00f3du, komunikace s dal\u0161\u00edmi zdroji (t\u011bmi jsou datab\u00e1ze nebo servery pro autentizaci). Jeliko\u017e v\u00fdvoj\u00e1\u0159 tyto prom\u011bnn\u00e9 \u0159\u00edd\u00ed, m\u016f\u017ee zkr\u00e1tit dobu startu. Na druhou stranu v\u0161ak v\u00fdvoj\u00e1\u0159 nem\u016f\u017ee \u0159\u00eddit dobu spu\u0161t\u011bn\u00ed kontejneru \u2013 zde z\u00e1le\u017e\u00ed v\u0161e na poskytovateli.<\/p>\n<p>Studen\u00fd start se m\u016f\u017ee zm\u011bnit na tepl\u00fd, kdy\u017e funkce znovu vyu\u017eije kontejner, kter\u00fd byl spu\u0161t\u011bn p\u0159edchoz\u00ed ud\u00e1lost\u00ed. Tato situace nastane ve t\u0159ech p\u0159\u00edpadech:<\/p>\n<ul>\n<li>pokud z\u00e1kazn\u00edci \u010dasto pou\u017e\u00edvaj\u00ed slu\u017ebu a roste po\u010det vol\u00e1n\u00ed funkc\u00ed;<\/li>\n<li>pokud poskytovatel, platforma nebo r\u00e1mec umo\u017e\u0148uj\u00ed, aby \u010d\u00e1sti kontejner\u016f byly spu\u0161t\u011bny nep\u0159etr\u017eit\u011b;<\/li>\n<li>pokud v\u00fdvoj\u00e1\u0159 spou\u0161t\u00ed funkce podle \u010dasova\u010de (\u0159ekn\u011bme, ka\u017ed\u00e9 3 minuty).<\/li>\n<\/ul>\n<p>\nPro mnoh\u00e9 aplikace nen\u00ed studen\u00fd start probl\u00e9m. Je t\u0159eba vych\u00e1zet z typu a \u00fakol\u016f slu\u017eby. Zpo\u017ed\u011bn\u00ed startu o sekundu nemus\u00ed b\u00fdt v\u017edy kritick\u00e9 pro podnikov\u00e1 \u0159e\u0161en\u00ed, ale m\u016f\u017ee se st\u00e1t kritick\u00fdm pro zdravotnick\u00e9 slu\u017eby. Pravd\u011bpodobn\u011b v tomto p\u0159\u00edpad\u011b serverless p\u0159\u00edstup ji\u017e nebude vyhovovat.<\/p>\n<p><em>Dal\u0161\u00edm nedostatkem serverless je kr\u00e1tk\u00e1 doba \u017eivota funkce (timeout, b\u011bhem kter\u00e9ho mus\u00ed funkce b\u00fdt vykon\u00e1na).<\/em><\/p>\n<p>Pokud v\u0161ak m\u00e1te v pl\u00e1nu pracovat s dlouhodob\u00fdmi \u00fakoly, m\u016f\u017eete pou\u017e\u00edt hybridn\u00ed architekturu \u2013 zkombinovat serverless s jinou technologi\u00ed.<\/p>\n<p><em>Ne v\u0161echny syst\u00e9my budou moci fungovat na z\u00e1klad\u011b serverless sch\u00e9matu.<\/em><\/p>\n<p>N\u011bkter\u00e9 aplikace st\u00e1le budou uchov\u00e1vat data a stav b\u011bhem vykon\u00e1v\u00e1n\u00ed. N\u011bkter\u00e9 architektury z\u016fstanou monolitn\u00ed, a n\u011bkter\u00e9 funkce budou dlouhodob\u00e9. P\u0159esto (jako kdysi cloudov\u00e9 technologie a pozd\u011bji kontejnery) je serverless technologi\u00ed s velkou budoucnost\u00ed.<\/p>\n<p>V tomto ohledu bych cht\u011bl plynule p\u0159ej\u00edt k ot\u00e1zce pou\u017eit\u00ed p\u0159\u00edstupu serverless.<\/p>\n<h2>Z pohledu pou\u017eit\u00ed<\/h2>\n<p>\nV roce 2018 vzrostl procentu\u00e1ln\u00ed pod\u00edl vyu\u017e\u00edv\u00e1n\u00ed serverless <noindex><a rel=\"nofollow\" href=\"https:\/\/media.flexera.com\/documents\/rightscale-2019-state-of-the-cloud-report-from-flexera.pdf\">1,5kr\u00e1t<\/a><\/noindex>. Mezi spole\u010dnostmi, kter\u00e9 ji\u017e tuto technologii implementovaly do sv\u00fdch slu\u017eeb, jsou takov\u00ed giganti trhu jako Twitter, PayPal, Netflix, T-Mobile, Coca-Cola. Je t\u0159eba rozum\u011bt tomu, \u017ee serverless nen\u00ed panacea, ale n\u00e1stroj pro \u0159e\u0161en\u00ed ur\u010dit\u00e9ho okruhu \u00fakol\u016f:<\/p>\n<ul>\n<li><strong>Sn\u00ed\u017eit ne\u010dinnost zdroj\u016f.<\/strong> Nen\u00ed nutn\u00e9 neust\u00e1le udr\u017eovat virtu\u00e1ln\u00ed stroj pro slu\u017eby, na kter\u00e9 se jen m\u00e1lokdy obrac\u00ed.<\/li>\n<li><strong>Zpracovat data \u201eza chodu\u201c.<\/strong> Sni\u017eovat velikost obr\u00e1zk\u016f, odstra\u0148ovat pozad\u00ed, m\u011bnit k\u00f3dov\u00e1n\u00ed videa, pracovat se senzory IoT, prov\u00e1d\u011bt matematick\u00e9 operace.\n<\/li>\n<li><strong>\u201eSpojit\u201c r\u016fzn\u00e9 slu\u017eby dohromady.<\/strong> Gitov\u00e1 repositor\u00e1\u0159 s intern\u00edmi aplikacemi, chat-bot ve Slacku s Jira a kalend\u00e1\u0159em.<\/li>\n<li><strong>Vyva\u017eovat z\u00e1t\u011b\u017e.<\/strong> Zde se na chv\u00edli pozastav\u00edme.<\/li>\n<\/ul>\n<p>\nP\u0159edstavme si slu\u017ebu, na kterou p\u0159ich\u00e1z\u00ed 50 lid\u00ed. Pro tuto slu\u017ebu je vyhrazen virtu\u00e1ln\u00ed stroj s slab\u00fdm hardwarem. Ob\u010das se z\u00e1t\u011b\u017e na slu\u017ebu zv\u00fd\u0161\u00ed n\u011bkolikan\u00e1sobn\u011b. V t\u00e9 chv\u00edli slab\u00fd hardware sel\u017ee.<\/p>\n<p>M\u016f\u017eeme do syst\u00e9mu zahrnout vyva\u017eova\u010d z\u00e1t\u011b\u017ee, kter\u00fd rozd\u011bl\u00ed z\u00e1t\u011b\u017e nap\u0159\u00edklad na t\u0159i virtu\u00e1ln\u00ed stroje. V t\u00e9to f\u00e1zi nem\u016f\u017eeme p\u0159esn\u011b p\u0159edpov\u011bd\u011bt z\u00e1t\u011b\u017e, a proto dr\u017e\u00edme n\u011bjak\u00e9 prost\u0159edky spu\u0161t\u011bn\u00e9 jako \u201erezervu\u201c. A plat\u00edme za ne\u010dinnost. <\/p>\n<p>V takov\u00e9 situaci m\u016f\u017eeme optimalizovat syst\u00e9m hybridn\u00edm p\u0159\u00edstupem: za vyva\u017eova\u010dem z\u00e1t\u011b\u017ee ponech\u00e1me jeden virtu\u00e1ln\u00ed stroj a zavedeme odkaz na Serverless Endpoint s funkcemi. Pokud z\u00e1t\u011b\u017e p\u0159ekro\u010d\u00ed pr\u00e1h, vyva\u017eova\u010d spust\u00ed instance funkc\u00ed, kter\u00e9 p\u0159evezmou \u010d\u00e1st zpracov\u00e1n\u00ed po\u017eadavk\u016f.<\/p>\n<p><img decoding=\"async\" alt=\"Serverless po stojan\u00edc\u00edch\" src=\"\/wp-content\/uploads\/2019\/05\/79262c19faba29a4639a05e3097f7914.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nT\u00edmto zp\u016fsobem lze Serverless vyu\u017e\u00edvat tam, kde je t\u0159eba zpracovat velk\u00e9 mno\u017estv\u00ed po\u017eadavk\u016f, i kdy\u017e ne p\u0159\u00edli\u0161 \u010dasto. V takov\u00e9m p\u0159\u00edpad\u011b je levn\u011bj\u0161\u00ed spustit n\u011bkolik funkc\u00ed na 15 minut, ne\u017e trvale udr\u017eovat virtu\u00e1ln\u00ed stroj nebo server.<\/p>\n<p>P\u0159esto\u017ee maj\u00ed serverless v\u00fdpo\u010dty mnoho v\u00fdhod, p\u0159ed jejich zaveden\u00edm je pot\u0159eba nejprve posoudit logiku aplikace a pochopit, jak\u00e9 \u00fakoly m\u016f\u017ee Serverless vy\u0159e\u0161it v konkr\u00e9tn\u00edm p\u0159\u00edpad\u011b. <\/p>\n<h2>Serverless a Selectel<\/h2>\n<p>\nV Selectel jsme ji\u017e <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\">zjednodu\u0161ili pr\u00e1ci s Kubernetes<\/a><\/noindex> prost\u0159ednictv\u00edm na\u0161eho ovl\u00e1dac\u00edho panelu. Nyn\u00ed budujeme vlastn\u00ed FaaS platformu. Chceme, aby v\u00fdvoj\u00e1\u0159i mohli \u0159e\u0161it sv\u00e9 \u00fakoly pomoc\u00ed Serverless prost\u0159ednictv\u00edm pohodln\u00e9ho a flexibiln\u00edho rozhran\u00ed.<\/p>\n<p>Pokud m\u00e1te n\u00e1pady, jak by m\u011bla vypadat ide\u00e1ln\u00ed FaaS platforma a jak chcete pou\u017e\u00edvat Serverless ve sv\u00fdch projektech, pod\u011blte se o n\u011b v koment\u00e1\u0159\u00edch. Va\u0161e p\u0159\u00e1n\u00ed vezmeme v \u00favahu p\u0159i v\u00fdvoji platformy.<br \/>\n\u00a0<br \/>\nMateri\u00e1ly pou\u017eit\u00e9 v \u010dl\u00e1nku:<\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/www.rightscale.com\/lp\/state-of-the-cloud\">Pod\u00edl vyu\u017e\u00edv\u00e1n\u00ed Serverless se zv\u00fd\u0161il o 50 % (\u00fapln\u00e1 zpr\u00e1va RightScale)<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/mikhail.io\/serverless\/coldstarts\/aws\/\">Jak na dobu studen\u00e9ho startu p\u016fsob\u00ed jazyk aplikace<\/a><\/noindex><\/li>\n<\/ul>\n<p>Zdroj: <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.3 - 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\/cs\/blog\/administrirovanie\/serverless-po-stoechkam\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\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\/cs\/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 podle kategori\u00ed | ProHoster","description":"Serverless nen\u00ed o fyzick\u00e9 absenci server\u016f.","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/serverless-po-stoechkam","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","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\/cs\/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\/cs\/wp-json\/wp\/v2\/posts\/33935","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=33935"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/33935\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media\/25594"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=33935"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=33935"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=33935"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}