{"id":1684,"date":"2024-09-01T13:00:03","date_gmt":"2024-09-01T13:00:03","guid":{"rendered":"http:\/\/idelogix.com\/?p=1684"},"modified":"2024-09-01T13:17:01","modified_gmt":"2024-09-01T13:17:01","slug":"sistemas-auto-contenidos","status":"publish","type":"post","link":"https:\/\/idelogix.com\/?p=1684","title":{"rendered":"Sistemas Auto-Contenidos"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"1684\" class=\"elementor elementor-1684\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-f96cd47 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"f96cd47\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-645b57d\" data-id=\"645b57d\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-f867cfc elementor-widget elementor-widget-text-editor\" data-id=\"f867cfc\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>\u00a0<\/p><h2>Explorando los SCS<\/h2><p>Hace unos d\u00edas le\u00ed un art\u00edculo en el que el autor mencionaba tres tipos importantes de arquitecturas de software: monolitos, microservicios y <b>SCS (Self-Contained Systems)<\/b>. Aunque ya estaba familiarizado con los monolitos y los microservicios, la arquitectura denominada SCS me result\u00f3 un tanto extra\u00f1a y me despert\u00f3 la curiosidad. Decid\u00ed investigar un poco m\u00e1s sobre este enfoque y compararlo con otros m\u00e1s conocidos.<\/p><h3>\u00bfQu\u00e9 es un SCS?<\/h3><p>Los <strong>SCS (Self-Contained Systems)<\/strong>, que en espa\u00f1ol se pueden denominar <strong>Sistemas Auto-contenidos<\/strong> o m\u00e1s com\u00fanmente <strong>Sistemas Aut\u00f3nomos<\/strong>, son un enfoque arquitect\u00f3nico donde cada sistema dentro de una aplicaci\u00f3n m\u00e1s grande es completamente aut\u00f3nomo. Esto significa que cada SCS:<\/p><ul><li><strong>Gestiona su propia interfaz de usuario:<\/strong> Cada sistema tiene su propio frontend, lo que le permite operar de manera independiente en t\u00e9rminos de presentaci\u00f3n.<\/li><li><strong>Implementa su propia l\u00f3gica de negocio:<\/strong> Toda la l\u00f3gica relacionada con un dominio espec\u00edfico del negocio est\u00e1 contenida dentro de ese SCS.<\/li><li><strong>Maneja su propio almacenamiento de datos:<\/strong> Cada SCS tiene su base de datos o mecanismo de almacenamiento, evitando la dependencia de una base de datos centralizada compartida.<\/li><\/ul><p>Este enfoque permite que los SCS se desarrollen, desplieguen y mantengan de forma independiente, lo que facilita la escalabilidad y la evoluci\u00f3n del sistema en su conjunto. Los SCS se comunican entre s\u00ed de manera asincr\u00f3nica o a trav\u00e9s de APIs, pero con un enfoque en minimizar las dependencias directas, lo que los diferencia de otras arquitecturas.<\/p><h3>Comparaci\u00f3n con Monolitos y Microservicios<\/h3><ul><li><strong>Monolitos:<\/strong> Un monolito es una aplicaci\u00f3n grande y unificada en la que todos los componentes est\u00e1n interconectados y desplegados como una sola unidad. Aunque es simple de gestionar en sus primeras etapas, puede volverse dif\u00edcil de escalar y mantener a medida que crece en complejidad.<\/li><li><strong>Microservicios:<\/strong> Los microservicios descomponen una aplicaci\u00f3n en servicios peque\u00f1os y aut\u00f3nomos que se comunican entre s\u00ed mediante APIs. Este enfoque facilita la escalabilidad y la evoluci\u00f3n independiente de cada servicio, pero puede incrementar la complejidad operativa y los desaf\u00edos de coordinaci\u00f3n entre servicios.<\/li><li><strong>SCS (Sistemas Aut\u00f3nomos):<\/strong> Los SCS, por otro lado, son sistemas que funcionan como &#8220;mini-aplicaciones&#8221; independientes. Cada SCS gestiona su propio conjunto de funciones, datos y l\u00f3gica de negocio, y se comunica con otros SCS de manera asincr\u00f3nica o a trav\u00e9s de APIs, pero minimizando las dependencias directas.<\/li><\/ul><h3>Por qu\u00e9 los SCS no son tan conocidos en EE.UU. o Latinoam\u00e9rica<\/h3><p>A pesar de sus ventajas, los <strong>Sistemas Aut\u00f3nomos<\/strong> no son tan ampliamente conocidos o adoptados en EE.UU. o Latinoam\u00e9rica por varias razones:<\/p><ol><li><strong>Origen y Popularidad Regional:<\/strong> El enfoque SCS se origin\u00f3 en Alemania y ha ganado popularidad principalmente en Europa, especialmente en empresas que gestionan sistemas de gran escala y que buscan modularidad sin la complejidad extrema de los microservicios. Este patr\u00f3n ha tenido menos difusi\u00f3n fuera de Europa, lo que limita su conocimiento y adopci\u00f3n en otras regiones.<\/li><li><strong>Dominio de los Microservicios:<\/strong> En muchos entornos de desarrollo, especialmente en EE.UU. y Latinoam\u00e9rica, la arquitectura de microservicios ha dominado la conversaci\u00f3n sobre sistemas distribuidos y modulares. Debido a la vasta cantidad de recursos, herramientas y comunidades que apoyan los microservicios, muchas empresas prefieren este enfoque, dejando a los SCS menos explorados.<\/li><li><strong>Menor Disponibilidad de Documentaci\u00f3n y Casos de Estudio:<\/strong> Comparado con los microservicios, que cuentan con una gran cantidad de libros, art\u00edculos y estudios de caso, los SCS tienen una documentaci\u00f3n m\u00e1s limitada. Esto dificulta su aprendizaje y adopci\u00f3n en regiones donde los recursos y referencias son cruciales para tomar decisiones arquitect\u00f3nicas.<\/li><li><strong>Preferencia por Modelos Centralizados:<\/strong> En algunas organizaciones de EE.UU. y Latinoam\u00e9rica, hay una preferencia hist\u00f3rica por modelos centralizados y monol\u00edticos, o bien una transici\u00f3n directa hacia microservicios. El enfoque SCS, que busca un equilibrio entre ambos, puede no haberse popularizado debido a esta tendencia hacia los extremos de centralizaci\u00f3n o completa descomposici\u00f3n en microservicios.<\/li><\/ol><h3>C\u00f3mo se Comunican los SCS entre S\u00ed<\/h3><p>Una de las preguntas que surgi\u00f3 al investigar sobre SCS es c\u00f3mo estos sistemas aut\u00f3nomos se comunican y comparten informaci\u00f3n entre s\u00ed sin perder su independencia. Aqu\u00ed algunos m\u00e9todos comunes:<\/p><ul><li><strong>Comunicaci\u00f3n Basada en Eventos:<\/strong> Los SCS publican eventos a un intermediario de mensajes cuando ocurren acciones importantes, como &#8220;Producto Actualizado&#8221; o &#8220;Estudiante Inscrito&#8221;. Otros SCS pueden suscribirse a estos eventos y reaccionar seg\u00fan sea necesario.<\/li><li><strong>APIs RESTful:<\/strong> Aunque cada SCS es aut\u00f3nomo, pueden exponer APIs que permitan a otros sistemas recuperar o actualizar informaci\u00f3n en tiempo real cuando sea necesario.<\/li><li><strong>Replicaci\u00f3n y Sincronizaci\u00f3n de Datos:<\/strong> En algunos casos, los SCS pueden mantener copias locales de datos provenientes de otros sistemas, lo que les permite operar de manera independiente mientras sincronizan datos de manera peri\u00f3dica o bajo demanda.<\/li><li><strong>Servicios Compartidos (Uso Limitado):<\/strong> Aunque se busca minimizar las dependencias, algunos servicios compartidos como la autenticaci\u00f3n pueden ser utilizados para mantener consistencia en \u00e1reas comunes a todos los SCS.<\/li><\/ul><h3>Conclusi\u00f3n<\/h3><p>Los SCS ofrecen un enfoque interesante para organizaciones que buscan modularidad y autonom\u00eda en sus sistemas sin la granularidad extrema de los microservicios. Aunque pueden parecer un conjunto de monolitos relacionados, los SCS se dise\u00f1an para operar de manera independiente y minimizar las dependencias, facilitando su evoluci\u00f3n y mantenimiento. Explorar este tipo de arquitectura puede ofrecer nuevas perspectivas y soluciones a desaf\u00edos comunes en el desarrollo de software moderno<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\u00a0 Explorando los SCS Hace unos d\u00edas le\u00ed un art\u00edculo en el que el autor mencionaba tres tipos importantes de arquitecturas de software: monolitos, microservicios y SCS (Self-Contained Systems). Aunque ya estaba familiarizado con los monolitos y los microservicios, la arquitectura denominada SCS me result\u00f3 un tanto extra\u00f1a y me despert\u00f3 la curiosidad. Decid\u00ed investigar [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1684","post","type-post","status-publish","format-standard","hentry","category-articulos"],"_links":{"self":[{"href":"https:\/\/idelogix.com\/index.php?rest_route=\/wp\/v2\/posts\/1684","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/idelogix.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/idelogix.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/idelogix.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/idelogix.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1684"}],"version-history":[{"count":10,"href":"https:\/\/idelogix.com\/index.php?rest_route=\/wp\/v2\/posts\/1684\/revisions"}],"predecessor-version":[{"id":1695,"href":"https:\/\/idelogix.com\/index.php?rest_route=\/wp\/v2\/posts\/1684\/revisions\/1695"}],"wp:attachment":[{"href":"https:\/\/idelogix.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1684"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/idelogix.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1684"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/idelogix.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1684"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}