{"id":79153,"date":"2020-04-24T19:42:43","date_gmt":"2020-04-24T17:42:43","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/istoriya-sozdaniya-oblachnogo-servisa-pripravlennaya-kiberpankom"},"modified":"2020-04-24T19:42:43","modified_gmt":"2020-04-24T17:42:43","slug":"istoriya-sozdaniya-oblachnogo-servisa-pripravlennaya-kiberpankom","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/istoriya-sozdaniya-oblachnogo-servisa-pripravlennaya-kiberpankom","title":{"rendered":"A felh\u0151szolg\u00e1ltat\u00e1s l\u00e9trehoz\u00e1s\u00e1nak t\u00f6rt\u00e9nete, cyberpunk k\u00eds\u00e9r\u0151kkel","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"A felh\u0151szolg\u00e1ltat\u00e1s l\u00e9trehoz\u00e1s\u00e1nak t\u00f6rt\u00e9nete, cyberpunk k\u00eds\u00e9r\u0151kkel\" src=\"\/wp-content\/uploads\/2020\/04\/d1cad1dfa3513b5794c7be916a9dbb4b.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Az IT ter\u00fclet\u00e9n elt\u00f6lt\u00f6tt id\u0151 n\u00f6veked\u00e9s\u00e9vel kezdesz \u00e9szrevenni, hogy a rendszereknek megvan a maguk jelleg\u00fck. Lehetnek enged\u00e9kenyek, hallgatagok, zabol\u00e1tlanok, vagy \u00e9ppen ellenkez\u0151leg, szigor\u00faak. Vonzaniuk kell, vagy \u00e9ppen ellenkez\u0151leg, eltasz\u00edtaniuk. \u00cdgy vagy \u00fagy, \u201emeg kell \u00e1llapodni\u201d vel\u00fck, lav\u00edrozni kell a \u201evizeken\u201d \u00e9s \u00e9p\u00edteni kell az interakci\u00f3ik l\u00e1ncolat\u00e1t.<\/p>\n<p><\/p>\n<p>Nos, nek\u00fcnk is megadatott, hogy fel\u00e9p\u00edts\u00fck a felh\u0151platformot, ehhez pedig \u201emeg kellett gy\u0151zn\u00fcnk\u201d n\u00e9h\u00e1ny alrendszert, hogy egy\u00fcttm\u0171k\u00f6djenek vel\u00fcnk. Szerencs\u00e9re van \u201eAPI nyelv\u00fcnk\u201d, \u00fcgyes kez\u00fcnk \u00e9s egy csom\u00f3 lelkesed\u00e9s\u00fcnk. <\/p>\n<p><\/p>\n<p>A cikkben nem lesz technikai hardcore, de besz\u00e1molok azokr\u00f3l a probl\u00e9m\u00e1kr\u00f3l, amelyekkel szembes\u00fclt\u00fcnk a felh\u0151 fel\u00e9p\u00edt\u00e9se sor\u00e1n. \u00dagy d\u00f6nt\u00f6ttem, hogy utunkat k\u00f6nnyed technikai fant\u00e1ziak\u00e9nt \u00edrom le, arr\u00f3l, hogyan kerest\u00fck a k\u00f6z\u00f6s nyelvet a rendszerekkel, \u00e9s hogy mi s\u00fclt ki bel\u0151le. <\/p>\n<p><\/p>\n<p>\u00dcdv\u00f6z\u00f6lj\u00fck a folytat\u00e1sban.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p><\/p>\n<h3 id=\"nachalo-puti\">Az \u00fat kezdete<\/h3>\n<p><\/p>\n<p>N\u00e9h\u00e1ny id\u0151vel ezel\u0151tt csapatunk sz\u00e1m\u00e1ra az volt a feladat, hogy elind\u00edtson egy felh\u0151platformot az \u00fcgyfeleink sz\u00e1m\u00e1ra. T\u00e1mogat\u00e1st kaptunk a vezet\u0151s\u00e9gt\u0151l, voltak forr\u00e1saink, hardver\u00fcnk \u00e9s szabads\u00e1gunk a technol\u00f3gi\u00e1k kiv\u00e1laszt\u00e1s\u00e1ra a szolg\u00e1ltat\u00e1s szoftveres megval\u00f3s\u00edt\u00e1s\u00e1hoz.<\/p>\n<p><\/p>\n<p>Ezen k\u00edv\u00fcl volt n\u00e9h\u00e1ny k\u00f6vetelm\u00e9ny:<\/p>\n<p><\/p>\n<ul>\n<li>a szolg\u00e1ltat\u00e1snak k\u00e9nyelmes felhaszn\u00e1l\u00f3i fi\u00f3kra van sz\u00fcks\u00e9ge;<\/li>\n<li>a platformnak integr\u00e1lva kell lennie a megl\u00e9v\u0151 sz\u00e1ml\u00e1z\u00f3rendszerbe;<\/li>\n<li>szoftveres \u00e9s hardveres r\u00e9sz: OpenStack + Tungsten Fabric (Open Contrail), amelyeket m\u00e9rn\u00f6keink m\u00e1r el\u00e9g j\u00f3l megtanultak \u201emegf\u0151zni\u201d.<\/li>\n<\/ul>\n<p><\/p>\n<p>Arr\u00f3l, hogyan j\u00f6tt \u00f6ssze a csapat, hogyan alak\u00edtott\u00e1k ki a felhaszn\u00e1l\u00f3i fi\u00f3k fel\u00fclet\u00e9t, \u00e9s hogyan sz\u00fclettek a tervez\u00e9si d\u00f6nt\u00e9sek, egy m\u00e1sik alkalommal mes\u00e9l\u00fcnk, ha a Habr k\u00f6z\u00f6ss\u00e9get \u00e9rdekli.<br \/>\nAz eszk\u00f6z\u00f6k, amelyeket haszn\u00e1lni akartunk:<\/p>\n<p><\/p>\n<ul>\n<li>Python + Flask + Swagger + SQLAlchemy \u2014 teljesen standard Python csomag;<\/li>\n<li>Vue.js a frontendhez;<\/li>\n<li>a komponensek \u00e9s szolg\u00e1ltat\u00e1sok k\u00f6z\u00f6tti interakci\u00f3t Celery seg\u00edts\u00e9g\u00e9vel oldottuk meg az AMQP felett.<\/li>\n<\/ul>\n<p><\/p>\n<p>A Python v\u00e1laszt\u00e1s\u00e1val kapcsolatos k\u00e9rd\u00e9sek el\u0151tt el\u0151re bocs\u00e1tom, hogy a nyelv megtal\u00e1lta a maga hely\u00e9t a c\u00e9g\u00fcnkn\u00e9l, \u00e9s k\u00f6r\u00e9 kis kult\u00fara alakult ki. Ez\u00e9rt d\u00f6nt\u00f6tt\u00fcnk \u00fagy, hogy a szolg\u00e1ltat\u00e1st \u00e9ppen ezen a nyelven kezdj\u00fck el \u00e9p\u00edteni. F\u0151leg, hogy az ilyen feladatokban a fejleszt\u00e9si sebess\u00e9g sokszor meghat\u00e1roz\u00f3. <\/p>\n<p><\/p>\n<p>\u00cdgy h\u00e1t kezdj\u00fck megismerked\u00e9s\u00fcnket.<\/p>\n<p><\/p>\n<h3 id=\"molchalivyy-bill--billing\">N\u00e9ma Bill \u2014 sz\u00e1ml\u00e1z\u00e1s<\/h3>\n<p><\/p>\n<p><em>Ezzel a sr\u00e1csal r\u00e9g\u00f3ta ismerj\u00fck egym\u00e1st. Mindig mellett\u00fcnk \u00fclt, \u00e9s csendben sz\u00e1molt valamit. N\u00e9ha felterjesztette nek\u00fcnk a felhaszn\u00e1l\u00f3i ig\u00e9nyeket, ki\u00e1ll\u00edtotta a \u00fcgyf\u00e9lsz\u00e1ml\u00e1kat, kezelte a szolg\u00e1ltat\u00e1sokat. Egy \u00e1tlagos, szorgalmas fick\u00f3. Igaz, voltak neh\u00e9zs\u00e9gek. Csendes, n\u00e9ha m\u00e9lab\u00fas \u00e9s gyakran \u2013 a saj\u00e1t gondolataiban j\u00e1r.<\/em><\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"A felh\u0151szolg\u00e1ltat\u00e1s l\u00e9trehoz\u00e1s\u00e1nak t\u00f6rt\u00e9nete, cyberpunk k\u00eds\u00e9r\u0151kkel\" src=\"\/wp-content\/uploads\/2020\/04\/262bb5c9d6234041d264f8e041e647fe.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>A billing az els\u0151 rendszer, amellyel megpr\u00f3b\u00e1ltunk bar\u00e1tkozni. \u00c9s az els\u0151 neh\u00e9zs\u00e9g m\u00e1r azonnal jelentkezett a szolg\u00e1ltat\u00e1sok feldolgoz\u00e1sakor.<\/p>\n<p><\/p>\n<p>P\u00e9ld\u00e1ul, amikor l\u00e9trehozunk vagy t\u00f6rl\u00fcnk, a feladat beker\u00fcl a billing bels\u0151 v\u00e1r\u00f3list\u00e1j\u00e1ba. \u00cdgy van megval\u00f3s\u00edtva a szolg\u00e1ltat\u00e1sokkal val\u00f3 aszinkron munka rendszere. A saj\u00e1t t\u00edpus\u00fa szolg\u00e1ltat\u00e1saink feldolgoz\u00e1s\u00e1hoz a feladatainkat a v\u00e1r\u00f3list\u00e1ra kellett \u201eraknunk\u201d. Itt tal\u00e1lkoztunk a probl\u00e9m\u00e1val: a dokument\u00e1ci\u00f3 hi\u00e1nya. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"A felh\u0151szolg\u00e1ltat\u00e1s l\u00e9trehoz\u00e1s\u00e1nak t\u00f6rt\u00e9nete, cyberpunk k\u00eds\u00e9r\u0151kkel\" src=\"\/wp-content\/uploads\/2020\/04\/4d96251df014e315308c94f848bc6cd0.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>A programoz\u00e1si API le\u00edr\u00e1sa alapj\u00e1n ezt a feladatot m\u00e9gis meg lehet oldani, de nem volt id\u0151nk a ford\u00edtott m\u00e9rn\u00f6ki munk\u00e1ra, ez\u00e9rt a logik\u00e1t k\u00fcls\u0151re vitt\u00fck, \u00e9s feladatlist\u00e1t szervezt\u00fcnk a RabbitMQ f\u00f6l\u00e9. A szolg\u00e1ltat\u00e1s v\u00e9grehajt\u00e1s\u00e1t egy \u00fcgyf\u00e9l ind\u00edtja a felhaszn\u00e1l\u00f3i fi\u00f3kj\u00e1b\u00f3l, ezt a \u201efeladatot\u201d a backend-en Celery-be csomagoljuk, \u00e9s a billing \u00e9s az OpenStack oldal\u00e1n hajtj\u00e1k v\u00e9gre. A Celery viszonylag k\u00e9nyelmesen lehet\u0151v\u00e9 teszi a feladatok kezel\u00e9s\u00e9t, az \u00fajraind\u00edt\u00e1sokat \u00e9s az \u00e1llapot figyel\u00e9s\u00e9t. A \u201ecelery\u201d-r\u0151l b\u0151vebben lehet olvasni p\u00e9ld\u00e1ul, <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/oleg-bunin\/blog\/433476\/\">itt<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>A billing a projekt le\u00e1ll\u00edt\u00e1s\u00e1t sem g\u00e1tolta, amikor a p\u00e9nz elfogyott. A fejleszt\u0151kkel kommunik\u00e1lva kider\u00fclt, hogy a statisztika alapj\u00e1n (ami nek\u00fcnk \u00e9ppen ennek a logik\u00e1nak a megval\u00f3s\u00edt\u00e1s\u00e1hoz sz\u00fcks\u00e9ges) \u00f6sszetett szab\u00e1lyok vannak a le\u00e1ll\u00edt\u00e1sra vonatkoz\u00f3an. De ezek a modellek nem illeszkednek j\u00f3l a realit\u00e1sainkhoz. A logikai kezel\u00e9s\u00e9t a backendre elvitt\u00fck, szint\u00e9n Celery feladatokon kereszt\u00fcl megval\u00f3s\u00edtva. <\/p>\n<p><\/p>\n<p>A fent eml\u00edtett k\u00e9t probl\u00e9ma miatt a k\u00f3d egy kicsit megn\u00f6vekedett, \u00e9s a j\u00f6v\u0151ben foglalkoznunk kell a refaktor\u00e1l\u00e1ssal, hogy a feladatok kezel\u00e9s\u00e9nek logik\u00e1j\u00e1t k\u00fcl\u00f6n szolg\u00e1ltat\u00e1sba helyezz\u00fck. Emellett r\u00e9szeket kell t\u00e1rolnunk a felhaszn\u00e1l\u00f3kr\u00f3l \u00e9s azok szolg\u00e1ltat\u00e1sair\u00f3l a saj\u00e1t t\u00e1bl\u00e1inkban, hogy ezt a logik\u00e1t t\u00e1mogathassuk.<\/p>\n<p><\/p>\n<p>M\u00e9g egy probl\u00e9ma \u2013 a csend.<\/p>\n<p><\/p>\n<p>A billing API egyes k\u00e9rd\u00e9seire csendesen v\u00e1laszol \u201eOk\u201d-kal. P\u00e9ld\u00e1ul \u00edgy volt, amikor az \u00edg\u00e9rt kifizet\u00e9sek bejegyz\u00e9s\u00e9t v\u00e9gezt\u00fck a tesztid\u0151szak alatt (err\u0151l k\u00e9s\u0151bb). A k\u00e9r\u00e9sek helyesen teljes\u00fcltek, \u00e9s nem l\u00e1ttunk hib\u00e1kat. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"A felh\u0151szolg\u00e1ltat\u00e1s l\u00e9trehoz\u00e1s\u00e1nak t\u00f6rt\u00e9nete, cyberpunk k\u00eds\u00e9r\u0151kkel\" src=\"\/wp-content\/uploads\/2020\/04\/d03f2c381fd39dbf33f2a0c3eeb1294d.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Meg kellett tanulm\u00e1nyozni a napl\u00f3kat, mik\u00f6zben a rendszert az UI-n kereszt\u00fcl haszn\u00e1ltam. Kider\u00fclt, hogy a sz\u00e1ml\u00e1z\u00f3 rendszer a k\u00e9r\u00e9seket a konkr\u00e9t felhaszn\u00e1l\u00f3ra, p\u00e9ld\u00e1ul az adminisztr\u00e1torra vonatkoz\u00f3 scope megv\u00e1ltoztat\u00e1s\u00e1val hajtja v\u00e9gre, \u00e1tadva azt az su param\u00e9terben.<\/p>\n<p><\/p>\n<p>\u00d6sszess\u00e9g\u00e9ben, annak ellen\u00e9re, hogy a dokument\u00e1ci\u00f3ban vannak hi\u00e1nyoss\u00e1gok \u00e9s az API-nak apr\u00f3bb hib\u00e1i, az eg\u00e9sz folyamat el\u00e9g z\u00f6kken\u0151mentesen zajlott. A napl\u00f3kat akkor is j\u00f3l lehet olvasni, ha nagy terhel\u00e9s alatt \u00e1llnak, ha tudjuk, hogyan vannak megszervezve \u00e9s mit kell keresni. Az adatb\u00e1zis strukt\u00far\u00e1ja bonyolult, de logikus, s\u0151t, bizonyos \u00e9rtelemben m\u00e9g vonz\u00f3 is.<\/p>\n<p><\/p>\n<p>Teh\u00e1t, \u00f6sszefoglalva, a legnagyobb probl\u00e9m\u00e1k, amelyek a kapcsolatunk sor\u00e1n felmer\u00fcltek, a konkr\u00e9t rendszer megval\u00f3s\u00edt\u00e1s\u00e1nak saj\u00e1toss\u00e1gaival kapcsolatosak: <\/p>\n<p><\/p>\n<ul>\n<li>nem dokument\u00e1lt \u201efunkci\u00f3k\u201d, amelyek valamilyen m\u00f3don \u00e9rintettek minket;<\/li>\n<li>z\u00e1rt forr\u00e1sk\u00f3d (a sz\u00e1ml\u00e1z\u00e1s C++ nyelven \u00edr\u00f3dott), ennek k\u00f6vetkezm\u00e9nyek\u00e9nt \u2014 a probl\u00e9ma 1 megold\u00e1s\u00e1nak lehetetlens\u00e9ge a \u201epr\u00f3b\u00e1k \u00e9s hib\u00e1k\u201d m\u00f3dszer\u00e9n k\u00edv\u00fcl.<\/li>\n<\/ul>\n<p><\/p>\n<p>Szerencs\u00e9re a term\u00e9knek van egy el\u00e9g r\u00e9szletes API-ja, \u00edgy az al\u00e1bbi alrendszereket integr\u00e1ltuk a saj\u00e1t \u00fcgyf\u00e9lkapunkba:<\/p>\n<p><\/p>\n<ul>\n<li>technikai t\u00e1mogat\u00e1s modul \u2014 a szem\u00e9lyes fi\u00f3kb\u00f3l \u00e9rkez\u0151 k\u00e9r\u00e9sek a kliensek sz\u00e1m\u00e1ra \u00e1tl\u00e1that\u00f3 m\u00f3don \u201eprokisz\u00e1l\u00f3dnak\u201d a sz\u00e1ml\u00e1z\u00f3 rendszerbe;<\/li>\n<li>p\u00e9nz\u00fcgyi modul \u2014 lehet\u0151v\u00e9 teszi a sz\u00e1ml\u00e1k ki\u00e1ll\u00edt\u00e1s\u00e1t megl\u00e9v\u0151 \u00fcgyfelek sz\u00e1m\u00e1ra, levon\u00e1sokat v\u00e9gezni \u00e9s fizet\u00e9si dokumentumokat gener\u00e1lni;<\/li>\n<li>szolg\u00e1ltat\u00e1skezel\u0151 modul \u2014 ehhez saj\u00e1t kezel\u0151t kellett megval\u00f3s\u00edtanunk. A rendszer b\u0151v\u00edthet\u0151s\u00e9ge a javunkra v\u00e1lt, \u00e9s \u201emegtan\u00edtottuk\u201d a Billit egy \u00faj szolg\u00e1ltat\u00e1si t\u00edpusra.<br \/>\nMeg kellett dolgozni rajta, de \u00fagy gondolom, hogy a Billivel meg fogjuk tal\u00e1lni a k\u00f6z\u00f6s nyelvet.<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"progulki-po-volframovym-polyam--tungsten-fabric\">S\u00e9ta a wolfram mez\u0151k\u00f6n \u2014 Tungsten Fabric<\/h3>\n<p><\/p>\n<p><em>A wolfram mez\u0151k, amelyeket sz\u00e1z vezet\u00e9k bor\u00edt, amelyek ezernyi bit inform\u00e1ci\u00f3t \u00e1ramoltatnak \u00e1t. Az inform\u00e1ci\u00f3 \u201ecsomagokba\u201d gy\u0171lik \u00f6ssze, felbont\u00f3dik, bonyolult \u00fatvonalakat alak\u00edtva ki, mintha var\u00e1zslat lenne.<\/em><\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"A felh\u0151szolg\u00e1ltat\u00e1s l\u00e9trehoz\u00e1s\u00e1nak t\u00f6rt\u00e9nete, cyberpunk k\u00eds\u00e9r\u0151kkel\" src=\"\/wp-content\/uploads\/2020\/04\/9b6dd46d9f15e0e3393a8c1222abbf2f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ez a m\u00e1sodik rendszer dom\u00e9nje, amellyel bar\u00e1tkoznunk kellett \u2014 Tungsten Fabric (TF), r\u00e9gi nev\u00e9n OpenContrail. A feladata, hogy kezelje a h\u00e1l\u00f3zati berendez\u00e9seket, programozott absztrakci\u00f3t ny\u00fajtva nek\u00fcnk, mint felhaszn\u00e1l\u00f3knak. A TF \u2014 SDN, bonyolult logik\u00e1t tartalmaz a h\u00e1l\u00f3zati berendez\u00e9sekkel val\u00f3 munk\u00e1hoz. Mag\u00e1r\u00f3l a technol\u00f3gi\u00e1r\u00f3l van egy j\u00f3 cikk, p\u00e9ld\u00e1ul, <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/muk\/blog\/251959\/\">itt<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>A rendszer integr\u00e1lva van az OpenStackkel (err\u0151l k\u00e9s\u0151bb lesz sz\u00f3) a Neutron pluginon kereszt\u00fcl. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"A felh\u0151szolg\u00e1ltat\u00e1s l\u00e9trehoz\u00e1s\u00e1nak t\u00f6rt\u00e9nete, cyberpunk k\u00eds\u00e9r\u0151kkel\" src=\"\/wp-content\/uploads\/2020\/04\/5abe3992efaab3e016a0c51dc0070a94.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Az OpenStack szolg\u00e1ltat\u00e1sok k\u00f6z\u00f6tti interakci\u00f3.<\/em><\/p>\n<p><\/p>\n<p>Ezt a rendszert az \u00fczemeltet\u00e9si oszt\u00e1ly sr\u00e1cai mutatt\u00e1k be nek\u00fcnk. Az API-j\u00e1t haszn\u00e1ljuk szolg\u00e1ltat\u00e1saink h\u00e1l\u00f3zati stackj\u00e9nek kezel\u00e9s\u00e9re. Komoly probl\u00e9m\u00e1ink vagy k\u00e9nyelmetlens\u00e9geink eddig nem voltak (az \u00fczemeltet\u00e9si sr\u00e1cokr\u00f3l nem nyilatkozn\u00e9k), de voltak vicces \u00f6sszefon\u00f3d\u00e1sok is a kapcsolatunk sor\u00e1n.<\/p>\n<p><\/p>\n<p>Az els\u0151 \u00fagy n\u00e9zett ki: a parancsok, amelyek nagy mennyis\u00e9g\u0171 adatot ig\u00e9nyeltek a SSH-n kereszt\u00fcl val\u00f3 kapcsol\u00f3d\u00e1skor, egyszer\u0171en \u201eleakasztott\u00e1k\u201d a kapcsolatot, m\u00edg a VNC-n minden z\u00f6kken\u0151mentesen m\u0171k\u00f6d\u00f6tt.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"A felh\u0151szolg\u00e1ltat\u00e1s l\u00e9trehoz\u00e1s\u00e1nak t\u00f6rt\u00e9nete, cyberpunk k\u00eds\u00e9r\u0151kkel\" src=\"\/wp-content\/uploads\/2020\/04\/02bc97d63a1299e1dda08fce0f10fb97.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Aki nem ismeri a probl\u00e9m\u00e1t, annak ez el\u00e9g viccesen n\u00e9z ki: a ls \/root helyesen m\u0171k\u00f6dik, m\u00edg p\u00e9ld\u00e1ul a top \u201eteljesen lefagy\u201d. Szerencs\u00e9re m\u00e1r tal\u00e1lkoztunk hasonl\u00f3 probl\u00e9m\u00e1kkal. Az MTU optimaliz\u00e1l\u00e1s\u00e1val a compute-n\u00f3dokt\u00f3l a routerekig siker\u00fclt megoldanunk. K\u00e9ts\u00e9gtelen, hogy ez nem TF probl\u00e9ma.<\/p>\n<p><\/p>\n<p>A k\u00f6vetkez\u0151 probl\u00e9ma egy kanyar m\u00f6g\u00f6tt v\u00e1rt. Egy \u201egy\u00f6ny\u00f6r\u0171\u201d pillanatban a routing var\u00e1zslata egyszer\u0171en elt\u0171nt. A TF le\u00e1llt a routerek kezel\u00e9s\u00e9vel.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"A felh\u0151szolg\u00e1ltat\u00e1s l\u00e9trehoz\u00e1s\u00e1nak t\u00f6rt\u00e9nete, cyberpunk k\u00eds\u00e9r\u0151kkel\" src=\"\/wp-content\/uploads\/2020\/04\/db2a75ffdf2940b2ca90f73835f7a321.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Az OpenStackkel adminisztr\u00e1tori szinten dolgoztunk, majd \u00e1tv\u00e1ltottunk a k\u00edv\u00e1nt felhaszn\u00e1l\u00f3i szintre. \u00dagy t\u0171nik, hogy az SDN \u201elefogja\u201d a felhaszn\u00e1l\u00f3 sc\u00f3pj\u00e1t, amelyben tev\u00e9kenyked\u00fcnk. A baj az, hogy ugyanezt az adminisztr\u00e1tori fi\u00f3kot haszn\u00e1ljuk a TF \u00e9s az OpenStack k\u00f6z\u00f6tti kapcsolatra. Amikor a felhaszn\u00e1l\u00f3ra val\u00f3 v\u00e1lt\u00e1s t\u00f6rt\u00e9nt, a \u201evar\u00e1zslat\u201d elt\u0171nt. Az a d\u00f6nt\u00e9s sz\u00fcletett, hogy k\u00fcl\u00f6n fi\u00f3kot hozunk l\u00e9tre a rendszer haszn\u00e1lat\u00e1hoz. Ez lehet\u0151v\u00e9 tette, hogy dolgozzunk, an\u00e9lk\u00fcl hogy megsz\u00fcntett\u00fck volna az integr\u00e1ci\u00f3s funkci\u00f3t.<\/p>\n<p><\/p>\n<h3 id=\"silikonovye-formy-zhizni--openstack\">Szilikon \u00e9letform\u00e1k \u2014 OpenStack<\/h3>\n<p><\/p>\n<p><em>A szilikon l\u00e9ny furcsa form\u00e1j\u00fa, a wolfram mez\u0151k k\u00f6zel\u00e9ben \u00e9l. Legjobban egy nagyra n\u0151tt gyermekhez hasonl\u00edt, aki egy mozdulattal \u00f6sszez\u00fazhat minket, de nyilv\u00e1nval\u00f3 agresszi\u00f3t nem mutat. Nem kelt f\u00e9lelmet, de m\u00e9rete riaszt\u00f3. Ak\u00e1rcsak a k\u00f6r\u00fcl\u00f6tte zajl\u00f3 cselekv\u00e9s bonyolults\u00e1ga.<\/em><\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"A felh\u0151szolg\u00e1ltat\u00e1s l\u00e9trehoz\u00e1s\u00e1nak t\u00f6rt\u00e9nete, cyberpunk k\u00eds\u00e9r\u0151kkel\" src=\"\/wp-content\/uploads\/2020\/04\/8622d43e0cb963bc9ef2a2ce59a32499.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Az OpenStack a platformunk sz\u00edv\u00e9t k\u00e9pezi.<\/p>\n<p><\/p>\n<p>Az OpenStacknek t\u00f6bb alrendszere van, amelyek k\u00f6z\u00fcl a legakt\u00edvebben eddig a Nova, Glance \u00e9s Cinder haszn\u00e1latban. Mindegyiknek megvan a saj\u00e1t API-ja. A Nova a compute-er\u0151forr\u00e1sok\u00e9rt \u00e9s p\u00e9ld\u00e1nyok l\u00e9trehoz\u00e1s\u00e1\u00e9rt felel\u0151s, a Cinder a volumek \u00e9s azok f\u00e9nyk\u00e9peinek kezel\u00e9s\u00e9vel foglalkozik, a Glance pedig egy image szolg\u00e1ltat\u00e1s, amely kezeli az oper\u00e1ci\u00f3s rendszerek sablonjait \u00e9s a hozz\u00e1juk tartoz\u00f3 metaadatokat.<\/p>\n<p><\/p>\n<p>Minden szolg\u00e1ltat\u00e1s kont\u00e9nerben fut, a message broker pedig a \u201efeh\u00e9r ny\u00fal\u201d \u2014 RabbitMQ.<\/p>\n<p><\/p>\n<p>Ez a rendszer okozta a legnagyobb meglepet\u00e9seket sz\u00e1munkra.<\/p>\n<p><\/p>\n<p>Az els\u0151 probl\u00e9ma nem v\u00e1ratott mag\u00e1ra, mikor megpr\u00f3b\u00e1ltuk csatlakoztatni a kieg\u00e9sz\u00edt\u0151 t\u00e1rol\u00f3t a szerverhez. A Cinder API hat\u00e1rozottan megtagadta ezt a feladatot. Pontosabban, ha mag\u00e1ra az OpenStack-re hallgatunk, a kapcsolat l\u00e9trej\u00f6n, de a virtu\u00e1lis szerveren a lemez eszk\u00f6z hi\u00e1nyzik.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"A felh\u0151szolg\u00e1ltat\u00e1s l\u00e9trehoz\u00e1s\u00e1nak t\u00f6rt\u00e9nete, cyberpunk k\u00eds\u00e9r\u0151kkel\" src=\"\/wp-content\/uploads\/2020\/04\/b4755d893f3f8ad7d7aeab3af69f35cf.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u00dagy d\u00f6nt\u00f6tt\u00fcnk, hogy \"t\u00e9rj\u00fcnk ki\" \u00e9s ugyanazt a m\u0171veletet k\u00e9rj\u00fck a Nova API-t\u00f3l. Az eredm\u00e9ny \u2014 az eszk\u00f6z megfelel\u0151en csatlakozik \u00e9s el\u00e9rhet\u0151 a szerveren bel\u00fcl. \u00dagy t\u0171nik, hogy a probl\u00e9ma akkor mer\u00fcl fel, amikor a block-storage nem v\u00e1laszol a Cinder-nek.<\/p>\n<p><\/p>\n<p>\u00dajabb neh\u00e9zs\u00e9g v\u00e1rt r\u00e1nk a lemezek kezel\u00e9s\u00e9n\u00e9l. A rendszeres t\u00e1rol\u00f3t nem tudtuk lev\u00e1lasztani a szerverr\u0151l.<\/p>\n<p><\/p>\n<p>Ism\u00e9t, mag\u00e1nak az OpenStack-nek \"garant\u00e1lja\", hogy a kapcsolatot megsz\u00fcntette, \u00e9s most m\u00e1r helyesen dolgozhatunk a t\u00e1rol\u00f3val k\u00fcl\u00f6n. De az API kategorikusan megtagadta a m\u0171veletek v\u00e9grehajt\u00e1s\u00e1t a lemezen. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"A felh\u0151szolg\u00e1ltat\u00e1s l\u00e9trehoz\u00e1s\u00e1nak t\u00f6rt\u00e9nete, cyberpunk k\u00eds\u00e9r\u0151kkel\" src=\"\/wp-content\/uploads\/2020\/04\/952fd7cd11181605c52a7df71cd4f69f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Itt \u00fagy d\u00f6nt\u00f6tt\u00fcnk, hogy nem harcolunk k\u00fcl\u00f6n\u00f6sebben, hanem megv\u00e1ltoztatjuk a szolg\u00e1ltat\u00e1s m\u0171k\u00f6d\u00e9s\u00e9nek logik\u00e1j\u00e1t. Ha van p\u00e9ld\u00e1ny, akkor kell lennie rendszeres t\u00e1rol\u00f3nak is. Ez\u00e9rt a felhaszn\u00e1l\u00f3 egyel\u0151re nem t\u00f6r\u00f6lheti vagy kapcsolhatja ki a rendszer \"lemezt\", am\u00edg a \"szervert\" el nem t\u00e1vol\u00edtja.<\/p>\n<p><\/p>\n<p>Az OpenStack egy el\u00e9g \u00f6sszetett rendszerkomplexum saj\u00e1t interakci\u00f3s logik\u00e1val \u00e9s csavaros API-val. Seg\u00edt nek\u00fcnk a meglehet\u0151sen r\u00e9szletes dokument\u00e1ci\u00f3, \u00e9s term\u00e9szetesen a pr\u00f3b\u00e1k \u00e9s t\u00e9ved\u00e9sek m\u00f3dszere (hova m\u00e1shov\u00e1?).<\/p>\n<p><\/p>\n<h3 id=\"testovyy-zapusk\">Tesztel\u00e9si ind\u00edt\u00e1s<\/h3>\n<p><\/p>\n<p>A tesztel\u00e9st tavaly decemberben v\u00e9gezt\u00fck. A f\u0151 c\u00e9lunk az volt, hogy technikai szempontb\u00f3l \u00e9s UX szempontb\u00f3l ellen\u0151rizni tudjuk projekt\u00fcnket \u00e9les k\u00f6rnyezetben. A k\u00f6z\u00f6ns\u00e9get v\u00e1logatottan h\u00edvtuk meg, \u00e9s a tesztel\u00e9s z\u00e1rt volt. Ugyanakkor lehet\u0151s\u00e9get hagytunk a tesztel\u00e9s ir\u00e1nti hozz\u00e1f\u00e9r\u00e9s k\u00e9r\u00e9s\u00e9re a weboldalunkon.<\/p>\n<p><\/p>\n<p>Mag\u00e1t a tesztet term\u00e9szetesen nem ker\u00fclt\u00e9k el a k\u00fcl\u00f6n\u00f6s pillanatok, hiszen itt kezd\u0151dnek a kalandjaink. <\/p>\n<p><\/p>\n<p>El\u0151sz\u00f6r is, kiss\u00e9 helytelen\u00fcl \u00edt\u00e9lt\u00fck meg a projekt ir\u00e1nti \u00e9rdekl\u0151d\u00e9st, \u00e9s gyorsan hozz\u00e1 kellett adnunk compute-nodokat a teszt sor\u00e1n. Ez \u00e1ltal\u00e1ban egy szok\u00e1sos eset a klaszterekn\u00e9l, de itt is voltak finoms\u00e1gok. A dokument\u00e1ci\u00f3 a konkr\u00e9t TF verzi\u00f3ra megjel\u00f6li a pontos kernel verzi\u00f3t, amelyen a vRouter haszn\u00e1lat\u00e1t tesztelt\u00e9k. Mi frissebb kernellel ind\u00edtottuk a nodokat. Az eredm\u00e9ny \u2014 a TF nem kapott \u00fatvonalakat a nodokt\u00f3l. S\u00fcrg\u0151sen vissza kellett \u00e1ll\u00edtanunk a kernelt.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"A felh\u0151szolg\u00e1ltat\u00e1s l\u00e9trehoz\u00e1s\u00e1nak t\u00f6rt\u00e9nete, cyberpunk k\u00eds\u00e9r\u0151kkel\" src=\"\/wp-content\/uploads\/2020\/04\/377208246d5e396317fb934a35ed1227.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Egy m\u00e1sik k\u00fcl\u00f6n\u00f6s eset a \"jelsz\u00f3 megv\u00e1ltoztat\u00e1sa\" funkci\u00f3val kapcsolatos a felhaszn\u00e1l\u00f3i fi\u00f3kban. <\/p>\n<p><\/p>\n<p>\u00dagy d\u00f6nt\u00f6tt\u00fcnk, hogy JWT-t haszn\u00e1lunk a felhaszn\u00e1l\u00f3i fi\u00f3khoz val\u00f3 hozz\u00e1f\u00e9r\u00e9s megszervez\u00e9s\u00e9re, hogy ne kelljen munk\u00e1val foglalkozni az \u00fcl\u00e9sekkel. Mivel a rendszerek k\u00fcl\u00f6nb\u00f6z\u0151ek \u00e9s sz\u00e9les spektrumot fednek le, saj\u00e1t token\u00fcnket kezelj\u00fck, amelybe \u201ecsomagoljuk\u201d a billing rendszer \u00e9s az OpenStack tokenjeit. A jelsz\u00f3 megv\u00e1ltoztat\u00e1sakor a token term\u00e9szetesen \u201elej\u00e1r\u201d, mivel a felhaszn\u00e1l\u00f3 adatai m\u00e1r \u00e9rv\u00e9nytelenek, \u00edgy azt \u00fajra kell kibocs\u00e1tani. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"A felh\u0151szolg\u00e1ltat\u00e1s l\u00e9trehoz\u00e1s\u00e1nak t\u00f6rt\u00e9nete, cyberpunk k\u00eds\u00e9r\u0151kkel\" src=\"\/wp-content\/uploads\/2020\/04\/daa27256d0b888b2c59d4bc6129f600d.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ezt a pillanatot elker\u00fclt\u00fck, \u00e9s nem volt elegend\u0151 er\u0151forr\u00e1sunk ahhoz, hogy gyorsan hozz\u00e1adjunk ezt a r\u00e9szt. Az utols\u00f3 pillanatban ki kellett v\u00e1gnunk egy funkci\u00f3t a tesztel\u00e9s megkezd\u00e9se el\u0151tt.<br \/>\nJelenleg logout-ot hajtunk v\u00e9gre a felhaszn\u00e1l\u00f3 sz\u00e1m\u00e1ra, ha a jelsz\u00f3t megv\u00e1ltoztatt\u00e1k.<\/p>\n<p><\/p>\n<p>Ezeket a n\u00fcanszokat figyelembe v\u00e9ve a tesztel\u00e9s j\u00f3l zajlott. P\u00e1r h\u00e9t alatt k\u00f6r\u00fclbel\u00fcl 300 ember kereste fel minket. Meg tudtuk n\u00e9zni a term\u00e9ket a felhaszn\u00e1l\u00f3k szemsz\u00f6g\u00e9b\u0151l, tesztelt\u00fck a gyakorlatban, \u00e9s \u00f6sszegy\u0171jt\u00f6tt\u00fck a min\u0151s\u00e9gi visszajelz\u00e9seket. <\/p>\n<p><\/p>\n<h3 id=\"prodolzhenie-sleduet\">Folytat\u00e1s k\u00f6vetkezik<\/h3>\n<p><\/p>\n<p>Sokunk sz\u00e1m\u00e1ra ez az els\u0151 projekt ilyen m\u00e9retben. Sz\u00e1mos \u00e9rt\u00e9kes leck\u00e9t tanultunk meg arr\u00f3l, hogyan dolgozzunk csapatban, hogyan hozzunk meg \u00e9p\u00edt\u00e9szeti \u00e9s tervez\u00e9si d\u00f6nt\u00e9seket. Hogyan integr\u00e1ljunk bonyolult rendszereket korl\u00e1tozott er\u0151forr\u00e1sokkal \u00e9s hogyan vezess\u00fck be \u0151ket a termel\u00e9sbe. <\/p>\n<p><\/p>\n<p>Term\u00e9szetesen van m\u00e9g mit dolgozni a k\u00f3d \u00e9s a rendszerek integr\u00e1ci\u00f3j\u00e1nak hat\u00e1rvonalain. A projekt el\u00e9gg\u00e9 fiatal, de tele vagyunk amb\u00edci\u00f3kkal, hogy megb\u00edzhat\u00f3 \u00e9s k\u00e9nyelmes szolg\u00e1ltat\u00e1st \u00e9p\u00edts\u00fcnk bel\u0151le.<\/p>\n<p><\/p>\n<p>A rendszereket m\u00e1r siker\u00fclt meggy\u0151zn\u00fcnk. Bill szorgalmasan sz\u00e1molja az \u00f6sszegeket, \u00e1ll\u00edtja ki a sz\u00e1ml\u00e1kat \u00e9s kezeli a felhaszn\u00e1l\u00f3i k\u00e9r\u00e9seket a kis irod\u00e1j\u00e1ban. A wolfram mez\u0151k \u201evar\u00e1zslata\u201d biztos\u00edtja sz\u00e1munkra a stabil kapcsolatot. Csak az OpenStack szokott n\u00e9ha felsz\u00edneskedni, kiab\u00e1lva valami olyasmit, mint hogy \u201e&#8217;WSREP m\u00e9g nem k\u00e9sz\u00edtette el a csom\u00f3pontot az alkalmaz\u00e1s haszn\u00e1lat\u00e1hoz\u201d. De ez m\u00e1r egy teljesen m\u00e1sik t\u00f6rt\u00e9net\u2026<\/p>\n<p><\/p>\n<p>Nemr\u00e9giben elind\u00edtottuk a szolg\u00e1ltat\u00e1st.<br \/>\nMinden r\u00e9szletet megtudhat a <noindex><a rel=\"nofollow\" href=\"https:\/\/clo.ru?utm_source=habr&amp;utm_medium=article&amp;utm_campaign=product&amp;utm_term=first_clo\">weboldalon<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"A felh\u0151szolg\u00e1ltat\u00e1s l\u00e9trehoz\u00e1s\u00e1nak t\u00f6rt\u00e9nete, cyberpunk k\u00eds\u00e9r\u0151kkel\" src=\"\/wp-content\/uploads\/2020\/04\/32550980b529a5d7b395b3962218e53e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>CLO fejleszt\u0151i csapata<\/em><\/p>\n<p><\/p>\n<p>                        <b class=\"spoiler_title\">Hasznos linkek<\/b><\/p>\n<p><strong>OpenStack<\/strong><\/p>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/docs.openstack.org\/nova\/latest\/\">https:\/\/docs.openstack.org\/nova\/latest\/<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/docs.openstack.org\/keystone\/latest\/\">https:\/\/docs.openstack.org\/keystone\/latest\/<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/docs.openstack.org\/cinder\/latest\/\">https:\/\/docs.openstack.org\/cinder\/latest\/<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/docs.openstack.org\/glance\/latest\/\">https:\/\/docs.openstack.org\/glance\/latest\/<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<p><strong>Tungsten Fabric<\/strong><\/p>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/docs.tungsten.io\/en\/latest\/user\/getting-started\/index.html\">http:\/\/docs.tungsten.io\/en\/latest\/user\/getting-started\/index.html<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/www.juniper.net\/documentation\/en_US\/contrail-cloud10.0\/topics\/concept\/contrail-cloud-openstack-integration-overview.html\">https:\/\/www.juniper.net\/documentation\/en_US\/contrail-cloud10.0\/topics\/concept\/contrail-cloud-openstack-integration-overview.html<\/a><\/noindex><\/li>\n<\/ul>\n<p>Forr\u00e1s: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/first\/blog\/493606\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421 \u0440\u043e\u0441\u0442\u043e\u043c \u0441\u0442\u0430\u0436\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u0432 IT \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0448\u044c \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u044c, \u0447\u0442\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438\u043c\u0435\u044e\u0442 \u0441\u0432\u043e\u0439 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440. \u041e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u043a\u043b\u0430\u0434\u0438\u0441\u0442\u044b\u043c\u0438, \u043c\u043e\u043b\u0447\u0430\u043b\u0438\u0432\u044b\u043c\u0438, \u0432\u0437\u0431\u0430\u043b\u043c\u043e\u0448\u043d\u044b\u043c\u0438, \u0441\u0443\u0440\u043e\u0432\u044b\u043c\u0438. \u041c\u043e\u0433\u0443\u0442 \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0442\u044c \u043a \u0441\u0435\u0431\u0435 \u0438\u043b\u0438 \u043e\u0442\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0442\u044c. \u0422\u0430\u043a \u0438\u043b\u0438 \u0438\u043d\u0430\u0447\u0435, \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u00ab\u0434\u043e\u0433\u043e\u0432\u0430\u0440\u0438\u0432\u0430\u0442\u044c\u0441\u044f\u00bb \u0441 \u043d\u0438\u043c\u0438, \u043b\u0430\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0436\u0434\u0443 \u00ab\u043f\u043e\u0434\u0432\u043e\u0434\u043d\u044b\u043c\u0438 \u043a\u0430\u043c\u043d\u044f\u043c\u0438\u00bb \u0438 \u0432\u044b\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u0446\u0435\u043f\u043e\u0447\u043a\u0438 \u0438\u0445 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f. \u0412\u043e\u0442 \u0438 \u043d\u0430\u043c \u0432\u044b\u043f\u0430\u043b\u0430 \u0447\u0435\u0441\u0442\u044c \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043e\u0431\u043b\u0430\u0447\u043d\u0443\u044e \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443, \u0430 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u00ab\u0443\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c\u00bb [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":79154,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-79153","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=\"\u0421 \u0440\u043e\u0441\u0442\u043e\u043c \u0441\u0442\u0430\u0436\u0430.\" \/>\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\/administrirovanie\/istoriya-sozdaniya-oblachnogo-servisa-pripravlennaya-kiberpankom\" \/>\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\udd47\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043e\u0431\u043b\u0430\u0447\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0438\u0441\u0430, \u043f\u0440\u0438\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u0430\u044f \u043a\u0438\u0431\u0435\u0440\u043f\u0430\u043d\u043a\u043e\u043c | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0421 \u0440\u043e\u0441\u0442\u043e\u043c \u0441\u0442\u0430\u0436\u0430.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/istoriya-sozdaniya-oblachnogo-servisa-pripravlennaya-kiberpankom\" \/>\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=\"2020-04-24T17:42:43+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-04-24T17:42:43+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\udd47A felh\u0151szolg\u00e1ltat\u00e1s l\u00e9trej\u00f6tt\u00e9nek t\u00f6rt\u00e9nete, cyberpunk \u00edzes\u00edt\u00e9ssel | ProHoster","description":"A tapasztalat b\u0151v\u00fcl\u00e9s\u00e9vel.","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/istoriya-sozdaniya-oblachnogo-servisa-pripravlennaya-kiberpankom","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\udd47\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043e\u0431\u043b\u0430\u0447\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0438\u0441\u0430, \u043f\u0440\u0438\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u0430\u044f \u043a\u0438\u0431\u0435\u0440\u043f\u0430\u043d\u043a\u043e\u043c | ProHoster","og:description":"\u0421 \u0440\u043e\u0441\u0442\u043e\u043c \u0441\u0442\u0430\u0436\u0430.","og:url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/istoriya-sozdaniya-oblachnogo-servisa-pripravlennaya-kiberpankom","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":"2020-04-24T17:42:43+00:00","article:modified_time":"2020-04-24T17:42:43+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"79153","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 16:43:24","updated":"2022-10-02 03:25:48","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\/79153","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=79153"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/79153\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media\/79154"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=79153"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=79153"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=79153"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}