{"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\/pt\/blog\/administrirovanie\/mikroservisy-kombinatornyj-vzryv-versij","title":{"rendered":"Microservi\u00e7os \u2014 explos\u00e3o combinat\u00f3ria de vers\u00f5es","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Ol\u00e1, Habr! Apresento a voc\u00eas <i>a tradu\u00e7\u00e3o autoral do artigo <noindex><a rel=\"nofollow\" href=\"https:\/\/worklifenotes.com\/2020\/03\/04\/microservices-combinatorial-explosion-of-versions\/\">Microservi\u00e7os \u2013 Explos\u00e3o Combinat\u00f3ria de Vers\u00f5es<\/a><\/noindex>.<\/i><br \/>\n<img decoding=\"async\" alt=\"Microservi\u00e7os \u2014 explos\u00e3o combinat\u00f3ria de vers\u00f5es\" src=\"\/wp-content\/uploads\/2020\/03\/595431c434519e41afe45e86c5725b8d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nEm tempos em que o mundo de TI est\u00e1 gradualmente migrando para microservi\u00e7os e ferramentas como Kubernetes, uma \u00fanica quest\u00e3o se torna cada vez mais evidente. Essa quest\u00e3o \u00e9 <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\">explos\u00e3o combinat\u00f3ria<\/a><\/noindex> de vers\u00f5es de microservi\u00e7os. No entanto, a comunidade de TI acredita que a situa\u00e7\u00e3o atual \u00e9 significativamente melhor do que <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Dependency_hell\">o 'inferno de depend\u00eancias'<\/a><\/noindex> da gera\u00e7\u00e3o anterior de tecnologias. No entanto, a gest\u00e3o de vers\u00f5es de microservi\u00e7os \u00e9 um problema muito complexo. Uma das evid\u00eancias disso pode ser encontrada em artigos como <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/444130\/\">'Devolva-me meu monolito'<\/a><\/noindex>.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nSe voc\u00ea ainda n\u00e3o compreende o problema ao ler este texto, deixe-me explicar. Suponha que seu produto consista em 10 microservi\u00e7os. Agora suponha que para cada um desses microservi\u00e7os seja lan\u00e7ada uma nova vers\u00e3o. Apenas uma vers\u00e3o \u2014 espero que todos possamos concordar que isso \u00e9 um fato bastante trivial e insignificante. Agora, no entanto, vamos olhar novamente para o nosso produto. Com apenas uma nova vers\u00e3o para cada componente, agora temos 2^10 \u2014 ou 1024 permuta\u00e7\u00f5es de como podemos compor nosso produto.<\/p>\n<p>Se ainda houver confus\u00e3o, deixe-me detalhar a matem\u00e1tica. Assim, temos 10 microservi\u00e7os, cada um recebendo uma atualiza\u00e7\u00e3o. Ou seja, obtemos 2 vers\u00f5es poss\u00edveis para cada microservi\u00e7o (ou a antiga ou a nova). Agora, para cada um dos componentes do produto, podemos usar qualquer uma dessas duas vers\u00f5es. Matematicamente, isso \u00e9 o mesmo que termos um n\u00famero bin\u00e1rio de 10 d\u00edgitos. Por exemplo, digamos que 1 \u00e9 a nova vers\u00e3o e 0 \u00e9 a vers\u00e3o antiga \u2014 ent\u00e3o uma poss\u00edvel permuta\u00e7\u00e3o pode ser representada como 1001000000 \u2014 onde o 1\u00ba e o 4\u00ba componentes est\u00e3o atualizados e todos os outros n\u00e3o. Da matem\u00e1tica, sabemos que um n\u00famero bin\u00e1rio de 10 d\u00edgitos pode ter 2^10 ou 1024 valores. Ou seja, confirmamos a magnitude do n\u00famero com o qual estamos lidando.<\/p>\n<p>Vamos continuar a discuss\u00e3o \u2014 o que acontecer\u00e1 se tivermos 100 microservi\u00e7os e cada um deles com 10 vers\u00f5es poss\u00edveis? A situa\u00e7\u00e3o se torna bastante desagrad\u00e1vel \u2014 agora temos 10^100 permuta\u00e7\u00f5es \u2014 um n\u00famero gigantesco. No entanto, prefiro descrever essa situa\u00e7\u00e3o assim, porque agora n\u00e3o estamos nos escondendo atr\u00e1s de palavras como 'kubernetes', mas enfrentamos o problema como ele \u00e9.<\/p>\n<p>Por que este problema me fascina tanto? Em parte porque, ao trabalhar anteriormente no mundo de NLP e IA, discutimos muito sobre o problema da explos\u00e3o combinat\u00f3ria h\u00e1 cerca de 5-6 anos. S\u00f3 que, em vez de vers\u00f5es, t\u00ednhamos palavras individuais, e em vez de produtos, t\u00ednhamos frases e par\u00e1grafos. E embora os problemas de NLP e IA ainda permane\u00e7am em grande parte n\u00e3o resolvidos, \u00e9 justo reconhecer que, nos \u00faltimos anos, houve um progresso consider\u00e1vel. <i>(na minha opini\u00e3o, o progresso poderia ser maior,<b>maior<\/b>se as pessoas da ind\u00fastria prestassem um pouco menos de aten\u00e7\u00e3o ao aprendizado de m\u00e1quina e um pouco mais a outras t\u00e9cnicas \u2014 mas isso j\u00e1 \u00e9 um tema fora de t\u00f3pico).<\/i><\/p>\n<p>Voltando ao mundo de DevOps e microsservi\u00e7os. Temos um enorme problema, que se disfar\u00e7a como um elefante na sala \u2014 o que ou\u00e7o com frequ\u00eancia \u00e9: \"basta pegar o kubernetes e o helm, e tudo ficar\u00e1 bem!\" Mas n\u00e3o, n\u00e3o ficar\u00e1 bem se tudo permanecer como est\u00e1. Al\u00e9m disso, uma solu\u00e7\u00e3o anal\u00edtica para esse problema n\u00e3o \u00e9 aceit\u00e1vel devido \u00e0 complexidade. Assim como em NLP, devemos primeiro abordar esse problema reduzindo o escopo da pesquisa \u2014 neste caso, eliminando permuta\u00e7\u00f5es obsoletas.<\/p>\n<p>Uma das coisas que pode ajudar \u2014 escrevi no ano passado <noindex><a rel=\"nofollow\" href=\"https:\/\/worklifenotes.com\/2019\/03\/21\/devops-kpis-measuring-distance-between-latest-and-greatest-and-oldest-production-version\/\">sobre a necessidade de manter uma m\u00ednima varia\u00e7\u00e3o entre as vers\u00f5es liberadas para os clientes.<\/a><\/noindex>Tamb\u00e9m \u00e9 importante ressaltar que um processo CI\/CD bem desenvolvido ajuda muito a reduzir varia\u00e7\u00f5es. No entanto, a situa\u00e7\u00e3o atual com CI\/CD n\u00e3o \u00e9 suficientemente boa para resolver o problema das permuta\u00e7\u00f5es sem ferramentas adicionais de rastreamento e contabilidade de componentes.<\/p>\n<p>O que precisamos \u00e9 de um sistema de experimentos na fase de integra\u00e7\u00e3o, onde possamos determinar o fator de risco para cada componente, al\u00e9m de ter um processo autom\u00e1tico de atualiza\u00e7\u00e3o de diferentes componentes e testes sem interven\u00e7\u00e3o do operador \u2014 para ver o que funciona e o que n\u00e3o funciona.<\/p>\n<p>Esse sistema de experimentos poderia ser estruturado da seguinte forma:<\/p>\n<ol>\n<li>Os desenvolvedores escrevem testes (esta \u00e9 uma etapa cr\u00edtica \u2014 porque, caso contr\u00e1rio, n\u00e3o temos um crit\u00e9rio de avalia\u00e7\u00e3o \u2014 \u00e9 como a rotulagem de dados no aprendizado de m\u00e1quina).<\/li>\n<li>Cada componente (projeto) recebe seu pr\u00f3prio sistema CI \u2014 esse processo hoje est\u00e1 bem desenvolvido, e a quest\u00e3o de criar um sistema CI para um \u00fanico componente est\u00e1, em grande parte, resolvida.<\/li>\n<li>O sistema de integra\u00e7\u00e3o inteligente re\u00fane os resultados de v\u00e1rios sistemas CI e compila projetos componentizados em um produto final, executa testes e, por fim, calcula o caminho mais curto para obter a funcionalidade necess\u00e1ria do produto com base nos componentes existentes e nos fatores de risco. Se a atualiza\u00e7\u00e3o n\u00e3o for poss\u00edvel, esse sistema notifica os desenvolvedores sobre os componentes dispon\u00edveis e qual deles apresenta erro. Mais uma vez, reitero que o sistema de testes aqui \u00e9 de import\u00e2ncia cr\u00edtica \u2014 pois o sistema de integra\u00e7\u00e3o usa testes como crit\u00e9rio de avalia\u00e7\u00e3o.<\/li>\n<li>Um sistema CD, que ent\u00e3o recebe dados da \u2018sistema de integra\u00e7\u00e3o inteligente\u2019 e realiza a atualiza\u00e7\u00e3o propriamente dita. Esta etapa finaliza o ciclo.<\/li>\n<\/ol>\n<p>\nResumindo, para mim, um dos maiores problemas atualmente \u00e9 a aus\u00eancia de um \u2018sistema de integra\u00e7\u00e3o inteligente\u2019 que conecte diferentes componentes em um produto e assim permita rastrear como o produto \u00e9 composto de forma geral. Estou interessado nas opini\u00f5es da comunidade sobre isso (spoiler - estou trabalhando em um projeto <noindex><a rel=\"nofollow\" href=\"https:\/\/relizahub.com\">Reliza<\/a><\/noindex>, que pode se tornar esse sistema de integra\u00e7\u00e3o inteligente).<\/p>\n<p>Uma \u00faltima coisa que quero mencionar \u00e9 que, para mim, um mon\u00f3lito n\u00e3o \u00e9 aceit\u00e1vel para qualquer projeto de tamanho m\u00e9dio. Sinto um grande ceticismo em rela\u00e7\u00e3o \u00e0s tentativas de acelerar o tempo de implementa\u00e7\u00e3o e a qualidade do desenvolvimento ao retornar ao mon\u00f3lito. Em primeiro lugar, o mon\u00f3lito tem um problema semelhante de gest\u00e3o de componentes \u2014 entre v\u00e1rias bibliotecas das quais \u00e9 composto, no entanto, tudo isso n\u00e3o \u00e9 t\u00e3o percept\u00edvel e se manifesta primeiro no tempo que os desenvolvedores gastam. A consequ\u00eancia do problema do mon\u00f3lito \u00e9 a real impossibilidade de fazer altera\u00e7\u00f5es no c\u00f3digo \u2014 e uma velocidade de desenvolvimento extremamente lenta.<\/p>\n<p>Microservi\u00e7os melhoram a situa\u00e7\u00e3o, no entanto, a arquitetura de microservi\u00e7os enfrenta o problema da explos\u00e3o combinat\u00f3ria na fase de integra\u00e7\u00e3o. Sim, de forma geral, deslocamos o mesmo problema \u2014 da fase de desenvolvimento para a fase de integra\u00e7\u00e3o. No entanto, a meu ver, a abordagem de microservi\u00e7os ainda resulta em melhores resultados e as equipes alcan\u00e7am resultados mais rapidamente (provavelmente, principalmente devido \u00e0 redu\u00e7\u00e3o do tamanho da unidade de desenvolvimento \u2014 ou <i>tamanho de lote<\/i>). No entanto, a transi\u00e7\u00e3o de monolitos para microsservi\u00e7os ainda n\u00e3o trouxe uma melhoria suficiente no processo \u2014 a explos\u00e3o combinat\u00f3ria de vers\u00f5es de microsservi\u00e7os \u00e9 um grande problema, e temos um grande potencial para melhorar a situa\u00e7\u00e3o \u00e0 medida que a resolvemos.<br \/>\n<br \/>Fonte: <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.3 - 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\/pt\/blog\/administrirovanie\/mikroservisy-kombinatornyj-vzryv-versij\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\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\/pt\/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\udd47Microsservi\u00e7os \u2014 explos\u00e3o combinat\u00f3ria de vers\u00f5es | ProHoster","description":"Ol\u00e1, Habr!","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/mikroservisy-kombinatornyj-vzryv-versij","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","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\/pt\/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\/pt\/wp-json\/wp\/v2\/posts\/75892","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=75892"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/75892\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/75893"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=75892"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=75892"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=75892"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}