{"id":368,"date":"2021-12-14T21:39:26","date_gmt":"2021-12-14T20:39:26","guid":{"rendered":"http:\/\/spireng.sk\/?p=368"},"modified":"2024-11-13T19:40:04","modified_gmt":"2024-11-13T18:40:04","slug":"infrastruktura-ako-skladacka","status":"publish","type":"post","link":"https:\/\/spireng.sk\/en\/infrastruktura-ako-skladacka\/","title":{"rendered":"Infra\u0161trukt\u00fara ako sklada\u010dka"},"content":{"rendered":"<p>Svet IT je neust\u00e1le v&nbsp;pohybe. Je v&nbsp;pohybe, lebo sa\nneust\u00e1le sna\u017e\u00ed splni\u0165 nov\u00e9 a&nbsp;nov\u00e9 po\u017eiadavky, ktor\u00e9 s\u00fa na neho kladen\u00e9.\nA&nbsp;pritom si pravidelne vytv\u00e1ra probl\u00e9my, ktor\u00e9 sa v&nbsp;\u010fal\u0161om v\u00fdvoji\nsna\u017e\u00edm rie\u0161i\u0165. Medzi tak\u00e9to probl\u00e9my patr\u00ed napr\u00edklad mo\u017en\u00fd rozdiel medzi\nv\u00fdvoj\u00e1rov\u00fdm a&nbsp;produk\u010dn\u00fdm prostred\u00edm (kto by nepoznal zn\u00e1mu vetu: \u201eAle na\nmojom po\u010d\u00edta\u010di to ide.\u201c), alebo komplexn\u00fa infra\u0161trukt\u00faru, ktor\u00e1 v&nbsp;sebe\nzah\u0155\u0148a r\u00f4zne slu\u017eby = kusy softv\u00e9ru be\u017eiace ako server. V&nbsp;neposlednom rade\nje tu probl\u00e9m, \u017ee doba sa zr\u00fdch\u013euje a&nbsp;v\u00fdvojov\u00fd cyklus a&nbsp;interval\nnasadzovania sa skracuje. Preto by to nasadzovanie malo by\u0165 \u010do najjednoduch\u0161ie.\nTieto a&nbsp;e\u0161te nieko\u013eko \u010fal\u0161\u00edch probl\u00e9mov sa sna\u017e\u00ed rie\u0161i\u0165 nov\u00fd typ\nsoftv\u00e9rov\u00e9ho n\u00e1stroja \u2013 kontajnerov\u00fd syst\u00e9m. Dnes sa pozrieme na azda najzn\u00e1mej\u0161\u00ed\nz&nbsp;nich \u2013 Docker.<\/p>\n\n\n\n<p>Docker je pojem, ktor\u00fd sa objavil p\u00e1r rokov dozadu\na&nbsp;postupne ale&nbsp;isto sa dostal do povedomia v\u00e4\u010d\u0161iny v\u00fdvoj\u00e1rov\na&nbsp;spr\u00e1vcov informa\u010dn\u00fdch syst\u00e9mov. Docker je \u010fal\u0161\u00ed evolu\u010dn\u00fd krok po\nvirtu\u00e1lnych strojoch. Tie umo\u017e\u0148ovali na jednom po\u010d\u00edta\u010di\/serveri sp\u00fa\u0161\u0165a\u0165\nnieko\u013eko samostatn\u00fdch (z ve\u013ekej miery) izolovan\u00fdch opera\u010dn\u00fdch syst\u00e9mov. 6 a\u017e 8\nrokov dozadu bola virtualiz\u00e1cia ve\u013ek\u00fd pojem. Ka\u017ed\u00fd sa ju sna\u017eil pou\u017ei\u0165, lebo\nprin\u00e1\u0161ala efektivitu vyu\u017eitia softv\u00e9rov\u00fdch prostriedkov. A&nbsp;to je nie\u010do, \u010do\nmana\u017e\u00e9ri radi po\u010d\u00favaj\u00fa. A&nbsp;do toho pri\u0161iel Docker a&nbsp;posunul veci\n\u010falej.<\/p>\n\n\n\n<p>Docker je syst\u00e9m, ktor\u00fd vie spusti\u0165 nieko\u013eko nez\u00e1visl\u00fdch\nkontajnerov na jednom hos\u0165uj\u00facom po\u010d\u00edta\u010di. Ten kontajner sa d\u00e1 prirovna\u0165\nk&nbsp;virtu\u00e1lnemu stroju. Aspo\u0148 pre softv\u00e9r, ktor\u00fd v&nbsp;\u0148om be\u017e\u00ed, sa to jav\u00ed,\n\u017ee m\u00e1 kompletn\u00fd opera\u010dn\u00fd syst\u00e9m len pre seba. V&nbsp;skuto\u010dnosti sa ale\nspusten\u00edm kontajnera nespust\u00ed komplet nov\u00fd opera\u010dn\u00fd syst\u00e9m. Len sa vyu\u017eij\u00fa\nniektor\u00e9 mo\u017enosti Linuxov\u00e9ho jadra, v\u010faka ktor\u00fdm je mo\u017en\u00e9 vytvori\u0165 izolovan\u00e9\nprostredie, v&nbsp;ktorom be\u017e\u00ed nejak\u00fd softv\u00e9r. A&nbsp;v\u00fdhody oproti virtu\u00e1lnym\nstrojom s\u00fa \u00faspora syst\u00e9mov\u00fdch prostriedkov (kontajner je omnoho menej\nn\u00e1ro\u010dnej\u0161\u00ed na pam\u00e4\u0165, disk at\u010f ako virtu\u00e1lny stroj) a&nbsp;r\u00fdchlos\u0165, ktorou je\nmo\u017en\u00e9 s&nbsp;kontajnermi pracova\u0165.<\/p>\n\n\n\n<p>A&nbsp;ak\u00fd softv\u00e9r vlastne v&nbsp;t\u00fdch kontajneroch be\u017e\u00ed? Kontajner\ns&nbsp;MySQL datab\u00e1zou. K&nbsp;tomu \u010fal\u0161\u00ed s&nbsp;Apachom a&nbsp;nain\u0161talovan\u00fdm\nPHP-\u010dkom. Ved\u013ea neho \u010fal\u0161\u00ed s MongoDB datab\u00e1zou. A&nbsp;k&nbsp;tomu napr\u00edklad\njeden s&nbsp;Prometheusom a&nbsp;\u010fal\u0161\u00ed s&nbsp;Grafanou na monitorovanie\nsyst\u00e9mu. Hlavn\u00e1 my\u0161lienka je jeden softv\u00e9rov\u00fd komponent v&nbsp;infra\u0161trukt\u00fare =\njeden kontajner. Takto je cel\u00e1 infra\u0161trukt\u00fara ako ve\u013ek\u00e1 sklada\u010dka,\nv&nbsp;ktorej viete jednoducho \u010dasti prid\u00e1va\u0165\/odobera\u0165 a&nbsp;meni\u0165. <\/p>\n\n\n\n<p>Na za\u010diatku kontajner vznik\u00e1 z&nbsp;takzvan\u00e9ho image. To je\nnie\u010do ako \u0161abl\u00f3na kontajnera, z&nbsp;ktorej sa vyrob\u00ed jeho in\u0161tancia. Imagov je\nve\u013ea, tak\u017ee sta\u010d\u00ed vybra\u0165 zo zoznamu a&nbsp;rovno pou\u017ei\u0165. Ak vyv\u00edjate vlastn\u00fd\nsoftv\u00e9r a&nbsp;chcete ho ma\u0165 pekne v&nbsp;kontajneri, aby ste si ho vedeli\n\u013eahko nasadi\u0165, tak si viete vlastn\u00fd image vytvori\u0165 (zostavi\u0165).<\/p>\n\n\n\n<p>Ke\u010f u\u017e si kontajner v&nbsp;Dockeri spust\u00edte, tak ho viete potom\n\u0161tartova\u0165, stopova\u0165, pozera\u0165 jeho logy alebo v&nbsp;\u0148om vo vn\u00fatri sp\u00fa\u0161\u0165a\u0165\nnejak\u00e9 pr\u00edkazy. To by mohlo by\u0165 v\u0161etko. Ale to by Docker nesmel by\u0165 tak\nzauj\u00edmav\u00fd n\u00e1stroj, \u017ee sa \u010dasom okolo neho nevytvoril cel\u00fd ekosyst\u00e9m, ktor\u00fd\nv&nbsp;sebe obsahuje kade\u010do zauj\u00edmav\u00e9. Po\u010fme sa na to pozrie\u0165.<\/p>\n\n\n\n<p><strong>Docker Machine<\/strong> \u2013 dnes u\u017e na internete existuje ve\u013ea slu\u017eieb, ktor\u00e9 v\u00e1m umo\u017e\u0148uj\u00fa spusti\u0165 si viacero kontajnerov v\u00a0ich be\u017eiacom Docker syst\u00e9me. S\u00fa to v\u00a0podstate Docker hosty a\u00a0je ich ve\u013ea, a\u00a0aby pr\u00e1ca s\u00a0nimi bola \u010do najjednoduch\u0161ia, vznikol Docker Machine, ktor\u00fd v\u00e1m umo\u017e\u0148uje pracova\u0165 so vzdialen\u00fdmi Docker hostami jednoducho cez command line. Je to n\u00e1stroj, kde registrujete vzdialen\u00fd host a\u00a0potom len hovor\u00edte, ktor\u00fd kontajner chcete na ktorom hoste (ve\u013emi jednoducho povedan\u00e9).<\/p>\n\n\n\n<p><strong>Docker Compose<\/strong> \u2013 ak chcete pomocou Dockera vytvori\u0165 cel\u00fa infra\u0161trukt\u00faru \u2013 viacero kontajnerov vytvoren\u00fdch z\u00a0image-ov, pri\u010dom im spr\u00e1vne potrebujete nastavi\u0165 vlastnosti \u2013 v\u00fdsledn\u00fd skript m\u00f4\u017ee by\u0165 pomerne dlh\u00fd. Aby sa to dalo v\u0161etko pekne automatizova\u0165 a\u00a0pren\u00e1\u0161a\u0165, je tu Docker Compose. Z\u00e1kladom je jeden popisn\u00fd YAML s\u00fabor, v\u00a0ktorom je povedan\u00e9, \u010do v\u0161etko sa m\u00e1 pripravi\u0165. Na z\u00e1klade neho sa d\u00e1 r\u00fdchlo a\u00a0jednoducho pripravi\u0165 cel\u00e1 sie\u0165 kontajnerov.<\/p>\n\n\n\n<p><strong>Docker Swarm<\/strong> \u2013 nevyhnutnou po\u017eiadavkou pri ve\u013ek\u00fdch rie\u0161eniach je schopnos\u0165 high availability. Docker to rie\u0161i pomocou cluster a\u00a0m\u00e1 na to n\u00e1stroj, ktor\u00fd sa vol\u00e1 Docker Swarm. Ten sa postar\u00e1, \u017ee na pripraven\u00fd zoznam serverov nasad\u00ed po\u017eadovan\u00e9 kontajnery, a\u00a0to tak aby vytvorili cluster.<\/p>\n\n\n\n<p><strong>Portainer<\/strong> \u2013 ak nem\u00e1te radi command-line interface a\u00a0ste sk\u00f4r vizu\u00e1lny typ, toto je rozhranie pre v\u00e1s. Webovsk\u00e9 rozhranie v\u00a0kontajneri, ktor\u00fd nasad\u00edte do Dockera a\u00a0m\u00f4\u017eete spravova\u0165.<\/p>\n\n\n\n<p><strong>Moby Project<\/strong> \u2013 Docker sa nejak\u00fd \u010das dozadu rozhodol vyda\u0165 zverejni\u0165 zdrojov\u00e9 k\u00f3dy, ktor\u00e9 usporiadal do komponent, z\u00a0ktor\u00fdch je mo\u017en\u00e9 si zlo\u017ei\u0165 vlastn\u00fd Docker. To mo\u017eno nie je a\u017e tak zauj\u00edmav\u00e9, ale samotn\u00fd projekt je tak\u00fdm testovac\u00edm prostred\u00edm, kde Docker sk\u00fa\u0161a r\u00f4zne veci, ktor\u00e9 ke\u010f sa osved\u010dia, tak ich nesk\u00f4r zarad\u00ed do ofici\u00e1lneho releasu. Pre Docker nad\u0161encov to m\u00f4\u017ee by\u0165 miesto mnoh\u00fdch mo\u017enost\u00ed. <\/p>\n\n\n\n<p>Takto by sme mohli pokra\u010dova\u0165 \u010falej, kde na jednej \u00faspe\u0161nej my\u0161lienke sa postupne buduj\u00fa \u010fal\u0161ie. K\u013e\u00fa\u010dov\u00e9 je si uvedomi\u0165, \u017ee Docker je n\u00e1stroj, ktor\u00fd sa u\u017e masovo pou\u017e\u00edva, m\u00e1 ve\u013ek\u00fa komunitu a\u00a0ktor\u00fd sa neust\u00e1le vyv\u00edja. A\u00a0hlavne funguje. Rie\u0161i probl\u00e9my, na ktor\u00e9 je ur\u010den\u00fd a\u00a0rob\u00ed to pomerne dobre. Aj preto si za t\u00fdch p\u00e1r rokov z\u00edskal to\u013eko fan\u00fa\u0161ikov. <\/p>","protected":false},"excerpt":{"rendered":"<p>Svet IT je neust\u00e1le v&nbsp;pohybe. Je v&nbsp;pohybe, lebo sa neust\u00e1le sna\u017e\u00ed splni\u0165 nov\u00e9 a&nbsp;nov\u00e9 po\u017eiadavky, ktor\u00e9 s\u00fa na neho kladen\u00e9. A&nbsp;pritom si pravidelne vytv\u00e1ra probl\u00e9my, ktor\u00e9 sa v&nbsp;\u010fal\u0161om v\u00fdvoji sna\u017e\u00edm rie\u0161i\u0165. Medzi tak\u00e9to probl\u00e9my patr\u00ed napr\u00edklad mo\u017en\u00fd rozdiel medzi v\u00fdvoj\u00e1rov\u00fdm a&nbsp;produk\u010dn\u00fdm prostred\u00edm (kto by nepoznal zn\u00e1mu vetu: \u201eAle na mojom po\u010d\u00edta\u010di to ide.\u201c), alebo komplexn\u00fa [&hellip;]<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-368","post","type-post","status-publish","format-standard","hentry","category-informatika"],"_links":{"self":[{"href":"https:\/\/spireng.sk\/en\/wp-json\/wp\/v2\/posts\/368","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/spireng.sk\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/spireng.sk\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/spireng.sk\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/spireng.sk\/en\/wp-json\/wp\/v2\/comments?post=368"}],"version-history":[{"count":1,"href":"https:\/\/spireng.sk\/en\/wp-json\/wp\/v2\/posts\/368\/revisions"}],"predecessor-version":[{"id":369,"href":"https:\/\/spireng.sk\/en\/wp-json\/wp\/v2\/posts\/368\/revisions\/369"}],"wp:attachment":[{"href":"https:\/\/spireng.sk\/en\/wp-json\/wp\/v2\/media?parent=368"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/spireng.sk\/en\/wp-json\/wp\/v2\/categories?post=368"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/spireng.sk\/en\/wp-json\/wp\/v2\/tags?post=368"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}