<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>soa Archives - Software Evolutivo</title>
	<atom:link href="https://softwareevolutivo.com.ec/tag/soa/feed/" rel="self" type="application/rss+xml" />
	<link>https://softwareevolutivo.com.ec/tag/soa/</link>
	<description>Consultora de Software Empresarial</description>
	<lastBuildDate>Thu, 08 Dec 2022 02:42:08 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://softwareevolutivo.com.ec/wp-content/uploads/2024/03/cropped-Perfil-Redes-Iso-32x32.png</url>
	<title>soa Archives - Software Evolutivo</title>
	<link>https://softwareevolutivo.com.ec/tag/soa/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>[:es]Microservicios en aplicaciones empresariales[:]</title>
		<link>https://softwareevolutivo.com.ec/microservicios-en-aplicaciones-empresariales/</link>
					<comments>https://softwareevolutivo.com.ec/microservicios-en-aplicaciones-empresariales/#respond</comments>
		
		<dc:creator><![CDATA[Fernando Paz]]></dc:creator>
		<pubDate>Mon, 18 Jul 2016 14:40:00 +0000</pubDate>
				<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[microservicios]]></category>
		<category><![CDATA[monolítica]]></category>
		<category><![CDATA[soa]]></category>
		<guid isPermaLink="false">https://softwareevolutivo.com.ec/?p=103</guid>

					<description><![CDATA[<p>El concepto de Microservicios está a la orden del día y muchas empresas miran o estudian esta alternativa para la implementación de su Software. Este artículo trata de analizar tres temas principales de esta tecnología para que los CIO de la empresas tengan más elementos a la hora de tomar decisiones: Concepto de Microservicios Escenarios</p>
<p>The post <a href="https://softwareevolutivo.com.ec/microservicios-en-aplicaciones-empresariales/">[:es]Microservicios en aplicaciones empresariales[:]</a> appeared first on <a href="https://softwareevolutivo.com.ec">Software Evolutivo</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="103" class="elementor elementor-103">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-5ddfddf8 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="5ddfddf8" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5d678a3c" data-id="5d678a3c" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-26adf16e elementor-widget elementor-widget-text-editor" data-id="26adf16e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>[:es]<a href="https://softwareevolutivo.com.ec/wp-content/uploads/2016/07/word-image-1.jpg"><img fetchpriority="high" decoding="async" class="aligncenter" title="Microservicios en aplicaciones empresariales" src="https://softwareevolutivo.com.ec/wp-content/uploads/2016/07/word-image-1.jpg" alt="https://en.wikipedia.org/wiki/Burr_puzzle#/media/File:Burr_Puzzles.jpg" width="430" height="286"></a></p>
<p>El concepto de Microservicios está a la orden del día y muchas empresas miran o estudian esta alternativa para la implementación de su Software. Este artículo trata de analizar tres temas principales de esta tecnología para que los CIO de la empresas tengan más elementos a la hora de tomar decisiones:</p>
<ul>
<li>Concepto de Microservicios</li>
<li>Escenarios para adopción de este diseño de Software</li>
<li>Características de la arquitectura y retos de implementación</li>
</ul>
<p>&nbsp;</p>
<p><strong>Concepto de Microservicios</strong></p>
<p>No existe una definición única, pero en general al hablar de microservicios nos enfocamos en una arquitectura en donde se implementa la funcionalidad en silos de programación específicos definidos por el dominio del negocio (DDD). Estos servicios en conjunto, unos con otros, sirven cierta funcionalidad que podríamos denominar el Software producto. Así, en un clásica aplicación de compras en línea podríamos decir que el Software producto está dividido en dominios como inventario de productos, carrito de compras, procesamiento de pagos, sistema de entregas, servicio al cliente, etc., cada uno de ellos se concibe como una micro aplicación que se despliega independientemente de las otras en su proceso y que en la mayoría de casos en general tiene su propio repositorio de datos.</p>
<p>Delante de ellos y por la dinámica de los negocios en la actualidad se construyen los “front-end” que van desde páginas web, aplicaciones móviles, etc., hasta aplicaciones de consolas como Xbox, los cuales interactúan con estas micro aplicaciones a través de API gateway. Muchas de estas aplicaciones se intercomunican entre sí para proveer su funcionalidad, de una forma auto-gestionada, natural en una práctica conocida como coreografía. (Esto a diferencia del concepto de orquestación que se define en SOA[1]).</p>
<p>Existen muchos comparaciones o símiles con una arquitectura SOA (incluso inicialmente Netflix llamaba a esta arquitectura como SOA finamente desglosado[3]), y de un lado y del otro las opiniones tienen puntos válidos acerca de las razones.</p>
<p>En esta perspectiva ponemos a consideración dos puntos:</p>
<ol>
<li>SOA es una estrategia empresarial que busca alinear la tecnología con la visión estratégica del negocio a través de la orientación a servicios.</li>
<li>Los Microservicios están pensados para simplificar la complejidad de una aplicación empresarial buscando productividad, escalabilidad y reutilización en base al diseño de funcionalidades en silos de programación concebidos como servicios.</li>
</ol>
<p>&nbsp;</p>
<p><strong>Escenarios para adopción de este diseño de Software</strong></p>
<p>La arquitectura de Microservicios en la mayoría de casos puede no ser necesaria pues las aplicaciones con la arquitectura monolítica tradicional funcionan y se vuelven menos complejas de administrar, siendo esta dinámica la más común en las empresas que no tienen un portafolio grande de aplicaciones y/o requerimientos funcionales.</p>
<p>En las empresas de mayor volumen la realidad es diferente, el negocio ha requerido un portafolio grande de software que cubre requerimientos operacionales y comerciales. Aquí la propuesta del uso de esta arquitectura tiene que ver con dos aspectos:</p>
<ul>
<li>Estrategia del negocio: En este contexto el negocio presenta una dinámica en la cual muchas funcionalidades son requeridas por otros sistemas propios o de terceros. Este podría ser el caso del sistema para emisión de boletos aéreos, el cual es requerido por diferentes canales como kioscos, la página web, los centros de servicio, los sistemas de las agencias de viajes, cajeros automáticos de bancos, etc. , aquí es importante poder cumplir con todos ellos y no perder la oportunidad. En un esquema monolítico donde existe un sistema principal, la disponibilidad de este producto estratégico depende de este sistema principal en donde existen otras funcionalidades no interesantes para el negocio como la administración de usuarios por ejemplo, y presenta riesgos asociados con su evolución, disponibilidad y escalabilidad como tal. Es razonable pensar en abstraer este producto del sistema principal, buscando responder al negocio y su dinámica de forma ágil con un enfoque apropiado buscando su innovación y escalabilidad, en consecuencia podemos pensarlo como un servicio.</li>
<li>Complejidad: En un sistema monolítico sumamente extenso, por toda la funcionalidad que provee, es complejo el mantenimiento porque conceptos como pruebas, validación, despliegue y el conocimiento en sí del negocio se entiende como un todo. Ponemos como ejemplo la adición del campo &#8220;referencia&#8221; en un formulario de datos de direcciones de los clientes, parte de un sistema de seguros; aquí la tarea se identificada como sencilla, pero dado a que el módulo de clientes es parte de una aplicación monolítica, el cambio tiene un impacto en todo el software, y como tal sus procesos de validación y puesta en producción son extensos, demorados y restringidos. En este escenario se evidencia que la administración debe dividirse para responder al negocio a la velocidad que lo requiere y evitar sobre esfuerzos en tareas simples. Si abstraemos este dominio del negocio y los demás es más probable que este requerimiento sea atendido con prontitud y evitar incluso costos asociados.</li>
</ul>
<figure style="width: 660px" class="wp-caption aligncenter"><img decoding="async" src="https://softwareevolutivo.com.ec/wp-content/uploads/2016/07/word-image-2.png" alt="Escalamiento Horizontal Aplicaciones Monolíticas, @Copyleft www.softwareevolutivo.com.ec" width="660" height="445"><figcaption class="wp-caption-text">Escalamiento Horizontal Aplicaciones Monolíticas, Copyleft www.softwareevolutivo.com.ec</figcaption></figure>
<figure style="width: 660px" class="wp-caption aligncenter"><img decoding="async" src="https://softwareevolutivo.com.ec/wp-content/uploads/2016/07/word-image-3.png" alt="Escalamiento Vertical Microservicios, @Copyleft www.softwareevolutivo.com.ec" width="660" height="394"><figcaption class="wp-caption-text">Escalamiento Vertical Microservicios, Copyleft www.softwareevolutivo.com.ec</figcaption></figure>
<p>&nbsp;</p>
<p><strong>Características de la arquitectura y retos de implementación</strong></p>
<p>La adopción de la arquitectura en Microservicios requiere además, del análisis de varios aspectos técnicos y organizacionales que debe prever la empresa para no verse inmersa en problemas de gestión y en consecuencia implementaciones no exitosas y llenas de problemas.</p>
<p>Ponemos a consideración las siguientes características:</p>
<ul>
<li>La concepción de un servicio debe ser en función de un dominio específico y bien delimitado del negocio, generalmente organizados alrededor de una capacidad del negocio.</li>
<li>Los servicios deben ser independientes, disponibles en su propio proceso lo cual nos permite una escalabilidad vertical y no como en las aplicaciones monolíticas que es horizontal.</li>
<li>A un servicio se lo entiende como un producto, por tanto evoluciona como tal y cuenta con un equipo multidisciplinario de desarrollo, su objetivo siempre es mejorar la capacidad de negocio.</li>
<li>Un servicio tiene un punto de conexión inteligente que es capaz de reconocer el mensaje y el mecanismo de acceso con protocolos simples como HTTP básico.</li>
<li>La plataforma tecnológica de un servicio está pensada en la solución correcta y no en estándares corporativos, así podemos crear servicios con diferentes lenguajes de programación y con diferentes repositorios de datos como bases de datos relacionales. documentales o clave-valor.</li>
<li>Esta arquitectura al tener varios servicios requiere varios procesos de despliegue, por lo que es crítico tener un plan de automatización de los mismos evitando sobrecargas de esfuerzo y errores manuales, son muy útiles las tendencias de despliegue como Devops.</li>
<li>La transaccionalidad debe estar preparada para fallos, estamos en un escenario que básicamente es programación distribuida y este concepto requiere experiencia. La atomicidad de la transacción no existe debido al riesgo de falla por la latencia en redes o cortes de servicio, así mismo por otros temas como errores de ejecución</li>
<li>La sobre-arquitectura es una tendencia que puede afectar al diseño de servicios, la idea es crearlos simples pero con una visión evolutiva que crezca a la par del requerimiento de negocio. Aunque la tendencia es desarrollar servicios que toleran cambios en sus proveedores es probable que se requiera de estrategias/políticas más formales como versionamiento y niveles de servicio.</li>
</ul>
<p>&nbsp;</p>
<p><strong>Conclusión</strong></p>
<p>Este artículo presenta tres conceptos principales a tomar en cuenta para la adopción de la arquitectura Microservicios, si bien su adopción puede ser parcial o total se requiere planificar otros aspectos para que la empresa esté preparada para su implementación. Animamos a todos a exponer en este medio sus puntos de vista y su conocimiento para mejorar este contenido y crear elementos de decisión sobre el paradigma.</p>
<p><em>Casos de éxito:</em></p>
<p>Finalmente queremos dejar dos enlaces a casos de éxito en la implementación de esta arquitectura para su evaluación y como elemento de decisión:</p>
<ul>
<li>From a Monolith to Microservices + REST: the Evolution of LinkedIn&#8217;s Service Architecture[4]</li>
<li>A Microscope on Microservices[5]</li>
</ul>
<p><strong>Referencias:</strong></p>
<ol>
<li><a href="https://es.wikipedia.org/wiki/Arquitectura_orientada_a_servicios">https://es.wikipedia.org/wiki/Arquitectura_orientada_a_servicios</a></li>
<li><a href="http://martinfowler.com/articles/microservices.html">http://martinfowler.com/articles/microservices.html</a></li>
<li><a href="http://techblog.netflix.com/2013/03/karyon-nucleus-of-composable-web-service.html">http://techblog.netflix.com/2013/03/karyon-nucleus-of-composable-web-service.html</a></li>
<li><a href="https://www.infoq.com/presentations/linkedin-microservices-urn">https://www.infoq.com/presentations/linkedin-microservices-urn</a></li>
<li><a href="http://techblog.netflix.com/2015/02/a-microscope-on-microservices.html">http://techblog.netflix.com/2015/02/a-microscope-on-microservices.html</a></li>
</ol>
<p>&nbsp;[:]</p>
<p><br>
<!-- /wp:shortcode --></p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		<p>The post <a href="https://softwareevolutivo.com.ec/microservicios-en-aplicaciones-empresariales/">[:es]Microservicios en aplicaciones empresariales[:]</a> appeared first on <a href="https://softwareevolutivo.com.ec">Software Evolutivo</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://softwareevolutivo.com.ec/microservicios-en-aplicaciones-empresariales/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
