{"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\/et\/blog\/administrirovanie\/istoriya-sozdaniya-oblachnogo-servisa-pripravlennaya-kiberpankom","title":{"rendered":"Pilveteenuse loomise lugu, maitsestatud k\u00fcberskandaalidega","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Pilveteenuse loomise lugu, maitsestatud k\u00fcberskandaalidega\" src=\"\/wp-content\/uploads\/2020\/04\/d1cad1dfa3513b5794c7be916a9dbb4b.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>IT-valdkonnas t\u00f6\u00f6tades hakkad m\u00e4rkama, et s\u00fcsteemidel on oma iseloom. Need v\u00f5ivad olla alti, vaiksed, kapriissed, karmid. Need v\u00f5ivad sind t\u00f5mmata v\u00f5i peletada. Igal juhul pead nendega \"kokkuleppele\" j\u00f5udma, navigeerima \"aluste kivide\" vahel ja looma nende koost\u00f6\u00f6 ahelad.<\/p>\n<p><\/p>\n<p>N\u00fc\u00fcd on meie v\u00f5imalus ehitada pilveplatvorm, milleks oli vajalik \"veenda\" paar alam-s\u00fcsteemi meiega koost\u00f6\u00f6d tegema. \u00d5nneks on meil olemas \"API keel\", osavad k\u00e4ed ja hulk entusiasmi. <\/p>\n<p><\/p>\n<p>Selles artiklis ei k\u00e4sitleta tehnilisi detaile, vaid tuuakse v\u00e4lja probleemid, millega me silmitsi seisime pilve loomise protsessis. Otsustasin meie teekonna kirjeldada kerge tehnilise fantaasiana, kuidas me s\u00fcsteemidega \u00fchist keelt otsisime ja mis sellest v\u00e4lja tuli. <\/p>\n<p><\/p>\n<p>Tere tulemast allapoole.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p><\/p>\n<h3 id=\"nachalo-puti\">Teekonna algus<\/h3>\n<p><\/p>\n<p>M\u00f5ni aeg tagasi pandi meie meeskonnale \u00fclesanne \u2014 k\u00e4ivitada pilveplatvorm meie klientidele. Meil olid olemas juhtkonna toetus, ressursid, riistvaraline struktuur ja vabadus tehnoloogiate valimisel teenuse tarkvara osa teostamiseks.<\/p>\n<p><\/p>\n<p>Oli ka mitmeid n\u00f5udeid:<\/p>\n<p><\/p>\n<ul>\n<li>teenus vajab mugavat isiklikku kabinetti;<\/li>\n<li>platvorm peab olema integreeritud olemasolevasse arveldamise s\u00fcsteemi;<\/li>\n<li>programmi-riistvara osa: OpenStack + Tungsten Fabric (Open Contrail), mida meie insenerid on piisavalt h\u00e4sti \"valmistama\" \u00f5ppinud.<\/li>\n<\/ul>\n<p><\/p>\n<p>Kuidas meeskond kokku kutsuti, isikliku kabineti liidest arendati ja disainiotsuseid tehti \u2014 sellest r\u00e4\u00e4gime j\u00e4rgmisel korral, kui Habr-\u00fchisusele huvi tekib.<br \/>\nT\u00f6\u00f6riistad, mida me otsustasime kasutada:<\/p>\n<p><\/p>\n<ul>\n<li>Python + Flask + Swagger + SQLAlchemy \u2014 t\u00e4iesti standardne Python komplekt;<\/li>\n<li>Vue.js frontendi jaoks;<\/li>\n<li>komponentide ja teenuste vaheline suhtlus otsustati teha Celery abil AMQP \u00fcle.<\/li>\n<\/ul>\n<p><\/p>\n<p>Eeldades k\u00fcsimusi Python'i valiku kohta, selgitan. Keel on leidnud oma koha meie ettev\u00f5ttes ja selle \u00fcmber on kujunenud v\u00e4ike, kuid siiski kultuur. Seet\u00f5ttu otsustati alustada teenuse ehitamist just sellega. Eriti kuna arendamise kiirus sellistes \u00fclesannetes m\u00e4ngib sageli suurt rolli. <\/p>\n<p><\/p>\n<p>Alustame siis meie tutvumist.<\/p>\n<p><\/p>\n<h3 id=\"molchalivyy-bill--billing\">Vaikne Bill \u2014 arveldamine<\/h3>\n<p><\/p>\n<p><em>Selle t\u00fc\u00fcbiga olime me pikka aega tuttavad. Ta istus alati k\u00f5rval ja vaikselt midagi arvestas. M\u00f5nikord suunas ta meile kasutajate p\u00e4ringud, koostas kliendiarveid ja haldas teenuseid. Tavaline t\u00f6\u00f6kas mees. T\u00f5si, olid ka raskused. Ta on vaikne, m\u00f5nikord m\u00f5tlik ja sageli \u2014 omaette.<\/em><\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Pilveteenuse loomise lugu, maitsestatud k\u00fcberskandaalidega\" src=\"\/wp-content\/uploads\/2020\/04\/262bb5c9d6234041d264f8e041e647fe.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Kliendihaldustarkvara on esimene s\u00fcsteem, millega me p\u00fc\u00fcdsime s\u00f5braks saada. Ja esimene raskus kohtas meid teenuste t\u00f6\u00f6tlemisel.<\/p>\n<p><\/p>\n<p>N\u00e4iteks, kui loome v\u00f5i kustutame teenuseid, satub \u00fclesanne sisemisse kliendihalduse j\u00e4rjekorda. Nii on rakendatud as\u00fcnkroonset t\u00f6\u00f6tlemist teenustega. Oma teenuste t\u00fc\u00fcpide t\u00f6\u00f6tlemiseks pidime oma \u00fclesandeid selle j\u00e4rjekorra juurde \u201epanema\u201d. Ja siin kohtasime probleemi: dokumentatsiooni puudus. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Pilveteenuse loomise lugu, maitsestatud k\u00fcberskandaalidega\" src=\"\/wp-content\/uploads\/2020\/04\/4d96251df014e315308c94f848bc6cd0.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>API kirjelduse j\u00e4rgi on selle \u00fclesande lahendamine siiski v\u00f5imalik, kuid meil ei olnud aega p\u00f6\u00f6rdinseneri t\u00f6\u00f6deks, seega t\u00f5stsime loogika v\u00e4lja ja korraldasime \u00fclesannete j\u00e4rjekorra RabbitMQ peal. Teenuse operatsioon algatatakse kliendi poolt isiklikus kabinetis, see pakitakse Celery '\u00fclesandesse' tagaosas ja t\u00e4idetakse arvelduse ja OpenStack'i k\u00fclgedel. Celery v\u00f5imaldab piisavalt mugavalt hallata \u00fclesandeid, korraldada kordusi ja j\u00e4lgida olekut. Rohkem teavet 'selleri' kohta saab lugeda n\u00e4iteks <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/oleg-bunin\/blog\/433476\/\">siit<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Arveldamine ei peatunud ka projektis, mille rahad said otsa. Suheldes arendajatega, selgus, et statistika arvestamisel (ja me peame rakendama just sellist loogikat) on keeruline peatamisreeglite omavaheline seos. Kuid need mudelid ei sobi h\u00e4sti meie oludesse. Samuti rakendasime selle Celery \u00fclesannete kaudu, viies teenuste haldamise loogika tagaossa. <\/p>\n<p><\/p>\n<p>M\u00f5lemad \u00fclaltoodud probleemid on viinud sellele, et kood on veidi paisunud ja tulevikus peame tegelema refaktoreerimisega, et eraldi teenusesse v\u00e4lja v\u00f5tta \u00fclesannete t\u00f6\u00f6tlemise loogika. Me peame samuti salvestama osa teavet kasutajate ja nende teenuste kohta oma tabelitesse, et seda loogikat toetada.<\/p>\n<p><\/p>\n<p>Veel \u00fcks probleem on vaikimine.<\/p>\n<p><\/p>\n<p>M\u00f5ne API p\u00e4ringu puhul vastab Billing vaikselt \"Ok\". N\u00e4iteks juhtus see, kui tasusime lubatud makseid testimise ajal (sellest hiljem). P\u00e4ringud t\u00e4ideti korrektselt ja me ei n\u00e4inud vigu. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Pilveteenuse loomise lugu, maitsestatud k\u00fcberskandaalidega\" src=\"\/wp-content\/uploads\/2020\/04\/d03f2c381fd39dbf33f2a0c3eeb1294d.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Pidime logisid uurima, t\u00f6\u00f6tades s\u00fcsteemiga kaudu UI. Selgus, et billing ise t\u00e4idab sarnaseid p\u00e4ringuid, muutes scope'i konkreetse kasutaja, n\u00e4iteks admin, jaoks ja edastades selle parameetris su.<\/p>\n<p><\/p>\n<p>\u00dcldiselt, vaatamata dokumentatsiooni puuduj\u00e4\u00e4kidele ja v\u00e4ikestele API vigadele, l\u00e4ks k\u00f5ik suhteliselt sujuvalt. Logisid on v\u00f5imalik lugeda isegi suure koormuse korral, kui aru saada, kuidas need on \u00fcles ehitatud ja mida otsida. Andmebaasi struktuur on keeruline, kuid t\u00e4iesti loogiline ja mingil m\u00e4\u00e4ral isegi atraktiivne.<\/p>\n<p><\/p>\n<p>Kokkuv\u00f5ttes on meie peamised probleemid, mis tekkisid suhtlemise etapis, seotud konkreetse s\u00fcsteemi rakendamise erip\u00e4radega: <\/p>\n<p><\/p>\n<ul>\n<li>dokumenteerimata \u00abfunktsioonid\u00bb, mis vahetult meid puudutasid;<\/li>\n<li>suletud l\u00e4htekoodid (arveldamine on kirjutatud C++ keeles), mis t\u00e4hendab, et me ei saanud probleemi lahendada muul viisil kui \u00abkatse ja eksituse meetod\u00bb.<\/li>\n<\/ul>\n<p><\/p>\n<p>Kliendil on \u00f5nneks piisavalt ulatuslik API ning oleme integreerinud oma isikliku kabineti j\u00e4rgmised alams\u00fcsteemid:<\/p>\n<p><\/p>\n<ul>\n<li>tehnilise toe moodul \u2014 p\u00e4ringud isiklikust kabinetist suunatakse arveldamisse teenuse kasutajatele n\u00e4htamatult;<\/li>\n<li>rahanduslik moodul \u2014 v\u00f5imaldab esitada arveid praegustele klientidele, teostada arvelduseid ja vormistada maksedokumente;<\/li>\n<li>teenuste haldamise moodul \u2014 selle jaoks pidime rakendama oma t\u00f6\u00f6tlija. S\u00fcsteemi laiendatavus aitas meid ja oleme \u00abkoolitanud\u00bb Billy uut t\u00fc\u00fcpi teenustega.<br \/>\nT\u00f6\u00f6tamine v\u00f5ttis aega, kuid ometigi, ma usun, et Billyga saame sina ja mina l\u00e4bi.<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"progulki-po-volframovym-polyam--tungsten-fabric\">Matkad volframiv\u00e4ljade vahel \u2014 Tungsten Fabric<\/h3>\n<p><\/p>\n<p><em>Volframip\u00f5llud, mida katab sadu juhtmeid, mis edastavad l\u00e4bi nende tuhandeid bitte infot. Teave kogutakse 'pakettidesse', t\u00f6\u00f6deldakse ja suunatakse keerukatesse marsruutidesse, justkui n\u00f5iaga.<\/em><\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Pilveteenuse loomise lugu, maitsestatud k\u00fcberskandaalidega\" src=\"\/wp-content\/uploads\/2020\/04\/9b6dd46d9f15e0e3393a8c1222abbf2f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>See on teise s\u00fcsteemi ala, millega pidime s\u00f5braks saama \u2014 Tungsten Fabric (TF), endine OpenContrail. Selle \u00fclesanne on hallata v\u00f5rgu seadmeid, pakkudes meile, kasutajatele, tarkvaralist abstraktsiooni. TF on SDN, mis sisaldab endas keerukat loogikat v\u00f5rgu seadmete t\u00f6\u00f6tlemiseks. Tehnoloogia kohta on olemas hea artikkel, n\u00e4iteks, <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/muk\/blog\/251959\/\">siin<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>S\u00fcsteem on integreeritud OpenStackiga (sellest r\u00e4\u00e4gime allpool) Neutroni plugina kaudu. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Pilveteenuse loomise lugu, maitsestatud k\u00fcberskandaalidega\" src=\"\/wp-content\/uploads\/2020\/04\/5abe3992efaab3e016a0c51dc0070a94.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>OpenStacki teenuste suhtlemine.<\/em><\/p>\n<p><\/p>\n<p>Selle s\u00fcsteemiga tutvustasid meid t\u00f6\u00f6tajad k\u00e4ituse osakonnast. Kasutame s\u00fcsteemi API-d meie teenuste v\u00f5rgustiku haldamiseks. T\u00f5siseid probleeme v\u00f5i ebamugavusi see meile seni ei ole valmistanud (kuid k\u00e4ituse osakonna t\u00f6\u00f6 eest ei saa ma vastutada), siiski on olnud m\u00f5ned naljakad juhtumid suhtlemisel.<\/p>\n<p><\/p>\n<p>Esimene n\u00e4gi v\u00e4lja j\u00e4rgmine: k\u00e4sklused, mis n\u00f5udsid suure hulga andmete v\u00e4ljastamist instantsi konsoolile SSH kaudu, lihtsalt 'k\u00fclmutasid' \u00fchenduse, samas kui VNC kaudu t\u00f6\u00f6tas k\u00f5ik korrektselt.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Pilveteenuse loomise lugu, maitsestatud k\u00fcberskandaalidega\" src=\"\/wp-content\/uploads\/2020\/04\/02bc97d63a1299e1dda08fce0f10fb97.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Need for those unfamiliar with the issue, it looks quite amusing: ls \/root works correctly, while top, for example, completely freezes. Fortunately, we have dealt with similar issues before. It was resolved by tuning the MTU on the route from compute nodes to the routers. By the way, this isn't a problem for TF.<\/p>\n<p><\/p>\n<p>The next problem was lurking around the corner. At one 'beautiful' moment, the magic of routing simply vanished. TF stopped managing routing on the equipment.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Pilveteenuse loomise lugu, maitsestatud k\u00fcberskandaalidega\" src=\"\/wp-content\/uploads\/2020\/04\/db2a75ffdf2940b2ca90f73835f7a321.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>We worked with OpenStack from the admin level and then switched to the required user level. It seems SDN 'takes over' the user scope under which actions are executed. The thing is, this same admin account is used for communication between TF and OpenStack. When switching to the user, the 'magic' disappeared. It was decided to create a separate account for working with the system. This allowed us to operate without breaking the integration functionality.<\/p>\n<p><\/p>\n<h3 id=\"silikonovye-formy-zhizni--openstack\">Silicon life forms \u2014 OpenStack<\/h3>\n<p><\/p>\n<p><em>Kujuteldav kummaline olend elab wolframiv\u00e4ljade l\u00e4hedal. See sarnaneb k\u00f5ige rohkem kasvava lapsega, kes v\u00f5ib meie \u00fchek\u00e4tega purustada, kuid sellest ei kiirgu ilmset agressiivsust. See ei tekita hirmu, kuid selle suurus on hirmutav. Nagu ka keerukus, mis toimub selle \u00fcmber.<\/em><\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Pilveteenuse loomise lugu, maitsestatud k\u00fcberskandaalidega\" src=\"\/wp-content\/uploads\/2020\/04\/8622d43e0cb963bc9ef2a2ce59a32499.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>OpenStack on meie platvormi tuum.<\/p>\n<p><\/p>\n<p>OpenStackil on mitu alam-s\u00fcsteemi, millest hetkel kasutame k\u00f5ige aktiivsemalt Nova, Glance ja Cinder. Igal neist on oma API. Nova vastutab arvutusressursside ja instantside loomise eest, Cinder haldab mahtusid ja nende pilte, Glance on pilditeenus, mis haldab OS-i malli ja nende kohta metainfot.<\/p>\n<p><\/p>\n<p>Iga teenus t\u00f6\u00f6tab konteineris ja s\u00f5numite edastamiseks kasutame 'valget j\u00e4nest' \u2014 RabbitMQ.<\/p>\n<p><\/p>\n<p>See s\u00fcsteem on meile p\u00f5hjustanud k\u00f5ige rohkem ootamatuid probleeme.<\/p>\n<p><\/p>\n<p>Esimene probleem tekkis kohe, kui proovisime lisamahtu serverile \u00fchendada. Cinder API keeldus seda \u00fclesannet t\u00e4itmast. T\u00e4psemalt, kui usaldada OpenStack\u2019ile, siis \u00fchendus luuakse, kuid virtuaalmasina sees puudub ketase.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Pilveteenuse loomise lugu, maitsestatud k\u00fcberskandaalidega\" src=\"\/wp-content\/uploads\/2020\/04\/b4755d893f3f8ad7d7aeab3af69f35cf.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Otsustasime \"m\u00f6\u00f6da minna\" ja k\u00fcsisime sama tegevuse Nova API-lt. Tulemus \u2014 seade \u00fchendub korrektselt ja on serveris saadaval. Tundub, et probleem tekib, kui block-storage ei vasta Cinder'ile.<\/p>\n<p><\/p>\n<p>K\u00e4idi l\u00e4bi veel \u00fcks keeruline olukord, t\u00f6\u00f6tades k\u00f5vaketastega. S\u00fcsteemi volume'i ei saanud serverist lahti \u00fchendada.<\/p>\n<p><\/p>\n<p>J\u00e4lle v\u00e4idab OpenStack, et \u00fchendus on h\u00e4vitatud ja n\u00fc\u00fcd saab volume'iga \u00f5igesti t\u00f6\u00f6tada. Kuid API keeldus kategooriliselt ketta operatsioonide teostamisest. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Pilveteenuse loomise lugu, maitsestatud k\u00fcberskandaalidega\" src=\"\/wp-content\/uploads\/2020\/04\/952fd7cd11181605c52a7df71cd4f69f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Siin otsustasime eriti mitte v\u00f5idelda, vaid muuta oma vaadet teenuse toimimise loogikale. Kui instance on olemas, peab olema ka s\u00fcsteemi volume. Seega ei saa kasutaja praegu s\u00fcsteemset \"ketast\" kustutada v\u00f5i lahti \u00fchendada, ilma et \"serverit\" kustutaks.<\/p>\n<p><\/p>\n<p>OpenStack on piisavalt keeruline s\u00fcsteemide kompleks oma suhtlemisloogikaga ja keerulise API-ga. Meid aitab piisavalt detailne dokumentatsioon ja, loomulikult, meetod proovimisest ja eksimisest (kuhu ka ilma selleta ei saa).<\/p>\n<p><\/p>\n<h3 id=\"testovyy-zapusk\">Testk\u00e4ivitus<\/h3>\n<p><\/p>\n<p>Meie testk\u00e4ivitus toimus eelmisel detsembril. Peamine \u00fclesanne oli kontrollida meie projekti t\u00f6\u00f6tamist nii tehnilisest kui ka kasutajakogemuse (UX) aspektist. Vaatlejad kutsuti valikuliselt ja testimine oli suletud. Siiski, me j\u00e4tsime v\u00f5imaluse registreerida juurdep\u00e4\u00e4s testimisele meie veebisaidil.<\/p>\n<p><\/p>\n<p>Isegi test ei m\u00f6\u00f6dunud ilma kummaliste hetkedeta, sest meie seiklused alles alustavad. <\/p>\n<p><\/p>\n<p>Esiteks hindasime projekti huvi veidi valesti ja pidime testimise ajal kiirelt lisama compute-node'e. Tavaline juhtum klastris, kuid ka siin olid n\u00fcansid. Konkreetse TF versiooni dokumentatsioonis on m\u00e4rgitud konkreetne tuumaversioon, millega vRouteri toimimist testiti. Otsustasime k\u00e4ivitada node'id uuemate tuumadega. Tulemuseks \u2014 TF ei saanud node'itelt marsruute. Pidi kiirelt tuumad tagasi kerima.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Pilveteenuse loomise lugu, maitsestatud k\u00fcberskandaalidega\" src=\"\/wp-content\/uploads\/2020\/04\/377208246d5e396317fb934a35ed1227.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Teine kummaline juhtum on seotud isikliku konto parooli muutmise nupuga. <\/p>\n<p><\/p>\n<p>Otsustasime kasutada JWT-d juurdep\u00e4\u00e4su korraldamiseks isiklikule kontole, et mitte t\u00f6\u00f6tada sessioonide kallal. Kuna s\u00fcsteemid on mitmekesised ja laialdaselt hajutatud, haldame oma tokenit, kuhu \u201epakime\u201d sessioonid arveldamisest ja OpenStacki tokenist. Parooli muutmisel \u201ekaob\u201d token, kuna kasutaja andmed ei ole enam kehtivad ning see tuleb uuesti v\u00e4lja anda. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Pilveteenuse loomise lugu, maitsestatud k\u00fcberskandaalidega\" src=\"\/wp-content\/uploads\/2020\/04\/daa27256d0b888b2c59d4bc6129f600d.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Me j\u00e4ttisime selle hetke t\u00e4helepanuta ning ressursse oli lihtsalt liiga v\u00e4he, et selle osa kiiresti juurde kirjutada. Olime sunnitud funktsionaalsuse l\u00f5ikama vahetult enne testimise k\u00e4ivitamist.<br \/>\nPraegusel hetkel logime v\u00e4lja kasutaja, kui parooli on muudetud.<\/p>\n<p><\/p>\n<p>Hoolimata neist n\u00fcanssidest l\u00e4ks testimine h\u00e4sti. Paari n\u00e4dalaga k\u00fclastas meid umbes 300 inimest. \u00d5nnestus vaadata toodet kasutajate silmade kaudu, testida seda reaalses keskkonnas ja koguda kvaliteetset tagasisidet. <\/p>\n<p><\/p>\n<h3 id=\"prodolzhenie-sleduet\">J\u00e4tkub<\/h3>\n<p><\/p>\n<p>Paljudele meist on see esimeseks projektiks sellise ulatuse t\u00f5ttu. Saime v\u00e4\u00e4rtuslikke \u00f5ppetunde, kuidas meeskonnas t\u00f6\u00f6tada, arhitektuuri ja disainiotsuseid langetada. Kuidas integreerida keerulisi s\u00fcsteeme piiratud ressursside korral ning viia need tootmisse. <\/p>\n<p><\/p>\n<p>Muidugi on nii koodi kui ka s\u00fcsteemide integreerimise osas palju parandada. Projekt on piisavalt noor, kuid oleme t\u00e4is ambitsioone kasvatada sellest usaldusv\u00e4\u00e4rne ja mugav teenus.<\/p>\n<p><\/p>\n<p>S\u00fcsteemid on meil juba korraldatud. Bill on usinalt oma konserveerimisruumis arveid koostamas ja kasutajate p\u00e4ringutega tegelemas. Tootmismaagilised volframiv\u00e4ljad tagavad meile stabiilse \u00fchenduse. Ainult OpenStack m\u00f5nikord nuriseb, h\u00fc\u00fcdes midagi sellist nagu 'WSREP ei ole veel s\u00f5lme rakenduse kasutamiseks ette valmistanud'. Aga see on juba hoopis teine lugu\u2026<\/p>\n<p><\/p>\n<p>Hiljuti k\u00e4ivitasime teenuse.<br \/>\nK\u00f5ik \u00fcksikasjad leiate meie <noindex><a rel=\"nofollow\" href=\"https:\/\/clo.ru?utm_source=habr&amp;utm_medium=article&amp;utm_campaign=product&amp;utm_term=first_clo\">veebilehel<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Pilveteenuse loomise lugu, maitsestatud k\u00fcberskandaalidega\" src=\"\/wp-content\/uploads\/2020\/04\/32550980b529a5d7b395b3962218e53e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>CLO arendusmeeskond<\/em><\/p>\n<p><\/p>\n<p>                        <b class=\"spoiler_title\">Kasulikud lingid<\/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>Allikas: <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 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\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\" \/>\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\/et\/blog\/administrirovanie\/istoriya-sozdaniya-oblachnogo-servisa-pripravlennaya-kiberpankom\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\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 \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\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/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\udd47Pilveteenuse loomise lugu, maitsestatud k\u00fcberpungiga | ProHoster","description":"IT valdkonnas t\u00f6\u00f6tamise kasvades hakkad m\u00e4rkama, et s\u00fcsteemidel on oma iseloom. Need v\u00f5ivad olla koost\u00f6\u00f6valmid, vaiksed, kapriissed, karmid. Nad v\u00f5ivad olla usaldusv\u00e4\u00e4rsed v\u00f5i hoopis vastupidised. Sel v\u00f5i teisel viisil peab nendega \"kokkuleppele j\u00f5udma\", man\u00f6\u00f6verdama \"allveelaevade\" vahel ja kujundama nende koost\u00f6\u00f6v\u00f5rgustikke. Nii oli meil t\u00f5epoolest au ehitada pilveplatvorm, mis n\u00f5udis nende \"kokkuleppimist\".","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/istoriya-sozdaniya-oblachnogo-servisa-pripravlennaya-kiberpankom","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","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 \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","og:url":"https:\/\/prohoster.info\/et\/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"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/79153","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=79153"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/79153\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/79154"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=79153"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=79153"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=79153"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}