{"id":94574,"date":"2020-09-18T19:42:57","date_gmt":"2020-09-18T17:42:57","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-2"},"modified":"2020-09-18T19:42:57","modified_gmt":"2020-09-18T17:42:57","slug":"vybor-arhitekturnogo-stilya-chast-2","status":"publish","type":"post","link":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-2","title":{"rendered":"Elecci\u00f3n de estilo arquitect\u00f3nico (parte 2)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><b><i>Hola, Habr. Hoy continuo la serie de publicaciones que escrib\u00ed especialmente para el inicio de un nuevo flujo del curso. <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/rRLl\/\">\u00abArquitecto de Software\u00bb<\/a><\/noindex>. <\/i><\/b><\/p>\n<p><\/p>\n<h2>Introducci\u00f3n<\/h2>\n<p>\nLa elecci\u00f3n del estilo arquitect\u00f3nico es una de las decisiones t\u00e9cnicas fundamentales al construir un sistema de informaci\u00f3n. En esta serie de art\u00edculos, propongo analizar los estilos arquitect\u00f3nicos m\u00e1s populares para la construcci\u00f3n de aplicaciones y responder a la pregunta de cu\u00e1ndo es preferible un estilo arquitect\u00f3nico en particular. A lo largo de la exposici\u00f3n, intentar\u00e9 establecer una cadena l\u00f3gica que explique el desarrollo de estilos arquitect\u00f3nicos desde monolitos hasta microservicios. <\/p>\n<p>En <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/516880\/\">\u00faltima vez<\/a><\/noindex> Hemos lidiado con el monolito y hemos llegado a la conclusi\u00f3n de que presenta una serie de problemas: tama\u00f1o, cohesi\u00f3n, despliegue, escalabilidad, fiabilidad y rigidez. <\/p>\n<p>En esta ocasi\u00f3n, propongo hablar sobre las posibilidades de organizar un sistema como un conjunto de m\u00f3dulos\/bibliotecas (arquitectura orientada a componentes) o servicios (arquitectura orientada a servicios).<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Arquitectura orientada a componentes<\/h2>\n<p>\nLa arquitectura orientada a componentes implica que el sistema funcione como un conjunto de componentes que se pueden utilizar tanto en proyectos actuales como en futuros. Al descomponer el sistema en componentes, se tienen en cuenta: su reutilizaci\u00f3n, intercambiabilidad, independencia del contexto, extensibilidad, encapsulamiento e independencia.<\/p>\n<p>Con el uso adecuado de componentes, se resuelve el problema de 'la gran bola de barro' (gran tama\u00f1o + alta cohesi\u00f3n), y los propios componentes pueden ser tanto unidades de ensamblaje (m\u00f3dulos, bibliotecas), como unidades de despliegue (servicios). Las unidades de despliegue no siempre se corresponden con un proceso ejecutable: por ejemplo, una aplicaci\u00f3n web y una base de datos se despliegan juntas. <\/p>\n<p>Los monolitos se desarrollan m\u00e1s a menudo como un conjunto de m\u00f3dulos. Este enfoque asegura la independencia en el desarrollo, pero todav\u00eda quedan problemas de escalabilidad y despliegue independientes, resistencia a fallos e independencia del stack tecnol\u00f3gico general. Es por eso que un m\u00f3dulo es un componente parcialmente independiente.<\/p>\n<p>El principal problema de este monolito es que la divisi\u00f3n en m\u00f3dulos es puramente l\u00f3gica y puede ser f\u00e1cilmente violada por los desarrolladores. Puede surgir un m\u00f3dulo core que gradualmente se convierte en un desastre, pueden aumentar los gr\u00e1ficos de dependencias entre m\u00f3dulos, y as\u00ed sucesivamente. Para evitar tales problemas, el desarrollo debe ser llevado a cabo por un equipo muy maduro, o bajo la supervisi\u00f3n de un 'arquitecto' que se dedique a tiempo completo a la revisi\u00f3n del c\u00f3digo y corr\u00eda a los desarrolladores que violen la estructura l\u00f3gica. <\/p>\n<p>Un monolito 'ideal' consiste en un conjunto de m\u00f3dulos l\u00f3gicamente separados, cada uno de los cuales accede a su propia base de datos.<\/p>\n<h2>Arquitectura orientada a servicios<\/h2>\n<p>\nSi se prev\u00e9 la organizaci\u00f3n del sistema en forma de un conjunto de servicios, se trata de una arquitectura orientada a servicios. Sus principios son: la compatibilidad de las aplicaciones orientadas al usuario, la reutilizaci\u00f3n de servicios empresariales, la independencia del conjunto de tecnolog\u00edas y la autonom\u00eda (evoluci\u00f3n, escalabilidad y despliegue independientes).<\/p>\n<p>La arquitectura orientada a servicios (SOA = service oriented architecture) resuelve todos los problemas mencionados del monolito: al realizar cambios, solo se ve afectado un servicio, y una API claramente definida mantiene una buena encapsulaci\u00f3n de los componentes. <\/p>\n<p>Pero no todo es tan sencillo: SOA da lugar a nuevos problemas. Las llamadas remotas son m\u00e1s costosas que las locales, y la redistribuci\u00f3n de responsabilidades entre los componentes se ha vuelto significativamente m\u00e1s cara.<\/p>\n<p>Por cierto, la posibilidad de un despliegue independiente es una caracter\u00edstica muy importante del servicio. Si los servicios deben desplegarse conjuntamente o, aun m\u00e1s, en un cierto orden, entonces el sistema no puede considerarse orientado a servicios. En este caso, se habla de un monolito distribuido (se considera un antipatr\u00f3n no solo desde la perspectiva de SOA, sino tambi\u00e9n de la arquitectura de microservicios). <\/p>\n<p>La arquitectura orientada a servicios cuenta con un buen respaldo de la comunidad arquitect\u00f3nica y de los proveedores. De aqu\u00ed se derivan numerosos cursos y certificaciones, as\u00ed como patrones bien elaborados. Entre estos \u00faltimos se encuentra, por ejemplo, la famosa bus de servicios empresariales (ESB = enterprise service bus). Cabe destacar que la ESB es un legado de los proveedores y no necesariamente debe utilizarse en SOA.<\/p>\n<p>El pico de popularidad de la arquitectura orientada a servicios fue aproximadamente en 2008, despu\u00e9s de lo cual comenz\u00f3 a decaer, siendo el descenso mucho m\u00e1s pronunciado tras la llegada de los microservicios (~2015).<\/p>\n<h2>Conclusi\u00f3n<\/h2>\n<p>\nDespu\u00e9s de haber discutido las posibilidades de organizaci\u00f3n de sistemas de informaci\u00f3n en forma de servicios y m\u00f3dulos, propongo finalmente pasar a los principios de la arquitectura de microservicios, prestando especial atenci\u00f3n a la diferencia entre la arquitectura de microservicios y la orientada a servicios en la siguiente parte.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/rRLl\/\"><img decoding=\"async\" alt=\"Elecci\u00f3n de estilo arquitect\u00f3nico (parte 2)\" src=\"\/wp-content\/uploads\/2020\/09\/d519b2419d13f1a7e03cc8064b83ab1f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<br \/>Fuente: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/519456\/\">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. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e \u0441\u0435\u0440\u0438\u044e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043a \u0441\u0442\u0430\u0440\u0442\u0443 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \u043a\u0443\u0440\u0441\u0430 \u00abSoftware Architect\u00bb. \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 \u0432\u043e\u043f\u0440\u043e\u0441 \u043a\u043e\u0433\u0434\u0430 \u043a\u0430\u043a\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u0439 \u0441\u0442\u0438\u043b\u044c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":94575,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-94574","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 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e \u0441\u0435\u0440\u0438\u044e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043a \u0441\u0442\u0430\u0440\u0442\u0443 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \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\/es\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-2\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\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 2) | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e \u0441\u0435\u0440\u0438\u044e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043a \u0441\u0442\u0430\u0440\u0442\u0443 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \u043a\u0443\u0440\u0441\u0430 \u00abSoftware Architect\u00bb.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-2\" \/>\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-09-18T17:42:57+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-09-18T17:42:57+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\udd47Elecci\u00f3n del estilo arquitect\u00f3nico (parte 2) | ProHoster","description":"Hola, Habr. Hoy contin\u00fao con la serie de publicaciones que escrib\u00ed especialmente para el inicio de la nueva edici\u00f3n del curso \"Software Architect\".","canonical_url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-2","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","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 2) | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e \u0441\u0435\u0440\u0438\u044e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043a \u0441\u0442\u0430\u0440\u0442\u0443 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \u043a\u0443\u0440\u0441\u0430 \u00abSoftware Architect\u00bb.","og:url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-2","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-09-18T17:42:57+00:00","article:modified_time":"2020-09-18T17:42:57+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"94574","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 11:24:26","updated":"2022-10-03 07:40:49","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/94574","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=94574"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/94574\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/94575"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=94574"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=94574"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=94574"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}