{"id":92810,"date":"2020-08-31T07:42:09","date_gmt":"2020-08-31T05:42:09","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-1"},"modified":"2020-08-31T07:42:09","modified_gmt":"2020-08-31T05:42:09","slug":"vybor-arhitekturnogo-stilya-chast-1","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-1","title":{"rendered":"Wyb\u00f3r stylu architektonicznego (cz\u0119\u015b\u0107 1)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><b><i>Cze\u015b\u0107, Habr. W OTUS w\u0142a\u015bnie otwarto nab\u00f3r na now\u0105 edycj\u0119 kursu. <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/5RTk\/\">\u201eArchitektura Oprogramowania\u201d<\/a><\/noindex>. Przed rozpocz\u0119ciem kursu chcia\u0142bym podzieli\u0107 si\u0119 z Wami moim autorskim artyku\u0142em.<\/i><\/b><\/p>\n<p><\/p>\n<h2>Wprowadzenie<\/h2>\n<p>\nWyb\u00f3r stylu architektonicznego jest jednym z podstawowych decyzji technicznych przy budowie systemu informacyjnego. W tej serii artyku\u0142\u00f3w proponuj\u0119 om\u00f3wi\u0107 najpopularniejsze style architektoniczne budowy aplikacji i odpowiedzie\u0107 na pytanie, kiedy kt\u00f3ry styl architektoniczny jest najbardziej preferowany. W procesie przedstawiania postaram si\u0119 przeprowadzi\u0107 logiczny ci\u0105g, kt\u00f3ry wyja\u015bnia rozw\u00f3j styl\u00f3w architektonicznych od monolit\u00f3w do mikrosystem\u00f3w. <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Historia<\/h2>\n<p>\nJe\u015bli spr\u00f3bujesz zapyta\u0107 deweloper\u00f3w: \u201ePo co s\u0105 mikrous\u0142ugi?\u201d, otrzymasz r\u00f3\u017cnorodne odpowiedzi. Us\u0142yszysz, \u017ce mikrous\u0142ugi poprawiaj\u0105 skalowalno\u015b\u0107, u\u0142atwiaj\u0105 zrozumienie kodu, zwi\u0119kszaj\u0105 odporno\u015b\u0107 na awarie, a czasami us\u0142yszysz, \u017ce pozwalaj\u0105 \u201eoczy\u015bci\u0107 kod\u201d. Przyjrzyjmy si\u0119 historii, aby zrozumie\u0107, jaki cel przy\u015bwieca\u0142 pojawieniu si\u0119 mikrous\u0142ug.<\/p>\n<p>M\u00f3wi\u0105c kr\u00f3tko, mikrous\u0142ugi w naszym obecnym rozumieniu powsta\u0142y w nast\u0119puj\u0105cy spos\u00f3b: w 2011 roku James Lewis, analizuj\u0105c prace r\u00f3\u017cnych firm, zwr\u00f3ci\u0142 uwag\u0119 na pojawienie si\u0119 nowego wzorca \u201emicro-app\u201d, kt\u00f3ry optymalizowa\u0142 SOA z punktu widzenia przyspieszenia wdra\u017cania us\u0142ug. Nieco p\u00f3\u017aniej, w 2012 roku, na szczycie architektonicznym wzorzec zosta\u0142 przemianowany na mikrous\u0142ug\u0119. Tak wi\u0119c pierwotnym celem wprowadzenia mikrous\u0142ug by\u0142a poprawa tzw. <b>time to market<\/b>.<\/p>\n<p>Na \u201efali hype'u\u201d mikrous\u0142ugi by\u0142y popularne w 2015 roku. Wed\u0142ug niekt\u00f3rych bada\u0144, \u017cadna konferencja nie odbywa\u0142a si\u0119 bez wyk\u0142adu na temat mikrous\u0142ug. Co wi\u0119cej, niekt\u00f3re konferencje by\u0142y po\u015bwi\u0119cone wy\u0142\u0105cznie mikrous\u0142ugom. Obecnie wiele projekt\u00f3w rozpoczyna si\u0119 od zastosowania tego stylu architektonicznego, a je\u015bli projekt zawiera mn\u00f3stwo kodu Legacy, to na pewno nast\u0119puje aktywna migracja do mikrous\u0142ug.<\/p>\n<p>Pomimo powy\u017cszego, wci\u0105\u017c stosunkowo niewielka liczba deweloper\u00f3w potrafi zdefiniowa\u0107 poj\u0119cie \u201emikrous\u0142ugi\u201d. Ale o tym porozmawiamy nieco p\u00f3\u017aniej\u2026<\/p>\n<h2>Monolit<\/h2>\n<p>\nStyl architektoniczny, kt\u00f3ry jest przeciwstawiany mikrous\u0142ugom, to monolit (lub \u201ewszystko w jednym\u201d). My\u015bl\u0119, \u017ce nie ma sensu t\u0142umaczy\u0107, czym jest monolit, dlatego od razu wymieni\u0119 wady tego stylu architektonicznego, kt\u00f3re zainicjowa\u0142y dalszy rozw\u00f3j styl\u00f3w architektonicznych: rozmiar, sp\u00f3jno\u015b\u0107, wdra\u017canie, skalowalno\u015b\u0107, niezawodno\u015b\u0107 i sztywno\u015b\u0107. Poni\u017cej proponuj\u0119 zapozna\u0107 si\u0119 z ka\u017cd\u0105 z tych wad osobno.<\/p>\n<h3>Wymiary<\/h3>\n<p>\nMonolit jest bardzo du\u017cy. Zazwyczaj komunikuje si\u0119 z ogromn\u0105 baz\u0105 danych. Aplikacja staje si\u0119 zbyt du\u017ca, aby m\u00f3g\u0142 j\u0105 zrozumie\u0107 pojedynczy programista. Z monolitem mog\u0105 dobrze pracowa\u0107 tylko ci, kt\u00f3rzy sp\u0119dzili du\u017co czasu nad tym kodem, podczas gdy nowicjusze sp\u0119dz\u0105 du\u017co czasu na pr\u00f3bach zrozumienia monolitu i nie ma pewno\u015bci, \u017ce im si\u0119 to uda. Zazwyczaj przy pracy z monolitem zawsze jest jaki\u015b \u201ewzgl\u0119dny\u201d starszy programista, kt\u00f3ry zna monolit w miar\u0119 dobrze i pilnuje m\u0142odszych programist\u00f3w przez rok lub p\u00f3\u0142tora. Oczywi\u015bcie, taki wzgl\u0119dny senior staje si\u0119 jedynym punktem awarii, a jego odej\u015bcie mo\u017ce doprowadzi\u0107 do upadku monolitu. <\/p>\n<h3>Powi\u0105zanie<\/h3>\n<p>\nMonolit to \u201edu\u017ca kula b\u0142ota\u201d (big ball of mud), zmiany w kt\u00f3rym mog\u0105 prowadzi\u0107 do nieprzewidywalnych konsekwencji. Wprowadzenie zmian w jednym miejscu mo\u017ce uszkodzi\u0107 monolit w innym (to w\u0142a\u015bnie to \u201epodrapa\u0142em ucho, a *@ odpad\u0142o\u201d). Wynika to z tego, \u017ce komponenty w monolicie maj\u0105 bardzo skomplikowane i, co najwa\u017cniejsze, nieoczywiste zale\u017cno\u015bci.<\/p>\n<h3>Rozmieszczenie<\/h3>\n<p>\nWdra\u017canie monolitu, ze wzgl\u0119du na skomplikowane zale\u017cno\u015bci mi\u0119dzy jego komponentami, to d\u0142ugi proces z w\u0142asnym rytua\u0142em. Taki rytua\u0142 zazwyczaj nie jest do ko\u0144ca sformalizowany i przekazywany jest \u201ez ust do ust\u201d. <\/p>\n<h3>Skalowalno\u015b\u0107<\/h3>\n<p>\nModu\u0142y monolitu mog\u0105 mie\u0107 konfliktuj\u0105ce potrzeby dotycz\u0105ce zasob\u00f3w, przez co konieczne jest szukanie kompromisu z punktu widzenia sprz\u0119tu. Wyobra\u017a sobie, \u017ce tw\u00f3j monolit sk\u0142ada si\u0119 z us\u0142ug A i B. Us\u0142uga A jest wymagaj\u0105ca pod wzgl\u0119dem wielko\u015bci dysku twardego, a us\u0142uga B \u2014 pod wzgl\u0119dem pami\u0119ci operacyjnej. W takim przypadku albo maszyna, na kt\u00f3r\u0105 instalowany jest monolit, musi spe\u0142nia\u0107 wymagania obu us\u0142ug, albo b\u0119dziesz musia\u0142 r\u0119cznie, sztucznie wy\u0142\u0105czy\u0107 jedn\u0105 z us\u0142ug.<\/p>\n<p>Inny przyk\u0142ad (bardziej klasyczny): us\u0142uga A jest znacznie bardziej popularna ni\u017c us\u0142uga B, wi\u0119c chcesz, aby by\u0142o 100 us\u0142ug A, a 10 us\u0142ug B. Znowu s\u0105 dwa warianty: albo wdra\u017camy 100 pe\u0142noprawnych monolit\u00f3w, albo na niekt\u00f3rych z nich r\u0119cznie musimy wy\u0142\u0105czy\u0107 us\u0142ugi B. <\/p>\n<h3>Niezawodno\u015b\u0107<\/h3>\n<p>\nPoniewa\u017c wszystkie us\u0142ugi s\u0105 razem, je\u015bli monolit upada, to wszystkie us\u0142ugi padaj\u0105 jednocze\u015bnie. W rzeczywisto\u015bci, mo\u017ce to nie by\u0107 takie z\u0142e, przynajmniej nie b\u0119dzie cz\u0119\u015bciowych awarii w systemie rozproszonym, ale z drugiej strony, z powodu b\u0142\u0119du w funkcjonalno\u015bci, z kt\u00f3rej korzysta 0,001% u\u017cytkownik\u00f3w, mo\u017cesz straci\u0107 wszystkich u\u017cytkownik\u00f3w swojego systemu. <\/p>\n<h3>Sztywno\u015b\u0107<\/h3>\n<p>\nZe wzgl\u0119du na rozmiar monolitu, trudno jest przej\u015b\u0107 na nowe technologie. W zwi\u0105zku z tym, osobnym zadaniem staje si\u0119 utrzymanie tego samego, warunkowego seniora. Wybrany na pocz\u0105tku projektu stos technologiczny mo\u017ce sta\u0107 si\u0119 przeszkod\u0105 w rozwoju produktu. <\/p>\n<h2>Podsumowanie<\/h2>\n<p>\nNast\u0119pnym razem porozmawiamy o tym, jak ludzie pr\u00f3bowali rozwi\u0105za\u0107 wskazane problemy, przechodz\u0105c do komponent\u00f3w i SOA.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/5RTk\/\"><img decoding=\"async\" alt=\"Wyb\u00f3r stylu architektonicznego (cz\u0119\u015b\u0107 1)\" src=\"\/wp-content\/uploads\/2020\/08\/d1582a83ad9cf8722a035dfd9a212aa5.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<blockquote>\n<h4>Czytaj dalej:<\/h4>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/504144\/\">Dlaczego SQL Server nie gwarantuje sortowania wynik\u00f3w bez ORDER BY<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/508206\/\">Architektura dla deweloper\u00f3w i administrator\u00f3w: jakie umiej\u0119tno\u015bci s\u0105 potrzebne komu?<\/a><\/noindex><\/li>\n<\/ul>\n<\/blockquote>\n<p>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/516880\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0445\u0430\u0431\u0440. \u041f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u0432 OTUS \u043e\u0442\u043a\u0440\u044b\u0442 \u043d\u0430\u0431\u043e\u0440 \u043d\u0430 \u043d\u043e\u0432\u044b\u0439 \u043f\u043e\u0442\u043e\u043a \u043a\u0443\u0440\u0441\u0430 \u00abSoftware Architect\u00bb. \u0412 \u043f\u0440\u0435\u0434\u0434\u0432\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0440\u0442\u0430 \u043a\u0443\u0440\u0441\u0430 \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u0432\u0430\u043c\u0438 \u0441\u0432\u043e\u0435\u0439 \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0451\u0439. \u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0412\u044b\u0431\u043e\u0440 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u043e\u0433\u043e \u0441\u0442\u0438\u043b\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u043e\u0441\u043d\u043e\u0432\u043e\u043f\u043e\u043b\u0430\u0433\u0430\u044e\u0449\u0438\u0445 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u043f\u0440\u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0442\u0435\u0439 \u044f \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c \u0441\u0430\u043c\u044b\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u0435 \u0441\u0442\u0438\u043b\u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 \u043e\u0442\u0432\u0435\u0442\u0438\u0442\u044c \u043d\u0430 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":92811,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-92810","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.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0445\u0430\u0431\u0440. \u041f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u0432 OTUS \u043e\u0442\u043a\u0440\u044b\u0442 \u043d\u0430\u0431\u043e\u0440 \u043d\u0430 \u043d\u043e\u0432\u044b\u0439 \u043f\u043e\u0442\u043e\u043a \u043a\u0443\u0440\u0441\u0430 \u00abSoftware Architect\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\/pl\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-1\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\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\u0412\u044b\u0431\u043e\u0440 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u043e\u0433\u043e \u0441\u0442\u0438\u043b\u044f (\u0447\u0430\u0441\u0442\u044c 1) | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0445\u0430\u0431\u0440. \u041f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u0432 OTUS \u043e\u0442\u043a\u0440\u044b\u0442 \u043d\u0430\u0431\u043e\u0440 \u043d\u0430 \u043d\u043e\u0432\u044b\u0439 \u043f\u043e\u0442\u043e\u043a \u043a\u0443\u0440\u0441\u0430 \u00abSoftware Architect\u00bb.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-1\" \/>\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-08-31T05:42:09+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-08-31T05:42:09+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\udd47Wyb\u00f3r stylu architektonicznego (cz\u0119\u015b\u0107 1) | ProHoster","description":"Cze\u015b\u0107, Habr. W tej chwili w OTUS trwa rekrutacja na nowy kurs \u201eArchitektura Oprogramowania\u201d.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-1","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","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\u0412\u044b\u0431\u043e\u0440 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u043e\u0433\u043e \u0441\u0442\u0438\u043b\u044f (\u0447\u0430\u0441\u0442\u044c 1) | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442, \u0445\u0430\u0431\u0440. \u041f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u0432 OTUS \u043e\u0442\u043a\u0440\u044b\u0442 \u043d\u0430\u0431\u043e\u0440 \u043d\u0430 \u043d\u043e\u0432\u044b\u0439 \u043f\u043e\u0442\u043e\u043a \u043a\u0443\u0440\u0441\u0430 \u00abSoftware Architect\u00bb.","og:url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-1","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-08-31T05:42:09+00:00","article:modified_time":"2020-08-31T05:42:09+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"92810","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 12:00:37","updated":"2022-10-03 23:14:42","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/92810","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=92810"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/92810\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/92811"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=92810"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=92810"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=92810"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}