{"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\/ro\/blog\/administrirovanie\/mikroservisy-kombinatornyj-vzryv-versij","title":{"rendered":"Microserviciile \u2014 explozia combinatoric\u0103 a versiunilor","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Salut, Habr! V\u0103 prezint <i>traducerea autorului articolului <noindex><a rel=\"nofollow\" href=\"https:\/\/worklifenotes.com\/2020\/03\/04\/microservices-combinatorial-explosion-of-versions\/\">Microservicii \u2013 Explozia combinatorial\u0103 a versiunilor<\/a><\/noindex>.<\/i><br \/>\n<img decoding=\"async\" alt=\"Microserviciile \u2014 explozia combinatoric\u0103 a versiunilor\" src=\"\/wp-content\/uploads\/2020\/03\/595431c434519e41afe45e86c5725b8d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n\u00cen vremurile \u00een care lumea IT trece treptat la microservicii \u0219i instrumente precum Kubernetes, devine din ce \u00een ce mai evident o singur\u0103 problem\u0103. Aceast\u0103 problem\u0103 este <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\">explozia combinatorial\u0103<\/a><\/noindex> versiunilor microserviciilor. Totu\u0219i, comunitatea IT consider\u0103 c\u0103 situa\u021bia de ast\u0103zi este semnificativ mai bun\u0103 dec\u00e2t <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Dependency_hell\">\u201eIadul dependen\u021belor\u201d<\/a><\/noindex> tehnologiile din genera\u021bia anterioar\u0103. Cu toate acestea, gestionarea versiunilor microserviciilor este o problem\u0103 destul de complex\u0103. Unul dintre dovezile acestui lucru pot fi articolele precum <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/444130\/\">\u201e\u00cemi da\u021bi \u00eenapoi monolitul\u201d<\/a><\/noindex>.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nDac\u0103 citind acest text nu \u00een\u021belege\u021bi \u00eenc\u0103 problema, permite\u021bi-mi s\u0103 explic. S\u0103 presupunem c\u0103 produsul dvs. const\u0103 din 10 microservicii. Acum s\u0103 presupunem c\u0103 pentru fiecare dintre aceste microservicii apare o versiune nou\u0103. Doar o versiune \u2013 sper c\u0103 to\u021bi putem fi de acord c\u0103 acesta este un fapt destul de trivial \u0219i nesemnificativ. Acum, \u00eens\u0103, s\u0103 ne uit\u0103m din nou la produsul nostru. Cu o singur\u0103 versiune nou\u0103 pentru fiecare component\u0103, acum avem 2^10 \u2013 sau 1024 permut\u0103ri despre cum putem compune produsul nostru.<\/p>\n<p>Dac\u0103 mai exist\u0103 ne\u00een\u021belesuri, permite\u021bi-mi s\u0103 detaliez matematica. Deci, avem 10 microservicii, fiecare prime\u0219te o actualizare. Asta \u00eenseamn\u0103 c\u0103 ob\u021binem 2 versiuni posibile pentru fiecare microserviciu (fie vechea, fie noua). Acum, pentru fiecare dintre componentele produsului, putem folosi oricare dintre aceste dou\u0103 versiuni. Din punct de vedere matematic, este acela\u0219i lucru cu a avea un num\u0103r binar de 10 cifre. De exemplu, s\u0103 zicem c\u0103 1 este versiunea nou\u0103, iar 0 este versiunea veche \u2013 atunci o permutare posibil\u0103 poate fi reprezentat\u0103 ca 1001000000 \u2013 unde prima \u0219i a patra componente sunt actualizate, dar toate celelalte nu. Din matematic\u0103 \u0219tim c\u0103 un num\u0103r binar de 10 cifre poate avea 2^10 sau 1024 valori. Asta \u00eenseamn\u0103 c\u0103 am confirmat amploarea num\u0103rului cu care ne confrunt\u0103m.<\/p>\n<p>S\u0103 continu\u0103m ra\u021bionamentul mai departe \u2013 ce se va \u00eent\u00e2mpla dac\u0103 avem 100 de microservicii \u0219i fiecare are 10 versiuni posibile? \u00centreaga situa\u021bie devine destul de nepl\u0103cut\u0103 \u2013 acum avem 10^100 permut\u0103ri \u2013 un num\u0103r gigantic. Cu toate acestea, prefer s\u0103 descriu aceast\u0103 situa\u021bie exact a\u0219a, pentru c\u0103 acum nu ne ascundem \u00een spatele cuvintelor precum \u201ekubernetes\u201d, ci ne confrunt\u0103m cu problema a\u0219a cum este.<\/p>\n<p>De ce m\u0103 fascineaz\u0103 at\u00e2t de mult aceast\u0103 problem\u0103? Par\u021bial pentru c\u0103, lucr\u00e2nd anterior \u00een domeniul NLP \u0219i AI, am discutat mult despre problema exploziei combina\u021bionale acum 5-6 ani. Doar c\u0103, \u00een loc de versiuni, aveam cuvinte separate, iar \u00een loc de produse aveam propozi\u021bii \u0219i paragrafe. \u0218i, de\u0219i problemele din NLP \u0219i AI r\u0103m\u00e2n \u00een mare parte nerezolvate, trebuie s\u0103 recunoa\u0219tem c\u0103, \u00een ultimii c\u00e2\u021biva ani, s-a realizat un progres substan\u021bial. <i>(\u00een opinia mea, progresul ar fi putut fi mai<b>mare<\/b>, dac\u0103 oamenii din industrie ar acorda pu\u021bin mai pu\u021bin aten\u021bie \u00eenv\u0103\u021b\u0103rii automate \u0219i pu\u021bin mai multor tehnici alternative \u2014 dar acesta este deja un subiect off-topic).<\/i><\/p>\n<p>Revenind la lumea DevOps \u0219i microserviciilor. \u00cen fa\u021ba noastr\u0103 se afl\u0103 o problem\u0103 uria\u0219\u0103, care se ascunde ca un elefant \u00eentr-un muzeu de curiozit\u0103\u021bi \u2014 pentru c\u0103 ceea ce aud adesea este \u201eia kubernetes \u0219i helm, \u0219i totul va fi bine!\u201d Dar nu, lucrurile nu vor fi bine dac\u0103 le l\u0103s\u0103m a\u0219a. Mai mult, solu\u021bia analitic\u0103 a acestei probleme nu pare acceptabil\u0103 din cauza complexit\u0103\u021bii. La fel ca \u00een NLP, ar trebui s\u0103 ne abord\u0103m \u00eent\u00e2i aceast\u0103 problem\u0103 prin restr\u00e2ngerea domeniului de c\u0103utare \u2014 \u00een acest caz, prin excluderea permut\u0103rilor \u00eenvechite.<\/p>\n<p>Unul dintre lucrurile care poate ajuta \u2014 am scris anul trecut <noindex><a rel=\"nofollow\" href=\"https:\/\/worklifenotes.com\/2019\/03\/21\/devops-kpis-measuring-distance-between-latest-and-greatest-and-oldest-production-version\/\">despre necesitatea de a men\u021bine o varia\u021bie minim\u0103 \u00eentre versiunile livrate clien\u021bilor.<\/a><\/noindex>De asemenea, este important de men\u021bionat c\u0103 un proces CI\/CD bine structurat ajut\u0103 mult la reducerea varia\u021biilor. Totu\u0219i, starea actual\u0103 a CI\/CD nu este suficient de bun\u0103 pentru a rezolva problema permut\u0103rilor f\u0103r\u0103 un instrumentar suplimentar pentru contabilizarea \u0219i urm\u0103rirea componentelor.<\/p>\n<p>Ceea ce ne trebuie \u2014 este un sistem de experimente \u00een etapa de integrare, unde am putea defini factorul de risc pentru fiecare component\u0103, precum \u0219i s\u0103 avem un proces automatizat de actualizare a diferitelor componente \u0219i testare f\u0103r\u0103 interven\u021bia operatorului \u2014 pentru a vedea ce func\u021bioneaz\u0103 \u0219i ce nu.<\/p>\n<p>Un astfel de sistem de experimente ar putea ar\u0103ta astfel:<\/p>\n<ol>\n<li>Dezvoltatorii scriu teste (acesta este un pas critic \u2014 pentru c\u0103 altfel nu avem un criteriu de evaluare \u2014 este ca \u0219i cum am avea nevoie de marcare a datelor \u00een \u00eenv\u0103\u021barea automat\u0103).<\/li>\n<li>Fiecare component\u0103 (proiect) prime\u0219te propriul s\u0103u sistem CI \u2014 acest proces este bine structurat \u00een ziua de azi, iar \u00eentrebarea de a crea un sistem CI pentru o component\u0103 individual\u0103 este, \u00een mare parte, rezolvat\u0103.<\/li>\n<li>\u201eSistemul inteligent de integrare\u201d colecteaz\u0103 rezultatele diferitelor sisteme CI \u0219i adun\u0103 componentele proiectelor \u00eentr-un produs final, lanseaz\u0103 testarea \u0219i, \u00een final, calculeaz\u0103 cea mai scurt\u0103 cale pentru a ob\u021bine func\u021bionalitatea dorit\u0103 a produsului pe baza componentelor existente \u0219i a factorilor de risc. Dac\u0103 actualizarea nu este posibil\u0103, acest sistem informeaz\u0103 dezvoltatorii despre componentele disponibile \u0219i despre care dintre acestea se produce o eroare. Repet, sistemul de teste este critic \u2014 deoarece sistemul de integrare folose\u0219te testele ca \u0219i criteriu de evaluare.<\/li>\n<li>Un sistem CD, care apoi prime\u0219te date din \u201eSistemul inteligent de integrare\u201d \u0219i efectueaz\u0103 efectiv actualizarea. Aceast\u0103 etap\u0103 finalizeaz\u0103 ciclul.<\/li>\n<\/ol>\n<p>\n\u00cen concluzie, una dintre cele mai mari probleme pentru mine \u00een prezent este lipsa unei \u201eSisteme inteligente de integrare\u201d care s\u0103 conecteze diferitele componente \u00eentr-un produs \u0219i, astfel, s\u0103 permit\u0103 urm\u0103rirea modului \u00een care produsul este structurat \u00een ansamblu. M-ar interesa p\u0103rerile comunit\u0103\u021bii \u00een leg\u0103tur\u0103 cu acest subiect (spoiler \u2014 \u00een prezent lucrez la un proiect <noindex><a rel=\"nofollow\" href=\"https:\/\/relizahub.com\">Reliza<\/a><\/noindex>, care ar putea deveni o astfel de sistem inteligent de integrare).<\/p>\n<p>Un ultim lucru pe care vreau s\u0103-l men\u021bionez este c\u0103 pentru mine un monolit nu este acceptabil pentru orice proiect de dimensiuni medii. M\u0103 \u00eendoiesc serios de \u00eencerc\u0103rile de a accelera timpul de implementare \u0219i calitatea dezvolt\u0103rii \u00eentorc\u00e2ndu-ne la un monolit. \u00cen primul r\u00e2nd, monolitul are o problem\u0103 similar\u0103 cu gestionarea componentelor \u2014 printre diferitele biblioteci din care este format, totu\u0219i, toate acestea nu sunt at\u00e2t de evidente \u0219i se manifest\u0103 \u00een principal \u00een timpul pe care \u00eel petrec dezvoltatorii. O consecin\u021b\u0103 a problemei monolitului este imposibilitatea real\u0103 de a aduce modific\u0103ri \u00een cod \u2014 \u0219i o vitez\u0103 de dezvoltare extrem de lent\u0103.<\/p>\n<p>Microserviciile \u00eembun\u0103t\u0103\u021besc situa\u021bia, totu\u0219i, arhitectura microserviciilor se confrunt\u0103 cu problema exploziei combinatoriale \u00een etapa de integrare. Da, \u00een ansamblu, am mutat aceea\u0219i problem\u0103 \u2014 de la etapa de dezvoltare la etapa de integrare. Totu\u0219i, din punctul meu de vedere, abordarea microservicelor duce totu\u0219i la rezultate mai bune, iar echipele ob\u021bin rezultate mai repede (probabil \u00een principal datorit\u0103 reducerii dimensiunii unit\u0103\u021bii de dezvoltare \u2014 sau <i>batch size<\/i>). Totu\u0219i, trecerea de la monolit la microservicii nu a adus \u00eenc\u0103 o \u00eembun\u0103t\u0103\u021bire suficient\u0103 a procesului \u2014 explozia combina\u021biilor de versiuni ale microserviciilor reprezint\u0103 o problem\u0103 enorm\u0103, iar noi avem un mare poten\u021bial de a \u00eembun\u0103t\u0103\u021bi situa\u021bia pe m\u0103sur\u0103 ce o rezolv\u0103m.<br \/>\n<br \/>Sursa: <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.2.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\/ro\/blog\/administrirovanie\/mikroservisy-kombinatornyj-vzryv-versij\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\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\/ro\/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\udd47Microserviciile \u2014 explozia combina\u021biilor de versiuni | ProHoster","description":"Salut, Habr!","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/mikroservisy-kombinatornyj-vzryv-versij","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","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\/ro\/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\/ro\/wp-json\/wp\/v2\/posts\/75892","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=75892"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/75892\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/75893"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=75892"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=75892"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=75892"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}