{"id":35006,"date":"2019-10-31T22:01:47","date_gmt":"2019-10-31T19:01:47","guid":{"rendered":"https:\/\/prohoster.info\/blog\/5-printsipov-zdravogo-smysla-dlya-sozdaniya-cloud-native-apps\/"},"modified":"2019-10-31T22:01:47","modified_gmt":"2019-10-31T19:01:47","slug":"5-printsipov-zdravogo-smysla-dlya-sozdaniya-cloud-native-apps","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hu\/blog\/news\/5-printsipov-zdravogo-smysla-dlya-sozdaniya-cloud-native-apps","title":{"rendered":"5 j\u00f3zan\u00e9sz elve a felh\u0151-alkalmaz\u00e1sok l\u00e9trehoz\u00e1s\u00e1hoz","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>A \"felh\u0151orient\u00e1lt\" (cloud native) vagy egyszer\u0171en \"felh\u0151s\" alkalmaz\u00e1sokat kifejezetten felh\u0151infrastrukt\u00far\u00e1kon val\u00f3 m\u0171k\u00f6d\u00e9shez alak\u00edtj\u00e1k ki. \u00c1ltal\u00e1ban ezeket gyeng\u00e9n \u00f6sszekapcsolt mikroszolg\u00e1ltat\u00e1sok halmazak\u00e9nt \u00e9p\u00edtik fel, amelyeket kont\u00e9nerekbe csomagolnak, \u00e9s amelyek ir\u00e1ny\u00edt\u00e1s\u00e1t a felh\u0151platform v\u00e9gzi. Az ilyen alkalmaz\u00e1sok alap\u00e9rtelmez\u00e9s szerint k\u00e9szen \u00e1llnak a hib\u00e1kra, teh\u00e1t megb\u00edzhat\u00f3an m\u0171k\u00f6dnek \u00e9s sk\u00e1l\u00e1zhat\u00f3k m\u00e9g komoly infrastrukt\u00fara szint\u0171 meghib\u00e1sod\u00e1sok eset\u00e9n. A m\u00e1sik oldalon vannak a felh\u0151platform \u00e1ltal a kont\u00e9neres alkalmaz\u00e1sokra kivetett korl\u00e1toz\u00e1sok (szerz\u0151d\u00e9sek), amelyek lehet\u0151v\u00e9 teszik sz\u00e1mukra az automatikus kezel\u00e9s\u00e9t.<\/p>\n<p><img decoding=\"async\" alt=\"5 j\u00f3zan\u00e9sz elve a felh\u0151-alkalmaz\u00e1sok l\u00e9trehoz\u00e1s\u00e1hoz\" src=\"\/wp-content\/uploads\/2019\/06\/1f4af6f356ed36d3fbd8adef333501fa.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTiszt\u00e1ban l\u00e9v\u00e9n a felh\u0151alap\u00fa alkalmaz\u00e1sokra val\u00f3 \u00e1tt\u00e9r\u00e9s sz\u00fcks\u00e9gess\u00e9g\u00e9vel \u00e9s fontoss\u00e1g\u00e1val, sok szervezet m\u00e9g mindig nem tudja, hol kezdje. Ebben a bejegyz\u00e9sben egy sor elvet fogunk \u00e1ttekinteni, amelyek betart\u00e1sa a kont\u00e9neres alkalmaz\u00e1sok fejleszt\u00e9se sor\u00e1n lehet\u0151v\u00e9 teszi a felh\u0151platformok potenci\u00e1lj\u00e1nak kihaszn\u00e1l\u00e1s\u00e1t, \u00e9s biztos\u00edtja az alkalmaz\u00e1sok megb\u00edzhat\u00f3 m\u0171k\u00f6d\u00e9s\u00e9t \u00e9s sk\u00e1l\u00e1z\u00e1s\u00e1t m\u00e9g s\u00falyos IT-infrastrukt\u00fara szint\u0171 meghib\u00e1sod\u00e1sok eset\u00e9n. Az itt bemutatott elvek v\u00e9gs\u0151 c\u00e9lja, hogy megtanuljuk olyan alkalmaz\u00e1sok k\u00e9sz\u00edt\u00e9s\u00e9t, amelyeket automatikusan kezelhetnek olyan felh\u0151platformok, mint a Kubernetes.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Szoftvertervez\u00e9si elvek<\/h3>\n<p>\nA programoz\u00e1s vil\u00e1g\u00e1ban az elvek \u00e1ltal\u00e1ban meglehet\u0151sen \u00e1ltal\u00e1nos szab\u00e1lyokat jelentenek, amelyeket a szoftver fejleszt\u00e9se sor\u00e1n be kell tartani. Ezek b\u00e1rmely programoz\u00e1si nyelv eset\u00e9ben alkalmazhat\u00f3k. Minden elvnek megvannak a maga c\u00e9ljai, amelyeket \u00e1ltal\u00e1ban mint\u00e1k \u00e9s gyakorlatok eszk\u00f6zk\u00e9nt haszn\u00e1lnak a megval\u00f3s\u00edt\u00e1sa. Ezenk\u00edv\u00fcl sz\u00e1mos alapelv l\u00e9tezik a min\u0151s\u00e9gi szoftver fejleszt\u00e9s\u00e9hez, amelyekb\u0151l minden m\u00e1s elv sz\u00e1rmazik. \u00cdme n\u00e9h\u00e1ny alapelv p\u00e9ld\u00e1ja:<\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/KISS_(%D0%BF%D1%80%D0%B8%D0%BD%D1%86%D0%B8%D0%BF)\">KISS<\/a><\/noindex> (Keep it simple, stupid) \u2013 ne bonyol\u00edtsuk t\u00fal;<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Don%E2%80%99t_repeat_yourself\">DRY<\/a><\/noindex> (Don\u2019t repeat yourself) \u2013 ne ism\u00e9telj\u00fck meg magunkat;<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/YAGNI\">YAGNI<\/a><\/noindex> (You aren\u2019t gonna need it) \u2013 ne hozzunk l\u00e9tre olyat, amire nincs k\u00f6zvetlen sz\u00fcks\u00e9g;<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A0%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8\">SoC<\/a><\/noindex> (Separation of concerns) \u2013 a felel\u0151ss\u00e9gek sz\u00e9tv\u00e1laszt\u00e1sa.<\/li>\n<\/ul>\n<p>\nK\u00e9ts\u00e9gtelen, hogy ezek az elvek nem hat\u00e1roznak meg konkr\u00e9t szab\u00e1lyokat, hanem a j\u00f3zan \u00e9sz alapj\u00e1n hozott, gyakorlati tapasztalatokra alapozott megfontol\u00e1sok, amelyeket sz\u00e1mos fejleszt\u0151 oszt meg \u00e9s hivatkozik r\u00e1juk rendszeresen.<br \/>\nEzen k\u00edv\u00fcl l\u00e9tezik <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/SOLID_(%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)\">SOLID<\/a><\/noindex> \u2013 az objektum-orient\u00e1lt programoz\u00e1s \u00e9s tervez\u00e9s els\u0151 \u00f6t alapelv\u00e9nek \u00f6sszess\u00e9ge, amelyet Robert Martin fogalmazott meg. A SOLID \u00e1ltal\u00e1nos \u00e9s szabadon \u00e9rtelmezhet\u0151, kieg\u00e9sz\u00edt\u0151 elveket tartalmaz, amelyek \u2013 ha egy\u00fcttesen alkalmazzuk \u0151ket \u2013 seg\u00edtenek magasabb min\u0151s\u00e9g\u0171 szoftverrendszerek l\u00e9trehoz\u00e1s\u00e1ban \u00e9s azok hossz\u00fa t\u00e1v\u00fa t\u00e1mogat\u00e1s\u00e1ban.<\/p>\n<p>A SOLID elvek az OOP ter\u00fclet\u00e9hez tartoznak, \u00e9s olyan fogalmak \u00e9s koncepci\u00f3k nyelv\u00e9n fogalmaz\u00f3dnak meg, mint a oszt\u00e1lyok, interf\u00e9szek \u00e9s \u00f6r\u00f6kl\u00e9s. Anal\u00f3g m\u00f3don felh\u0151alap\u00fa alkalmaz\u00e1sokhoz is megfogalmazhat\u00f3k fejleszt\u00e9si elvek, csak itt az alapvet\u0151 elem nem oszt\u00e1ly, hanem kont\u00e9ner. Ezeknek az elveknek a k\u00f6vet\u00e9s\u00e9vel kont\u00e9ner alap\u00fa alkalmaz\u00e1sokat lehet l\u00e9trehozni, amelyek jobban illeszkednek a Kubernetes-szer\u0171 felh\u0151platformok c\u00e9ljaihoz \u00e9s feladataihoz.<\/p>\n<h3>Felh\u0151orient\u00e1lt kont\u00e9nerek: Red Hat megk\u00f6zel\u00edt\u00e9se<\/h3>\n<p>\nMa a kont\u00e9nerekbe viszonylag k\u00f6nnyen becsomagolhat\u00f3 szinte b\u00e1rmilyen alkalmaz\u00e1s. De ahhoz, hogy az alkalmaz\u00e1sokat hat\u00e9konyan automatiz\u00e1lj\u00e1k \u00e9s orkestr\u00e1lj\u00e1k egy Kubernetes t\u00edpus\u00fa felh\u0151platform keretein bel\u00fcl, tov\u00e1bbi er\u0151fesz\u00edt\u00e9seket kell tenni.<br \/>\nAz al\u00e1bbi \u00f6tletek alapj\u00e1t a k\u00f6vetkez\u0151 metodol\u00f3gia k\u00e9pezi <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/SOLID_(%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)\">A Twelve-Factor App<\/a><\/noindex> \u00e9s sz\u00e1mos egy\u00e9b munka, amelyek a webalkalmaz\u00e1sok l\u00e9trehoz\u00e1s\u00e1nak k\u00fcl\u00f6nb\u00f6z\u0151 aspektusair\u00f3l sz\u00f3lnak, a forr\u00e1sk\u00f3d kezel\u00e9s\u00e9t\u0151l a sk\u00e1l\u00e1z\u00e1si modellekig. A le\u00edrt elvek kiz\u00e1r\u00f3lag kont\u00e9ner alap\u00fa alkalmaz\u00e1sokra vonatkoznak, amelyek mikroservizek alapj\u00e1n k\u00e9sz\u00fcltek \u00e9s felh\u0151platformokhoz, p\u00e9ld\u00e1ul Kuberneteshez k\u00e9sz\u00fcltek. Gondolataink alapvet\u0151 eleme a kont\u00e9ner k\u00e9p, \u00e9s a c\u00e9lk\u00f6rnyezet, amelyben a kont\u00e9nerek futnak, a kont\u00e9nerek orkestr\u00e1l\u00e1s\u00e1nak platformj\u00e1t jelenti. A felvetett elvek c\u00e9lja, hogy olyan kont\u00e9nerek l\u00e9trehoz\u00e1sa, amelyek eset\u00e9ben a legt\u00f6bb orkestr\u00e1l\u00f3 platformon automatiz\u00e1lhat\u00f3 a feladatok \u00fctemez\u00e9se (scheduling \u2013 A gazdag\u00e9p kiv\u00e1laszt\u00e1sa a kont\u00e9ner p\u00e9ld\u00e1ny\u00e1nak futtat\u00e1s\u00e1ra), sk\u00e1l\u00e1z\u00e1s \u00e9s monitoroz\u00e1s. Az elvek tetsz\u0151leges sorrendben ker\u00fclnek el\u0151ad\u00e1sra.<\/p>\n<h3>A ruh\u00e1zott feladat elve (Single Concern Principle, SCP)<\/h3>\n<p>\nEz az elv nagym\u00e9rt\u00e9kben hasonl\u00edt az egyetlen felel\u0151ss\u00e9g elv\u00e9hez (Single Responsibility Principle, <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9F%D1%80%D0%B8%D0%BD%D1%86%D0%B8%D0%BF_%D0%B5%D0%B4%D0%B8%D0%BD%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%B9_%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8\">SRP<\/a><\/noindex>), amely a SOLID elveinek r\u00e9sze, \u00e9s azt mondja, hogy minden objektumnak egyetlen felel\u0151ss\u00e9ggel kell rendelkeznie, \u00e9s ezt a felel\u0151ss\u00e9get teljes m\u00e9rt\u00e9kben egy oszt\u00e1lyba kell encapzul\u00e1lni. Az SRP l\u00e9nyege, hogy minden felel\u0151ss\u00e9g egy ok a v\u00e1ltoztat\u00e1sokra, \u00e9s az oszt\u00e1lynak egyetlen egyetlen okb\u00f3l kell v\u00e1ltozni.<\/p>\n<p>Az SCP eset\u00e9ben a 'felel\u0151ss\u00e9g' (responsibility) helyett a 'feladat' (concern) sz\u00f3t haszn\u00e1ljuk, hogy egy magasabb absztrakci\u00f3s szintet \u00e9s egy t\u00e1gabb \u00e9rtelemben vett szerepet jel\u00f6lj\u00fcnk, mint az OOP oszt\u00e1ly. \u00c9s ha az SRP c\u00e9lja, hogy csak egy okot legyen a v\u00e1ltoz\u00e1sra, akkor az SCP m\u00f6g\u00f6tt az a sz\u00e1nd\u00e9k \u00e1ll, hogy n\u00f6velje a kont\u00e9nerek \u00fajrahaszn\u00e1lhat\u00f3s\u00e1g\u00e1t \u00e9s cser\u00e9lhet\u0151s\u00e9g\u00e9t. Az SRP-t k\u00f6vetve \u00e9s olyan kont\u00e9nert l\u00e9trehozva, amely csak egyetlen feladatot old meg, funkcion\u00e1lisan befejezett m\u00f3don, n\u00f6veled annak es\u00e9ly\u00e9t, hogy a kont\u00e9ner k\u00e9p\u00e9t k\u00fcl\u00f6nb\u00f6z\u0151 alkalmaz\u00e1si kontextusokban \u00fajrahaszn\u00e1lod.<\/p>\n<p>Az SCP elve azt mondja, hogy minden kont\u00e9nernek egyetlen feladatot kell megoldania, \u00e9s ezt j\u00f3l kell tennie. Ezenk\u00edv\u00fcl az SCP az kont\u00e9nerek vil\u00e1g\u00e1ban k\u00f6nnyebben el\u00e9rhet\u0151, mint az SRP az OOP vil\u00e1g\u00e1ban, mivel a kont\u00e9nerek \u00e1ltal\u00e1ban egyetlen folyamatot hajtanak v\u00e9gre, \u00e9s a legt\u00f6bb id\u0151t az a folyamat egyetlen feladat megold\u00e1s\u00e1ra ford\u00edtja.<\/p>\n<p>Ha egy kont\u00e9ner mikroszolg\u00e1ltat\u00e1snak t\u00f6bb feladatot kellene megoldania, akkor azt egyfeladatos kont\u00e9nerekre lehet bontani, \u00e9s egy pod-ba (a kont\u00e9nerplatform telep\u00edt\u00e9si egys\u00e9ge) \u00f6sszegy\u0171jteni oldalkonfigur\u00e1ci\u00f3s \u00e9s init-kont\u00e9nerekkel. Ezenk\u00edv\u00fcl az SCP megk\u00f6nny\u00edti egy r\u00e9gi kont\u00e9ner (p\u00e9ld\u00e1ul egy webszerver vagy egy \u00fczenet k\u00f6zvet\u00edt\u0151) cser\u00e9j\u00e9t egy \u00fajra, ami ugyanezt a feladatot oldja meg, de b\u0151v\u00edtett funkcionalit\u00e1ssal vagy jobb sk\u00e1l\u00e1zhat\u00f3s\u00e1ggal rendelkezik.<\/p>\n<p><img decoding=\"async\" alt=\"5 j\u00f3zan\u00e9sz elve a felh\u0151-alkalmaz\u00e1sok l\u00e9trehoz\u00e1s\u00e1hoz\" src=\"\/wp-content\/uploads\/2019\/06\/a029e1ca36ace66550c94087e4aecc8e.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>A magas megfigyelhet\u0151s\u00e9g elve (High Observability Principle, HOP)<\/h3>\n<p>\nKontejnerk\u00e9nt t\u00f6rt\u00e9n\u0151 alkalmaz\u00e1scsomagol\u00e1s \u00e9s futtat\u00e1s eset\u00e9n az alkalmaz\u00e1sok maguk is \"fekete dobozk\u00e9nt\" m\u0171k\u00f6dnek. Azonban, ha felh\u0151alap\u00fa kont\u00e9nerekr\u0151l van sz\u00f3, akkor speci\u00e1lis API interf\u00e9szeket kell biztos\u00edtaniuk a futtat\u00e1si k\u00f6rnyezet sz\u00e1m\u00e1ra, hogy szab\u00e1lyozni tudj\u00e1k a kont\u00e9nerek \u00e9ps\u00e9g\u00e9t, \u00e9s sz\u00fcks\u00e9g eset\u00e9n megfelel\u0151 int\u00e9zked\u00e9seket tudjanak tenni. En\u00e9lk\u00fcl nem lehets\u00e9ges a kont\u00e9nerek friss\u00edt\u00e9seinek automatiz\u00e1l\u00e1s\u00e1nak egys\u00e9ges\u00edt\u00e9se \u00e9s \u00e9letciklusuk kezel\u00e9s\u00e9nek, ami viszont rontja a szoftveres rendszer megb\u00edzhat\u00f3s\u00e1g\u00e1t \u00e9s haszn\u00e1lhat\u00f3s\u00e1g\u00e1t.<\/p>\n<p><img decoding=\"async\" alt=\"5 j\u00f3zan\u00e9sz elve a felh\u0151-alkalmaz\u00e1sok l\u00e9trehoz\u00e1s\u00e1hoz\" src=\"\/wp-content\/uploads\/2019\/06\/7df1320108d9b635c10c6cf41d5dfef6.jpg\" style=\"display:block;margin: 0 auto;\" \/> <br \/>\nA gyakorlatban a kont\u00e9neres alkalmaz\u00e1snak legal\u00e1bb API-val kell rendelkeznie a k\u00fcl\u00f6nb\u00f6z\u0151 t\u00edpus\u00fa \u00e9ps\u00e9gvizsg\u00e1latokhoz: \u00e9leter\u0151-teszt (liveness) \u00e9s k\u00e9szenl\u00e9ti teszt (readiness) v\u00e9gz\u00e9s\u00e9re. Ha az alkalmaz\u00e1s t\u00f6bbre hivatott, m\u00e1s \u00e1llapotellen\u0151rz\u00e9si eszk\u00f6z\u00f6ket is kell biztos\u00edtania. P\u00e9ld\u00e1ul fontos esem\u00e9nyek napl\u00f3z\u00e1s\u00e1t STDERR \u00e9s STDOUT seg\u00edts\u00e9g\u00e9vel a napl\u00f3k aggreg\u00e1l\u00e1s\u00e1hoz Fluentd, Logstash \u00e9s hasonl\u00f3 eszk\u00f6z\u00f6k haszn\u00e1lat\u00e1val. Tov\u00e1bb\u00e1 integr\u00e1l\u00f3dnia kell nyomk\u00f6vet\u00e9si \u00e9s metrikagy\u0171jt\u0151 k\u00f6nyvt\u00e1rakkal, mint p\u00e9ld\u00e1ul OpenTracing, Prometheus stb.<\/p>\n<p>\u00c1ltal\u00e1noss\u00e1gban v\u00e9ve az alkalmaz\u00e1s tov\u00e1bbra is \"fekete dobozk\u00e9nt\" szeml\u00e9lhet\u0151, de minden sz\u00fcks\u00e9ges API-t fel kell szerelni, amely lehet\u0151v\u00e9 teszi a platform sz\u00e1m\u00e1ra, hogy a lehet\u0151 legjobban figyelemmel k\u00eds\u00e9rje \u00e9s kezelje azt.<\/p>\n<h3>\u00c9letciklus Konformit\u00e1si Elv (Life-cycle Conformance Principle, LCP)<\/h3>\n<p>\nAz LCP a HOP ellent\u00e9te. M\u00edg a HOP arra utal, hogy a kont\u00e9nernek API-kat kell biztos\u00edtania a platform sz\u00e1m\u00e1ra az olvas\u00e1sra, az LCP megk\u00f6veteli az alkalmaz\u00e1st\u00f3l, hogy k\u00e9pes legyen fogadni inform\u00e1ci\u00f3t a platformr\u00f3l. R\u00e1ad\u00e1sul a kont\u00e9nernek nemcsak esem\u00e9nyeket kell kapnia, hanem reage\u00e1lnia is kell r\u00e1juk. Itt sz\u00e1rmazik a n\u00e9v, amely a platform sz\u00e1m\u00e1ra API-kat k\u00f6vetel meg az \u00edr\u00e1shoz.<\/p>\n<p><img decoding=\"async\" alt=\"5 j\u00f3zan\u00e9sz elve a felh\u0151-alkalmaz\u00e1sok l\u00e9trehoz\u00e1s\u00e1hoz\" src=\"\/wp-content\/uploads\/2019\/06\/f32f5d133597ae3905206badc6677f92.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nA platformok k\u00fcl\u00f6nf\u00e9le esem\u00e9nyt\u00edpusokkal rendelkeznek, amelyek seg\u00edtik a kont\u00e9ner \u00e9letciklus\u00e1nak kezel\u00e9s\u00e9t. De annak eld\u00f6nt\u00e9se, hogy melyeket fogadja el \u00e9s hogyan reag\u00e1ljon, mag\u00e1nak az alkalmaz\u00e1snak kell lennie.<\/p>\n<p>Nyilv\u00e1nval\u00f3, hogy egyes esem\u00e9nyek fontosabbak, mint m\u00e1sok. P\u00e9ld\u00e1ul, ha egy alkalmaz\u00e1s rosszul kezeli a v\u00e9szhelyzeti le\u00e1ll\u00edt\u00e1st, akkor k\u00f6teles fogadni a signal: terminate (SIGTERM) \u00fczeneteket, \u00e9s a lehet\u0151 leggyorsabban elind\u00edtani a le\u00e1ll\u00edt\u00e1si elj\u00e1r\u00e1s\u00e1t, hogy m\u00e9g a signal: kill (SIGKILL) \u00e9rkez\u00e9se el\u0151tt be tudja fejezni a m\u0171k\u00f6d\u00e9s\u00e9t, amely a SIGTERM ut\u00e1n k\u00f6vetkezik.<\/p>\n<p>Ezenk\u00edv\u00fcl az alkalmaz\u00e1s \u00e9letciklus\u00e1hoz olyan esem\u00e9nyek is fontosak lehetnek, mint a PostStart \u00e9s a PreStop. P\u00e9ld\u00e1ul az alkalmaz\u00e1s elind\u00edt\u00e1sa ut\u00e1n bizonyos id\u0151re sz\u00fcks\u00e9ge lehet a \"bemeleg\u00edt\u00e9sre\", miel\u0151tt v\u00e1laszolni tudna a k\u00e9r\u00e9sekre. Vagy az alkalmaz\u00e1snak valamilyen k\u00fcl\u00f6nleges m\u00f3don kell felszabad\u00edtania az er\u0151forr\u00e1sokat a le\u00e1ll\u00edt\u00e1skor.<\/p>\n<h3>A kont\u00e9nerk\u00e9p v\u00e1ltozatlans\u00e1g\u00e1nak elve (Image Immutability Principle, IIP)<\/h3>\n<p>\n\u00c1ltal\u00e1nos szab\u00e1ly, hogy a kont\u00e9neralkalmaz\u00e1soknak a l\u00e9trehoz\u00e1s ut\u00e1n v\u00e1ltozatlannak kell maradniuk, f\u00fcggetlen\u00fcl att\u00f3l, hogy k\u00fcl\u00f6nb\u00f6z\u0151 k\u00f6rnyezetekben futnak. Ez\u00e9rt sz\u00fcks\u00e9ges az adatok t\u00e1rol\u00e1s\u00e1nak k\u00fcls\u0151 forr\u00e1sokra val\u00f3 kiszervez\u00e9se fut\u00e1sid\u0151ben (m\u00e1s sz\u00f3val, k\u00fcls\u0151 eszk\u00f6z\u00f6k haszn\u00e1lata), valamint a k\u00fcls\u0151, adott fut\u00e1si k\u00f6rnyezethez igaz\u00edtott konfigur\u00e1ci\u00f3kra t\u00e1maszkodni, ahelyett, hogy minden k\u00f6rnyezethez egyedi kont\u00e9nereket hozn\u00e1nak l\u00e9tre vagy m\u00f3dos\u00edtan\u00e1nak. B\u00e1rmilyen v\u00e1ltoztat\u00e1s ut\u00e1n az alkalmaz\u00e1s kont\u00e9nerk\u00e9pet \u00fajra kell \u00e9p\u00edteni, \u00e9s az \u00f6sszes haszn\u00e1lt k\u00f6rnyezetben telep\u00edteni kell. \u00c9rdekess\u00e9g, hogy az IT-rendszerek kezel\u00e9s\u00e9ben hasonl\u00f3 elvet alkalmaznak, amelyet a szerverek \u00e9s az infrastrukt\u00fara v\u00e1ltozatlans\u00e1g\u00e1nak elve n\u00e9ven ismernek. <\/p>\n<p>Az IIP c\u00e9lja, hogy megakad\u00e1lyozza a k\u00fcl\u00f6n kont\u00e9nerk\u00e9pek l\u00e9trehoz\u00e1s\u00e1t k\u00fcl\u00f6nb\u00f6z\u0151 fut\u00e1si k\u00f6rnyezetekhez, \u00e9s mindenhol ugyanazt a k\u00e9pet haszn\u00e1lja a megfelel\u0151 konfigur\u00e1ci\u00f3val a konkr\u00e9t k\u00f6rnyezethez. Ezen elv k\u00f6vet\u00e9se lehet\u0151v\u00e9 teszi az olyan fontos felh\u0151automatikai gyakorlatok megval\u00f3s\u00edt\u00e1s\u00e1t, mint az alkalmaz\u00e1sok vissza\u00e1ll\u00edt\u00e1sa (roll-back) \u00e9s friss\u00edt\u00e9sek alkalmaz\u00e1sa (roll-forward).<\/p>\n<p><img decoding=\"async\" alt=\"5 j\u00f3zan\u00e9sz elve a felh\u0151-alkalmaz\u00e1sok l\u00e9trehoz\u00e1s\u00e1hoz\" src=\"\/wp-content\/uploads\/2019\/06\/86b93724830b37f82bf289b797407480.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>A folyamatok egyszeri haszn\u00e1lat\u00e1nak elve (Process Disposability Principle, PDP)<\/h3>\n<p>\nA kont\u00e9ner egyik legfontosabb jellemz\u0151je az efemerit\u00e1s: a kont\u00e9nerp\u00e9ld\u00e1ny k\u00f6nnyen l\u00e9trehozhat\u00f3 \u00e9s k\u00f6nnyen elpuszt\u00edthat\u00f3, \u00edgy b\u00e1rmikor k\u00f6nnyen kicser\u00e9lhet\u0151 egy m\u00e1sik p\u00e9ld\u00e1nyra. Ennek a cser\u00e9nek sz\u00e1mos oka lehet: a funkcionalit\u00e1s tesztjeinek meghi\u00fasul\u00e1sa, az alkalmaz\u00e1s sk\u00e1l\u00e1z\u00e1sa, m\u00e1sik hosztra val\u00f3 \u00e1thelyez\u00e9s, a platform er\u0151forr\u00e1sainak kimer\u00fcl\u00e9se vagy m\u00e1s helyzetek. <\/p>\n<p><img decoding=\"async\" alt=\"5 j\u00f3zan\u00e9sz elve a felh\u0151-alkalmaz\u00e1sok l\u00e9trehoz\u00e1s\u00e1hoz\" src=\"\/wp-content\/uploads\/2019\/06\/858287b23c276363313e35cf18b81190.jpg\" style=\"display:block;margin: 0 auto;\" \/> <br \/>\nEnnek k\u00f6vetkezt\u00e9ben a kont\u00e9neres alkalmaz\u00e1soknak valamilyen k\u00fcls\u0151 eszk\u00f6z seg\u00edts\u00e9g\u00e9vel kell meg\u0151rizni\u00fck \u00e1llapotukat, vagy bels\u0151 elosztott s\u00e9ma redundanci\u00e1t kell alkalmazniuk erre. Tov\u00e1bb\u00e1, az alkalmaz\u00e1snak gyorsan kell elindulnia \u00e9s befejez\u0151dnie, valamint fel kell k\u00e9sz\u00fclnie a hirtelen hardverhiba okozta v\u00e9gzetes le\u00e1ll\u00e1sra.<\/p>\n<p>Az egyik gyakorlat, amely seg\u00edt megval\u00f3s\u00edtani ezt az elvet, hogy kis m\u00e9ret\u0171 kont\u00e9nereket hozzunk l\u00e9tre. A felh\u0151alap\u00fa k\u00f6rnyezetek automatikusan kiv\u00e1lasztj\u00e1k a gazdag\u00e9pet a kont\u00e9nerp\u00e9ld\u00e1ny futtat\u00e1s\u00e1hoz, \u00edgy min\u00e9l kisebb a kont\u00e9ner m\u00e9rete, ann\u00e1l gyorsabban elindul \u2013 egyszer\u0171en gyorsabban m\u00e1solhat\u00f3 a c\u00e9lgazd\u00e1ra a h\u00e1l\u00f3zaton.<\/p>\n<h3>A f\u00fcggetlens\u00e9g elve (Self-containment Principle, S-CP)<\/h3>\n<p>\nEnnek az elvnek megfelel\u0151en a kont\u00e9ner \u00f6sszes sz\u00fcks\u00e9ges \u00f6sszetev\u0151j\u00e9t a gy\u00e1rt\u00e1s sor\u00e1n be kell \u00e9p\u00edteni. A kont\u00e9nert \u00fagy kell fel\u00e9p\u00edteni, hogy a rendszerben csak egy tiszta Linux mag van, ez\u00e9rt minden sz\u00fcks\u00e9ges k\u00f6nyvt\u00e1rat a kont\u00e9nerben kell elhelyezni. Itt kell lennie a megfelel\u0151 programoz\u00e1si nyelv futtat\u00f3k\u00f6rnyezet\u00e9nek, az alkalmaz\u00e1splatformnak (ha sz\u00fcks\u00e9ges) \u00e9s egy\u00e9b f\u00fcgg\u0151s\u00e9geknek, amelyekre a kont\u00e9neres alkalmaz\u00e1s m\u0171k\u00f6d\u00e9se sor\u00e1n sz\u00fcks\u00e9g lesz. <\/p>\n<p><img decoding=\"async\" alt=\"5 j\u00f3zan\u00e9sz elve a felh\u0151-alkalmaz\u00e1sok l\u00e9trehoz\u00e1s\u00e1hoz\" src=\"\/wp-content\/uploads\/2019\/06\/ecc7425510d63e4914c0c9a7e90b02a6.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Kiv\u00e9telek csak azok sz\u00e1m\u00e1ra k\u00e9sz\u00fclnek, amelyek k\u00f6rnyezett\u0151l f\u00fcgg\u0151en v\u00e1ltoznak, \u00e9s ezeket fut\u00e1s k\u00f6zben kell biztos\u00edtani, p\u00e9ld\u00e1ul a Kubernetes ConfigMap seg\u00edts\u00e9g\u00e9vel.<\/p>\n<p>Az alkalmaz\u00e1s t\u00f6bb kont\u00e9neriz\u00e1lt \u00f6sszetev\u0151t is tartalmazhat, p\u00e9ld\u00e1ul egy k\u00fcl\u00f6n adatb\u00e1zis-kont\u00e9nert egy kont\u00e9neralap\u00fa webalkalmaz\u00e1s r\u00e9szek\u00e9nt. Az S-CP elv szerint ezeket a kont\u00e9nereket nem szabad egyes\u00edteni, hanem \u00fagy kell kialak\u00edtani, hogy az adatb\u00e1zis-kont\u00e9ner tartalmazza az \u00f6sszes sz\u00fcks\u00e9ges dolgot az adatb\u00e1zis m\u0171k\u00f6d\u00e9s\u00e9hez, m\u00edg a webalkalmaz\u00e1s-kont\u00e9ner tartalmazza a webalkalmaz\u00e1s m\u0171k\u00f6d\u00e9s\u00e9hez sz\u00fcks\u00e9ges \u00f6sszes dolgot, bele\u00e9rtve a webszervert is. Ennek eredm\u00e9nyek\u00e9nt a webalkalmaz\u00e1s kont\u00e9ner fut\u00e1s k\u00f6zben az adatb\u00e1zis kont\u00e9nerre t\u00e1maszkodik, \u00e9s sz\u00fcks\u00e9g szerint h\u00edvja azt.<\/p>\n<h3>A fut\u00e1sidej\u0171 korl\u00e1toz\u00e1s elve (Runtime Confinement Principle, RCP)<\/h3>\n<p>\nAz S-CP elv alapj\u00e1n hat\u00e1rozzuk meg, hogy mik\u00e9nt kell \u00f6sszegy\u0171jteni a kont\u00e9nert, \u00e9s mit kell tartalmaznia a bin\u00e1ris k\u00e9pnek. De a kont\u00e9ner nem csup\u00e1n egy \"fekete doboz\", amelynek csak egy jellemz\u0151je van - a f\u00e1jl m\u00e9rete. A fut\u00e1s sor\u00e1n a kont\u00e9ner tov\u00e1bbi dimenzi\u00f3kkal b\u0151v\u00fcl: a felhaszn\u00e1lt mem\u00f3ria mennyis\u00e9ge, a processzorid\u0151 \u00e9s egy\u00e9b rendszerszolg\u00e1ltat\u00e1sok.<\/p>\n<p><img decoding=\"async\" alt=\"5 j\u00f3zan\u00e9sz elve a felh\u0151-alkalmaz\u00e1sok l\u00e9trehoz\u00e1s\u00e1hoz\" src=\"\/wp-content\/uploads\/2019\/06\/a52e6a656892e57479ac014a3e6f4316.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nItt hasznos a RCP elv, amely szerint a kont\u00e9nernek decapacit\u00e1lnia kell a rendszerszolg\u00e1ltat\u00e1sokra vonatkoz\u00f3 k\u00f6vetelm\u00e9nyeit, \u00e9s \u00e1t kell adnia azokat a platformnak. A platform optim\u00e1lisan tudja v\u00e9gezni a kont\u00e9nerek er\u0151forr\u00e1s-ig\u00e9nyprofilj\u00e1nak (mennyi CPU, mem\u00f3ria, h\u00e1l\u00f3zati \u00e9s t\u00e1rol\u00f3er\u0151forr\u00e1sra van sz\u00fcks\u00e9g) kezel\u00e9s\u00e9t, automatikus sk\u00e1l\u00e1z\u00e1st v\u00e9gezni, ir\u00e1ny\u00edtja az IT er\u0151forr\u00e1sokat, \u00e9s fenntartja a SLA szintjeit a kont\u00e9nerek sz\u00e1m\u00e1ra.<\/p>\n<p>A kont\u00e9ner er\u0151forr\u00e1s-k\u00f6vetelm\u00e9nyeinek kiel\u00e9g\u00edt\u00e9se mellett az alkalmaz\u00e1snak is fontos, hogy ne l\u00e9pje t\u00fal az \u00e1ltala meghat\u00e1rozott kereteket. Ellenkez\u0151 esetben, ha er\u0151forr\u00e1shi\u00e1ny l\u00e9p fel, a platform nagyobb val\u00f3sz\u00edn\u0171s\u00e9ggel \u00e1ll\u00edtja le vagy migr\u00e1lja az alkalmaz\u00e1st.<\/p>\n<p>A felh\u0151orient\u00e1lts\u00e1gr\u00f3l besz\u00e9lve els\u0151sorban a munkam\u00f3dszerr\u0151l van sz\u00f3. <br \/>\nEl\u0151z\u0151leg felv\u00e1zoltunk n\u00e9h\u00e1ny \u00e1ltal\u00e1nos elvet, amelyek metodol\u00f3giai alapot k\u00e9peznek a min\u0151s\u00e9gi kont\u00e9neres alkalmaz\u00e1sok fel\u00e9p\u00edt\u00e9s\u00e9hez felh\u0151alap\u00fa k\u00f6rnyezetben.<\/p>\n<p>Fontos megjegyezni, hogy e k\u00f6z\u00f6s elvek mellett tov\u00e1bbi fejlett m\u00f3dszerekre \u00e9s technik\u00e1kra is sz\u00fcks\u00e9ged lesz a kont\u00e9nerek kezel\u00e9s\u00e9ben. Ezen k\u00edv\u00fcl van n\u00e9h\u00e1ny r\u00f6vid aj\u00e1nl\u00e1sunk, amelyek specifikusabb jelleg\u0171ek, \u00e9s a helyzett\u0151l f\u00fcgg\u0151en kell alkalmazni (vagy nem alkalmazni) \u0151ket:<\/p>\n<ul>\n<li>Pr\u00f3b\u00e1lj meg minimaliz\u00e1lni a k\u00e9pek m\u00e9ret\u00e9t: t\u00e1vol\u00edtsd el a ideiglenes f\u00e1jlokat, \u00e9s ne telep\u00edts f\u00f6l\u00f6sleges csomagokat \u2013 min\u00e9l kisebb a kont\u00e9ner m\u00e9rete, ann\u00e1l gyorsabb a l\u00e9trehoz\u00e1sa \u00e9s \u00e1tkonfigur\u00e1l\u00e1sa a c\u00e9lhostra a h\u00e1l\u00f3zaton.<\/li>\n<li>Kezelj v\u00e9letlenszer\u0171 User-ID-kat: ne haszn\u00e1ld a sudo parancsot vagy k\u00fcl\u00f6nleges userid-t a kont\u00e9nereid futtat\u00e1s\u00e1hoz.<\/li>\n<li>Jel\u00f6ld meg a fontos portokat: a portsz\u00e1mokat fut\u00e1s k\u00f6zben is meg lehet hat\u00e1rozni, de a legjobb, ha az EXPOSE parancs seg\u00edts\u00e9g\u00e9vel adod meg \u0151ket \u2013 m\u00e1soknak \u00e9s programoknak k\u00f6nnyebb lesz haszn\u00e1lni a k\u00e9peidet. <\/li>\n<li>Tartsa meg az \u00e1lland\u00f3 adatokat k\u00f6teteken: azokat az adatokat, amelyeknek a kont\u00e9ner megsemmis\u00edt\u00e9se ut\u00e1n is meg kell maradniuk, k\u00f6tetekre kell menteni.<\/li>\n<li>Adja meg a k\u00e9pek metadat\u00e1j\u00e1t: a c\u00edmk\u00e9k, megjegyz\u00e9sek \u00e9s annot\u00e1ci\u00f3k megk\u00f6nny\u00edtik a k\u00e9pek haszn\u00e1lat\u00e1t \u2013 a t\u00f6bbi fejleszt\u0151 h\u00e1l\u00e1s lesz \u00e9rte.<\/li>\n<li>Szinkroniz\u00e1lja a hostot \u00e9s a k\u00e9peket: egyes kont\u00e9neralkalmaz\u00e1sokhoz sz\u00fcks\u00e9g van a kont\u00e9ner szinkroniz\u00e1l\u00e1s\u00e1ra a hosttal bizonyos attrib\u00fatumok, p\u00e9ld\u00e1ul az id\u0151 vagy a g\u00e9pid sz\u00e1ma szerint.<\/li>\n<li>\u00d6sszegz\u00e9sk\u00e9nt megosztjuk a sablonokat \u00e9s a legjobb gyakorlatokat, amelyek seg\u00edtenek a fent eml\u00edtett elvek hat\u00e9konyabb megval\u00f3s\u00edt\u00e1s\u00e1ban:<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/www.slideshare.net\/luebken\/container-patterns\">www.slideshare.net\/luebken\/container-patterns<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/engine\/userguide\/eng-image\/dockerfile_best-practices\">docs.docker.com\/engine\/userguide\/eng-image\/dockerfile_best-practices<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"http:\/\/docs.projectatomic.io\/container-best-practices\">docs.projectatomic.io\/container-best-practices<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/docs.openshift.com\/enterprise\/3.0\/creating_images\/guidelines.html\">docs.openshift.com\/enterprise\/3.0\/creating_images\/guidelines.html<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/www.usenix.org\/system\/files\/conference\/hotcloud16\/hotcloud16_burns.pdf\">www.usenix.org\/system\/files\/conference\/hotcloud16\/hotcloud16_burns.pdf<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/leanpub.com\/k8spatterns\/\">leanpub.com\/k8spatterns<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/12factor.net\/\">12factor.net<\/a><\/noindex><\/li>\n<\/ul>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/events.redhat.com\/profile\/form\/index.cfm?intcmp=701f20000012s47AAA&amp;PKFormID=0x5789474c4\"><b>Webin\u00e1rium az OpenShift Container Platform \u00faj verzi\u00f3j\u00e1r\u00f3l \u2013 4<\/b><\/a><\/noindex><br \/>\nJ\u00fanius 11-\u00e9n 11:00-kor<\/p>\n<p>Mit fog tanulni:<\/p>\n<ul>\n<li>Immutable Red Hat Enterprise Linux CoreOS<\/li>\n<li>OpenShift service mesh<\/li>\n<li>Operator framework<\/li>\n<li>Knative framework<\/li>\n<\/ul>\n<p>Forr\u00e1s: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/redhatrussia\/blog\/455024\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u00ab\u041e\u0431\u043b\u0430\u0447\u043d\u043e-\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435\u00bb (cloud native) \u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u00ab\u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0435\u00bb \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0432 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0445 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u0445. \u041e\u0431\u044b\u0447\u043d\u043e \u043e\u043d\u0438 \u0441\u0442\u0440\u043e\u044f\u0442\u0441\u044f \u043a\u0430\u043a \u043d\u0430\u0431\u043e\u0440 \u0441\u043b\u0430\u0431\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432, \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435, \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u0431\u043b\u0430\u0447\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u043e\u0439. \u0422\u0430\u043a\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0433\u043e\u0442\u043e\u0432\u044b \u043a \u0441\u0431\u043e\u044f\u043c, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u043d\u0430\u0434\u0435\u0436\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0434\u0430\u0436\u0435 \u043f\u0440\u0438 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u044b\u0445 \u043e\u0442\u043a\u0430\u0437\u0430\u0445 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f. \u041e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430 \u043c\u0435\u0434\u0430\u043b\u0438 \u2013 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":26340,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-35006","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u00ab\u041e\u0431\u043b\u0430\u0447\u043d\u043e-\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435\u00bb (cloud native) \u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u00ab\u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0435\u00bb \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0432 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0445 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u0445.\" \/>\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\/hu\/blog\/news\/5-printsipov-zdravogo-smysla-dlya-sozdaniya-cloud-native-apps\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"hu_HU\" \/>\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\udd475 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u043e\u0432 \u0437\u0434\u0440\u0430\u0432\u043e\u0433\u043e \u0441\u043c\u044b\u0441\u043b\u0430 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f cloud-native apps | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u00ab\u041e\u0431\u043b\u0430\u0447\u043d\u043e-\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435\u00bb (cloud native) \u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u00ab\u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0435\u00bb \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0432 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0445 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u0445.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hu\/blog\/news\/5-printsipov-zdravogo-smysla-dlya-sozdaniya-cloud-native-apps\" \/>\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-31T19:01:47+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:01:47+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\udd475 j\u00f3zan\u00e9sz elv a cloud-native alkalmaz\u00e1sok l\u00e9trehoz\u00e1s\u00e1hoz | ProHoster","description":"\"Felh\u0151orient\u00e1lt\" (cloud native) vagy egyszer\u0171en \"felh\u0151\" alkalmaz\u00e1sokat kifejezetten felh\u0151infrastrukt\u00far\u00e1kban val\u00f3 m\u0171k\u00f6d\u00e9sre terveznek.","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/news\/5-printsipov-zdravogo-smysla-dlya-sozdaniya-cloud-native-apps","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hu_HU","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\udd475 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u043e\u0432 \u0437\u0434\u0440\u0430\u0432\u043e\u0433\u043e \u0441\u043c\u044b\u0441\u043b\u0430 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f cloud-native apps | ProHoster","og:description":"\u00ab\u041e\u0431\u043b\u0430\u0447\u043d\u043e-\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435\u00bb (cloud native) \u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u00ab\u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0435\u00bb \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0432 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0445 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u0445.","og:url":"https:\/\/prohoster.info\/hu\/blog\/news\/5-printsipov-zdravogo-smysla-dlya-sozdaniya-cloud-native-apps","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-31T19:01:47+00:00","article:modified_time":"2019-10-31T19:01:47+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"35006","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 21:27:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:11:30","updated":"2026-01-21 21:27:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/35006","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/comments?post=35006"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/35006\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media\/26340"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=35006"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=35006"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=35006"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}