{"id":75892,"date":"2020-03-29T01:43:46","date_gmt":"2020-03-28T23:43:46","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/mikroservisy-kombinatornyj-vzryv-versij"},"modified":"2020-03-29T01:43:46","modified_gmt":"2020-03-28T23:43:46","slug":"mikroservisy-kombinatornyj-vzryv-versij","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/mikroservisy-kombinatornyj-vzryv-versij","title":{"rendered":"Mikroteenused \u2014 versioonide kombinatoorne plahvatus","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Tere, Habr! Esitleme teile <i>autori t\u00f5lgitud artiklit <noindex><a rel=\"nofollow\" href=\"https:\/\/worklifenotes.com\/2020\/03\/04\/microservices-combinatorial-explosion-of-versions\/\">Mikroteenused \u2013 kombinatoorne versioonide plahvatus<\/a><\/noindex>.<\/i><br \/>\n<img decoding=\"async\" alt=\"Mikroteenused \u2014 versioonide kombinatoorne plahvatus\" src=\"\/wp-content\/uploads\/2020\/03\/595431c434519e41afe45e86c5725b8d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nAegadel, mil IT maailm \u00fcha enam mikroteenustele ja sellistele t\u00f6\u00f6riistadele nagu Kubernetes \u00fcle l\u00e4heb, muutub \u00fcha silmatorkavamaks \u00fcks probleem. See probleem on <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9A%D0%BE%D0%BC%D0%B1%D0%B8%D0%BD%D0%B0%D1%82%D0%BE%D1%80%D0%BD%D1%8B%D0%B9_%D0%B2%D0%B7%D1%80%D1%8B%D0%B2\">kombinatoorne plahvatus<\/a><\/noindex> mikroteenuste versioonides. Siiski usub IT kogukond, et t\u00e4nane olukord on oluliselt parem kui <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Dependency_hell\">\u00abS\u00f5ltuvuse p\u00f5rgu\u00bb<\/a><\/noindex> eelmistest tehnoloogiate p\u00f5lvkondadest. Siiski on mikroteenuste versioonide haldamine keeruline probleem. \u00dche t\u00f5endina selle kohta v\u00f5ivad teenida artiklid, nagu <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/444130\/\">\u00abTooge mulle tagasi mu monoliit\u00bb<\/a><\/noindex>.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nKui te lugedes seda teksti ei m\u00f5ista probleemi, lubage mul seda selgitada. Oletame, et teie toode koosneb 10 mikroteenusest. N\u00fc\u00fcd oletame, et iga\u00fchele neist mikroteenustest tuleb v\u00e4lja 1 uus versioon. Ainult 1 versioon \u2013 loodan, et me k\u00f5ik saame kokku leppida, et see on v\u00e4gagi triviaalne ja ebaoluline fakt. N\u00fc\u00fcd vaatame aga uuesti meie toodet. \u00dcheainsa uue versiooniga iga komponendi jaoks oleme n\u00fc\u00fcd omandanud 2^10 \u2013 ehk 1024 permutatsiooni, kuidas meie toodet kokku panna.<\/p>\n<p>Kui teie arusaam pole ikka veel selge, lubage mul matemaatika lahti harutada. Nii et meil on 10 mikroteenust, iga\u00fcks saab \u00fche uuenduse. See t\u00e4hendab, et iga mikroteenuse kohta on meil 2 v\u00f5imalikku versiooni (kas vana v\u00f5i uus). N\u00fc\u00fcd, iga komponendi puhul saame kasutada kas \u00fchte neist kahest versioonist. Matemaatiliselt on see sama, kui meil oleks 10-kohaline binaarnumber. N\u00e4iteks oletame, et 1 on uus versioon ja 0 on vana versioon \u2013 siis v\u00f5ib \u00fchte permutatsiooni t\u00e4histada kui 1001000000 \u2013 kus 1. ja 4. komponent on uuendatud, ja k\u00f5ik teised mitte. Matemaatikast teame, et 10-kohaline binaarnumber v\u00f5ib omada 2^10 ehk 1024 erinevat v\u00e4\u00e4rtust. See t\u00e4hendab, et oleme kinnitanud, millega tegeleda.<\/p>\n<p>J\u00e4tkame arutlemist edasi \u2013 mis juhtub, kui meil on 100 mikroteenust ja igal neist 10 v\u00f5imalikku versiooni? Kogu olukord muutub v\u00e4ga ebameeldivaks \u2013 n\u00fc\u00fcd on meil 10^100 permutatsiooni \u2013 ja see on tohutu number. Siiski eelistan ma selle olukorra nii nimetada, sest n\u00fc\u00fcd me ei peida end selliste s\u00f5nade nagu \u00abkubernetes\u00bb taha, vaid kohtume probleemiga otse.<\/p>\n<p>Miks see probleem mind nii paelub? Osaliselt seet\u00f5ttu, et t\u00f6\u00f6tades varem NLP ja AI maailmas, arutasime me palju kombinatoorse plahvatuse probleemi umbes 5\u20136 aastat tagasi. Ainult et versioonide asemel olid meil eraldi s\u00f5nad ja toodete asemel l\u00f5igud ja paragrahvid. Ja kuigi NLP ja AI probleemid j\u00e4\u00e4vad suures osas lahendamata, tuleb tunnistada, et viimase paari aasta jooksul on saavutatud m\u00e4rkimisv\u00e4\u00e4rne edusamm <i>(minu arvates oleks edusamm v\u00f5inud olla suurem, kui valdkonna inimesed oleksid natuke v\u00e4hem t\u00e4helepanu p\u00f6\u00f6ranud masin\u00f5ppele ja natuke rohkem teistele tehnikatele \u2013 aga see on juba off-topic).<b>o<\/b>Tagasi DevOps ja mikroteenuste maailma. Meie ees seisab tohutu probleem, mis varjab end nagu elevant Kunstkambris \u2013 sest sageli kuuleme: \u00abv\u00f5ta lihtsalt kubernetes ja helm, ja k\u00f5ik l\u00e4heb h\u00e4sti!\u00bb Aga ei, k\u00f5ik ei l\u00e4he h\u00e4sti, kui me k\u00f5ik j\u00e4tame endise olukorra. Veelgi enam, selle probleemi anal\u00fc\u00fctiline lahendus ei tundu olevat aktsepteeritav keerukuse t\u00f5ttu. Nii nagu NLP-s, peaksime ka me enne selle probleemi lahendamist l\u00e4henema otsinguala kitsendamisega \u2013 sel korral ajalooliste permutatsioonide v\u00e4listamise kaudu.<\/i><\/p>\n<p>\u00dcks asi, mis v\u00f5ib aidata \u2013 kirjutasin mullu<\/p>\n<p>vaja hoida minimaalset k\u00f5ikumist klientide jaoks avaldatud versioonide vahel <noindex><a rel=\"nofollow\" href=\"https:\/\/worklifenotes.com\/2019\/03\/21\/devops-kpis-measuring-distance-between-latest-and-greatest-and-oldest-production-version\/\">. Oluline on m\u00e4rkida, et h\u00e4sti l\u00e4bi m\u00f5eldud CI\/CD protsess aitab samuti variatsioone v\u00e4hendada. Siiski ei ole t\u00e4nane CI\/CD olukord piisavalt hea, et lahendada permutatsioonide probleem ilma t\u00e4iendava komponentide j\u00e4lgimise ja arvestamise t\u00f6\u00f6riistadeta.<\/a><\/noindex>Mida me vajame \u2013 on katsetuste s\u00fcsteem integreerimise etapis, kus saaksime m\u00e4\u00e4rata riskifaktori iga komponendi kohta, samuti omada automatiseeritud erinevate komponentide uuendamise ja testimise protsessi ilma operaatori sekkumiseta \u2013 et n\u00e4ha, mis t\u00f6\u00f6tab ja mis mitte.<\/p>\n<p>Selline katsetuste s\u00fcsteem v\u00f5iks v\u00e4lja n\u00e4ha nii:<\/p>\n<p>Arendajad kirjutavad teste (see on kriitiline etapp \u2013 sest vastasel korral pole meil hindamisn\u00e4itajat \u2013 see on just nagu andmete m\u00e4rgistus masin\u00f5ppes).<\/p>\n<ol>\n<li>Igal komponendil (projekt) on oma CI s\u00fcsteem \u2013 see protsess on t\u00e4nap\u00e4eval h\u00e4sti arenenud ja k\u00fcsimus CI s\u00fcsteemi loomise kohta \u00fcheainsa komponendi jaoks on suures osas lahendatud.<\/li>\n<li>Iga komponent (projekt) saab oma isikliku CI-s\u00fcsteemi - see protsess on t\u00e4na h\u00e4sti v\u00e4lja t\u00f6\u00f6tatud ja k\u00fcsimus CI-s\u00fcsteemi loomise kohta \u00fcheainsa komponendi jaoks on suures osas lahendatud.<\/li>\n<li>\u00abTarkuss\u00fcsteem\u00bb kogub kokku erinevate CI-s\u00fcsteemide tulemused ja koostab komponentprojektid l\u00f5plikuks tooteks, k\u00e4ivitab testimise ja arvutab l\u00f5puks v\u00e4lja l\u00fchima tee vajaliku toote funktsionaalsuse saavutamiseks, l\u00e4htudes olemasolevatest komponentidest ja riskiteguritest. Kui uuendust ei saa teostada, teavitab see s\u00fcsteem arendajaid olemasolevatest komponentidest ja milles tekib viga. Kordan veel kord, et testide s\u00fcsteem on siin kriitilise t\u00e4htsusega \u2014 kuna integreerimiss\u00fcsteem kasutab teste hindamiskriteeriumina.<\/li>\n<li>CD-s\u00fcsteem, mis seej\u00e4rel saab andmeid \u00abTarkuss\u00fcsteemist\u00bb ja teostab otse uuenduse. See etapp l\u00f5petab ts\u00fckli.<\/li>\n<\/ol>\n<p>\nKokkuv\u00f5tteks, \u00fcks suurimaid probleeme minu jaoks praegu on sellise \u00abTarkuss\u00fcsteemi\u00bb puudumine, mis \u00fchendaks erinevad komponendid tooteks ja seega v\u00f5imaldaks j\u00e4lgida, kuidas toode \u00fcldiselt kokku on pandud. Mind huvitavad kogukonna m\u00f5tted selle kohta (spooiler \u2014 praegu t\u00f6\u00f6tan projekti <noindex><a rel=\"nofollow\" href=\"https:\/\/relizahub.com\">Reliza<\/a><\/noindex>, mis v\u00f5ib saada selliseks tarkuss\u00fcsteemiks).<\/p>\n<p>Viimane asi, mida tahan mainida, on see, et minu jaoks ei ole monoliit mis tahes keskmise suurusega projekti jaoks vastuv\u00f5etav. Olen suur skeptik katsetes kiirendada tegevusaega ja arenduse kvaliteeti, naastes monoliidi juurde. Esiteks, monoliidil on sarnane probleem komponentide haldamise osas \u2014 erinevate raamatukogude seas, millest see koosneb, kuid k\u00f5ik see ei ole nii m\u00e4rgatav ja avaldub eelk\u00f5ige ajas, mille arendajad kulutavad. Monoliidi probleemide tagaj\u00e4rg on tegelik koodimuudatuste v\u00f5imatus \u2014 ja \u00e4\u00e4rmiselt aeglane arenduskiirus.<\/p>\n<p>Mikroteenuseid \u00fchendavad probleemid, kuid seej\u00e4rel seisab mikroteenuste arhitektuur silmitsi kombinatoorse plahvatuse probleemiga integreerimise etapis. Jah, oleme p\u00f5him\u00f5tteliselt viinud sama probleemi arenduselt integreerimise etapile. Kuid minu arvates toob mikroteenuste l\u00e4henemine siiski paremaid tulemusi ning meeskonnad saavutavad tulemusi kiiremini (t\u00f5en\u00e4oliselt peamiselt seet\u00f5ttu, et arenduse yksuse suurus on v\u00e4henenud \u2014 v\u00f5i <i>batch size<\/i>). Siiski ei ole \u00fcleminek monoliidilt mikroteenustele veel tooteprotsessi piisavalt parandanud \u2014 mikroteenuste versioonide kombinatoorne plahvatus on tohutu probleem ning meil on suur potentsiaal olukorra parendamiseks selle lahendamisel.<br \/>\n<br \/>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/494340\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e \u0432\u0430\u0448\u0435\u043c\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u0438\u0439 \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 Microservices \u2013 Combinatorial Explosion of Versions. \u0412\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0430 \u043a\u043e\u0433\u0434\u0430 \u043c\u0438\u0440 IT \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0432\u0440\u043e\u0434\u0435 Kubernetes, \u0432\u0441\u0435 \u0431\u043e\u043b\u0435\u0435 \u0437\u0430\u043c\u0435\u0442\u043d\u043e\u0439 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043b\u0438\u0448\u044c \u043e\u0434\u043d\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430. \u042d\u0442\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u2014 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0442\u043e\u0440\u043d\u044b\u0439 \u0432\u0437\u0440\u044b\u0432 \u0432\u0435\u0440\u0441\u0438\u0439 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432. \u0412\u0441\u0435 \u0436\u0435 IT \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442, \u0447\u0442\u043e \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u044f\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043b\u0443\u0447\u0448\u0435, \u0447\u0435\u043c \u00abDependency hell\u00bb \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":75893,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-75892","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.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440!\" \/>\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\/mikroservisy-kombinatornyj-vzryv-versij\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\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\u041c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u044b \u2014 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0442\u043e\u0440\u043d\u044b\u0439 \u0432\u0437\u0440\u044b\u0432 \u0432\u0435\u0440\u0441\u0438\u0439 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440!\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/mikroservisy-kombinatornyj-vzryv-versij\" \/>\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-03-28T23:43:46+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-03-28T23:43:46+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\udd47Mikroteenused \u2014 versioonide kombinatoorne plahvatus | ProHoster","description":"Tere, Habr!","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/mikroservisy-kombinatornyj-vzryv-versij","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\u041c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u044b \u2014 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0442\u043e\u0440\u043d\u044b\u0439 \u0432\u0437\u0440\u044b\u0432 \u0432\u0435\u0440\u0441\u0438\u0439 | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440!","og:url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/mikroservisy-kombinatornyj-vzryv-versij","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-03-28T23:43:46+00:00","article:modified_time":"2020-03-28T23:43:46+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"75892","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 17:47:28","updated":"2022-09-30 17:33:29","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/75892","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=75892"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/75892\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/75893"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=75892"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=75892"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=75892"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}