<?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>DevOps Archives - Software Evolutivo</title>
	<atom:link href="https://softwareevolutivo.com.ec/category/devops/feed/" rel="self" type="application/rss+xml" />
	<link>https://softwareevolutivo.com.ec/category/devops/</link>
	<description>Consultora de Software Empresarial</description>
	<lastBuildDate>Mon, 26 Aug 2024 21:27:53 +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>DevOps Archives - Software Evolutivo</title>
	<link>https://softwareevolutivo.com.ec/category/devops/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>GitHub Flow, una forma ligera y eficaz para gestionar tu Software</title>
		<link>https://softwareevolutivo.com.ec/github-flow/</link>
					<comments>https://softwareevolutivo.com.ec/github-flow/#respond</comments>
		
		<dc:creator><![CDATA[Fernando Paz]]></dc:creator>
		<pubDate>Wed, 24 Jul 2024 20:38:09 +0000</pubDate>
				<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[GitHub Flow]]></category>
		<category><![CDATA[versionamiento de código]]></category>
		<guid isPermaLink="false">https://softwareevolutivo.com.ec/?p=10096</guid>

					<description><![CDATA[<p>En el mundo del desarrollo de software y la gestión de productos digitales, mantener un flujo de trabajo eficiente y colaborativo es crucial. Se presenta aquí a GitHub Flow, una forma ligera y eficaz para gestionar tu Software. Exploraremos qué es GitHub Flow, cómo funciona, y por qué podría ser la estrategia perfecta para tu [&#8230;]</p>
<p>The post <a href="https://softwareevolutivo.com.ec/github-flow/">GitHub Flow, una forma ligera y eficaz para gestionar tu Software</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="10096" class="elementor elementor-10096">
				<div class="elementor-element elementor-element-d8f38cc e-flex e-con-boxed e-con e-parent" data-id="d8f38cc" data-element_type="container" data-e-type="container" id="se-ol_li">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-90b7a0d elementor-widget elementor-widget-text-editor" data-id="90b7a0d" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>En el mundo del desarrollo de software y la gestión de productos digitales, mantener un flujo de trabajo eficiente y colaborativo es crucial. Se presenta aquí a GitHub Flow, una forma ligera y eficaz para gestionar tu Software. Exploraremos qué es GitHub Flow, cómo funciona, y por qué podría ser la estrategia perfecta para tu equipo de TI.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-901236b elementor-widget elementor-widget-heading" data-id="901236b" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">¿Qué es GitHub Flow?</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-b04b3ef elementor-widget elementor-widget-text-editor" data-id="b04b3ef" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>GitHub Flow es un modelo de flujo de trabajo ligero y basado en ramas que facilita la experimentación y colaboración en equipos de desarrollo. Diseñado para ser simple y efectivo, este flujo se centra en la integración continua (CI) y la entrega frecuente de código.</p>								</div>
				</div>
		<div class="elementor-element elementor-element-dbeec9c e-grid e-con-full e-con e-child" data-id="dbeec9c" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-d778055 elementor-widget elementor-widget-text-editor" data-id="d778055" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h2>El proceso de GitHub Flow</h2><p>El siguiente diagrama muestra cómo el workflow propuesto de GitHub Flow para la gestión de los fuentes:</p><ol><li><span style="text-align: var(--text-align);"><b>Crear una rama</b>: Todo comienza con la creación de una nueva rama desde &#8216;main&#8217; (la rama por defecto), para trabajar en una nueva característica o corrección.</span></li><li><strong>Realizar cambios</strong>: En esta nueva rama, haces commits con tus cambios, iterando sobre tu trabajo.</li><li><strong>Abrir un Pull Request</strong>: Cuando estés listo para el feedback, abre un Pull Request (o un Merge Request si estás en GitLab). Esto inicia la conversación sobre tus cambios.</li><li><strong>Discusión y revisión</strong>: Tus colaboradores revisan el código, sugieren mejoras y discuten los cambios propuestos.</li><li><strong>Implementar cambios</strong>: Basado en el feedback, puedes seguir haciendo commits en tu rama para mejorar tu propuesta.</li><li><strong>Fusionar en main</strong>: Una vez que los cambios son aprobados, se fusionan en la rama principal (main).</li><li><strong>Desplegar</strong>: Con los cambios en main, puedes desplegar inmediatamente.</li></ol><p>La rama defecto es main, lo que significa que es la rama fuente para ambientes de producción y no tenemos ramas por versiones, tan solo las identificamos por tags, por ejemplo.</p><p> </p>								</div>
				</div>
				<div class="elementor-element elementor-element-f315419 elementor-widget elementor-widget-image" data-id="f315419" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img fetchpriority="high" decoding="async" width="277" height="1024" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/Github-Flow-2024-07-24-202902-277x1024.png" class="attachment-large size-large wp-image-10099" alt="GitHub Flow" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/Github-Flow-2024-07-24-202902-277x1024.png 277w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/Github-Flow-2024-07-24-202902-81x300.png 81w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/Github-Flow-2024-07-24-202902-415x1536.png 415w" sizes="(max-width: 277px) 100vw, 277px" />															</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-6312cde e-flex e-con-boxed e-con e-parent" data-id="6312cde" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-3ad11c6 elementor-widget elementor-widget-heading" data-id="3ad11c6" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Casos de uso sugeridos</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-6f3c3a7 elementor-widget elementor-widget-text-editor" data-id="6f3c3a7" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<ul><li>Desarrollo de nuevas características: Ideal para trabajar en nuevas funcionalidades sin afectar el código en producción.</li><li>Corrección de errores: Permite aislar y resolver problemas rápidamente.</li><li>Experimentación: Perfecto para probar nuevas ideas sin comprometer la estabilidad del proyecto.</li><li>Revisión de código: Facilita la revisión y discusión de cambios antes de integrarlos.</li><li>Releases continuas: Permite una entrega más frecuente y controlada de nuevas versiones.</li></ul>								</div>
				</div>
				<div class="elementor-element elementor-element-e72209b elementor-widget elementor-widget-heading" data-id="e72209b" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Beneficios de adoptar GitHub Flow</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-53ad2e7 elementor-widget elementor-widget-text-editor" data-id="53ad2e7" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Se presentan los siguientes como los principales beneficios:</p><ol><li><strong>Simplicidad</strong>: Un flujo fácil de entender y seguir para todos los miembros del equipo.</li><li><strong>Flexibilidad</strong>: Se adapta a diferentes tamaños de equipos y tipos de proyectos.</li><li><strong>Rápida iteración</strong>: Permite ciclos de desarrollo más cortos y ágiles.</li><li><strong>Mejor colaboración</strong>: Fomenta la discusión y revisión de código entre el equipo.</li><li><strong>Calidad mejorada</strong>: La revisión constante ayuda a mantener un alto estándar de código.</li><li><strong>Despliegue continuo (CD)</strong>: Facilita la implementación de prácticas de CI/CD.</li><li><strong>Transparencia</strong>: Todos pueden ver y contribuir al progreso del proyecto.</li></ol>								</div>
				</div>
				<div class="elementor-element elementor-element-3fe59d5 elementor-widget elementor-widget-heading" data-id="3fe59d5" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Consideraciones y desafíos</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-986fccf elementor-widget elementor-widget-text-editor" data-id="986fccf" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Aunque GitHub Flow ofrece numerosos beneficios, es importante considerar también sus limitaciones:</p><ul><li><strong>Dificultad con versiones múltiples</strong>: <span style="text-decoration: underline;">GitHub Flow está diseñado principalmente para mantener una versión principal del software</span>. Si tu producto requiere mantener y dar soporte a múltiples versiones simultáneamente (por ejemplo, para diferentes clientes o plataformas), este flujo puede resultar complicado de gestionar.</li><li><strong>Complejidad en proyectos grandes</strong>: En proyectos muy extensos o con un gran número de colaboradores, el flujo puede volverse caótico si no se gestiona cuidadosamente. La cantidad de ramas y pull requests puede ser abrumadora sin una organización adecuada.</li><li><strong>Dependencia de CI/CD</strong>: GitHub Flow funciona mejor cuando se implementa junto con prácticas robustas de Integración Continua y Despliegue Continuo (CI/CD). Establecer y mantener esta infraestructura puede ser un desafío para equipos más pequeños o con recursos limitados.</li></ul>								</div>
				</div>
				<div class="elementor-element elementor-element-8ac88d5 elementor-widget elementor-widget-heading" data-id="8ac88d5" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Conclusiones</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-40345a3 elementor-widget elementor-widget-text-editor" data-id="40345a3" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>GitHub Flow ofrece un enfoque ágil y efectivo para la gestión de versiones en productos digitales. <br />Su simplicidad lo hace accesible, mientras que su potencia lo hace escalable para proyectos de cualquier tamaño. <br />Al adoptar GitHub Flow, los equipos de TI pueden mejorar su colaboración, aumentar la calidad del código y acelerar el ciclo de desarrollo, llevando sus productos digitales al siguiente nivel.<br />Por supuesto hay otras propuestas para la gestión del versionamiento , como GitFlow o GitLab Flow, que pueden aplicar en escenarios donde necesitamos más control o tenemos que dar mantenimiento a versiones específicas.</p>								</div>
				</div>
					</div>
				</div>
				</div>
		<p>The post <a href="https://softwareevolutivo.com.ec/github-flow/">GitHub Flow, una forma ligera y eficaz para gestionar tu Software</a> appeared first on <a href="https://softwareevolutivo.com.ec">Software Evolutivo</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://softwareevolutivo.com.ec/github-flow/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Kubernetes: Arquitectura y Recursos Principales</title>
		<link>https://softwareevolutivo.com.ec/kubernetes-arquitectura-y-recursos-principales/</link>
					<comments>https://softwareevolutivo.com.ec/kubernetes-arquitectura-y-recursos-principales/#respond</comments>
		
		<dc:creator><![CDATA[Jorge Aguilar]]></dc:creator>
		<pubDate>Thu, 18 Jul 2024 18:29:50 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[Contenedores]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[Servidor]]></category>
		<guid isPermaLink="false">https://softwareevolutivo.com.ec/?p=10023</guid>

					<description><![CDATA[<p>En esta entrada veremos la plataforma Kubernetes, su arquitectura y los recursos principales que la conforman.</p>
<p>The post <a href="https://softwareevolutivo.com.ec/kubernetes-arquitectura-y-recursos-principales/">Kubernetes: Arquitectura y Recursos Principales</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="10023" class="elementor elementor-10023">
				<div class="elementor-element elementor-element-3a626d0 e-flex e-con-boxed e-con e-parent" data-id="3a626d0" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-d4e4873 elementor-widget elementor-widget-text-editor" data-id="d4e4873" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>En un mundo donde se hace necesario disponer de aplicaciones escalables y que puedan responder a las exigencias de disponibilidad más demandantes, es donde surgen plataformas de orquestamiento de contenedores como Kubernetes. En esta entrada veremos la plataforma Kubernetes, su arquitectura y los recursos principales que la conforman.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-10c01c0 elementor-widget elementor-widget-image" data-id="10c01c0" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img decoding="async" width="560" height="560" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/k8s-560x560.webp" class="attachment-themex-gallery-thumb size-themex-gallery-thumb wp-image-10026" alt="Kubernetes" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/k8s-560x560.webp 560w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/k8s-300x300.webp 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/k8s-150x150.webp 150w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/k8s-450x450.webp 450w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/k8s-106x106.webp 106w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/k8s-70x70.webp 70w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/k8s.webp 746w" sizes="(max-width: 560px) 100vw, 560px" />															</div>
				</div>
				<div class="elementor-element elementor-element-d30bf46 elementor-widget elementor-widget-text-editor" data-id="d30bf46" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h2>Contenidos</h2><ul><li><a href="#sek8s1">¿Qué es Kubernetes?</a></li><li><a href="#sek8s2">5 Beneficios Principales de Kubernetes</a></li><li><a href="#sek8s3">Arquitectura de Kubernetes</a></li><li><a href="#sek8s4">Componentes Complementarios</a></li><li><a href="#sek8s5">Recursos Principales</a></li></ul>								</div>
				</div>
				<div class="elementor-element elementor-element-6dbe239 elementor-widget elementor-widget-heading" data-id="6dbe239" data-element_type="widget" data-e-type="widget" id="sek8s1" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">¿Qué es Kubernetes?</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-7ff2ae2 elementor-widget elementor-widget-text-editor" data-id="7ff2ae2" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Kubernetes se puede definir como un sistema de código abierto para la automatización del despliegue, el escalado y la gestión de aplicaciones contenerizadas. <br>Fue desarrollado por Google y es ampliamente utilizado en la industria para implementar y administrar aplicaciones en la nube privada, pública o híbrida entre estos dos tipos. <br>Kubernetes se ha convertido en la alternativa de facto cuando se requiere coordinar una gran cantidad de contenedores.</p>
<p><em><strong>Kubernetes (K8s) se presenta como la respuesta natural al escalamiento de soluciones como Docker, containerd o contenedores en general.</strong></em></p>
<p>(Si te interesa, en un artículo anterior compartimos los <a href="https://softwareevolutivo.com.ec/docker-primeros-pasos/" target="_blank" rel="noopener">Primeros pasos en Docker</a>).</p>
<p>Su adopción ha sido masiva en todas las industrias, con una tendencia a soluciones provistas en la nube.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-6cf7639 elementor-widget elementor-widget-image" data-id="6cf7639" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
																<a href="https://www.redhat.com/en/resources/kubernetes-adoption-security-market-trends-overview" target="_blank" rel="nofollow">
							<img decoding="async" src="https://softwareevolutivo.com.ec/wp-content/uploads/elementor/thumbs/Captura-de-pantalla-2024-07-18-125907-qrawx1j418zobosuumythj3l4ane2iehjpei6f3kqe.png" title="Captura de pantalla 2024-07-18 125907" alt="kubernetes-adoption-2024" loading="lazy" />								</a>
															</div>
				</div>
				<div class="elementor-element elementor-element-11532cb elementor-widget elementor-widget-text-editor" data-id="11532cb" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Kubernetes no llega para reemplazar a los contenedores, sino más bien a complementarlos, lo que es muy beneficioso para responder a las demandas crecientes que tienen las aplicaciones nativas de la nube.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-79e848e elementor-widget elementor-widget-heading" data-id="79e848e" data-element_type="widget" data-e-type="widget" id="sek8s2" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">5 Beneficios Principales de Kubernetes</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-e743ea0 elementor-widget elementor-widget-text-editor" data-id="e743ea0" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Kubernetes ofrece muchos beneficios para el despliegue de aplicaciones en entornos empresariales, más allá del escalamiento de la contenerización, así presentamos los siguientes 5 beneficios principales de esta tecnología:</p><ol><li><strong>&#8211; Escalabilidad Automática</strong>: Kubernetes permite escalar automáticamente las aplicaciones según la demanda, aumentando o disminuyendo el número de contenedores en función del tráfico o la carga de trabajo.</li><li><strong>&#8211; Alta Disponibilidad</strong>: Gracias a su arquitectura distribuida y sus mecanismos de autorecuperación, Kubernetes asegura que las aplicaciones estén siempre disponibles, incluso en caso de fallos en los nodos o contenedores.</li><li><strong>&#8211; Portabilidad y Flexibilidad</strong>: Las aplicaciones desplegadas en Kubernetes pueden ejecutarse en cualquier entorno que soporte Kubernetes, ya sea en la nube pública, privada o en entornos híbridos, sin necesidad de cambios significativos.</li><li><strong>&#8211; Eficiencia en el Uso de Recursos</strong>: Kubernetes optimiza la utilización de los recursos del clúster, asignando contenedores a los nodos de manera eficiente y permitiendo un mejor aprovechamiento del hardware.</li><li><strong>&#8211; Despliegues y Rollbacks Simplificados</strong>: Con Kubernetes, es posible realizar actualizaciones y rollbacks de aplicaciones de manera controlada y sin tiempo de inactividad (por ejemplo despliegue blue/green), lo que facilita la implementación de estrategias de integración y entrega continuas (CI/CD).</li></ol>								</div>
				</div>
				<div class="elementor-element elementor-element-9b48baa elementor-widget elementor-widget-heading" data-id="9b48baa" data-element_type="widget" data-e-type="widget" id="sek8s3" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Arquitectura de Kubernetes</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-7bd0313 elementor-widget elementor-widget-text-editor" data-id="7bd0313" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>La arquitectura de Kubernetes se divide en dos partes:</p><h3>Control Plane</h3><p>El Control Plane es el corazón del sistema y se encarga de la gestión del cluster, así es, estamos hablando de un conjunto de servidores, conocidos como servidores master, trabajando de manera colaborativa. <span style="text-align: var(--text-align);">Los componentes principales del Control Plane son:</span></p><ul><li><strong>&#8211; API server:</strong> Servicios Web del tipo REST que dan acceso a consultas y peticiones sobre el sistema. La interfaz por línea de comandos o la consola Web lo utilizan para realizar las diferentes tareas administrativas y de monitoreo.</li><li><strong>&#8211; etcd:</strong> Es una base de datos distribuida donde se aloja la configuración y el estado del sistema. Se accede a ella mediante el API server.</li><li><strong>&#8211; scheduler:</strong> Es el componente encargado de asignar la nueva carga de trabajo a los nodos del cluster. Éste necesita información actualizada sobre la disponibilidad de los nodos y de los recursos que puedan ofrecer.<br />controller: Es el que monitorea el estado de los recursos del cluster y toma acciones para asegurarse que se regrese al estado esperado.</li></ul><h3>Cluster</h3><p>El Cluster como tal, formado por nodos esclavos (servidores de máquinas virtuales o físicas) y que ejecutan las aplicaciones contenerizadas.</p><h4>Nodo</h4><p>Cada nodo ejecuta un agente llamado kubelet, el cuál se comunica con el Control Plane para reportar el estado y conocer sobre nuevos requerimientos. También se encarga de solicitar el inicio o detención de los contenedores en cada uno de los nodos.<span style="text-align: var(--text-align);"> </span></p><p>Los nodos también ejecutan el kube-proxy de Kubernetes, que se encarga de la comunicación por la red.<span style="text-align: var(--text-align);"> </span></p><p>Finalmente, tienen al Container runtime, que corresponde al espacio de ejecución de los contenedores, brindando acceso a los recursos de Hardware que puedan requerir, como son: memoria, CPU, red, etc.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-7a2a1a3 elementor-widget elementor-widget-heading" data-id="7a2a1a3" data-element_type="widget" data-e-type="widget" id="sek8s4" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Componentes Complementarios</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-b7c6f7d elementor-widget elementor-widget-text-editor" data-id="b7c6f7d" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Por otro lado, también podríamos considerar otros servicios que no son, de por sí, parte de Kubernetes pero que lo complementan para brindar soluciones integrales. Estas podrían ser:</p><ul><li><strong>&#8211; Image Registry</strong>: Repositorio de las imágenes de contenedor utilizados para crear los contenedores de las aplicaciones y servicios como por ejemplo una base de datos.</li><li><strong>&#8211; Load Balancer</strong>: Servicio que redirige las peticiones de los clientes para que la carga pueda ser distribuida y también para aislar a los nodos que puedan tener problemas, soportando alta disponibilidad.</li></ul>								</div>
				</div>
				<div class="elementor-element elementor-element-656f2ef elementor-widget elementor-widget-image" data-id="656f2ef" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img decoding="async" width="751" height="396" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/Captura-de-pantalla-2024-07-18-131942.png" class="attachment-large size-large wp-image-10029" alt="kubernetes-componentes" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/Captura-de-pantalla-2024-07-18-131942.png 751w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/Captura-de-pantalla-2024-07-18-131942-300x158.png 300w" sizes="(max-width: 751px) 100vw, 751px" />															</div>
				</div>
				<div class="elementor-element elementor-element-3b6c390 elementor-widget elementor-widget-heading" data-id="3b6c390" data-element_type="widget" data-e-type="widget" id="sek8s5" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Recursos Principales</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-d6410ac elementor-widget elementor-widget-text-editor" data-id="d6410ac" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>A continuación detallaremos los recursos que se consideran la base de Kubernetes y que a través de ellos se obtienen los beneficios más importantes de este tipo de soluciones.</p><h3>Pod</h3><p>La unidad más pequeña del despliegue en Kubernetes es el Pod y puede contener uno o más contenedores. Entre los contenedores que forman parte de un Pod comparten el mismo espacio de nombres y recursos como la dirección IP o volúmenes de disco, lo que significa que pueden comunicarse entre sí de forma fácil y rápida.</p><h3>Service</h3><p>Otro recurso importante de Kubernetes incluye al Service, que es una abstracción de uno o más Pods (están al frente de los Pods y proveen un balanceo de carga), proporcionan una dirección IP más estable que un Pod y además se publica un nombre DNS para facilitar la ubicación del mismo dentro de la red. Los Service se utilizan para que los Pods se comuniquen entre sí, siendo un intermediario, de forma segura y estable.</p><h3>Deployment</h3><p>Finalmente tenemos al Deployment, que es el elemento encargado de gestionar y actualizar un conjunto de pods similares. Un Deployment define la plantilla para los Pods y se encarga de crear y mantener la cantidad de los mismos que sean necesarios para cumplir con la especificación deseada. Los deployments también facilitan el despliegue gradual y el rollback de las aplicaciones.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-b99b935 elementor-widget elementor-widget-image" data-id="b99b935" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="703" height="504" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/Captura-de-pantalla-2024-07-18-132453.png" class="attachment-large size-large wp-image-10030" alt="kubernetes-recursos-principales" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/Captura-de-pantalla-2024-07-18-132453.png 703w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/Captura-de-pantalla-2024-07-18-132453-300x215.png 300w" sizes="(max-width: 703px) 100vw, 703px" />															</div>
				</div>
				<div class="elementor-element elementor-element-f84bf79 elementor-widget elementor-widget-heading" data-id="f84bf79" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Conclusiones</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-9d49a0c elementor-widget elementor-widget-text-editor" data-id="9d49a0c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<ul><li><strong><span style="text-decoration: underline;">&#8211; Kubernetes como Solución Integral para la Gestión de Contenedores</span>:</strong> Kubernetes se ha establecido como una plataforma esencial para la automatización y orquestación de aplicaciones contenerizadas. Su capacidad para escalar aplicaciones de manera automática, gestionar eficientemente los recursos y garantizar alta disponibilidad lo convierte en una solución robusta y adaptable para entornos de nube pública, privada e híbrida.</li><li><strong><span style="text-decoration: underline;">&#8211; Arquitectura de Kubernetes</span>:</strong></li><li><strong>Control Plane y Clúster Distribuido:</strong> La arquitectura de Kubernetes está diseñada para proporcionar un control centralizado mediante el Control Plane, que gestiona el estado del clúster, y una ejecución distribuida en nodos, que asegura la operación continua de las aplicaciones. Esta separación de funciones permite una gestión eficiente y una recuperación automática ante fallos, mejorando la resiliencia de las aplicaciones.</li><li><strong><span style="text-decoration: underline;">&#8211; Beneficios tangibles de Kubernetes para DevOps</span>:</strong> Kubernetes ofrece ventajas significativas en términos de escalabilidad automática, alta disponibilidad, portabilidad y eficiencia en el uso de recursos, lo que lo convierte en una herramienta fundamental para equipos de desarrollo y operaciones que buscan optimizar sus procesos de CI/CD.</li></ul><p>Hasta aquí llegamos con esta entrega, para una próxima oportunidad estaremos abordando contenido práctico, donde crearemos recursos como los que hemos analizado previamente.</p><p>Esperamos que nos sigas acompañando en esta serie de artículos sobre Kubernetes y te invitamos a dejar tus comentarios o preguntas en la sección inferior. Nos encantaría conocer sobre qué otros temas te gustaría que compartamos. ¡Nos leemos pronto!</p><h3>Referencias:</h3><ul><li>&#8211; <a href="https://kubernetes.io/">https://kubernetes.io/</a></li></ul>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-40645f8 e-flex e-con-boxed e-con e-parent" data-id="40645f8" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-34adebf elementor-widget elementor-widget-witr_section_call_to_ac" data-id="34adebf" data-element_type="widget" data-e-type="widget" data-widget_type="witr_section_call_to_ac.default">
				<div class="elementor-widget-container">
								<!-- themex call to action 3 -->

		<div class=" all_cal_color">
			<div class="cal_to_toggole">
					<div class="themex_content col_content_width_100 text-left">
						<!-- top title -->
														
								<h5>Conoce Nuestros Servicios</h5>																	
							
						<!-- middle title -->
														
								<h2>Escalabilidad sin Límites: Consultoría de Kubernetes para su Empresa</h2>																	
												<!-- bottom title -->
													<!-- content -->
													<p>Nuestro enfoque en Kubernetes está diseñado para impulsar la escalabilidad de su infraestructura de TI, a través de la implementación estratégica de contenedores y la orquestación eficiente de aplicaciones y servicios, su infraestructura estará lista para escalar sin límites. </p>		
							
					
					</div>
				<!-- button -->
						
						<div class="themex_button no_margin text-right">						
							<a href="https://softwareevolutivo.com.ec/orquestacion-de-aplicaciones-y-servicios-2/" > 							
								Solicitar DEMO								<!-- icon -->
																							
							</a>
						</div>
								
			</div>
		</div>
					</div>
				</div>
					</div>
				</div>
				</div>
		<p>The post <a href="https://softwareevolutivo.com.ec/kubernetes-arquitectura-y-recursos-principales/">Kubernetes: Arquitectura y Recursos Principales</a> appeared first on <a href="https://softwareevolutivo.com.ec">Software Evolutivo</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://softwareevolutivo.com.ec/kubernetes-arquitectura-y-recursos-principales/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>DevOps: CI/CD en proyectos de desarrollo ágil</title>
		<link>https://softwareevolutivo.com.ec/devops-ci-cd/</link>
					<comments>https://softwareevolutivo.com.ec/devops-ci-cd/#respond</comments>
		
		<dc:creator><![CDATA[Mateo Martínez]]></dc:creator>
		<pubDate>Tue, 05 Mar 2024 13:42:28 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Despliegue Continuo]]></category>
		<category><![CDATA[Entrega Continua]]></category>
		<category><![CDATA[Integración Continua]]></category>
		<guid isPermaLink="false">https://softwareevolutivo.com.ec/?p=8954</guid>

					<description><![CDATA[<p>DevOps (Development - Operations) es un enfoque integral que busca mejorar la colaboración entre los equipos de desarrollo y de operaciones.</p>
<p>The post <a href="https://softwareevolutivo.com.ec/devops-ci-cd/">DevOps: CI/CD en proyectos de desarrollo ágil</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="8954" class="elementor elementor-8954">
				<div class="elementor-element elementor-element-0ca2848 e-flex e-con-boxed e-con e-parent" data-id="0ca2848" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-4aa3fae elementor-widget elementor-widget-text-editor" data-id="4aa3fae" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="font-weight: 400">En el desarrollo ágil de proyectos de software, la calidad del resultado, la velocidad de entrega del producto y la tolerancia a fallos son aspectos fundamentales para el éxito de los mismos. En este contexto, DevOps (Development &#8211; Operations) ha surgido como un enfoque integral que busca mejorar la colaboración entre los equipos de desarrollo y de operaciones. Su principal objetivo es permitir entregas ágiles de software sin perder la estabilidad de las operaciones de la organización.</span></p><p><span style="text-align: var(--text-align)">Al implementar DevOps, se busca cumplir con los principios establecidos en el Manifiesto Ágil. Particularmente, el principio que enfatiza la entrega temprana y continua de software con valor para satisfacer al cliente se alinea perfectamente con la filosofía de DevOps de ofrecer cambios de manera rápida y confiable.</span></p><p><span style="text-align: var(--text-align)">Dentro de DevOps, surge un término importante “pipelines” que se define como una serie de pasos automatizados que permiten la integración continua de software (CI) y la entrega o despliegue continuo del mismo (CD). Esto asegura que el código se incorpore, pruebe y despliegue de forma ininterrumpida, facilitando a los equipos de desarrollo la entrega ágil y fiable de cambios.</span></p><p><span style="text-align: var(--text-align)">DevOps no se trata simplemente de adoptar nuevas herramientas tecnológicas y acelerar procesos, sino de un cambio cultural en el cual se busca promover la comunicación, la colaboración entre los equipos. Los procesos de DevOps no son estáticos, sino más bien orgánicos y evolutivos. Cada equipo de desarrollo tiene sus propias necesidades y desafíos únicos, por lo que no existe una receta mágica o un enfoque único que funcione para todos.</span></p><p><span style="text-align: var(--text-align)">El resultado de aplicar DevOps en una organización será una mayor agilidad, resiliencia y capacidad de innovación.</span></p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-5e9d3ce e-flex e-con-boxed e-con e-parent" data-id="5e9d3ce" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-36a9cbd elementor-widget elementor-widget-text-editor" data-id="36a9cbd" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h1>Integración Continua (CI)</h1>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-e98069d e-flex e-con-boxed e-con e-parent" data-id="e98069d" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-d69f0bf elementor-widget elementor-widget-text-editor" data-id="d69f0bf" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="font-weight: 400">Este proceso tiene su origen con la metodología ágil Extreme Programming, la cual busca la entrega de software de alta calidad de manera rápida y continua. CI busca integrar el trabajo de cada uno de los desarrolladores constantemente. Cada integración debe estar respaldada por pruebas automatizadas que permitirán detectar errores para corregirlos lo antes posible. </span></p><p><span style="text-align: var(--text-align)">El objetivo principal de CI es reducir el riesgo de errores y conflictos de integración que dificulten el progreso de un proyecto. Una de las razones para adoptar Integración Continua (CI) es evitar el temido &#8220;Big Bang Integration&#8221;, es decir, a la práctica de integrar grandes volúmenes de código de diferentes desarrolladores o equipos al final del ciclo de desarrollo, en lugar de integrarlo de manera continua a lo largo del proceso.</span></p><p><span style="text-align: var(--text-align)">Trunk Based Development (TBD) es una estrategia de desarrollo de software que fomenta la integración continua al reducir la complejidad de fusionar cambios y alentar a los equipos a integrar su trabajo con frecuencia en la rama principal, por lo que el CI está estrechamente relacionado a TBD.</span></p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-40dbee1 e-flex e-con-boxed e-con e-parent" data-id="40dbee1" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-3ef152b elementor-widget elementor-widget-text-editor" data-id="3ef152b" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h1>Entrega Continua (CD)</h1>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-ce68c5b e-flex e-con-boxed e-con e-parent" data-id="ce68c5b" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-0b61823 elementor-widget elementor-widget-text-editor" data-id="0b61823" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="font-weight: 400">Cuando el código pasó por el CI, todos los miembros del equipo de desarrollo tendrán disponible los últimos cambios del código, lo cual es muy útil. Pero el desarrollo de software tiene que seguir su ciclo de vida, y precisamente esa es la ayuda que nos va a dar esta primera variante del CD, que se define como una serie de pasos automatizados a seguirse para el que el código se encuentre en un estado listo para desplegar, es decir, todos sus artefactos (.jar, .war, imágen de contenedor) listos para que alguien tome la decisión y los despliegue en un servidor.</span></p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-9b1271d e-flex e-con-boxed e-con e-parent" data-id="9b1271d" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-bd0f436 elementor-widget elementor-widget-text-editor" data-id="bd0f436" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h1>Despliegue Continuo (CD)</h1>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-1633340 e-flex e-con-boxed e-con e-parent" data-id="1633340" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-71a26f9 elementor-widget elementor-widget-text-editor" data-id="71a26f9" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="font-weight: 400">Esta segunda variante de CD es el complemento de la primera, con la gran diferencia que en este caso, no solo se busca dejar los artefactos listos para que alguien los despliegue, sino que el despliegue en el servidor es automático.</span></p><p><span style="text-align: var(--text-align)">Para lograr esto, es fundamental contar con las herramientas y/o infraestructura adecuadas que permitan realizar cambios sin afectar los servicios en producción, lo que se conoce como despliegue sin tiempo de inactividad (Zero-Downtime Deployment).</span></p><p><span style="text-align: var(--text-align)">La idea detrás del Zero-Downtime Deployment es asegurar que los usuarios finales puedan continuar utilizando la aplicación sin experimentar ningún tiempo de inactividad, esto se logra mediante la implementación de estrategias y técnicas específicas que permiten desplegar las nuevas versiones de la aplicación, entre las estrategias más comunes se encuentran:</span></p><ul><li><span style="text-align: var(--text-align)"><strong>&#8211; Blue-green deployment:</strong> Despliega dos entornos de producción, donde uno está activo y otro se actualiza. Una vez probada la nueva versión, el tráfico se redirige al nuevo entorno.</span></li><li><span style="text-align: var(--text-align)"><strong>&#8211; Canary deployment:</strong> Implementa una nueva versión inicialmente para un pequeño grupo de usuarios o servidores, permitiendo probarla antes de implementarla completamente.</span></li><li><span style="text-align: var(--text-align)"><strong>&#8211; Rolling deployment:</strong> Despliega nuevas versiones de la aplicación en etapas o secuencialmente en diferentes partes de la infraestructura, manteniendo la aplicación en línea durante todo el proceso.</span></li></ul><p><span style="text-align: var(--text-align)">Volviendo a CI y CD, contamos con varias herramientas en el mercado que nos pueden ayudar a correr pipelines en nuestros proyectos: Jenkins, GitLab, Travis CI, CircleCI, Spinnaker, AWS CodeDeploy, Azure DevOps, entre otras.</span></p><p><span style="text-align: var(--text-align)">Particularmente “GitLab” es una herramienta que para la empresa Software Evolutivo es una de las mejores no solo para DevOps, sino también para la gestión y planificación de proyectos de software. Seguramente, pronto estaremos profundizando sobre esta herramienta en otro blog que te dejaremos en las lecturas recomendadas.</span></p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-498f0c2 e-flex e-con-boxed e-con e-parent" data-id="498f0c2" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-4bad396 elementor-widget elementor-widget-text-editor" data-id="4bad396" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h1>¿Cómo diseñar un pipeline de CI/CD para un proyecto?</h1>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-dd92d2d e-flex e-con-boxed e-con e-parent" data-id="dd92d2d" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-ad3b5ee elementor-widget elementor-widget-text-editor" data-id="ad3b5ee" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<ul><li><span style="font-weight: 400">&#8211; Identifica el flujo de trabajo y el ciclo de vida completo de tu proyecto desde el momento cero hasta el momento en que este sale a un ambiente de producción o cualquiera que sea el ambiente objetivo.</span></li><li>&#8211; Determina los pasos que tu pipeline debería seguir para que el ciclo de vida que identificaste pueda ser automatizado.</li></ul><p><span style="font-weight: 400">En este punto deberías tenerlo todo sentado en papel, sigamos:</span></p><ul><li><span style="font-weight: 400">&#8211; Considera el estado y las características tecnológicas de tu proyecto.</span></li><li><span style="font-weight: 400">&#8211; Investiga las herramientas que te permitirán implementar tu pipeline (valida que los recursos tecnológicos y económicos requeridos estén a tu alcance).</span></li><li><span style="font-weight: 400">&#8211; Define las herramientas a utilizar.</span></li></ul><p><span style="font-weight: 400">Es momento de desarrollar, y para esto se sugiere lo siguiente:</span></p><ul><li><span style="font-weight: 400">&#8211; Incluye un paso a la vez a tu pipeline, pruébalo y valida que cada paso logre su objetivo.</span></li><li><span style="font-weight: 400">&#8211; Empieza por implementar el CI desde lo más simple y fundamental para que puedas continuar (compilación, tests).</span></li><li><span style="font-weight: 400">&#8211; Continúa por un CD de delivery. Lograr que tu aplicación genere y suba su artefacto en el repositorio que deseas, será un gran hito.</span></li><li><span style="font-weight: 400">&#8211; Cuando tengas el artefacto en el repositorio deberás buscar la manera adecuada de que tu repositorio se conecte a tu servidor donde harás el despliegue.</span></li></ul><p><span style="font-weight: 400">Y por último, busca siempre la retroalimentación de tu equipo con el objetivo de mejora continua.</span></p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-7750177 e-flex e-con-boxed e-con e-parent" data-id="7750177" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-36a2581 elementor-widget elementor-widget-text-editor" data-id="36a2581" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h1>Desafíos al implementar DevOps</h1>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-88edf70 e-flex e-con-boxed e-con e-parent" data-id="88edf70" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-9faf41d elementor-widget elementor-widget-text-editor" data-id="9faf41d" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<ul><li style="font-weight: 400"><span style="font-weight: 400">&#8211; Superar la resistencia a los cambios y fomentar una cultura de colaboración y responsabilidad compartida.</span></li><li style="font-weight: 400"><span style="font-weight: 400">&#8211; Lograr la automatización completa de los procesos de desarrollo, pruebas y despliegue.</span></li><li style="font-weight: 400"><span style="font-weight: 400">&#8211; Comunicar efectivamente los beneficios de DevOps y proporcionar capacitación y apoyo para la transición.</span></li><li style="font-weight: 400"><span style="font-weight: 400">&#8211; Integrar prácticas de seguridad y cumplimiento sin comprometer la velocidad de entrega.</span></li><li style="font-weight: 400"><span style="font-weight: 400">&#8211; Establecer una estrategia de monitoreo y retroalimentación continua para mejorar el rendimiento y la calidad del software.</span></li><li style="font-weight: 400"><span style="font-weight: 400">&#8211; Diseñar una infraestructura y procesos que puedan crecer y adaptarse a medida que los proyectos y equipos evolucionan.</span></li></ul>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-8fdc2ca e-flex e-con-boxed e-con e-parent" data-id="8fdc2ca" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-f01e28a elementor-widget elementor-widget-text-editor" data-id="f01e28a" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="font-weight: 400">En conclusión, DevOps y CI/CD son dos conceptos sumamente relacionados que se basan en los principios de colaboración, automatización y entrega continua para impulsar la excelencia en el desarrollo y entrega de software en entornos ágiles.</span></p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-3e23d1b e-flex e-con-boxed e-con e-parent" data-id="3e23d1b" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-0351b7f elementor-widget elementor-widget-spacer" data-id="0351b7f" data-element_type="widget" data-e-type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
							<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-121ff3d elementor-widget elementor-widget-witr_section_call_to_ac" data-id="121ff3d" data-element_type="widget" data-e-type="widget" data-widget_type="witr_section_call_to_ac.default">
				<div class="elementor-widget-container">
								<!-- themex call to action 3 -->

		<div class=" all_cal_color">
			<div class="cal_to_toggole">
					<div class="themex_content col_content_width_100 text-left">
						<!-- top title -->
														
								<h5>Conoce nuestros servicios</h5>																	
							
						<!-- middle title -->
														
								<h2>Cultura DevOps</h2>																	
												<!-- bottom title -->
														
								<h3>Impulsa la colaboración, agilidad y excelencia</h3>																	
													<!-- content -->
													<p>Transforme su equipo en un motor de entrega continua y logre resultados sorprendentes. </p>		
							
					
					</div>
				<!-- button -->
						
						<div class="themex_button no_margin text-right">						
							<a href="https://softwareevolutivo.com.ec/cultura-devops/" > 							
								Conoce más								<!-- icon -->
																	<i class="icofont-paper-plane"></i>
																							
							</a>
						</div>
								
			</div>
		</div>
					</div>
				</div>
					</div>
				</div>
				</div>
		<p>The post <a href="https://softwareevolutivo.com.ec/devops-ci-cd/">DevOps: CI/CD en proyectos de desarrollo ágil</a> appeared first on <a href="https://softwareevolutivo.com.ec">Software Evolutivo</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://softwareevolutivo.com.ec/devops-ci-cd/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Descubriendo a Quarkus: ¿Que es, Características y por qué utilizarlo?</title>
		<link>https://softwareevolutivo.com.ec/descubriendo-a-quarkus/</link>
					<comments>https://softwareevolutivo.com.ec/descubriendo-a-quarkus/#respond</comments>
		
		<dc:creator><![CDATA[Bryan Diaz]]></dc:creator>
		<pubDate>Thu, 23 Mar 2023 15:43:36 +0000</pubDate>
				<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Infrarestructura de Software]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[Tendencias]]></category>
		<category><![CDATA[Aplicaciones nativas de la nube.]]></category>
		<category><![CDATA[Java & Kotlin Framework]]></category>
		<category><![CDATA[microservicios]]></category>
		<category><![CDATA[Quarkus]]></category>
		<guid isPermaLink="false">https://softwareevolutivo.com.ec/?p=7074</guid>

					<description><![CDATA[<p>En la actualidad, Quarkus representa la pila tecnológica de Java Nativa de Kubernetes (una colección de herramientas, marcos, lenguajes de programación y bibliotecas) diseñada para GraalVM y OpenJDK HotSpot (Máquinas Virtuales de Java). </p>
<p>The post <a href="https://softwareevolutivo.com.ec/descubriendo-a-quarkus/">Descubriendo a Quarkus: ¿Que es, Características y por qué utilizarlo?</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="7074" class="elementor elementor-7074">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-e0e6db6 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="e0e6db6" 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-9de646c" data-id="9de646c" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap">
							</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-2ba9e87 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="2ba9e87" 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-b753beb" data-id="b753beb" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-8384d36 elementor-widget elementor-widget-text-editor" data-id="8384d36" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p dir="ltr" style="line-height: 1.38;text-align: center;margin-top: 0pt;margin-bottom: 3pt"><span style="font-size: 23pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Descubriendo a Quarkus: ¿Que es, Características y por qué utilizarlo?</span></p><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.38;text-align: center;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><span style="border: none;overflow: hidden;width: 225px;height: 225px"><img loading="lazy" decoding="async" style="margin-left: 0px;margin-top: 0px" src="https://lh6.googleusercontent.com/gkV80UWiso2OXVNhJfMbHlkFVS4TAgb0S2gBsM5H19vp_2DTD83hWCXvpRtP1yJ0QtKzAtq37Fz3ojdIbhmmZYsm6-_7f2iKUfLpJsZcbuJJqo83hDNwgI2I0dc-8v9uY4lk5PB3VdnJyR4-eDlAkEQ" width="225" height="225" /></span></span></p><p><b style="font-weight: normal"><br /><br /></b></p><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">En la actualidad, Quarkus representa la pila tecnológica de Java Nativa de Kubernetes (una colección de herramientas, marcos, lenguajes de programación y bibliotecas) diseñada para GraalVM y OpenJDK HotSpot (Máquinas Virtuales de Java). </span></p><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> </span></p><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Los desarrolladores pueden crear aplicaciones con el mismo Stack (Estructura de Datos) y microservicios más ligeros, rápidos y escalables gracias a las mejores bibliotecas y estándares de Java utilizados en su creación. Esta herramienta permite a los desarrolladores escribir código en Java/Kotlin mientras proporciona funciones de gestión de memoria y escalabilidad. Por lo tanto, &#8220;Quarkus&#8221; ayuda a los desarrolladores a trabajar de manera proactiva y eficiente si buscan una forma eficiente de desarrollar una determinada aplicación o microservicio Java, ya que es una de las mejores opciones disponibles.</span></p><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> </span></p><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Quarkus es más que un proyecto de código abierto presentado por Red Hat (Que conquistó a la comunidad Java y el primer release fué presentado en el 2019), por el hecho de que combina la productividad y la alegría del desarrollador (similar a Node.js), con la velocidad y rendimiento de GO, puesto que aquello le permite a los desarrolladores Java crear soluciones tecnológicas y arquitecturas modernas futuristas. </span></p><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> </span></p><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Turețchi (2022) muestra que Quarkus es una pila de Java nativa para la nube, basada en contenedores y diseñada para mejorar la productividad de los desarrolladores, reducir la huella de memoria de las aplicaciones y microservicios Java. Esta herramienta brinda a los desarrolladores una experiencia de tiempo de ejecución unificada y liviana mediante el uso de GraalVM, HotSpot y otros lenguajes como Kotlin, lo que permite el desarrollo eficiente de aplicaciones modernas nativas de la nube, con un enfoque en la escalabilidad y la gestión de la memoria. En consecuencia, Quarkus, como parte de un conjunto de herramientas tecnológicas, facilita la creación rápida de servicios modernos nativos en la nube.</span></p><h1 dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 20pt;margin-bottom: 6pt"><span style="font-size: 19pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> </span></h1><h1 dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 20pt;margin-bottom: 6pt"><span style="font-size: 19pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Aplicaciones de Quarkus y por qué es actualmente el marco más popular</span></h1><div><span style="font-size: 19pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> </span></div><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Quarkus es uno de los marcos de desarrollo nativos en la nube más populares en la industria tecnológica debido a sus características notables. Ofrece un tiempo de arranque rápido, una pequeña huella de memoria y una gestión escalable de la memoria. Por esta razón, el marco Quarkus con Kotlin es ampliamente utilizado en la industria. Su capacidad para reducir los tiempos de desarrollo también ayuda a mantener un alto rendimiento con servidores y redes de baja gama.</span></p><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Cabe recalcar que, todos estos elementos claves, inciden en la creación  de aplicaciones con un alto grado de rapidez/eficiencia, ya que se pueden implementar y escalar fácilmente en varias arquitecturas de la nube. </span></p><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Con las capacidades de Quarkus, las organizaciones ahora pueden desarrollar servicios modernos con mayor velocidad y eficiencia que nunca, y usando Java o Kotlin proporciona una experiencia de desarrollo fluida con un modelo de programación reactivo moderno.</span></p><p><b style="font-weight: normal"> </b></p><h1 dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 20pt;margin-bottom: 6pt"><span style="font-size: 19pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Arquitectura Empresarial Tradicional vs. Arquitectura Contenerizada.</span></h1><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">En Quarkus, puedes desarrollar aplicaciones Java y ejecutarlas directamente en el sistema operativo subyacente sin necesidad de una máquina virtual de Java intermedia. Esto reduce significativamente el tiempo de ejecución, el consumo de memoria y otros recursos, lo que se traduce en una ejecución más eficiente y rápida de la aplicación. Quarkus lleva poco más de tres años en el mercado y ofrece una propuesta de valor para la creación de aplicaciones Java de última generación. Además, proporciona arquitecturas escalables para ejecutar aplicaciones Java y Serverless en la nube.</span></p><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.38;margin-top: 0pt;margin-bottom: 16pt"><span style="font-size: 15pt;font-family: Arial;color: #666666;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Arquitectura Tradicional</span></p><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">En la arquitectura tradicional, el primer nivel consta del hardware esencial para ejecutar el segundo nivel, que es el sistema operativo, como por ejemplo una Mac OS o Linux. En el tercer nivel, se requería la instalación de la popular Máquina Virtual de Java (JVM), mientras que en el último nivel, comúnmente utilizado en entornos empresariales, se instalaba un servidor de aplicaciones. Para ello, era necesario contar con una máquina virtual de Java capaz de comunicarse con el sistema operativo subyacente y traducir toda la aplicación al sistema operativo. Esta arquitectura era común en empresas, pero con el tiempo ha dejado de ser una buena práctica debido a sus implicaciones en el desarrollo, la agilidad y la complejidad en su mantenimiento. Actualmente, existen otras arquitecturas que ofrecen soluciones más ligeras y eficientes.</span></p><p dir="ltr" style="line-height: 1.38;text-align: center;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><span style="border: none;overflow: hidden;width: 308px;height: 321px"><img decoding="async" style="margin-left: -10.474049996130287px;margin-top: 0px" src="https://lh3.googleusercontent.com/ZJBtiVJmQVYJLQ0r6p1AB3b4Vaq_yvPbx-kYxcyFW6GxzCpBeBHyfo9EK1dKtX8xSSYkKdLPYzanN7h1hUSht4lGwOYqVeELHOnybCQyALhpwzIyCMB1dhdK3o8shTFzqwsfumnDxksGsf0Z6kATcn4" width="334.0261041431586" height="362.72693754855516" /></span></span></p><p dir="ltr" style="line-height: 1.38;text-align: center;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Figura 1: Arquitectura Java Tradicional</span></p><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.38;margin-top: 0pt;margin-bottom: 16pt"><span style="font-size: 15pt;font-family: Arial;color: #666666;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Arquitectura Contenerizadas.</span></p><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">En la actualidad, la arquitectura contenerizada se ha vuelto cada vez más popular gracias a la presencia de nuevas tecnologías en el mercado. Entre ellas, la tecnología Docker (Si te interesa, en un artículo anterior compartimos los </span><a style="text-decoration: none" href="https://softwareevolutivo.com.ec/docker-primeros-pasos/"><span style="font-size: 12pt;font-family: Arial;color: #1155cc;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: underline;vertical-align: baseline">Primeros pasos en Docker.</span></a><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">) ha tomado un gran protagonismo en la mayoría de las empresas. Docker nos permite construir y empaquetar aplicaciones de forma portable, lo que significa que pueden ejecutarse en diferentes sistemas operativos y entornos sin necesidad de compilar la aplicación para un sistema operativo en particular. En esencia, Docker realiza una tarea similar a la que la máquina virtual de Java realizaba, pero aplicable a cualquier tipo de aplicación.</span></p><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> </span></p><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">En la arquitectura contenerizada, el primer nivel es el hardware, seguido por el sistema operativo, que puede ser cualquiera que tenga la capacidad de ejecutar contenedores. En el siguiente nivel, se debe instalar Docker para poder colocar nuestras aplicaciones en contenedores y ejecutarlas. Gracias a esta arquitectura, podemos tener diferentes versiones de aplicaciones sin que esto suponga un problema, ya que cada una se ejecuta en un contenedor independiente. Esto nos brinda una ventaja significativa en términos de mantenimiento y evita conflictos entre versiones de aplicativos.</span></p><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.38;text-align: center;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><span style="border: none;overflow: hidden;width: 321px;height: 333px"><img loading="lazy" decoding="async" style="margin-left: 0px;margin-top: 0px" src="https://lh6.googleusercontent.com/Kz3MHw-1B25dIW4mcqnLwgYUP7Z1auXI4zZIn9Tw0Tz26gNsOYf06zw1-CYwwi6KQKhQHJVThCiFNErCaSL25sIcma7BQig69xlzFnmc8AIHAXoPXaeJ6AuUT8aMCO7Z2SHaaTSZ7tF1hD7-w4y3New" width="321" height="333" /></span></span></p><p dir="ltr" style="line-height: 1.38;text-align: center;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Figura 2: Arquitectura Contenerizadas</span></p><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Quarkus representa una mejora significativa en la arquitectura contenerizada al eliminar la necesidad de tener una JVM en cada contenedor para la ejecución de nuestras aplicaciones. Esto permite un despliegue más rápido y una menor utilización de recursos, lo que se traduce en una mayor eficiencia y ahorro de costos. </span></p><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 19pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Superpoderes de Quarkus: Gestión de Memoria y Escalabilidad</span></p><p dir="ltr" style="line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 19pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> </span></p><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Los desarrolladores pueden utilizar Quarkus, un marco Java que les brinda las herramientas necesarias para administrar la memoria de manera efectiva y escalar sus aplicaciones. Quarkus cuenta con una variedad de herramientas de optimización de memoria, como administración de memoria dinámica, recolección de elementos no utilizados y dimensionamiento de almacenamiento dinámico. Además, Quarkus proporciona soluciones de escalabilidad para aplicaciones que necesitan escalar rápidamente hacia arriba o hacia abajo, a través de herramientas de escalabilidad como orquestación de contenedores, escalado automático y equilibrio de carga. Estas características permiten a los desarrolladores asegurarse de que sus aplicaciones puedan manejar grandes cantidades de tráfico sin problemas de rendimiento. Con la administración de memoria dinámica de Quarkus, los desarrolladores pueden realizar cambios en sus aplicaciones sobre la marcha sin necesidad de reiniciar la aplicación, lo que les permite probar rápidamente los cambios y optimizar el uso de la memoria. Es importante destacar que la variedad de herramientas de escalabilidad permite la escalabilidad horizontal, lo que permite a las aplicaciones manejar fácilmente una mayor carga de usuarios.</span></p><p><b style="font-weight: normal"> </b></p><h1 dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 20pt;margin-bottom: 6pt"><span style="font-size: 19pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Características y ventajas de Quarkus sobre los marcos tradicionales de Java</span></h1><div><span style="font-size: 19pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> </span></div><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Quarkus es un marco independiente del tiempo de ejecución diseñado para proporcionar una forma eficiente y rentable de desarrollar aplicaciones nativas de la nube. Ofrece una gestión inteligente de la memoria y herramientas que facilitan a los desarrolladores la creación de aplicaciones con menos recursos y tiempo de arranque más rápidos que los marcos de Java tradicionales, lo que permite que las aplicaciones sean escalables de forma rápida y eficiente. Además, Quarkus tiene ventajas sobre los marcos de Java tradicionales en cuanto a la gestión inteligente de la memoria, la escalabilidad y el rendimiento mejorado, y brinda a los desarrolladores la capacidad de escribir código en cualquier idioma que elijan e implementarlo como una aplicación en contenedores, lo que lo convierte en una excelente opción para aquellos que buscan aprovechar los beneficios de la computación en la nube manteniendo el control sobre sus aplicaciones.</span></p><p><span style="background-color: transparent;color: #000000;font-family: Arial;font-size: 19pt;text-align: justify"> </span></p><p><span style="background-color: transparent;color: #000000;font-family: Arial;font-size: 19pt;text-align: justify">Desventajas de Quarkus sobre los marcos tradicionales de Java</span></p><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Aunque Quarkus tiene muchas ventajas para el desarrollo de aplicaciones en la nube, también tiene algunas desventajas a tener en cuenta. Una de ellas es que, al ser un marco relativamente nuevo, puede haber una curva de aprendizaje para los desarrolladores que no estén familiarizados con él. Además, debido a que Quarkus utiliza tecnologías de vanguardia, puede haber algunos problemas de compatibilidad con bibliotecas y frameworks más antiguos. Por último, aunque Quarkus es altamente escalable, puede ser menos adecuado para aplicaciones que no necesiten escalabilidad horizontal, ya que esta característica puede agregar complejidad y costo al desarrollo y la implementación.</span></p><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> </span></p><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">El tamaño de la imagen nativa de Quarkus puede ser una desventaja para algunos usuarios, por el hecho de que puede resultar más grande que el tamaño de la imagen de una aplicación Java tradicional. Esto se debe a que la imagen nativa incluye todo lo necesario para que la aplicación se ejecute sin depender de una máquina virtual, lo que aumenta su tamaño. Sin embargo, es importante tener en cuenta que esta desventaja puede ser mitigada mediante la optimización de la imagen y la eliminación de componentes innecesarios. Además, el tamaño de la imagen puede ser compensado por las ventajas en cuanto a rendimiento y eficiencia que ofrece Quarkus.</span></p><h1 dir="ltr" style="line-height: 1.38;margin-top: 20pt;margin-bottom: 6pt"><span style="font-size: 20pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> </span></h1><h1 dir="ltr" style="line-height: 1.38;margin-top: 20pt;margin-bottom: 6pt"><span style="font-size: 20pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Conclusiones</span></h1><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">En resumen, Quarkus es un nuevo marco de desarrollo de Java de alto rendimiento que permite a los desarrolladores crear aplicaciones empresariales de manera fácil y rápida. Con sus características únicas como la eficiencia del tiempo de ejecución, el soporte de Java y la integración con tecnologías empresariales, Quarkus es una opción atractiva para los desarrolladores que buscan crear aplicaciones rápidas y escalables. Por esa razón, vale la pena explorar Quarkus como una opción para su próximo plan de desarrollo de aplicaciones.</span></p><p><b style="font-weight: normal"> </b></p><h1 dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 20pt;margin-bottom: 6pt"><span style="background-color: transparent;color: #000000;font-family: Arial;font-size: 20pt;font-weight: 400"> </span></h1><h1 dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 20pt;margin-bottom: 6pt"><span style="background-color: transparent;color: #000000;font-family: Arial;font-size: 20pt;font-weight: 400">Referencias</span></h1><p> </p><ul style="margin-top: 0;margin-bottom: 0;padding-inline-start: 48px"><li dir="ltr" style="list-style-type: disc;font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">https://quarkus.io/</span></p></li><li dir="ltr" style="list-style-type: disc;font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: #ffffff;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Gascó Compte, A. (2022). Sistema de ayuda a las pruebas de fragilidad. Obtenido de: </span><a style="text-decoration: none" href="https://repositori.uji.es/xmlui/handle/10234/200566"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: #ffffff;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">https://repositori.uji.es/xmlui/handle/10234/200566</span></a></p></li><li dir="ltr" style="list-style-type: disc;font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: #ffffff;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Turețchi, G., &amp; Cerbu, O. (2022). Aplicarea frameworkului Quarkus în cadrul arhitecturii bazate pe microservicii. In </span><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: #ffffff;font-weight: 400;font-style: italic;font-variant: normal;text-decoration: none;vertical-align: baseline">Conferinţa tehnico-ştiinţifică a studenţilor, masteranzilor şi doctoranzilor</span><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: #ffffff;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> (Vol. 1, pp. 56-59).</span></p></li></ul>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		<p>The post <a href="https://softwareevolutivo.com.ec/descubriendo-a-quarkus/">Descubriendo a Quarkus: ¿Que es, Características y por qué utilizarlo?</a> appeared first on <a href="https://softwareevolutivo.com.ec">Software Evolutivo</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://softwareevolutivo.com.ec/descubriendo-a-quarkus/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
