<?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>Labs archivos - Geko Cloud</title>
	<atom:link href="https://geko.cloud/es/blog/labs/feed/" rel="self" type="application/rss+xml" />
	<link></link>
	<description>Servicios de consultoría cloud y devops</description>
	<lastBuildDate>Thu, 09 Oct 2025 09:34:49 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.5.8</generator>

<image>
	<url>https://geko.cloud/wp-content/uploads/2021/08/cropped-geko-fav-150x150.png</url>
	<title>Labs archivos - Geko Cloud</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Cómo evitar la exfiltración de datos desde subredes privadas en AWS</title>
		<link>https://geko.cloud/es/datos-en-aws/</link>
					<comments>https://geko.cloud/es/datos-en-aws/#respond</comments>
		
		<dc:creator><![CDATA[Geko Cloud]]></dc:creator>
		<pubDate>Thu, 09 Oct 2025 09:29:57 +0000</pubDate>
				<category><![CDATA[Labs]]></category>
		<guid isPermaLink="false">https://geko.cloud/?p=10212</guid>

					<description><![CDATA[<p>Durante las revisiones de configuración de AWS, cuando se utilizan Virtual Private Cloud (VPC) endpoints, observamos con frecuencia que están configurados con políticas predeterminadas demasiado permisivas. Estas políticas permiten todas las acciones, principales y recursos, lo que puede ser aprovechado para exfiltrar datos del entorno AWS con facilidad. En este artículo mostramos cómo configurar los [&#8230;]</p>
<p>La entrada <a href="https://geko.cloud/es/datos-en-aws/">Cómo evitar la exfiltración de datos desde subredes privadas en AWS</a> se publicó primero en <a href="https://geko.cloud/es/">Geko Cloud</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">Durante las revisiones de configuración de AWS, cuando se utilizan Virtual Private Cloud (VPC) endpoints, observamos con frecuencia que están configurados con políticas predeterminadas demasiado permisivas. Estas políticas permiten todas las acciones, principales y recursos, lo que puede ser aprovechado para exfiltrar datos del entorno AWS con facilidad. En este artículo mostramos </span><strong><span style="color: #619417;">cómo configurar los endpoints de VPC para proteger tu entorno AWS</span></strong><span style="font-weight: 400;"> frente a atacantes malintencionados.</span></p>
<h2><b></b><b><br />
</b><span style="font-weight: 400;">Qué son los VPC endpoints</span></h2>
<p><span style="font-weight: 400;">Los VPC endpoints son una </span><strong><span style="color: #619417;">característica de red de AWS que permite conexiones privadas entre los recursos dentro de una VPC y los servicios compatibles de AWS</span></strong><span style="font-weight: 400;">, usando la red troncal de AWS y las API privadas de cada servicio.</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">Esta configuración garantiza que los recursos de una VPC no necesiten conexión a internet ni VPN para comunicarse con otros servicios de AWS, favoreciendo la implementación de redes seguras y aisladas que no dependen de infraestructuras públicas potencialmente inseguras.</span></p>
<p><b><br />
</b><b><br />
</b><strong><span style="color: #619417;">Ejemplo de política predeterminada de VPC Endpoint</span></strong></p>
<p><img fetchpriority="high" decoding="async" class="alignnone wp-image-10217 size-full" src="https://geko.cloud/wp-content/uploads/2025/10/política-predeterminada-de-VPC-Endpoint.png" alt="" width="944" height="443" srcset="https://geko.cloud/wp-content/uploads/2025/10/política-predeterminada-de-VPC-Endpoint.png 944w, https://geko.cloud/wp-content/uploads/2025/10/política-predeterminada-de-VPC-Endpoint-300x141.png 300w, https://geko.cloud/wp-content/uploads/2025/10/política-predeterminada-de-VPC-Endpoint-768x360.png 768w" sizes="(max-width: 944px) 100vw, 944px" /></p>
<p>&nbsp;</p>
<p><strong><span style="color: #619417;">Bloque de código de la política de endpoint VPC predeterminada</span></strong><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;"><br />
</span><span style="color: #619417;"><span style="font-weight: 400;">{</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">  «Statement»: [</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">    {</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">      «Action»: «*»,</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">      «Effect»: «Allow»,</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">      «Principal»: «*»,</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">      «Resource»: «*»</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">    }</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">  ]</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">}</span></span></p>
<p>&nbsp;</p>
<p><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">Como ejemplo, un servicio en una instancia EC2 puede usar un VPC endpoint para solicitar datos a la API privada de un bucket S3. Si no existe un endpoint configurado para el servicio S3, el tráfico necesitará pasar por un Internet Gateway u otro dispositivo similar hacia la API pública de S3, exponiéndolo a posibles ataques.</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;"><br />
</span><strong><span style="color: #619417;">Varios tipos de endpoints permiten definir políticas que restringen las comunicaciones entre los recursos y los servicios asociados de AWS</span></strong><span style="font-weight: 400;"><strong><span style="color: #619417;">.</span></strong> Sin embargo, si no se define una política al crear el endpoint, </span><strong><span style="color: #619417;">AWS aplica una política predeterminada que otorga acceso completo e irrestricto al servicio</span></strong><span style="font-weight: 400;">, incluso a principales de otras cuentas AWS.</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">Este comportamiento implica que, si un actor malintencionado obtiene acceso a una subred privada dentro de la VPC, podría aprovechar la configuración para extraer datos del entorno AWS o escribirlos en otro servicio bajo su control.</span></p>
<p>&nbsp;</p>
<h2><b><br />
</b><span style="font-weight: 400;">Ejemplos de exfiltración de datos mediante endpoints mal configurados</span></h2>
<h3><b><br />
</b><b><br />
</b><strong><span style="color: #619417;">S3</span></strong></h3>
<p><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">Un endpoint de S3 con la política predeterminada de acceso total </span><strong><span style="color: #619417;">permite el uso de las API privadas de S3 sin restricciones</span></strong><span style="font-weight: 400;">. Un atacante podría aprovecharlo para extraer información sensible hacia un bucket S3 en una cuenta bajo su control.</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">Esto se consigue de varias formas. Una de las más comunes es cuando un usuario malicioso con acceso a una instancia EC2 en la VPC sube las claves de acceso de un usuario IAM con permisos de escritura a un bucket S3 de su cuenta, utilizando luego esos permisos para exfiltrar datos a través del endpoint.</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">Además, herramientas como </span><a href="https://github.com/sparcflow/HackLikeAGhost/tree/master/S3Backdoor"><span style="font-weight: 400;">S3Backdoor</span></a><span style="font-weight: 400;"> pueden utilizarse para establecer canales de comando y control encubiertos que permiten mantener el acceso y extraer información confidencial.</span></p>
<h3><b><br />
</b><b><br />
</b><strong><span style="color: #619417;">SSM</span></strong></h3>
<p><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">Otro ejemplo más elaborado implica el uso del servicio </span><a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html"><span style="font-weight: 400;">Systems Manager</span></a><span style="font-weight: 400;"> (SSM). Un endpoint de SSM excesivamente permisivo </span><strong><span style="color: #619417;">puede permitir a un atacante acceder a instancias EC2 en una cuenta bajo su control</span></strong><span style="font-weight: 400;"> mediante los comandos send-command y start-session.</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">En este caso, el atacante que ya tiene acceso a una instancia EC2 comprometida en una subred privada crea otra instancia EC2 en su propia cuenta, con la política AmazonSSMManagedInstanceCore asociada a su perfil de instancia y el agente de SSM instalado. Luego, sube las claves IAM de un usuario con la política AmazonSSMFullAccess y las utiliza en la instancia comprometida para ejecutar los comandos start-session y send-command a través del endpoint de SSM, copiando así datos hacia su propia instancia.</span></p>
<h2><b><br />
</b><b><br />
</b><span style="font-weight: 400;">Recomendaciones </span></h2>
<p><span style="font-weight: 400;">Para asegurar los endpoints de VPC, te recomendamos:</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">&#8211; Crear endpoints de VPC para cada servicio compatible dentro de cada VPC, reduciendo la necesidad de conectividad a Internet y proporcionando acceso seguro a los servicios de AWS.</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">&#8211; Definir una política personalizada basada en el principio de menor privilegio para todos los endpoints configurados en el entorno AWS.</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">&#8211; Asegurar que las conexiones de red hacia los servicios de AWS solo sean accesibles desde los recursos internos de la cuenta u organización.</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">&#8211; Restringir el acceso a recursos individuales mediante su nombre o Amazon Resource Name (ARN) y minimizar el uso de comodines (wildcards), que podrían otorgar acceso no intencionado.</span></p>
<h2><b><br />
</b><strong><span style="color: #619417;">Tipos de endpoints</span></strong></h2>
<p><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;"><br />
</span><strong><span style="color: #619417;">Interface endpoints</span></strong><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">Son un tipo de interfaz de red que ofrece acceso a la red PrivateLink para conectarse con servicios. Estos endpoints</span> <strong><span style="color: #619417;">admiten el uso de security groups para restringir el tráfico</span></strong><span style="font-weight: 400;">, aunque se recomienda combinarlos con políticas de endpoint para aplicar un enfoque de defensa en profundidad y un control de acceso más granular.</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;"><br />
</span><strong><span style="color: #619417;">Gateway endpoints</span></strong><span style="font-weight: 400;"><br />
</span><strong><span style="color: #619417;">Actúan como tablas de enrutamiento y no admiten security groups</span></strong><span style="font-weight: 400;">. Por ello, es esencial implementar una política restrictiva de endpoint que limite el tráfico hacia recursos externos.</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;"><br />
</span><strong><span style="color: #619417;">Ejemplo de política segura de endpoint:</span></strong><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;"><br />
</span><span style="color: #619417;"><span style="font-weight: 400;">{</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">  «Statement»: [</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">    {</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">      «Action»: «S3:*»,</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">      «Effect»: «Allow»,</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">      «Resource»: [«*:*:*:*:xxxxxxxxxxxx:*», «*:*:*:*:yyyyyyyyyyyy:*»],</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">      «Principal»: «*»,</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">      «Condition»: {</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">        «StringEquals»: {</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">          «aws:PrincipalOrgID»: «o-zzzzzzzzzz»</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">        }</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">      }</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">    }</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">  ]</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">}</span></span><i><span style="font-weight: 400;"><br />
</span></i><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">Esta política garantiza que los recursos de la red aislada solo puedan usar el endpoint de S3 para interactuar con buckets S3 controlados por cuentas específicas (xxxxxxxxxxxx y yyyyyyyyyyyy) y únicamente si el principal pertenece a tu organización (o-zzzzzzzzzz). En este caso, un atacante no podría acceder a buckets bajo su control.</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">Si quieres saber más sobre cómo proteger tu infraestructura en la nube, </span><a href="https://geko.cloud/es/contacto/"><span style="font-weight: 400;">contacta</span></a><span style="font-weight: 400;"> con uno de nuestros expertos. </span></p>
<p>La entrada <a href="https://geko.cloud/es/datos-en-aws/">Cómo evitar la exfiltración de datos desde subredes privadas en AWS</a> se publicó primero en <a href="https://geko.cloud/es/">Geko Cloud</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://geko.cloud/es/datos-en-aws/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>IA en VS Code aplicada a Terraform, Python y K8s</title>
		<link>https://geko.cloud/es/ia-en-vscode/</link>
					<comments>https://geko.cloud/es/ia-en-vscode/#respond</comments>
		
		<dc:creator><![CDATA[Geko Cloud]]></dc:creator>
		<pubDate>Tue, 30 Sep 2025 07:10:05 +0000</pubDate>
				<category><![CDATA[Labs]]></category>
		<guid isPermaLink="false">https://geko.cloud/?p=10199</guid>

					<description><![CDATA[<p>La IA en VS Code ha pasado de ser un simple autocompletado a convertirse en un copiloto real para DevOps. Bien configurada, puede reducir drásticamente tiempos y errores en tareas críticas de software e infraestructura. &#160; 1) Elige tu asistente de IA (y cuándo usar cada uno) Antes de instalar nada, ten claro tu stack [&#8230;]</p>
<p>La entrada <a href="https://geko.cloud/es/ia-en-vscode/">IA en VS Code aplicada a Terraform, Python y K8s</a> se publicó primero en <a href="https://geko.cloud/es/">Geko Cloud</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><span style="font-weight: 400;">La IA en VS Code ha pasado de ser un simple autocompletado a convertirse en un copiloto real para DevOps. Bien configurada, puede reducir drásticamente tiempos y errores en tareas críticas de software e infraestructura.</span></p>
<p>&nbsp;</p>
<h2><span style="color: #619417;">1) Elige tu asistente de IA (y cuándo usar cada uno)</span></h2>
<p><span style="font-weight: 400;">Antes de instalar nada, ten claro tu stack y tus prioridades: IaC, Python, monorepos, cumplimiento o privacidad. Elegir bien el assistant te evitará pruebas largas y resultados pobres.</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><strong><span style="color: #619417;">GitHub Copilot</span></strong><span style="font-weight: 400;">: estándar de facto en VS Code. Muy fuerte en </span><strong><span style="color: #619417;">P</span><span style="color: #619417;">ython, Terraform, YAML de Kubernetes</span></strong><span style="font-weight: 400;">. Ideal si usas GitHub/Actions.</span></li>
<li style="font-weight: 400;" aria-level="1"><strong><span style="color: #619417;">Amazon Q Developer</span></strong><span style="font-weight: 400;">: excelente en </span><strong><span style="color: #619417;">IaC (Terraform/CDK)</span></strong><span style="font-weight: 400;"> y stack AWS; añade </span><strong><span style="color: #619417;">escaneo de seguridad</span></strong><span style="font-weight: 400;"> y remediaciones.</span></li>
<li style="font-weight: 400;" aria-level="1"><strong><span style="color: #619417;">Sourcegraph Cody</span></strong><span style="font-weight: 400;">: brilla en </span><strong><span style="color: #619417;">monorepos</span></strong><span style="font-weight: 400;"> y búsqueda semántica; buen “agente” para cambios multi-archivo.</span></li>
<li style="font-weight: 400;" aria-level="1"><strong><span style="color: #619417;">Codeium / Tabnine</span></strong><span style="font-weight: 400;">: autocompletado+chat con opciones </span><strong><span style="color: #619417;">self-hosted</span></strong><span style="font-weight: 400;"> (privacidad estricta).</span></li>
<li style="font-weight: 400;" aria-level="1"><strong><span style="color: #619417;">Continue.dev + Ollama/LM Studio</span></strong><span style="font-weight: 400;">: opción </span><strong><span style="color: #619417;">open source/local</span></strong><span style="font-weight: 400;"> para usar modelos en tu equipo.</span></li>
<li style="font-weight: 400;" aria-level="1"><strong><span style="color: #619417;">Cursor</span></strong><span style="font-weight: 400;"> (editor VS Code-like): si quieres un </span><strong><span style="color: #619417;">agente</span></strong><span style="font-weight: 400;"> que edite varios archivos y proponga PRs.</span><span style="font-weight: 400;"><br />
</span> <strong><span style="color: #619417;">Recomendación</span></strong><span style="font-weight: 400;">: usa </span><strong><span style="color: #619417;">Copilot</span></strong><span style="font-weight: 400;"> como base y añade </span><strong><span style="color: #619417;">Amazon Q</span></strong><span style="font-weight: 400;"> si eres AWS/IaC-first; suma </span><strong><span style="color: #619417;">Cody</span></strong><span style="font-weight: 400;"> para monorepos grandes.</span></li>
</ul>
<p>&nbsp;</p>
<h2><span style="color: #619417;">2) Instalación y configuración en VS Code</span></h2>
<p><span style="font-weight: 400;">Una buena configuración multiplica la calidad de las sugerencias y protege tu código. Tómate 15 minutos para dejar linters y seguridad funcionando desde el día uno.</span><span style="font-weight: 400;"><br />
</span> <strong><span style="color: #619417;">Extensiones</span></strong><span style="font-weight: 400;">: Copilot (+ Chat), Amazon Q, opcionales (Cody/Codeium/Continue).</span></p>
<p><span style="font-weight: 400;"><br />
</span> <strong><span style="color: #619417;">settings.json mínimo:</span></strong></p>
<p><span style="font-weight: 400; color: #619417;">{</span></p>
<p><span style="font-weight: 400; color: #619417;">  «editor.formatOnSave»: true,</span></p>
<p><span style="font-weight: 400; color: #619417;">  ««: { «editor.defaultFormatter»: «ms-python.black-formatter» },</span></p>
<p><span style="font-weight: 400; color: #619417;">  «python.linting.enabled»: true,</span></p>
<p><span style="font-weight: 400; color: #619417;">  «python.testing.pytestEnabled»: true,</span></p>
<p><span style="font-weight: 400; color: #619417;">  «editor.inlineSuggest.enabled»: true,</span></p>
<p><span style="font-weight: 400; color: #619417;">  «terraform.formatOnSave»: true,</span></p>
<p><span style="font-weight: 400; color: #619417;">  «files.exclude»: { «**/.venv»: true, «**/.terraform»: true }</span></p>
<p><span style="font-weight: 400; color: #619417;">}</span></p>
<h2></h2>
<p><strong><span style="color: #619417;">Pre-commit, linters y secretos:</span></strong></p>
<p><span style="font-weight: 400; color: #619417;">pip install ruff black pytest</span></p>
<p><span style="font-weight: 400; color: #619417;">brew install tflint tfsec gitleaks</span></p>
<p><span style="font-weight: 400; color: #619417;">pre-commit install</span></p>
<h2></h2>
<p><span style="font-weight: 400; color: #619417;">.pre-commit-config.yaml</span><span style="font-weight: 400;"> (resumen):</span></p>
<p><span style="font-weight: 400; color: #619417;">&#8211; repo: https://github.com/astral-sh/ruff-pre-commit</span></p>
<p><span style="font-weight: 400; color: #619417;">  hooks: [{id: ruff}, {id: ruff-format}]</span></p>
<p><span style="font-weight: 400; color: #619417;">&#8211; repo: https://github.com/antonbabenko/pre-commit-terraform</span></p>
<p><span style="font-weight: 400; color: #619417;">  hooks: [terraform_fmt, terraform_validate, tflint, tfsec]</span></p>
<p><span style="font-weight: 400; color: #619417;">&#8211; repo: https://github.com/gitleaks/gitleaks</span></p>
<p><span style="font-weight: 400; color: #619417;">  hooks: [{id: gitleaks}]</span></p>
<h2></h2>
<p><strong><span style="color: #619417;">Por qué importa</span></strong><span style="font-weight: 400;">: la IA acelera, pero tus </span><strong><span style="color: #619417;">guardrails</span></strong><span style="font-weight: 400;"> evitan que código incorrecto o inseguro llegue a </span><span style="font-weight: 400;">main</span><span style="font-weight: 400;">.</span></p>
<p>&nbsp;</p>
<h2></h2>
<h2><strong><span style="color: #619417;">3) Configura el contexto de la IA (y lo que NO debe ver)</span></strong></h2>
<p><span style="font-weight: 400;">La calidad del assistant depende de lo que ve. Dale contexto útil y oculta lo sensible: así aumentas precisión y cumples con privacidad.</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Crea </span><span style="font-weight: 400; color: #619417;">.promptignore</span><span style="font-weight: 400;"> (o equivalente) para excluir </span><span style="color: #619417;"><span style="font-weight: 400;">.env</span><span style="font-weight: 400;">, </span><span style="font-weight: 400;">secrets.*</span><span style="font-weight: 400;">, </span><span style="font-weight: 400;">*.pem</span><span style="font-weight: 400;">, </span><span style="font-weight: 400;">*.tfstate</span></span><span style="font-weight: 400;">, dumps y PII.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Limita el contexto a </span><strong><span style="color: #619417;">archivos relevantes</span></strong><span style="font-weight: 400;">; evita compartir el repo entero sin necesidad.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">En organizaciones, activa </span><strong><span style="color: #619417;">controles de tenant</span></strong><span style="font-weight: 400;"> y políticas de datos (Copilot Enterprise, AWS org).</span></li>
</ul>
<p>&nbsp;</p>
<h2></h2>
<h2><strong><span style="color: #619417;">4) Prompts que funcionan (con guardrails)</span></strong></h2>
<p><span style="font-weight: 400;">Un buen prompt guía al assistant y reduce alucinaciones. Piensa en ciclos: </span><strong><span style="color: #619417;">genera → valida → documenta → prueba.</span></strong></p>
<h3><span style="color: #619417;">4.1 Terraform — módulo VPC</span></h3>
<p><strong><span style="color: #619417;">Prompt</span></strong><span style="font-weight: 400;">:</span></p>
<p style="padding-left: 40px;"><span style="font-weight: 400;">“Genera un módulo Terraform </span><span style="font-weight: 400; color: #619417;">networking/vpc</span><span style="font-weight: 400;"> (eu-west-1) con 2 subredes públicas y 2 privadas, NAT gestionado y etiquetas </span><span style="font-weight: 400; color: #619417;">env,owner,cost_center</span><span style="font-weight: 400;">. Variables tipadas, </span><span style="font-weight: 400; color: #619417;">outputs</span><span style="font-weight: 400;"> útiles, </span><span style="font-weight: 400; color: #619417;">snake_case</span><span style="font-weight: 400;">. Incluye ejemplo en </span><span style="font-weight: 400;">/<span style="color: #619417;">examples</span></span><span style="font-weight: 400;"><span style="color: #619417;">.</span>”</span><span style="font-weight: 400;"><br />
</span> <strong><span style="color: #619417;">Valida</span></strong><span style="font-weight: 400;">:</span></p>
<p><span style="font-weight: 400; color: #619417;">terraform fmt &amp;&amp; terraform validate &amp;&amp; tflint &amp;&amp; tfsec</span></p>
<p><strong><span style="color: #619417;">Acepta si</span></strong><span style="font-weight: 400;"><strong><span style="color: #619417;">:</span></strong> sin críticos en </span><span style="font-weight: 400;">tflint/tfsec</span><span style="font-weight: 400;">, PR con README.</span></p>
<p>&nbsp;</p>
<h3><span style="color: #619417;">4.2 Python — utilidades + tests</span></h3>
<p><strong><span style="color: #619417;">Prompt</span></strong><span style="font-weight: 400;">:</span></p>
<p style="padding-left: 40px;"><span style="font-weight: 400;">“Crea </span><span style="color: #619417;"><span style="font-weight: 400;">utils/billing.py</span><span style="font-weight: 400;"> con </span><span style="font-weight: 400;">apply_discount(amount, percent)</span><span style="font-weight: 400;"> y </span><span style="font-weight: 400;">handle_vat(amount, country)</span></span><span style="font-weight: 400;">. Añade docstrings y </span><span style="font-weight: 400; color: #619417;">tests/test_billing.py</span><span style="font-weight: 400;"> (pytest) con casos de borde.”</span><span style="font-weight: 400;"><br />
</span> <strong><span style="color: #619417;">Valida</span></strong><span style="font-weight: 400;">: </span><span style="font-weight: 400; color: #619417;">ruff . &amp;&amp; black &#8211;check . &amp;&amp; pytest -q</span></p>
<p><strong><span style="color: #619417;">Acepta si</span></strong><span style="font-weight: 400;">: cobertura ≥ 90%, tests verdes.</span></p>
<p>&nbsp;</p>
<h3><span style="color: #619417;">4.3 Kubernetes — despliegue robusto</span></h3>
<p><strong><span style="color: #619417;">Prompt</span></strong><span style="font-weight: 400;">:</span></p>
<p style="padding-left: 40px;"><span style="font-weight: 400;">“Escribe </span><span style="font-weight: 400; color: #619417;">k8s/orders-api.yaml</span><span style="font-weight: 400;"> con </span><span style="font-weight: 400; color: #619417;">Deployment</span><span style="font-weight: 400;"> (3 réplicas) y </span><span style="color: #619417;"><span style="font-weight: 400;">Service</span> <span style="font-weight: 400;">ClusterIP</span></span><span style="font-weight: 400;">. <span style="color: #619417;">Imagen </span></span><span style="font-weight: 400; color: #619417;">ghcr.io/acme/orders:1.8.2</span><span style="font-weight: 400;">, probes </span><span style="color: #619417;"><span style="font-weight: 400;">/healthz</span><span style="font-weight: 400;">, </span><span style="font-weight: 400;">requests/limits</span></span><span style="font-weight: 400;"> conservadores, </span><span style="font-weight: 400; color: #619417;">PodSecurityContext</span><span style="font-weight: 400;"> sin privilegios.”</span></p>
<p style="padding-left: 40px;"><strong><span style="color: #619417;">Valida</span></strong><span style="font-weight: 400;">: esquema (kubeconform), OPA/PSP, prueba en entorno efímero.</span><span style="font-weight: 400;"><br />
</span> <strong><span style="color: #619417;">Mejora</span></strong><span style="font-weight: 400;">: pide Helm chart con </span><span style="font-weight: 400;">values.yaml</span><span style="font-weight: 400;">.</span></p>
<p>&nbsp;</p>
<h3><span style="color: #619417;">4.4 CI/CD — pipeline con gates</span></h3>
<p><strong><span style="color: #619417;">Prompt</span></strong><span style="font-weight: 400;">:</span></p>
<p style="padding-left: 40px;"><span style="font-weight: 400;">“GitHub Actions: </span><span style="color: #619417;"><span style="font-weight: 400;">ruff/black/pytest</span><span style="font-weight: 400;">; </span><span style="font-weight: 400;">terraform fmt/validate</span><span style="font-weight: 400;">, </span><span style="font-weight: 400;">tflint</span><span style="font-weight: 400;">, </span><span style="font-weight: 400;">tfsec</span><span style="font-weight: 400;">; </span><span style="font-weight: 400;">terraform plan</span></span><span style="font-weight: 400;"> comentado en PR; </span><span style="font-weight: 400; color: #619417;">apply</span><span style="font-weight: 400;"> sólo en </span><span style="font-weight: 400; color: #619417;">main</span><span style="font-weight: 400;"> con aprobación manual. Añade cache y matrices de Python.”</span><span style="font-weight: 400;"><br />
</span><strong><span style="color: #619417;">Valida</span></strong><span style="font-weight: 400;">: branch protection, reviewers requeridos, secretos en vault y environments.</span></p>
<p>&nbsp;</p>
<h2><strong><span style="color: #619417;">5) Flujo de trabajo recomendado (dentro de VS Code)</span></strong></h2>
<p><span style="font-weight: 400;">El valor aparece cuando integras IA en tu forma de trabajar, no al revés. Esta secuencia minimiza fricción y errores.</span></p>
<ol>
<li style="font-weight: 400;" aria-level="1"><strong><span style="color: #619417;">Crea rama</span></strong><span style="font-weight: 400;"> y genera esqueleto con el </span><strong><span style="color: #619417;">chat</span></strong><span style="font-weight: 400;"> del assistant.</span></li>
<li style="font-weight: 400;" aria-level="1"><strong><span style="color: #619417;">Refina</span></strong><span style="font-weight: 400;">: pide validaciones y </span><strong><span style="color: #619417;">README/docstrings</span></strong><span style="font-weight: 400;">.</span></li>
<li style="font-weight: 400;" aria-level="1"><strong><span style="color: #619417;">Ejecuta</span></strong><span style="font-weight: 400;"> linters/tests desde la terminal integrada.</span></li>
<li style="font-weight: 400;" aria-level="1"><strong><span style="color: #619417;">Abre PR</span></strong><span style="font-weight: 400;"> con checklist (IaC validada, tests, seguridad).</span></li>
<li style="font-weight: 400;" aria-level="1"><strong><span style="color: #619417;">Revisión humana</span></strong><span style="font-weight: 400;"> y merge solo si pasa todo.</span></li>
</ol>
<p>&nbsp;</p>
<h2><strong><span style="color: #619417;">6) Gobierno, privacidad y seguridad (RGPD-ready)</span></strong></h2>
<p><span style="font-weight: 400;">Adoptar IA sin reglas es arriesgar el compliance. Define límites claros de datos, auditoría y políticas de uso.</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">No incluyas </span><strong><span style="color: #619417;">secretos ni PII</span></strong><span style="font-weight: 400;"> en prompts.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">DPA/SCC con proveedores; si hay transferencias internacionales, documenta DPIA.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Activa controles de </span><strong><span style="color: #619417;">tenant/organización</span></strong><span style="font-weight: 400;"> y telemetría mínima.</span></li>
<li style="font-weight: 400;" aria-level="1"><strong><span style="color: #619417;">Policy-as-Code</span></strong><span style="font-weight: 400;"> (OPA/Conftest) para bloquear PRs que no cumplan:</span></li>
</ul>
<p><span style="font-weight: 400; color: #619417;">package iac.naming</span></p>
<p><span style="font-weight: 400; color: #619417;">deny[msg] {</span></p>
<p><span style="font-weight: 400; color: #619417;">  input.resource.type == «aws_s3_bucket»</span></p>
<p><span style="font-weight: 400; color: #619417;">  not startswith(input.resource.name, «prod-«)</span></p>
<p><span style="font-weight: 400; color: #619417;">  msg := sprintf(«Bucket sin prefijo &#8216;prod-&#8216;: %s», [input.resource.name])</span></p>
<p><span style="font-weight: 400; color: #619417;">}</span></p>
<h2></h2>
<h2><strong><span style="color: #619417;">7) Métricas y ROI: qué medir</span></strong></h2>
<p><span style="font-weight: 400;">Sin métricas no hay mejora. Define KPIs desde el inicio para justificar licencias y ampliar uso.</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><strong><span style="color: #619417;">Lead time</span></strong><span style="font-weight: 400;"> (idea → PR → prod), </span><strong><span style="color: #619417;">% sugerencias aceptadas, defectos post-merge, MTTR</span></strong><span style="font-weight: 400;">, hallazgos </span><span style="font-weight: 400;">tfsec/Checkov</span><span style="font-weight: 400;"> por PR, </span><strong><span style="color: #619417;">horas/mes ahorradas</span></strong><span style="font-weight: 400;">.</span><span style="font-weight: 400;"><br />
</span> <strong><span style="color: #619417;">Fórmula</span></strong><span style="font-weight: 400;">:</span></li>
</ul>
<p><span style="font-weight: 400;">ROI ≈ (Horas ahorradas × coste/h) + (defectos evitados × coste) − coste de licencias</span></p>
<p>&nbsp;</p>
<h2><strong><span style="color: #619417;">8) Plan 30/60 días para VS Code + IA</span></strong></h2>
<p><span style="font-weight: 400;">La adopción gradual reduce resistencia y riesgo. Este plan te da resultados visibles sin parar el equipo.</span><span style="font-weight: 400;"><br />
</span> <strong><span style="color: #619417;">0–30 días (piloto)</span></strong><span style="font-weight: 400;">: Copilot (+ Amazon Q si AWS/IaC), linters<span style="color: #619417;">/</span></span><span style="font-weight: 400; color: #619417;">pre-commit</span><span style="font-weight: 400;">, </span><span style="font-weight: 400; color: #619417;">.promptignore</span><span style="font-weight: 400;"> y </span><span style="font-weight: 400;"><span style="color: #619417;">/.prompts</span>/</span><span style="font-weight: 400;">, baseline KPIs.</span><span style="font-weight: 400;"><br />
</span> <strong><span style="color: #619417;">31–60 días (escala)</span></strong><span style="font-weight: 400;">: añade K8s + CI/CD, </span><strong><span style="color: #619417;">OPA/Conftest</span></strong><span style="font-weight: 400;">, dashboards de métricas.</span><span style="font-weight: 400;"><br />
</span> <strong><span style="color: #619417;">61–90 días (avanzado)</span></strong><span style="font-weight: 400;">: prueba </span><strong><span style="color: #619417;">Cody/Cursor</span></strong><span style="font-weight: 400;"> para cambios multi-archivo, entornos efímeros y PRs sugeridos por agente.</span></p>
<p>&nbsp;</p>
<h2><strong><span style="color: #619417;">9) Troubleshooting rápido</span></strong></h2>
<p><span style="font-weight: 400;">Cuando la IA no rinde, suele ser por contexto o guardrails. Ajusta, no abandones.</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><strong><span style="color: #619417;">Sugerencias pobres</span></strong><span style="font-weight: 400;">: abre archivos relevantes, reduce ruido, añade comentarios de intención.</span></li>
<li style="font-weight: 400;" aria-level="1"><strong><span style="color: #619417;">Alucinaciones</span></strong><span style="font-weight: 400;">: exige comandos de validación y explicación de supuestos; siempre PR + tests.</span></li>
<li style="font-weight: 400;" aria-level="1"><strong><span style="color: #619417;">Lentitud</span></strong><span style="font-weight: 400;">: limita contexto y carpetas; usa búsqueda semántica (Cody).</span></li>
<li style="font-weight: 400;" aria-level="1"><strong><span style="color: #619417;">Privacidad</span></strong><span style="font-weight: 400;">: revisa políticas del tenant y excluye carpetas sensibles.</span></li>
</ul>
<h2></h2>
<p><span style="font-weight: 400;">VS Code con IA acelera DevOps si combinas el </span><strong><span style="color: #619417;">assistant adecuado</span></strong><span style="font-weight: 400;">, un </span><strong><span style="color: #619417;">setup sólido</span></strong><span style="font-weight: 400;"> y </span><strong><span style="color: #619417;">guardrails</span></strong><span style="font-weight: 400;"> de seguridad. Con prompts iterativos y métricas claras, convertirás velocidad en </span><strong><span style="color: #619417;">calidad y ROI</span></strong><span style="font-weight: 400;">.</span></p>
<p><span style="font-weight: 400;">¿Tienes dudas o quieres profundizar más? </span><a href="https://geko.cloud/es/contacto/"><span style="font-weight: 400;">Contacta</span></a><span style="font-weight: 400;"> con nuestro equipo de expertos.</span></p>
<p>La entrada <a href="https://geko.cloud/es/ia-en-vscode/">IA en VS Code aplicada a Terraform, Python y K8s</a> se publicó primero en <a href="https://geko.cloud/es/">Geko Cloud</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://geko.cloud/es/ia-en-vscode/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Cómo migrar tu infraestructura en la nube existente a IaC</title>
		<link>https://geko.cloud/es/como-migrar-a-iac/</link>
					<comments>https://geko.cloud/es/como-migrar-a-iac/#respond</comments>
		
		<dc:creator><![CDATA[Geko Cloud]]></dc:creator>
		<pubDate>Tue, 16 Sep 2025 07:00:56 +0000</pubDate>
				<category><![CDATA[Labs]]></category>
		<guid isPermaLink="false">https://geko.cloud/?p=10180</guid>

					<description><![CDATA[<p>Por qué migrar a Infrastructure as Code (IaC) Migrar a Infrastructure as Code (IaC) supone una transformación clave para mejorar la automatización, la seguridad y la escalabilidad. Sin embargo, convertir una infraestructura en la nube gestionada de forma tradicional a IaC exige planificación y un enfoque gradual para garantizar una transición segura, fluida y sostenible. [&#8230;]</p>
<p>La entrada <a href="https://geko.cloud/es/como-migrar-a-iac/">Cómo migrar tu infraestructura en la nube existente a IaC</a> se publicó primero en <a href="https://geko.cloud/es/">Geko Cloud</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2><b>Por qué migrar a Infrastructure as Code (IaC)</b></h2>
<p><span style="font-weight: 400;">Migrar a Infrastructure as Code (IaC) supone una transformación clave para mejorar la automatización, la seguridad y la escalabilidad. Sin embargo, </span><strong><span style="color: #619417;">convertir una infraestructura en la nube gestionada de forma tradicional a IaC exige planificación y un enfoque gradual</span> </strong><span style="font-weight: 400;">para garantizar una transición segura, fluida y sostenible. Si se hace bien, facilitará los despliegues, reducirá los errores humanos y optimizará los costes; una mala ejecución puede generar caídas, configuraciones erróneas y problemas de cumplimiento.</span></p>
<p>&nbsp;</p>
<h2><b>Paso 1: Evalúa y documenta tu infraestructura actual</b></h2>
<p><span style="font-weight: 400;">Antes de implementar IaC, es esencial contar con un inventario completo y actualizado de tus recursos en la nube. Esto incluye:</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Utilizar herramientas nativas como AWS Config, Azure Resource Graph o Google Cloud Asset Inventory para mapear recursos existentes.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Identificar dependencias entre servicios cloud.</span></li>
<li><span style="font-weight: 400;">Registrar componentes, configuraciones de seguridad y políticas vigentes.</span></li>
</ul>
<p>&nbsp;</p>
<p><span style="color: #000000;">Este inventario es vital para mantener coherencia durante la migración, evitando errores como configuraciones duplicadas, desconexiones entre servicios o brechas de seguridad no detectadas.</span></p>
<p>&nbsp;</p>
<h2><b>Paso 2: Define tu estrategia de migración a IaC</b></h2>
<p><span style="font-weight: 400;">La estrategia dependerá de tus prioridades, la complejidad de tu entorno y tus objetivos. Existen tres enfoques habituales:</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><strong><span style="color: #619417;">Adopt as‑is</span></strong><span style="font-weight: 400;">: Convertir la infraestructura existente a IaC sin cambios profundos; es la opción más rápida, aunque puede mantener ineficiencias.</span></li>
<li style="font-weight: 400;" aria-level="1"><strong><span style="color: #619417;">Refactor</span></strong><span style="font-weight: 400;">: Optimizar la infraestructura durante la migración (mejorar seguridad, rendimiento y costes), por ejemplo, habilitando escalado automático.</span></li>
<li style="font-weight: 400;" aria-level="1"><strong><span style="color: #619417;">Rebuild</span></strong><span style="font-weight: 400;">: Rediseñar la infraestructura desde cero bajo las mejores prácticas IaC, ideal para entornos obsoletos.</span></li>
</ul>
<p><span style="font-weight: 400;">Se recomienda un enfoque por fases si se parte de una configuración basada en provisión manual.</span></p>
<p>&nbsp;</p>
<h2><b>Paso 3: Selecciona las herramientas IaC adecuadas</b></h2>
<p><span style="font-weight: 400;">La elección depende de tu proveedor cloud, el entorno y las competencias internas:</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><strong><span style="color: #619417;">Terraform</span></strong><span style="font-weight: 400;">: Ideal en entornos multi‑cloud o híbridos.</span></li>
<li style="font-weight: 400;" aria-level="1"><strong><span style="color: #619417;">AWS CloudFormation / Azure Bicep</span></strong><span style="font-weight: 400;">: Recomendables si tu infraestructura está centrada en AWS o Azure.</span></li>
<li style="font-weight: 400;" aria-level="1"><strong><span style="color: #619417;">Pulumi</span></strong><span style="font-weight: 400;">: Aporta flexibilidad a desarrolladores que prefieren usar lenguajes tradicionales (Python, JavaScript, etc.).</span></li>
</ul>
<p><span style="font-weight: 400;">Mantener la consistencia entre equipos usando la misma herramienta puede reducir complejidad, aunque exige gestionar el estado IaC correctamente.</span></p>
<p>&nbsp;</p>
<h2><b>Paso 4: Implementa control de versiones y gestión del estado</b></h2>
<p><span style="font-weight: 400;">Una vez en IaC,</span> <strong><span style="color: #619417;">es clave controlar cambios e impedir conflictos entre versiones de código de infraestructura</span></strong><span style="font-weight: 400;"><strong><span style="color: #619417;">.</span></strong> También es necesario garantizar que lo que está desplegado refleja el estado deseado, evitando inconsistencias que generen errores o vulnerabilidades.</span></p>
<p><span style="font-weight: 400;">Buenas prácticas:</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Almacenar el código IaC en repositorios como GitHub, GitLab o Bitbucket.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Usar almacenamiento remoto de estado (Terraform Cloud, AWS S3+DynamoDB, Azure Storage).</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Adoptar flujos basados en ramas para desplegar solo versiones validadas.</span></li>
</ul>
<p>&nbsp;</p>
<h2><b>Paso 5: Prueba y valida IaC antes del despliegue</b></h2>
<p><span style="font-weight: 400;">Desplegar IaC sin pruebas puede generar interrupciones por configuraciones erróneas o vulnerabilidades. Integra validaciones dentro del flujo de trabajo:</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><strong><span style="color: #619417;">Análisis estático</span></strong><span style="font-weight: 400;"> con herramientas como Checkov o tfsec.</span></li>
<li style="font-weight: 400;" aria-level="1"><strong><span style="color: #619417;">Validación previa al despliegue</span></strong><span style="font-weight: 400;"> mediante Terraform Plan o CloudFormation Change Sets.</span></li>
<li style="font-weight: 400;" aria-level="1"><strong><span style="color: #619417;">Pruebas automatizadas</span></strong><span style="font-weight: 400;"> con frameworks como Terratest.</span></li>
</ul>
<p><span style="font-weight: 400;">Esto permite detectar fallos o brechas de seguridad antes de afectar producción.</span></p>
<p>&nbsp;</p>
<h2><b>Paso 6: Migra por fases y monitoriza continuamente</b></h2>
<p><span style="font-weight: 400;">Evita cambios masivos repentinos: opta por una migración paulatina:</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Empieza por entornos no productivos (desarrollo, staging).</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Supervisa con herramientas como Datadog, AWS CloudWatch o Azure Monitor.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Detecta desviaciones (IaC drift) y habilita mecanismos de reversión y failover para restaurar configuraciones anteriores si algo falla.</span></li>
</ul>
<p>&nbsp;</p>
<h2><b>Cómo ayuda Geko Cloud a migrar a IaC de forma segura</b></h2>
<p><span style="font-weight: 400;">Muchas organizaciones carecen de experiencia interna para implementar IaC eficazmente. Geko Cloud brinda acompañamiento experto en:</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Auditoría y mapeo de la infraestructura actual.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Definición de una estrategia de migración con riesgo minimizado.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Implementación de despliegues automatizados y seguros a escala.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Soporte continuo para mantener consistencia y gobernanza del IaC.</span></li>
</ul>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">Migrar tu infraestructura actual a Infrastructure as Code de manera segura exige una estrategia bien definida, herramientas adecuadas, controles robustos y transición progresiva. Siguiendo prácticas sólidas,</span> <strong><span style="color: #619417;">puedes modernizar tu infraestructura de forma eficiente, segura y sostenible.</span></strong></p>
<p><span style="font-weight: 400;">¿Quieres saber más? </span><a href="https://geko.cloud/es/contacto/"><span style="font-weight: 400;">Contacta</span></a><span style="font-weight: 400;"> con nuestro equipo de expertos.</span></p>
<p>La entrada <a href="https://geko.cloud/es/como-migrar-a-iac/">Cómo migrar tu infraestructura en la nube existente a IaC</a> se publicó primero en <a href="https://geko.cloud/es/">Geko Cloud</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://geko.cloud/es/como-migrar-a-iac/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Cómo desplegar IaC con éxito</title>
		<link>https://geko.cloud/es/como-desplegar-iac/</link>
					<comments>https://geko.cloud/es/como-desplegar-iac/#respond</comments>
		
		<dc:creator><![CDATA[Geko Cloud]]></dc:creator>
		<pubDate>Tue, 02 Sep 2025 06:36:48 +0000</pubDate>
				<category><![CDATA[Labs]]></category>
		<guid isPermaLink="false">https://geko.cloud/?p=10170</guid>

					<description><![CDATA[<p>La clave para un despliegue fluido de IaC Infrastructure as Code (IaC) revoluciona la automatización en la nube, pero desplegarla con éxito requiere planificación cuidadosa. Muchas empresas adoptan IaC sin considerar aspectos fundamentales como seguridad, gobernanza o pruebas, lo que puede provocar fallos, interrupciones y problemas de cumplimiento. Un despliegue sin sobresaltos requiere canalizaciones CI/CD [&#8230;]</p>
<p>La entrada <a href="https://geko.cloud/es/como-desplegar-iac/">Cómo desplegar IaC con éxito</a> se publicó primero en <a href="https://geko.cloud/es/">Geko Cloud</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2><b>La clave para un despliegue fluido de IaC</b></h2>
<p><span style="font-weight: 400;">Infrastructure as Code (IaC) revoluciona la automatización en la nube, pero desplegarla con éxito requiere planificación cuidadosa. Muchas empresas adoptan IaC sin considerar aspectos fundamentales como </span><strong><span style="color: #619417;">seguridad, gobernanza o pruebas</span></strong><span style="font-weight: 400;"><span style="color: #000000;">,</span> lo que puede provocar fallos, interrupciones y problemas de cumplimiento. Un despliegue sin sobresaltos requiere canalizaciones CI/CD estructuradas, validación automatizada y buenas prácticas de seguridad.</span></p>
<p><span style="font-weight: 400;">Las </span><span style="color: #000000;"><strong><span style="color: #619417;">herramientas de validación automatizada escanean vulnerabilidades y configuraciones incorrectas antes del despliegue</span></strong>. </span><span style="font-weight: 400;">No obstante, estas herramientas pueden pasar por alto vulnerabilidades nuevas o de bajo nivel que pueden convertirse en puntos de explotación dentro de un ataque más complejo.</span></p>
<p><span style="font-weight: 400;">Por ello, </span><strong><span style="color: #619417;">después del despliegue, las pruebas de penetración son vitales</span></strong><span style="font-weight: 400;"><span style="color: #000000;">:</span> simulan ataques del mundo real y revelan debilidades que los escáneres automatizados no detectan. La combinación entre escaneo automático y pruebas humanas fortalece significativamente la seguridad de tus desplegables IaC. </span></p>
<h2><b>Construye una canalización robusta para el despliegue de IaC</b></h2>
<p><span style="font-weight: 400;">Una canalización bien estructurada garantiza seguridad, escalabilidad y consistencia. Sin ella, los cambios en infraestructura pueden provocar errores por desalineación, fallos de integración o interrupciones. </span></p>
<h3><strong><span style="color: #619417;">1. Integra IaC en CI/CD</span></strong></h3>
<p><span style="font-weight: 400;">Aplica flujos de trabajo GitOps y CI/CD para que los cambios en infraestructura pasen por pruebas antes de llegar a producción.</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Almacena plantillas IaC en repositorios Git (GitHub, GitLab, Bitbucket) para control de versiones.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Automatiza pruebas con herramientas como Terraform Plan, AWS Config o Azure Blueprints.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Despliega mediante CI/CD con GitHub Actions, Azure DevOps o GitLab.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Utiliza flujos de trabajo basados en ramas para evitar que cambios no aprobados lleguen a producción.</span></li>
</ul>
<p>&nbsp;</p>
<h3><strong><span style="color: #619417;">2. Implementa pruebas y validación automatizada</span></strong></h3>
<p><span style="font-weight: 400;">Previene interrupciones costosas y riesgos de seguridad:</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Usa herramientas de análisis estático como Checkov, tfsec o InSpec.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Prueba tu infraestructura en entornos staging antes de desplegar en producción.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Define mecanismos automáticos de reversión en caso de fallos.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Considera añadir pruebas de penetración manuales como capa de seguridad adicional.</span></li>
</ul>
<p>&nbsp;</p>
<h3><strong><span style="color: #619417;">3. Asegura tus despliegues de IaC</span></strong></h3>
<p><span style="font-weight: 400;">Para proteger los recursos en la nube:</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Implementa control de acceso basado en roles (RBAC).</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Protege credenciales con HashiCorp Vault, AWS Secrets Manager o Azure Key Vault.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Supervisa la configuración y aplica gobernanza con Policy as Code (PaC).</span></li>
</ul>
<p>&nbsp;</p>
<h3><strong><span style="color: #619417;">4. Monitoriza, mantiene y previene la deriva (drift)</span></strong></h3>
<p><span style="font-weight: 400;">Tras el despliegue, es crucial detectar cualquier desviación respecto al estado deseado:</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Habilita bloqueo de estado en Terraform o detección de drift en AWS CloudFormation.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Usa herramientas de monitorización como Datadog, Prometheus o Azure Monitor.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Automatiza actualizaciones para adaptarte a cambios en proveedores de nube.</span></li>
</ul>
<p>&nbsp;</p>
<h2><span style="color: #619417;"><b>Elige el MSP adecuado para tus necesidades de IaC</b></span></h2>
<p><span style="font-weight: 400;">Al seleccionar un Proveedor de Servicios Gestionados (MSP), busca capacidades clave:</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Diseñar canalizaciones CI/CD alineadas con flujos GitOps.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Implementar buenas prácticas de seguridad IaC.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Automatizar pruebas para lograr un despliegue confiable.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Monitorizar la deriva y aplicar políticas de gobernanza.</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;"> Los MSP eficientes entienden que desplegar IaC va más allá de la automatización: ofrecen soluciones integrales que optimizan el proceso, reducen riesgos y facilitan un crecimiento seguro.</span></li>
</ul>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">Desplegar IaC con éxito requiere una estrategia integral: flujos CI/CD bien diseñados, pruebas robustas, seguridad avanzada y monitorización constante. </span></p>
<p><span style="font-weight: 400;">¿Quieres que te ayudemos a diseñar un plan personalizado? </span><a href="https://geko.cloud/es/contacto/"><span style="font-weight: 400;">Contacta</span></a><span style="font-weight: 400;"> con nuestro equipo de expertos.</span></p>
<p>La entrada <a href="https://geko.cloud/es/como-desplegar-iac/">Cómo desplegar IaC con éxito</a> se publicó primero en <a href="https://geko.cloud/es/">Geko Cloud</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://geko.cloud/es/como-desplegar-iac/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>¿Cómo funcionan los contenedores Docker?</title>
		<link>https://geko.cloud/es/como-funciona-contenedor-docker/</link>
					<comments>https://geko.cloud/es/como-funciona-contenedor-docker/#respond</comments>
		
		<dc:creator><![CDATA[Geko Cloud]]></dc:creator>
		<pubDate>Thu, 03 Jul 2025 08:05:06 +0000</pubDate>
				<category><![CDATA[Labs]]></category>
		<guid isPermaLink="false">https://geko.cloud/?p=10153</guid>

					<description><![CDATA[<p>Los contenedores son una parte fundamental en las estrategias de digitalización centradas en arquitecturas IT. La contenedorización se considera uno de los cambios más significativos en el mundo de la informática desde la introducción de la virtualización de hardware con máquinas virtuales (VMs). Esta forma de virtualización ha ganado impulso con la tendencia hacia los [&#8230;]</p>
<p>La entrada <a href="https://geko.cloud/es/como-funciona-contenedor-docker/">¿Cómo funcionan los contenedores Docker?</a> se publicó primero en <a href="https://geko.cloud/es/">Geko Cloud</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><span style="font-weight: 400;">Los contenedores son una parte fundamental en las estrategias de digitalización centradas en arquitecturas IT. </span><strong><span style="color: #619417;">La contenedorización se considera uno de los cambios más significativos en el mundo de la informática desde la introducción de la virtualización de hardware con máquinas virtuales</span></strong><span style="font-weight: 400;"> (VMs). Esta forma de virtualización ha ganado impulso con la tendencia hacia los microservicios y el alejamiento de las aplicaciones monolíticas.</span></p>
<p><span style="font-weight: 400;">Al igual que las VMs, los contenedores actúan como un espacio para aplicaciones en las que estas pueden ejecutarse. Sin embargo, mientras que las VMs replican todo un entorno informático,</span> <strong><span style="color: #619417;">los contenedores solo incluyen los datos esenciales necesarios para ejecutar la aplicación</span></strong><span style="font-weight: 400;">, como bibliotecas y binarios del sistema operativo. Esto permite una forma de virtualización más ligera.</span><strong><span style="color: #619417;"> La tecnología de contenedores más conocida es Docker</span></strong><span style="font-weight: 400;">, razón por la cual el término «contenedor Docker» es muy utilizado.</span></p>
<p>&nbsp;</p>
<h2><strong><span style="color: #619417;">¿Qué son los contenedores Docker?</span></strong></h2>
<p><span style="font-weight: 400;">Los contenedores Docker son </span><strong><span style="color: #619417;">unidades encapsuladas que pueden ejecutarse de forma independiente</span></strong><span style="font-weight: 400;">, sin importar dónde se encuentren. Se pueden comparar con contenedores de carga en los que se encuentran aplicaciones como PHP, MySQL y Apache. Para estas aplicaciones, no importa si el contenedor está en Múnich, Nueva York o Sídney, ya que el entorno interno siempre es el mismo, proporcionando condiciones consistentes.</span></p>
<p>&nbsp;</p>
<h2><strong><span style="color: #619417;">¿Cuál es la diferencia entre máquinas virtuales y contenedores Docker?</span></strong></h2>
<p><span style="font-weight: 400;">Los contenedores se consideran una forma de virtualización más ligera porque, dentro de una instalación del sistema operativo, pueden ejecutarse varios contenedores con aplicaciones aisladas entre sí. Si quisiéramos lograr esta separación mediante virtualización de hardware, tendríamos que iniciar dos VMs completas, incluyendo el sistema operativo, lo que requiere más recursos.</span></p>
<p><strong><span style="color: #619417;">A diferencia de las VMs, los contenedores no emulan el hardware, sino el sistema operativo</span><span style="color: #619417;">.</span></strong> <span style="font-weight: 400;">Las VMs se ejecutan directamente en un servidor físico virtualizado mediante un hipervisor como VMware ESXi. La virtualización en contenedores ocurre a un nivel superior, sin un hipervisor, utilizando el sistema operativo instalado junto con el motor de contenedores para la virtualización.</span></p>
<p>&nbsp;</p>
<h2><strong><span style="color: #619417;">¿Cuáles son las ventajas de los contenedores Docker?</span></strong></h2>
<p><span style="font-weight: 400;">Especialmente entre los desarrolladores, esta nueva tecnología es muy popular, ya que </span><strong><span style="color: #619417;">los contenedores Docker son más eficientes y consumen menos recursos que las VMs</span></strong><span style="font-weight: 400;">: requieren menos CPU y memoria.</span></p>
<p><strong><span style="color: #619417;">Otra ventaja es su portabilidad</span></strong><span style="font-weight: 400;"><strong><span style="color: #619417;">.</span></strong> Como paquetes de aplicaciones cerrados, pueden ejecutarse en diversos sistemas. Esto permite su uso no solo para el desarrollo offline, sino también en servidores de producción, independientemente de la infraestructura o plataforma en la nube elegida. Esto resulta en una mayor velocidad y consistencia en el desarrollo, la depuración y las pruebas.</span></p>
<p><span style="font-weight: 400;">Los contenedores</span> <strong><span style="color: #619417;">son altamente escalables</span></strong><span style="font-weight: 400;">. Si se necesitan instancias adicionales de una aplicación, por ejemplo, debido a un aumento en el tráfico web, se pueden iniciar y detener fácilmente nuevos contenedores. En cuestión de segundos, se pueden escalar cientos de contenedores hacia arriba o hacia abajo. La gestión de esta gran cantidad puede facilitarse mediante soluciones de orquestación.</span></p>
<p>&nbsp;</p>
<h2><strong><span style="color: #619417;">¿Qué es la gestión de contenedores?</span></strong></h2>
<p><span style="font-weight: 400;">Para gestionar eficientemente una gran cantidad de contenedores, se requiere una solución de orquestación. Las más conocidas son Kubernetes, Docker Swarm y Amazon Elastic Container Service. Estas soluciones</span> <strong><span style="color: #619417;">se encargan de iniciar y detener contenedores, colocarlos óptimamente en los nodos de cómputo disponibles y ajustar automáticamente</span></strong><span style="font-weight: 400;"> los nodos necesarios según los cambios en la carga.</span></p>
<p>&nbsp;</p>
<h2><span style="color: #619417;">¿Qué son las imágenes de contenedor?</span></h2>
<p><span style="font-weight: 400;">Las imágenes son la base de los contenedores. Una imagen es un archivo simple que elimina la necesidad de instalar y actualizar software. </span><strong><span style="color: #619417;">Las imágenes contienen todos los componentes necesarios para ejecutar una aplicación de forma independiente de la plataforma</span></strong><span style="font-weight: 400;"><strong><span style="color: #619417;">.</span></strong> Una imagen puede transferirse a otro sistema mediante una simple copia y luego iniciarse como un contenedor.</span></p>
<p><span style="font-weight: 400;">Las imágenes se almacenan, gestionan y proporcionan a través de un registro. El registro público más conocido es Docker Hub.</span></p>
<p>&nbsp;</p>
<h2><strong><span style="color: #619417;">¿Cuál es el ciclo de vida de un contenedor?</span></strong></h2>
<p><span style="font-weight: 400;">Una imagen no es inmutable y puede adaptarse según sea necesario. Este proceso de adaptación se conoce como el </span><strong><span style="color: #619417;">ciclo de vida del contenedor</span></strong><span style="font-weight: 400;">. Por ejemplo:</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Se descarga una imagen de un registro.</span><span style="font-weight: 400;">
<p></span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Al iniciar la imagen en nuestro host Docker, se crea el contenedor real.</span><span style="font-weight: 400;">
<p></span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Se pueden realizar ajustes, como agregar componentes adicionales.</span><span style="font-weight: 400;">
<p></span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Para almacenar permanentemente los cambios, se crea una nueva imagen a partir del contenedor modificado.</span><span style="font-weight: 400;">
<p></span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Finalmente, la nueva imagen se guarda en el registro y puede servir como base para otras extensiones.</span><span style="font-weight: 400;">
<p></span></li>
</ul>
<p>&nbsp;</p>
<h2><strong><span style="color: #619417;">¿Qué se debe tener en cuenta?</span></strong></h2>
<p><span style="font-weight: 400;">Algunos </span><strong><span style="color: #619417;">consejos y trucos</span></strong><span style="font-weight: 400;">:</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Idealmente, solo se debe </span><strong><span style="color: #619417;">implementar un servicio o proceso por contenedor</span></strong><span style="font-weight: 400;"><strong><span style="color: #619417;">.</span></strong> Las excepciones son válidas cuando las aplicaciones están estrechamente integradas o dependen entre sí.</span><span style="font-weight: 400;">
<p></span></li>
<li style="font-weight: 400;" aria-level="1"><strong><span style="color: #619417;">No se deben almacenar datos persistentes dentro del contenedor</span></strong><span style="font-weight: 400;"><strong><span style="color: #619417;">.</span></strong> Los contenedores deben considerarse como «infraestructura inmutable», lo que significa que solo existen mientras realizan una tarea. Al finalizar o desplegar,, todos los datos generados durante el tiempo de ejecución desaparecen. Por lo tanto,</span><strong><span style="color: #619417;"> los datos persistentes deben almacenarse en volúmenes externos.</span></strong><span style="font-weight: 400;">
<p></span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Para una mayor calidad y reutilización, se deben utilizar herramientas de automatización como Terraform, Ansible y Jenkins. Con estas herramientas y siguiendo algunas buenas prácticas, se puede lograr un entorno moderno, dinámico y altamente escalable.</span><span style="font-weight: 400;">
<p></span></li>
</ul>
<p>&nbsp;</p>
<h2><strong><span style="color: #619417;">¿Y qué hay del Kubernetes Bundle?</span></strong></h2>
<p><span style="font-weight: 400;">Para sacar el máximo partido a los contenedores Docker en entornos de producción, muchas organizaciones adoptan </span><strong><span style="color: #619417;">Kubernetes</span></strong><span style="font-weight: 400;"> como sistema de orquestación. Sin embargo, implementarlo y operarlo no es trivial. Aquí es donde entra en juego el concepto de </span><strong><span style="color: #619417;">Kubernetes Bundle: un enfoque paquetizado que combina todas las herramientas, configuraciones y buenas prácticas necesarias para desplegar y gestionar Kubernetes de forma segura, eficiente y escalable.</span></strong></p>
<p><span style="font-weight: 400;">Un Kubernetes Bundle bien diseñado suele incluir:</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Clústeres preconfigurados según las necesidades del negocio (on-premise, cloud o híbrido).</span><span style="font-weight: 400;">
<p></span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Integración con sistemas de CI/CD y observabilidad.</span><span style="font-weight: 400;">
<p></span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Configuración de políticas de seguridad, acceso y backup.</span><span style="font-weight: 400;">
<p></span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Soporte para el despliegue automático de contenedores a través de Helm Charts u operadores personalizados.</span></li>
</ul>
<p><span style="font-weight: 400;">En definitiva, si Docker es la base, </span><strong><span style="color: #619417;">Kubernetes (y su bundle) es el andamio que lo sostiene en producción a gran escala.</span></strong></p>
<p>&nbsp;</p>
<h2><strong><span style="color: #619417;">Novedades en el ecosistema Docker y Kubernetes (2025)</span></strong></h2>
<p><span style="font-weight: 400;">El ecosistema de contenedores evoluciona contínuamente. Estas son algunas de las novedades más relevantes:</span></p>
<ol>
<li><strong><span style="color: #619417;"> Docker Scout y enfoque en seguridad por defecto</span></strong><b><br />
</b><span style="font-weight: 400;">Docker ha lanzado </span><strong>Docker Scout</strong><span style="font-weight: 400;">, una herramienta integrada que permite escanear imágenes en busca de vulnerabilidades y verificar políticas de seguridad antes de hacer un push al registro. Este enfoque shift-left mejora la seguridad desde las fases más tempranas del desarrollo.</span></li>
<li><strong><span style="color: #619417;"> Kubernetes Gateway API</span></strong><b><br />
</b><span style="font-weight: 400;">Aunque Ingress sigue siendo ampliamente utilizado, la </span><b>Gateway API</b><span style="font-weight: 400;"> ha ganado tracción como sucesor natural. Ofrece una configuración más flexible y moderna para gestionar el tráfico norte-sur, y está respaldada oficialmente por la CNCF.</span></li>
<li><strong><span style="color: #619417;"> Evolución de las herramientas de orquestación</span></strong><b><br />
</b><span style="font-weight: 400;">Aunque Kubernetes sigue siendo el estándar, herramientas como </span><b>K3s</b><span style="font-weight: 400;"> (una distribución ligera de Kubernetes) y </span><b>Talos OS</b><span style="font-weight: 400;"> (una distro de Linux pensada solo para Kubernetes) están ganando espacio en entornos edge y on-premise por su eficiencia y seguridad.</span></li>
<li><strong><span style="color: #619417;"> WebAssembly (Wasm) como complemento o alternativa ligera a contenedores</span></strong><b><br />
</b><span style="font-weight: 400;">Wasm ha comenzado a integrarse en entornos de nube nativos. Aunque no sustituye a Docker, puede convivir con contenedores para ejecutar funciones específicas con aún menos recursos, lo que mejora el rendimiento en el edge computing.</span></li>
<li><strong><span style="color: #619417;"> Automatización avanzada y GitOps</span></strong><b><br />
</b><span style="font-weight: 400;">El enfoque </span><b>GitOps</b><span style="font-weight: 400;">, con herramientas como ArgoCD o Flux, se ha consolidado como una de las mejores prácticas para la gestión declarativa de clústeres Kubernetes. Esto permite un control de versiones más estricto, despliegues reproducibles y una trazabilidad completa de cambios en producción.</span></li>
<li><strong><span style="color: #619417;"> Enfoque en plataformas internas de desarrollo (IDP)</span></strong><b><br />
</b><span style="font-weight: 400;">Muchas organizaciones están invirtiendo en </span><b>Internal Developer Platforms</b><span style="font-weight: 400;"> que abstraen la complejidad de Kubernetes para los equipos de desarrollo, usando herramientas como Backstage o Port, lo que agiliza los flujos DevOps sin sacrificar control.</span></li>
</ol>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">¿Quieres aprovechar al máximo las oportunidades de Docker y Kubernetes? </span><a href="https://geko.cloud/es/contacto/"><span style="font-weight: 400;">Contacta</span></a><span style="font-weight: 400;"> con nuestro equipo de expertos. </span></p>
<p>La entrada <a href="https://geko.cloud/es/como-funciona-contenedor-docker/">¿Cómo funcionan los contenedores Docker?</a> se publicó primero en <a href="https://geko.cloud/es/">Geko Cloud</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://geko.cloud/es/como-funciona-contenedor-docker/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Migración a Azure: cómo optimizar tu infraestructura IT en la nube</title>
		<link>https://geko.cloud/es/migracion-azure/</link>
					<comments>https://geko.cloud/es/migracion-azure/#respond</comments>
		
		<dc:creator><![CDATA[Geko Cloud]]></dc:creator>
		<pubDate>Thu, 15 May 2025 08:07:48 +0000</pubDate>
				<category><![CDATA[Labs]]></category>
		<guid isPermaLink="false">https://geko.cloud/?p=10110</guid>

					<description><![CDATA[<p>La migración a Azure se ha convertido en una prioridad para muchas empresas que buscan reducir costes, ganar agilidad y modernizar su infraestructura IT. La nube de Microsoft ofrece un entorno seguro, escalable y flexible para alojar servidores, bases de datos y aplicaciones críticas. &#160; En este artículo te explicamos paso a paso cómo realizar [&#8230;]</p>
<p>La entrada <a href="https://geko.cloud/es/migracion-azure/">Migración a Azure: cómo optimizar tu infraestructura IT en la nube</a> se publicó primero en <a href="https://geko.cloud/es/">Geko Cloud</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><span style="font-weight: 400;">La migración a Azure se ha convertido en una prioridad para muchas empresas que buscan </span><b>reducir costes, ganar agilidad y modernizar su infraestructura IT</b><span style="font-weight: 400;">. La nube de Microsoft ofrece un entorno seguro, escalable y flexible para alojar servidores, bases de datos y aplicaciones críticas.</span></p>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">En este artículo te explicamos paso a paso </span><b>cómo realizar una migración a Azure</b><span style="font-weight: 400;"> con éxito, qué estrategias puedes seguir y qué beneficios aporta para el rendimiento y la eficiencia de tu infraestructura.</span></p>
<p>&nbsp;</p>
<h2><span style="font-weight: 400;">¿Por qué migrar tu infraestructura IT a Microsoft Azure?</span></h2>
<p><span style="font-weight: 400;">Migrar a Azure no es una tendencia, sino una respuesta lógica a los retos que enfrentan las organizaciones con</span><b> infraestructuras locales o entornos virtualizados tradicionales</b><span style="font-weight: 400;"> (como VMware). Las razones principales para iniciar una migración a la nube de Azure son:</span></p>
<p>&nbsp;</p>
<ul>
<li style="font-weight: 400;" aria-level="1"><b>Optimización de costes</b><span style="font-weight: 400;">: Azure permite pagar solo por lo que se usa, evitando gastos fijos de mantenimiento y hardware.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Escalabilidad</b><span style="font-weight: 400;">: la infraestructura IT se adapta automáticamente a la carga de trabajo.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Alta disponibilidad</b><span style="font-weight: 400;">: los servicios cloud garantizan continuidad operativa.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Seguridad reforzada</b><span style="font-weight: 400;">: con herramientas nativas de ciberseguridad y cumplimiento normativo.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Mayor eficiencia operativa</b><span style="font-weight: 400;">: automatización de tareas, actualizaciones y backups.</span></li>
</ul>
<p>&nbsp;</p>
<h2><span style="font-weight: 400;">Fases clave en una migración a Azure</span></h2>
<h3><span style="font-weight: 400;">1. Evaluación del entorno IT actual</span></h3>
<p><span style="font-weight: 400;">Antes de iniciar el proceso de migración a Microsoft Azure, es fundamental </span><b>auditar tu infraestructura</b><span style="font-weight: 400;">: servidores, bases de datos, aplicaciones y dependencias. Esta evaluación ayuda a definir qué cargas están listas para migrar y</span><b> cuál es la mejor estrategia en cada caso</b><span style="font-weight: 400;">.</span></p>
<p>&nbsp;</p>
<h3><span style="font-weight: 400;">2. Diseño de la arquitectura en la nube (landing zone)</span></h3>
<p><span style="font-weight: 400;">La landing zone en Azure</span><b> establece las bases de red, seguridad y gobernanza</b><span style="font-weight: 400;">. Un diseño sólido garantiza un entorno escalable, seguro y preparado para el crecimiento del negocio.</span></p>
<p>&nbsp;</p>
<h3><span style="font-weight: 400;">3. Migración de cargas de trabajo</span></h3>
<p><span style="font-weight: 400;">Existen diferentes enfoques según el </span><b>nivel de complejidad</b><span style="font-weight: 400;">:</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><b>Rehost (Lift &amp; Shift)</b><span style="font-weight: 400;">: traslado directo de servidores a máquinas virtuales en Azure.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Replatform</b><span style="font-weight: 400;">: ajustes mínimos para aprovechar servicios cloud (como Azure SQL).</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Refactor o rebuild</b><span style="font-weight: 400;">: rediseño completo de aplicaciones para una arquitectura nativa en la nube.</span></li>
</ul>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">Se pueden migrar entornos Windows, bases de datos SQL y también servidores Linux utilizando herramientas como Azure Migrate.</span></p>
<p>&nbsp;</p>
<h3><span style="font-weight: 400;">4. Validación, pruebas y despliegue</span></h3>
<p><span style="font-weight: 400;">Antes de pasar a producción, es necesario</span><b> validar el rendimiento, la seguridad y la integración con otros sistemas</b><span style="font-weight: 400;">. Esta fase incluye pruebas en entornos de staging (preproducción) y ajustes según el feedback técnico.</span></p>
<p>&nbsp;</p>
<h3><span style="font-weight: 400;">5. Gestión y optimización post-migración</span></h3>
<p><span style="font-weight: 400;">Una vez completada la migración a Azure, </span><b>el entorno debe mantenerse optimizado</b><span style="font-weight: 400;">. Esto implica monitorización, escalado automático, gestión de costes y actualizaciones continuas. Muchas organizaciones optan por apoyarse en </span><b>servicios gestionados de Azure</b><span style="font-weight: 400;"> ofrecidos por partners especializados, como Geko.</span></p>
<p>&nbsp;</p>
<h2><span style="font-weight: 400;">Beneficios de una migración a Azure bien ejecutada</span></h2>
<p><span style="font-weight: 400;">Las empresas que migran su infraestructura IT a Azure destacan los siguientes beneficios:</span></p>
<p>&nbsp;</p>
<ul>
<li style="font-weight: 400;" aria-level="1"><b>Reducción de costes</b><span style="font-weight: 400;"> operativos.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Mejora en el rendimiento</b><span style="font-weight: 400;"> de aplicaciones críticas.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Mayor agilidad </b><span style="font-weight: 400;">para lanzar nuevos servicios.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Seguridad avanzada</b><span style="font-weight: 400;"> y cumplimiento normativo.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Liberación de recursos</b><span style="font-weight: 400;"> internos para tareas de mayor valor.</span></li>
</ul>
<p>&nbsp;</p>
<h2><span style="font-weight: 400;">Migrar a Azure es una decisión estratégica</span></h2>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">Una migración a Azure bien planificada permite a las empresas</span><b> transformar su modelo de IT, mejorar la eficiencia y prepararse para los retos digitales del futuro</b><span style="font-weight: 400;">. Con una estrategia adecuada y el acompañamiento de un socio experto, esta transición se convierte en una ventaja competitiva.</span></p>
<p><span style="font-weight: 400;">Desde Geko</span><b> te ayudamos a definir la mejor estrategia de migración</b><span style="font-weight: 400;">, con un enfoque personalizado y servicios gestionados para garantizar el éxito del proyecto. </span></p>
<p><span style="font-weight: 400;">Si quieres saber más, </span><a href="https://geko.cloud/es/contacto/"><span style="font-weight: 400;">contacta</span></a><span style="font-weight: 400;"> con nuestros expertos. </span></p>
<p>&nbsp;</p>
<p>La entrada <a href="https://geko.cloud/es/migracion-azure/">Migración a Azure: cómo optimizar tu infraestructura IT en la nube</a> se publicó primero en <a href="https://geko.cloud/es/">Geko Cloud</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://geko.cloud/es/migracion-azure/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Cómo migrar a la nube con AWS Well-Architected Framework</title>
		<link>https://geko.cloud/es/como-migrar-con-aws-well-architected-framework/</link>
					<comments>https://geko.cloud/es/como-migrar-con-aws-well-architected-framework/#respond</comments>
		
		<dc:creator><![CDATA[Geko Cloud]]></dc:creator>
		<pubDate>Mon, 10 Mar 2025 08:45:26 +0000</pubDate>
				<category><![CDATA[Destacado LABS]]></category>
		<category><![CDATA[Labs]]></category>
		<category><![CDATA[Sin categorizar]]></category>
		<guid isPermaLink="false">https://geko.cloud/?p=10083</guid>

					<description><![CDATA[<p>El AWS Well-Architected Framework proporciona una hoja de ruta para desarrollar soluciones en la nube eficientes y escalables. Además, las mejores prácticas recomendadas garantizan que los servicios en la nube sean rentables, de alto rendimiento y, sobre todo, seguros. El marco permite a los usuarios diseñar y operar sistemas en la nube de AWS que [&#8230;]</p>
<p>La entrada <a href="https://geko.cloud/es/como-migrar-con-aws-well-architected-framework/">Cómo migrar a la nube con AWS Well-Architected Framework</a> se publicó primero en <a href="https://geko.cloud/es/">Geko Cloud</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><span style="font-weight: 400;">El AWS Well-Architected Framework proporciona una hoja de ruta para desarrollar </span><b>soluciones en la nube eficientes y escalables</b><span style="font-weight: 400;">. Además, las mejores prácticas recomendadas garantizan que los servicios en la nube sean rentables, de alto rendimiento y, sobre todo, seguros. El marco permite a los usuarios </span><b>diseñar y operar sistemas en la nube de AWS que cumplan con los requisitos de los entornos de TI modernos</b><span style="font-weight: 400;">.</span></p>
<p>&nbsp;</p>
<h2><span style="font-weight: 400;">¿Qué es el AWS Well-Architected Framework?</span></h2>
<p><span style="font-weight: 400;">AWS Well-Architected Framework es una </span><b>herramienta para evaluar y mejorar las arquitecturas de la nube</b><span style="font-weight: 400;">. Se basa en seis pilares: </span><b>excelencia operativa</b><span style="font-weight: 400;">, </span><b>seguridad</b><span style="font-weight: 400;">, </span><b>fiabilidad</b><span style="font-weight: 400;">, </span><b>eficiencia en el desempeño</b><span style="font-weight: 400;">, </span><b>optimización de costes</b><span style="font-weight: 400;"> y </span><b>sostenibilidad</b><span style="font-weight: 400;">. El marco proporciona las mejores prácticas y pautas para diseñar y operar entornos seguros, eficientes y rentables en la nube de AWS.</span></p>
<p>&nbsp;</p>
<h2><span style="font-weight: 400;">¿Cómo migrar a AWS?</span></h2>
<p><span style="font-weight: 400;">Los desafíos de migrar a la nube de AWS varían desde detalles técnicos hasta requisitos regulatorios. El </span><b>marco de buena arquitectura de AWS permite identificar obstáculos de forma temprana y abordarlos de manera eficaz</b><span style="font-weight: 400;">. Más allá de una simple tarea técnica, el uso de la nube se considera no solo como una tarea técnica, sino también como parte de la estrategia corporativa.</span><b> </b></p>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">Por esta razón, las organizaciones que adoptan una visión holística de la implementación y operación de sus servicios en la nube están mejor posicionadas para afrontar con éxito tanto los desafíos inmediatos como los objetivos comerciales a largo plazo.</span></p>
<p>&nbsp;</p>
<h2><span style="font-weight: 400;">Los seis pilares de un marco de buena arquitectura AWS  </span></h2>
<p><span style="font-weight: 400;">El AWS Well-Architected Framework se estructura en</span><b> seis pilares centrales</b><span style="font-weight: 400;">, cada uno de los cuales aborda aspectos específicos de la arquitectura en la nube. Gracias a esta división, las empresas pueden crear un entorno robusto y eficiente.</span></p>
<p>&nbsp;</p>
<ul>
<li style="font-weight: 400;" aria-level="1"><b>Excelencia operativa</b><span style="font-weight: 400;">: apoyar y optimizar las operaciones para lograr mejores procesos de negocio a través de la automatización y flujos de trabajo optimizados.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Seguridad</b><span style="font-weight: 400;">: garantizar la protección de los datos y sistemas, con especial atención a la evaluación de riesgos, la integridad de los datos, la confidencialidad y la disponibilidad.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Fiabilidad</b><span style="font-weight: 400;">: sistemas robustos que permanecen estables incluso ante eventos inesperados y pueden recuperarse rápidamente.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Eficiencia en el rendimiento</b><span style="font-weight: 400;">: seleccionar los recursos y tecnologías adecuados y adaptar el rendimiento del sistema a los requisitos cambiantes.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Optimización de costes</b><span style="font-weight: 400;">: controlar el consumo de recursos y los costes para garantizar que las inversiones creen valor.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Sostenibilidad</b><span style="font-weight: 400;">: minimizar el impacto ambiental de las cargas de trabajo en la nube, reduciendo el consumo de energía y las emisiones de carbono.</span></li>
</ul>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">Al aplicar estos principios, </span><b>AWS Well-Architected Framework ayuda a las organizaciones a crear un entorno de nube de última generación</b><span style="font-weight: 400;">.</span></p>
<p>&nbsp;</p>
<h2><span style="font-weight: 400;">¿Cómo debe ser el marco de buena arquitectura de AWS? </span></h2>
<p><b>El marco de buena arquitectura de AWS y el modelo de responsabilidad compartida</b><span style="font-weight: 400;"> son dos caras de la misma moneda. Mientras que el primero proporciona los principios y mejores prácticas para diseñar y operar una arquitectura de nube eficiente, el segundo define claramente las responsabilidades de AWS y sus clientes. </span></p>
<p>&nbsp;</p>
<h3><span style="font-weight: 400;">Responsabilidad de AWS:</span></h3>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Seguridad física de los centros de datos.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Integridad de los dispositivos de red.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Fiabilidad del hardware del host.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Seguridad de la infraestructura global que respalda la disponibilidad de los servicios de AWS.</span></li>
</ul>
<p>&nbsp;</p>
<h3><span style="font-weight: 400;">Responsabilidad del cliente:</span></h3>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Implementación de la gestión del control de acceso.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Cifrado de datos.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Funcionamiento seguro de las aplicaciones.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Gestión eficaz de parches y configuraciones de sistemas operativos y aplicaciones.</span></li>
</ul>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">Si se malinterpreta el modelo de responsabilidad compartida, pueden generarse brechas en el cumplimiento y la seguridad. Por el contrario, los clientes que implementan este enfoque reducen los riesgos y logran un alto nivel de seguridad. </span></p>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">El marco Well-Architected complementa este modelo proporcionando pautas claramente definidas para diseñar las tareas del cliente.</span></p>
<h2></h2>
<h2><span style="font-weight: 400;">El marco Well-Architected para optimizar el rendimiento, la seguridad y los costes</span></h2>
<p><span style="font-weight: 400;">El AWS Well-Architected Framework ha demostrado su eficacia para muchas empresas. Es el punto de partida para conceptos de seguridad mejorados y permite un importante ahorro de costes. Los siguientes ejemplos muestran cómo las empresas optimizan su infraestructura en la nube utilizando el marco.</span></p>
<p>&nbsp;</p>
<h3><span style="font-weight: 400;">Ejemplos de excelencia operacional:</span></h3>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Las empresas pueden implementar pruebas de carga automatizadas para verificar el rendimiento de su arquitectura de nube en diferentes escenarios. Esto ayuda a identificar cuellos de botella de forma temprana y optimizar toda la infraestructura para lograr un rendimiento óptimo bajo alta carga.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Al establecer KPI detallados, las empresas pueden monitorear continuamente el rendimiento de su arquitectura en la nube. Analizar estos datos ayuda a identificar tendencias y realizar optimizaciones proactivas para mejorar continuamente la eficiencia.</span></li>
</ul>
<p>&nbsp;</p>
<h3><span style="font-weight: 400;">Ejemplos de mejoras de seguridad:</span></h3>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">La automatización de pruebas garantiza el cumplimiento de las políticas de seguridad. Los scripts proporcionados por el marco comprueban automáticamente las configuraciones durante las actualizaciones. Las vulnerabilidades se identifican y resuelven rápidamente antes de que lleguen a producción.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Las pruebas de penetración ayudan a las empresas a evaluar la seguridad de su nube. Las pruebas identifican riesgos de seguridad ocultos a través de ataques simulados. De esta forma se mejoran continuamente los mecanismos de protección para hacer frente a las ciberamenazas.</span></li>
</ul>
<p>&nbsp;</p>
<h3><span style="font-weight: 400;">Ejemplos de ahorro de costes:</span></h3>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Dirigir la asignación de recursos a áreas críticas para el negocio aumenta la eficiencia de los costos operativos y mejora el ROI (retorno de la inversión).</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Las directrices marco para la gestión de recursos permiten a las empresas hacer un uso óptimo de sus recursos. Al escalar hacia arriba o hacia abajo según la carga de trabajo, se pueden optimizar los costos y gestionar los picos de carga.</span></li>
</ul>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">Los escenarios ilustran cómo el  Well-Architected Framework ayuda a desarrollar enfoques personalizados que se adaptan a las necesidades específicas de las empresas.</span></p>
<p>&nbsp;</p>
<h2><span style="font-weight: 400;">Los partners de AWS como clave del éxito</span></h2>
<p><span style="font-weight: 400;">Al adoptar el AWS Well-Architected Framework, existen obstáculos que pueden obstaculizar el progreso. A pesar de los beneficios del AWS Well-Architected Framework, las empresas pueden enfrentar obstáculos que dificultan su implementación. Por ello, colaborar con un partner de AWS resulta clave para maximizar su aprovechamiento. Además, esto les permite acceder a conocimientos especializados y una serie de otras ventajas:</span></p>
<p>&nbsp;</p>
<ul>
<li style="font-weight: 400;" aria-level="1"><b>Conocimiento experto profundo</b><span style="font-weight: 400;">: los partners de AWS tienen un conocimiento integral de los servicios y arquitecturas de AWS. Están familiarizados con los últimos avances y le ayudarán a crear un entorno de nube preparado para el futuro.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Estrategias de implementación a medida</b><span style="font-weight: 400;">: la implementación no es una solución única para todos, sino que requiere un enfoque individual. Los partners de AWS comprenden los desafíos específicos de cada negocio y ofrecen estrategias personalizadas.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Acceso a los recursos de AWS</b><span style="font-weight: 400;">: los partners de AWS tienen acceso privilegiado a sus recursos, herramientas y opciones de soporte. Esto abarca desde soporte técnico hasta materiales de capacitación y documentación de mejores prácticas.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Aumenta la eficiencia y reduce los costes</b><span style="font-weight: 400;">: con sus muchos años de experiencia en proyectos, los partners de AWS pueden ayudar a aumentar el rendimiento del entorno. Ayudan a identificar y eliminar costos innecesarios.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Mitigación de riesgos</b><span style="font-weight: 400;">: los partners de AWS están familiarizados con los errores comunes al implementar el marco. Ayudan a identificar problemas antes de que tengan un impacto en el negocio.</span></li>
</ul>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">Como partners de AWS desde hace tiempo, </span><a href="https://www.claranet.com/"><span style="font-weight: 400;">Claranet</span></a><span style="font-weight: 400;"> y </span><a href="https://geko.cloud/"><span style="font-weight: 400;">Geko</span></a><span style="font-weight: 400;"> combinamos experiencia y conocimientos en tecnologías de la nube con un profundo entendimiento del ecosistema de AWS. Esto garantiza una optimización eficiente del entorno y una migración sin problemas a la infraestructura existente.</span></p>
<p><span style="font-weight: 400;">¿Quieres aprovechar al máximo las oportunidades del AWS Well-Architected Framework? <a href="https://geko.cloud/es/contacto/">Contacta</a> con nuestro equipo de expertos. </span></p>
<p>La entrada <a href="https://geko.cloud/es/como-migrar-con-aws-well-architected-framework/">Cómo migrar a la nube con AWS Well-Architected Framework</a> se publicó primero en <a href="https://geko.cloud/es/">Geko Cloud</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://geko.cloud/es/como-migrar-con-aws-well-architected-framework/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Parcheado de equipos con Patch Manager</title>
		<link>https://geko.cloud/es/parcheado-de-equipos-con-patch-manager/</link>
					<comments>https://geko.cloud/es/parcheado-de-equipos-con-patch-manager/#respond</comments>
		
		<dc:creator><![CDATA[Geko Cloud]]></dc:creator>
		<pubDate>Thu, 12 Dec 2024 08:17:53 +0000</pubDate>
				<category><![CDATA[Labs]]></category>
		<category><![CDATA[Sin categorizar]]></category>
		<guid isPermaLink="false">https://geko.cloud/?p=9291</guid>

					<description><![CDATA[<p>Parcheado de equipos con Patch Manager Introducción a SSM SSM son las siglas de Systems Manager, un conjunto de herramientas que nos facilitan la vida, no sólo para acceder a las máquinas a través de una consola virtual, sino también para la ejecución de comandos remotos, extraer registros de los equipos, y como no, aplicar [&#8230;]</p>
<p>La entrada <a href="https://geko.cloud/es/parcheado-de-equipos-con-patch-manager/">Parcheado de equipos con Patch Manager</a> se publicó primero en <a href="https://geko.cloud/es/">Geko Cloud</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2 style="text-align: justify;"><span lang="ES-TRAD">Parcheado de equipos con Patch Manager</span></h2>
<h2><strong>Introducción a SSM</strong></h2>
<p>SSM son las siglas de Systems Manager, un conjunto de herramientas que nos facilitan la vida, no sólo para acceder a las máquinas a través de una consola virtual, sino también para la ejecución de comandos remotos, extraer registros de los equipos, y como no, aplicar actualizaciones.</p>
<p>Con la suite de programas de SSM se pueden actualizar no sólo instancias EC2, si no también equipos on-prem, así como máquinas virtuales, equipos on-the-edge (IoT) como raspberrys, etc.</p>
<p>Systems Manager es un servicio que ejecuta un agente en el propio equipo (ec2 / on-prem, etc), del mismo modo que los agentes virtuales en entornos VMware, usados para extraer métricas de las instancias, pero en el caso de SSM la consola de gestión es remota, o lo que es lo mismo, se encuentra dividida en diferentes end-points. Es por ello por lo que el agente debe comunicarse con el servicio de SSM a través de red. Los equipos que quieran ser gestionados, deberán tener no sólo el agente instalado sino también conectividad de red para llegar a los endpoints de AWS SSM.</p>
<p>En este artículo hemos usado un par de instancias EC2 , una Linux y otra Windows:</p>
<p><img decoding="async" class="alignnone wp-image-9293 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen2-1.png" alt="" width="713" height="99" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen2-1.png 713w, https://geko.cloud/wp-content/uploads/2023/01/Imagen2-1-300x42.png 300w" sizes="(max-width: 713px) 100vw, 713px" /></p>
<p>Para la Linux hemos usado una AMI de RedHat, y en el caso del equipo Windows, se trata de la versión 2019.</p>
<p>&nbsp;</p>
<h2><strong>Novedades de AWS Systems Manager (SSM) y Patch Manager 2024</strong></h2>
<p><span style="font-weight: 400;">AWS ha lanzado nuevas actualizaciones que mejoran la automatización y escalabilidad de SSM, haciendo que el parcheado en entornos multi-cloud y on-premise sea aún más eficiente. Entre las novedades destacan:</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><b>Optimizaciones en tiempos de parcheado</b><span style="font-weight: 400;">: Se ha mejorado la velocidad de instalación y actualización de parches, lo que reduce significativamente las ventanas de mantenimiento.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Compatibilidad ampliada</b><span style="font-weight: 400;">: AWS Systems Manager ahora soporta un mayor número de sistemas operativos, permitiendo gestionar más entornos desde una sola interfaz.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Actualización automática de agentes</b><span style="font-weight: 400;">: Una nueva funcionalidad permite actualizar el agente SSM de manera automática, garantizando que las máquinas gestionadas siempre operen con la versión más segura y eficiente del software.</span></li>
</ul>
<p>&nbsp;</p>
<h2><strong>Role para SSM</strong></h2>
<p>Para que el equipo pueda comunicarse con SSM, es necesario disponer de un role. Por ello vamos a generar un “service role” nuevo, accediendo al apartado IAM y seleccionado la opción “Roles” y clicando en el botón “Create role”:</p>
<p><img decoding="async" class="alignnone wp-image-9296 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen3-1.png" alt="" width="694" height="307" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen3-1.png 694w, https://geko.cloud/wp-content/uploads/2023/01/Imagen3-1-300x133.png 300w" sizes="(max-width: 694px) 100vw, 694px" /></p>
<p>Seleccionamos como “Trusted entity” el “AWS Service”, y abajo en el apartado “Use case”, el servicio EC2. Seleccionamos siguiente y añadimos las políticas que son necesarias:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9298 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen4m-1.png" alt="" width="452" height="105" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen4m-1.png 452w, https://geko.cloud/wp-content/uploads/2023/01/Imagen4m-1-300x70.png 300w" sizes="(max-width: 452px) 100vw, 452px" /></p>
<p>Para ello introducir en la casilla de búsqueda el nombre “ssm”, y escoger entre las opciones que aparecen la “AmazonSSMManagedInstanceCore”</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9300 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen5l.png" alt="" width="567" height="344" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen5l.png 567w, https://geko.cloud/wp-content/uploads/2023/01/Imagen5l-300x182.png 300w" sizes="(max-width: 567px) 100vw, 567px" /></p>
<p>Asignamos el nombre que deseemos y nos aseguramos de que en el apartado de “trusted entities”, el valor de “principal” seleccionado es el servicio “ec2.amazonaws.com”, servicio con el que se va a invocar este role y al que estamos dando permiso:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9303 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen6z-1.png" alt="" width="715" height="256" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen6z-1.png 715w, https://geko.cloud/wp-content/uploads/2023/01/Imagen6z-1-300x107.png 300w" sizes="(max-width: 715px) 100vw, 715px" /></p>
<p>&nbsp;</p>
<p>El siguiente paso será añadir este role a las instancias. El modo más sencillo será marcar desde el panel la instancia a modificar, tal como se muestra en la imagen.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9306 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen7a-1.png" alt="" width="691" height="171" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen7a-1.png 691w, https://geko.cloud/wp-content/uploads/2023/01/Imagen7a-1-300x74.png 300w" sizes="(max-width: 691px) 100vw, 691px" /></p>
<p>En el desplegable asignarle el role que acabamos de crear.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9308 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen8s-1.png" alt="" width="567" height="311" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen8s-1.png 567w, https://geko.cloud/wp-content/uploads/2023/01/Imagen8s-1-300x165.png 300w" sizes="(max-width: 567px) 100vw, 567px" /></p>
<p>&nbsp;</p>
<h2><strong>Nuevas amenazas de seguridad y la importancia del parcheado</strong></h2>
<p><span style="font-weight: 400;">En 2023, una serie de vulnerabilidades críticas, como la CVE-2023-30799, demostraron cómo los ataques a sistemas desactualizados pueden comprometer rápidamente la seguridad de las empresas. Esto subraya la importancia de mantener todos los equipos parcheados para mitigar riesgos. Los ciberataques que explotan vulnerabilidades en sistemas operativos, software empresarial y aplicaciones no solo generan pérdidas económicas, sino también daño a la reputación de la empresa.</span></p>
<p><span style="font-weight: 400;">La gestión de parches se convierte en una primera línea de defensa. Tener un sistema centralizado como AWS Patch Manager garantiza que no se pasen por alto actualizaciones críticas, eliminando puntos débiles.</span></p>
<h2><strong>Mejores prácticas en el parcheado de equipos</strong></h2>
<p><span style="font-weight: 400;">Hoy en día, la automatización inteligente y el uso de herramientas basadas en inteligencia artificial son tendencias clave en la gestión de parches. Algunas de las mejores prácticas incluyen:</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><b>Priorizar parches con IA</b><span style="font-weight: 400;">: Herramientas basadas en inteligencia artificial pueden analizar vulnerabilidades y recomendar qué parches son más urgentes, reduciendo la sobrecarga operativa y minimizando el riesgo de ataques.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Simulación de vulnerabilidades</b><span style="font-weight: 400;">: Realizar simulaciones para entender cómo una vulnerabilidad podría impactar a la organización permite priorizar la aplicación de parches. Las organizaciones pueden usar estas simulaciones para ajustar sus cronogramas de parcheado, asegurándose de que los sistemas críticos están protegidos primero.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Pruebas en entornos de desarrollo</b><span style="font-weight: 400;">: La implementación de </span><i><span style="font-weight: 400;">canary testing</span></i><span style="font-weight: 400;"> es ahora más común. Con esta técnica, los parches se aplican primero en entornos de prueba antes de su implementación en producción, reduciendo el riesgo de interrumpir servicios críticos.</span></li>
</ul>
<p><b>Automatización de la aprobación de parches</b><span style="font-weight: 400;">: Para evitar el impacto negativo de parches no probados, se puede configurar la aprobación automática escalonada, donde los parches se aprueban para ciertos entornos (como desarrollo o pruebas) antes de ser aplicados en producción.</span></p>
<h2><strong>Instancias EC2 / managed nodes</strong></h2>
<p><span style="font-weight: 400;">En nuestro caso, hemos desplegado un equipo RedHat para la variedad Linux por un motivo: las AMI oficiales distribuidas por RedHat no llevan incorporado el agente, mientras que las AMI de Windows distribuidas por Microsoft o las AMI de Amazon Linux sí lo tienen.</span></p>
<p><span style="font-weight: 400;">La nueva funcionalidad de </span><b>actualización automática de agentes</b><span style="font-weight: 400;"> permite que los equipos gestionados siempre cuenten con la última versión del agente SSM, lo cual mejora la eficiencia del parcheado y la seguridad de los nodos.</span></p>
<p><span style="font-weight: 400;">En caso de que nuestra distribución no tenga el agente, se puede instalar manualmente. Puedes revisar el siguiente enlace para ver qué distribuciones están soportadas:</span></p>
<p><a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-manual-agent-install.html"><span style="font-weight: 400;">Manual de instalación del agente SSM</span></a></p>
<p>&nbsp;</p>
<h2><strong>Fleet Manager</strong></h2>
<p>Ahora que ya tenemos los equipos con el agente de SSM instalado y con el “service role” asociado, podríamos acceder al apartado de “fleet manager”, lugar donde se visualiza a modo de registro los equipos gestionados con SSM, tanto equipos EC2, como equipos on-prem, etc. Esta herramienta está dentro de las opciones de SSM:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9310 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen9-1.png" alt="" width="183" height="502" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen9-1.png 183w, https://geko.cloud/wp-content/uploads/2023/01/Imagen9-1-109x300.png 109w" sizes="(max-width: 183px) 100vw, 183px" /></p>
<p>&nbsp;</p>
<p>Los equipos gestionados a través de SSM, reciben el nombre de nodos, es por ello por lo que, en la vista de este servicio, los equipos registrados se identifican en la columna de “Node Id”:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9312 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen10-1.png" alt="" width="706" height="111" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen10-1.png 706w, https://geko.cloud/wp-content/uploads/2023/01/Imagen10-1-300x47.png 300w" sizes="(max-width: 706px) 100vw, 706px" /></p>
<p>&nbsp;</p>
<p>Los equipos que aparecen son los que están registrados en la región actual. Tener en cuenta que AWS SSM es un servicio regional, eso quiere decir que si tenemos una cuenta en varias regiones, será necesario repetir el proceso descrito en este artículo para cada región de manera independiente.</p>
<p>Como todo software, el agente de SSM recibe constantes mejoras. Es por ello recomendable habilitar en el apartado “settings”, la actualización automática:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9316 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen11-1.png" alt="" width="680" height="178" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen11-1.png 680w, https://geko.cloud/wp-content/uploads/2023/01/Imagen11-1-300x79.png 300w" sizes="(max-width: 680px) 100vw, 680px" /></p>
<p>&nbsp;</p>
<h2><strong>Impacto en cumplimiento normativo</strong></h2>
<p><span style="font-weight: 400;">El parcheado constante también es fundamental para cumplir con normativas de seguridad como GDPR y las nuevas regulaciones de protección de datos. Empresas de todo el mundo deben asegurarse de que sus sistemas estén protegidos contra vulnerabilidades que podrían exponer información confidencial. El mantenimiento regular de sistemas y la capacidad de auditar el historial de parches aplicados se han vuelto componentes clave en auditorías de cumplimiento.</span></p>
<h2><strong>Tendencias recientes en ciberseguridad y parcheado</strong></h2>
<p><span style="font-weight: 400;">El enfoque </span><b>Zero Trust</b><span style="font-weight: 400;"> ha ganado popularidad como estrategia de seguridad. Este modelo asume que ninguna entidad, dentro o fuera de la red corporativa, es de confianza, lo que hace que el parcheado continuo y la actualización de todos los sistemas sea aún más crucial. Con la federación de entornos multinube y la dispersión de recursos en diferentes plataformas, Patch Manager facilita la gestión centralizada de parches en un ecosistema diverso.</span></p>
<h2><strong>Baselines</strong></h2>
<p>Las “baselines” son manifiestos que definen un determinado nivel de cumplimiento con una política de seguridad. En el servicio de “patch manager” existen diferentes “baselines”, pero es muy recomendable crear propia una con las configuraciones que nos interese. Es un proceso realmente sencillo.</p>
<p>Para acceder al apartado de las “baselines”, ir a “Node Management” y seleccionar la opción “Patch Manager”:</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-9318" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen12-1.png" alt="" width="174" height="279" /></p>
<p>Y en la pantalla que aparece acceder al botón “View predifined baselines”</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9320 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen13-1.png" alt="" width="641" height="229" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen13-1.png 641w, https://geko.cloud/wp-content/uploads/2023/01/Imagen13-1-300x107.png 300w" sizes="(max-width: 641px) 100vw, 641px" /></p>
<p>&nbsp;</p>
<p>En la vista de “baselines”, aparecen muchísimas, cada una para un sistema operativo diferente. Es en este momento cuando vamos a crear una personalizada. Para ello clicar sobre el botón “Create patch baseline”</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9322 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen14-1.png" alt="" width="567" height="119" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen14-1.png 567w, https://geko.cloud/wp-content/uploads/2023/01/Imagen14-1-300x63.png 300w" sizes="(max-width: 567px) 100vw, 567px" /></p>
<p>&nbsp;</p>
<p>En el nuevo apartado, seleccionar un nombre y una familia de SO que va a estar asociada a la “baseline”:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9324 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen15-1.png" alt="" width="567" height="299" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen15-1.png 567w, https://geko.cloud/wp-content/uploads/2023/01/Imagen15-1-300x158.png 300w" sizes="(max-width: 567px) 100vw, 567px" /></p>
<p>&nbsp;</p>
<p>Definir la versión del SO, así como otros aspectos que definirán el nivel de cumplimiento:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9327 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen17-1.png" alt="" width="507" height="398" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen17-1.png 507w, https://geko.cloud/wp-content/uploads/2023/01/Imagen17-1-300x236.png 300w" sizes="(max-width: 507px) 100vw, 507px" /></p>
<p>Hay opciones como el “auto approval”, que permiten aprobar la instalación de una determinada actualización, al cabo de unos días de su publicación, o a partir de una determinada fecha, evitando así que parches día 0, no muy testeados, pudieran romper la estabilidad de los equipos. Incluso esto permitiría tener equipos de PRE o TEST donde instalar parches días antes que en los equipos de producción a modo de “canary testing”.</p>
<p>Igual de importante es el apartado de excepciones de paquetes. Con ello se evita la instalación de determinados paquetes que pueden romper el servicio (sistemas con kernels compilados a mano, paquetes Windows que no se llevan bien con algún otro programa de terceros, etc).</p>
<p>Para añadir excepciones debe usarse el siguiente formato:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9330 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen18-1.png" alt="" width="715" height="136" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen18-1.png 715w, https://geko.cloud/wp-content/uploads/2023/01/Imagen18-1-300x57.png 300w" sizes="(max-width: 715px) 100vw, 715px" /></p>
<p>En este momento ya tenemos una “baseline” propia. Cuando las “baselines” son propias, para encontrarlas luego, hay que especificar que el propietario somos nosotros. Para ello en el buscador de baselines, especificar “Owner: Self” tal como se muestra a continuación:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9332 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen19-1.png" alt="" width="713" height="113" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen19-1.png 713w, https://geko.cloud/wp-content/uploads/2023/01/Imagen19-1-300x48.png 300w" sizes="(max-width: 713px) 100vw, 713px" /></p>
<p>De lo contrario la vista por defecto sólo muestra “baselines” estándar provisionadas por AWS.</p>
<p>&nbsp;</p>
<h2><strong>Patch groups</strong></h2>
<p>Una vez tenemos definidas las “baselines”, vamos a definir los “patch groups”. Un “patch group” establece la relación entre las “baselines” y los equipos sobre los que se van a aplicar, en función del valor de un tag que especificaremos más tarde en los equipos.</p>
<p>Para crear un “patch group”, es muy sencillo, sólo tenemos que seleccionar la “baseline” que acabamos de crear, desplegamos el menú “Actions” y seleccionamos la opción “Modify patch groups”</p>
<p>Se abrirá un apartado para generar los patch groups, introduciendo un nombre. En nuestro caso “Windows_Production”</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9334 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen21-1.png" alt="" width="701" height="341" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen21-1.png 701w, https://geko.cloud/wp-content/uploads/2023/01/Imagen21-1-300x146.png 300w" sizes="(max-width: 701px) 100vw, 701px" /></p>
<p>Una vez introducido el nombre, fijándonos en respetar la nomenclatura, clicamos en el botón “Add” y cerramos el asistente.</p>
<p>&nbsp;</p>
<h2><strong>Tags</strong></h2>
<p>Los tags son metadatos que nos ayudan a identificar a quien pertenece un recurso, una unidad de imputación de costes, etc. En este caso, con los tags también podemos asociar los nodos a los “patch groups” correspondientes. Para ello se usa siempre el mismo valor de tag “Patch Group”. <strong>Ojo!</strong> Es “case sensitive”</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9336 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen22-1.png" alt="" width="679" height="215" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen22-1.png 679w, https://geko.cloud/wp-content/uploads/2023/01/Imagen22-1-300x95.png 300w" sizes="(max-width: 679px) 100vw, 679px" /></p>
<p>Vamos al apartado de las instancias, seleccionamos una de ellas, y editamos el apartado de tags para añadir el de “Patch Group”:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9338 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen23-1.png" alt="" width="678" height="294" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen23-1.png 678w, https://geko.cloud/wp-content/uploads/2023/01/Imagen23-1-300x130.png 300w" sizes="(max-width: 678px) 100vw, 678px" /></p>
<p>Si al introducir el tag, nos encontráramos con un error de tipo “’Patch Group’ is not a valid tag key.”</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9340 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen24-1.png" alt="" width="688" height="103" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen24-1.png 688w, https://geko.cloud/wp-content/uploads/2023/01/Imagen24-1-300x45.png 300w" sizes="(max-width: 688px) 100vw, 688px" /></p>
<p>Es necesario deshabilitar la check box de metadata tagging en la configuración de la instancia:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9343 size-medium" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen25-1-300x263.png" alt="" width="300" height="263" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen25-1-300x263.png 300w, https://geko.cloud/wp-content/uploads/2023/01/Imagen25-1.png 520w" sizes="(max-width: 300px) 100vw, 300px" /></p>
<p>&nbsp;</p>
<p>Dejar la casilla siguiente deseleccionada y volver a probar a añadir el tag en el equipo.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9345 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen26-1.png" alt="" width="567" height="198" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen26-1.png 567w, https://geko.cloud/wp-content/uploads/2023/01/Imagen26-1-300x105.png 300w" sizes="(max-width: 567px) 100vw, 567px" /></p>
<h2><strong>Maintainance Windows</strong></h2>
<p>Recapitulemos. En este momento ya tenemos la instancia con el agente de SSM instalado y el role para interactuar con el servicio. Hemos creado una “baseline” propia, y luego la hemos asignado a unos “patch groups”. Finalmente hemos “tageado” las instancias con un tag que apunta directamente al “pach group” que nos interesa.</p>
<p>Las ventanas de mantenimiento son un apartado importante porque no sólo contiene la calendarización de las actualizaciones, sino también el listado de ejecuciones.</p>
<p>Vamos a proceder creando una ventana de mantenimiento a través del siguiente apartado:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9347 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen27-1.png" alt="" width="567" height="241" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen27-1.png 567w, https://geko.cloud/wp-content/uploads/2023/01/Imagen27-1-300x128.png 300w" sizes="(max-width: 567px) 100vw, 567px" /></p>
<p>Debemos introducir el nombre para la ventana, y fijar el cron. Se pueden establecer expresiones de cron con la nomenclatura típica o bien seleccionando las preestablecidas de cada hora o cada día.</p>
<p>Los valores de “Duration” y “Stop initiating task”, son obligatorios, y es recomendable dejarlos con unos valores como los siguientes:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9349 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen28-1.png" alt="" width="421" height="201" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen28-1.png 421w, https://geko.cloud/wp-content/uploads/2023/01/Imagen28-1-300x143.png 300w" sizes="(max-width: 421px) 100vw, 421px" /></p>
<p>Finalmente escoger zona horaria para hacer coincidir los horarios de la ventana con la que nos interese.</p>
<p>Al terminar tendremos un listado de las ventanas programadas, y datos interesantes como su próxima ejecución:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9351 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen29-1.png" alt="" width="696" height="87" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen29-1.png 696w, https://geko.cloud/wp-content/uploads/2023/01/Imagen29-1-300x38.png 300w" sizes="(max-width: 696px) 100vw, 696px" /></p>
<p>&nbsp;</p>
<h2><strong>Configuración del parcheado</strong></h2>
<p>En este momento vamos a realizar el proceso que aglutina todos los pasos anteriores, y que capacita a “patch manager” para realizar las actualizaciones de los sistemas. Para ello acceder al apartado de “Patch Manager” y clicar en “Configure Patching”</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9355 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen30-1.png" alt="" width="684" height="291" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen30-1.png 684w, https://geko.cloud/wp-content/uploads/2023/01/Imagen30-1-300x128.png 300w" sizes="(max-width: 684px) 100vw, 684px" /></p>
<p>Escoger los “patch groups” que se quieran actualizar:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9357 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen31-1.png" alt="" width="694" height="292" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen31-1.png 694w, https://geko.cloud/wp-content/uploads/2023/01/Imagen31-1-300x126.png 300w" sizes="(max-width: 694px) 100vw, 694px" /></p>
<p>Escoger la ventana de mantenimiento que se ha creado en el paso anterior:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9359 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen32-1.png" alt="" width="671" height="299" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen32-1.png 671w, https://geko.cloud/wp-content/uploads/2023/01/Imagen32-1-300x134.png 300w" sizes="(max-width: 671px) 100vw, 671px" /></p>
<p>Y dejar la operación que más se ajuste a lo que queremos hacer. En este caso vamos a escoger “Scan and Install”</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9361 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen33-1.png" alt="" width="674" height="143" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen33-1.png 674w, https://geko.cloud/wp-content/uploads/2023/01/Imagen33-1-300x64.png 300w" sizes="(max-width: 674px) 100vw, 674px" /></p>
<p>En este momento, en el “dashboard” de de “Patch Manager”, deberíamos tener una vista de equipos pendientes de actualizar. Los valores en este apartado irán cambiando en función de si hay paquetes pendientes, fallos en las actualizaciones, etc.</p>
<p>Para poder realizar un seguimiento de las acciones realizadas, las podemos consultar en el “Run Command”</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-9363" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen34-1.png" alt="" width="191" height="220" /></p>
<p>En este apartado hay dos pestañas. Una con los comandos en ejecución en este momento, que saldrán con un reloj al lado:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9365 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen35-1.png" alt="" width="689" height="104" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen35-1.png 689w, https://geko.cloud/wp-content/uploads/2023/01/Imagen35-1-300x45.png 300w" sizes="(max-width: 689px) 100vw, 689px" /></p>
<p>Y otra pestaña con el histórico de acciones:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9367 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen36-1.png" alt="" width="686" height="187" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen36-1.png 686w, https://geko.cloud/wp-content/uploads/2023/01/Imagen36-1-300x82.png 300w" sizes="(max-width: 686px) 100vw, 686px" /></p>
<p>Si en el proceso de instalación de actualizaciones, hay algún paquete marcado como reinicio necesario, el equipo se reiniciará inmediatamente. Tener esto en cuenta para establecer las ventanas de acuerdo con las necesidades del negocio:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9369 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen37-1.png" alt="" width="676" height="471" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen37-1.png 676w, https://geko.cloud/wp-content/uploads/2023/01/Imagen37-1-300x209.png 300w" sizes="(max-width: 676px) 100vw, 676px" /></p>
<p>Tras la instalación de los parches, y los reinicios en caso de haberlos, en el “dashboard” de “Patch Manager” saldrán ahora las instancias como conformes de acuerdo a las “baselines” establecidas:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9371 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen38-1.png" alt="" width="665" height="347" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen38-1.png 665w, https://geko.cloud/wp-content/uploads/2023/01/Imagen38-1-300x157.png 300w" sizes="(max-width: 665px) 100vw, 665px" /></p>
<p>&nbsp;</p>
<h2><strong>Cloudwatch</strong></h2>
<p>En la consola del histórico de comandos, podemos ver las tareas ejecutadas, como en este caso. Si clicamos sobre el id de la tarea, podemos acceder a su detalle:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9373 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen39-1.png" alt="" width="666" height="100" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen39-1.png 666w, https://geko.cloud/wp-content/uploads/2023/01/Imagen39-1-300x45.png 300w" sizes="(max-width: 666px) 100vw, 666px" /></p>
<p>Dentro podemos ver los equipos sobre los que se ha ejecutado la acción, y podemos , seleccionando uno de esos equipos, ver el detalle de las operaciones. Para ello seleccionar y clicar sobre el botón “View output”</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9375 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen40-1.png" alt="" width="686" height="206" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen40-1.png 686w, https://geko.cloud/wp-content/uploads/2023/01/Imagen40-1-300x90.png 300w" sizes="(max-width: 686px) 100vw, 686px" /></p>
<p>&nbsp;</p>
<p>Las operaciones van probando todas las plataformas, por ello primero intentarán ejecutar el parcheado sobre un Windows, luego sobre un Linux y finalmente sobre un MacOS. Por ello para ver el estado de las actualizaciones, escogemos la plataforma del equipo que estamos consultando.</p>
<p>En la ventana “Output” veremos el registro, pero a menudo este se trunca por ser excesivamente largo:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9378 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen41-1.png" alt="" width="672" height="246" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen41-1.png 672w, https://geko.cloud/wp-content/uploads/2023/01/Imagen41-1-300x110.png 300w" sizes="(max-width: 672px) 100vw, 672px" /></p>
<p>Si queremos consultar esos datos podemos enviarlo a un “log group” de Cloudwatch. Para ello, primero vamos a CloudWatch y creamos un “log group”:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9380 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen42-1.png" alt="" width="491" height="398" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen42-1.png 491w, https://geko.cloud/wp-content/uploads/2023/01/Imagen42-1-300x243.png 300w" sizes="(max-width: 491px) 100vw, 491px" /></p>
<p>&nbsp;</p>
<p>Ponemos un nombre y especificamos el periodo de retención.</p>
<p>El segundo paso es modificar el role de la máquina para que tenga permisos para escribir en Cloudwatch, por ello habrá que añadir una “in-line policy” como esta:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9382 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen43-1.png" alt="" width="567" height="415" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen43-1.png 567w, https://geko.cloud/wp-content/uploads/2023/01/Imagen43-1-300x220.png 300w" sizes="(max-width: 567px) 100vw, 567px" /></p>
<p>Le ponemos un nombre a esta “policy” y la guardamos:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9384 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen44-1.png" alt="" width="689" height="197" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen44-1.png 689w, https://geko.cloud/wp-content/uploads/2023/01/Imagen44-1-300x86.png 300w" sizes="(max-width: 689px) 100vw, 689px" /></p>
<p>Quedando el role del equipo como:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9386 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen45-1.png" alt="" width="673" height="428" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen45-1.png 673w, https://geko.cloud/wp-content/uploads/2023/01/Imagen45-1-300x191.png 300w" sizes="(max-width: 673px) 100vw, 673px" /></p>
<p>&nbsp;</p>
<p>Volvemos a system manager, apartado “Mantainance Window”  y dentro de las tareas (marco la tarea y selecciono <em>edit</em>):</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9388 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen46-1.png" alt="" width="695" height="152" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen46-1.png 695w, https://geko.cloud/wp-content/uploads/2023/01/Imagen46-1-300x66.png 300w" sizes="(max-width: 695px) 100vw, 695px" /></p>
<p>Y en el apartado “Output Options” , escribir el nombre del log group a donde lo vamos a enviar:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9390 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen47-1.png" alt="" width="596" height="250" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen47-1.png 596w, https://geko.cloud/wp-content/uploads/2023/01/Imagen47-1-300x126.png 300w" sizes="(max-width: 596px) 100vw, 596px" /></p>
<p>&nbsp;</p>
<p>Guardamos los cambios, y a partir de ahora al seleccionar el output de las tareas, veremos que nos aparece un enlace hacia Cloudwatch:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9392 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen48.png" alt="" width="667" height="292" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen48.png 667w, https://geko.cloud/wp-content/uploads/2023/01/Imagen48-300x131.png 300w" sizes="(max-width: 667px) 100vw, 667px" /></p>
<p>Y si consultamos ese enlace, nos llevará a la información de salida, pero ya sin truncar:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9394 size-full" src="https://geko.cloud/wp-content/uploads/2023/01/Imagen49-1.png" alt="" width="680" height="296" srcset="https://geko.cloud/wp-content/uploads/2023/01/Imagen49-1.png 680w, https://geko.cloud/wp-content/uploads/2023/01/Imagen49-1-300x131.png 300w" sizes="(max-width: 680px) 100vw, 680px" /></p>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">Con las mejoras recientes de AWS Systems Manager y Patch Manager, la gestión de parches se ha vuelto más eficaz, abarcando más sistemas operativos y mejorando la seguridad a través de la actualización automática de agentes. Estas mejoras, combinadas con buenas prácticas y la automatización, permiten a las organizaciones mitigar riesgos de seguridad y cumplir con las normativas más estrictas, garantizando la continuidad de sus operaciones.</span><span style="font-weight: 400;"> </span></p>
<p><span style="font-weight: 400;">¿Quieres saber más? </span><a href="https://geko.cloud/es/contacto/"><span style="font-weight: 400;">Contacta</span></a><span style="font-weight: 400;"> con nuestro equipo</span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>La entrada <a href="https://geko.cloud/es/parcheado-de-equipos-con-patch-manager/">Parcheado de equipos con Patch Manager</a> se publicó primero en <a href="https://geko.cloud/es/">Geko Cloud</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://geko.cloud/es/parcheado-de-equipos-con-patch-manager/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Cómo gestionar un cluster Kubernetes desde una perspectiva FinOps</title>
		<link>https://geko.cloud/es/cluster-kubernetes/</link>
					<comments>https://geko.cloud/es/cluster-kubernetes/#respond</comments>
		
		<dc:creator><![CDATA[Geko Cloud]]></dc:creator>
		<pubDate>Thu, 31 Oct 2024 09:03:07 +0000</pubDate>
				<category><![CDATA[Labs]]></category>
		<guid isPermaLink="false">https://geko.cloud/?p=9951</guid>

					<description><![CDATA[<p>Para resumir rápidamente un viaje FinOps, debemos centrarnos en tres fases: Información: saber en qué se ha gastado el dinero, es decir, visibilidad/asignación de costes. Optimización: optimizar los costes mediante la reducción de tarifas/estrategia de reducción de escala/&#8230;). Operar: mejora continua y supervisión de su estrategia FinOps, y automatización. &#160; Para cada fase, intentaremos describir [&#8230;]</p>
<p>La entrada <a href="https://geko.cloud/es/cluster-kubernetes/">Cómo gestionar un cluster Kubernetes desde una perspectiva FinOps</a> se publicó primero en <a href="https://geko.cloud/es/">Geko Cloud</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Para resumir rápidamente un viaje FinOps, debemos centrarnos en tres fases:</p>
<ul>
<li style="font-weight: 400;" aria-level="1">Información<span style="font-weight: 400;">: saber en qué se ha gastado el dinero, es decir, visibilidad/asignación de costes.</span></li>
<li style="font-weight: 400;" aria-level="1">Optimización:<span style="font-weight: 400;"> optimizar los costes mediante la reducción de tarifas/estrategia de reducción de escala/&#8230;).</span></li>
<li style="font-weight: 400;" aria-level="1">Operar<span style="font-weight: 400;">: mejora continua y supervisión de su estrategia FinOps, y automatización.</span></li>
</ul>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">Para cada fase, intentaremos describir los conceptos clave y el mejor enfoque, en función del proveedor de cloud (principalmente Amazon Web Services y Microsoft Azure) y del entorno del cluster (producción/no producción).</span></p>
<h2><span style="font-weight: 400;">Informar</span></h2>
<p><span style="font-weight: 400;">En el mundo de Kubernetes y especialmente con los servicios gestionados, </span>asignar costes <span style="font-weight: 400;">puede ser una auténtica pesadilla porque para hacerlo bien hay que tener en cuenta e identificar múltiples recursos: por un lado, respecto a Kubernetes como los pods, pero también a nivel del proveedor Cloud (y teniendo en cuenta costes como balanceador de carga/nodo/almacenamiento/red/&#8230;)</span></p>
<p><span style="font-weight: 400;">La </span>asignación de costes<span style="font-weight: 400;"> es el proceso de dividir facturas y asociar cada parte a un centro de costes, que podría ser una aplicación/departamento/equipo e intentar obtener la mayor precisión posible. De este modo, se obtiene una mayor visibilidad de los costes. En un entorno de nube, esto no es fácil porque algunos recursos se comparten entre muchos centros. Por otro lado, también hay que gestionar descuentos como reservas, ancho de banda de red y muchos otros elementos.</span></p>
<p><span style="font-weight: 400;">Para lograrlo, se utilizan etiquetas para identificar al propietario de los recursos (por ejemplo, aplicación1) y, a continuación, es necesario establecer una </span>estrategia adicional <span style="font-weight: 400;">para asignar los elementos no etiquetados.</span></p>
<p><span style="font-weight: 400;">Además, los proveedores cloud cobran a nivel de host (con la excepción de AWS EKS que se ejecuta en modo Fargate completo y GKE Autopilot), no a nivel de contenedor. Por lo tanto, debe asignar una cantidad determinada de recursos de host (vCPU/Memoria/&#8230;) a cada contenedor y, a continuación, resumirla en función de su estrategia de aplicación de etiquetas. También debes tener en cuenta los «</span>costes compartidos<span style="font-weight: 400;">», como el coste primario de Kubernetes, y los «</span>costes ociosos<span style="font-weight: 400;">» (porcentaje de recursos de host no utilizados). No puedes utilizar el servicio de gestión de costes de un proveedor de nube común, como AWS Cost Explorer o Azure Cost Management, para crear la distribución de costes.</span></p>
<p><span style="font-weight: 400;">Utilizar una </span>herramienta de terceros<span style="font-weight: 400;"> como Cloudhealth podría ser útil en tu tarea de distribución de costes, pero la realidad es que tiene un coste elevado, a menos que puedas utilizar herramientas como</span><a href="https://github.com/kubecost/cost-model"><span style="font-weight: 400;"> Kubecost</span></a><span style="font-weight: 400;"> para obtener una estimación de la distribución de costes (funciona con AWS y GCP).</span></p>
<p>No existe una estrategia única que funcione en todos los casos, tienes que encontrar la que mejor se adapte a tu caso de uso. Estas son algunas de las pautas:</p>
<ol>
<li><span style="font-weight: 400;"> Hay que definir una estrategia de etiquetado. Debe ser la misma que la definida respecto al proveedor de la nube.</span></li>
<li><span style="font-weight: 400;"> Utiliza Kubernetes Labels con tu estrategia de etiquetado definida para la asignación de costes.</span></li>
<li><span style="font-weight: 400;"> Agrupa contenedores mediante espacios de nombres de Kubernetes para simplificar la asignación de costes.</span></li>
</ol>
<p>&nbsp;</p>
<h2><span style="font-weight: 400;">Optimizar</span></h2>
<p><span style="font-weight: 400;">La fase de optimización se centra en los procesos de </span>reducción de costes<span style="font-weight: 400;">. Algunos de ellos pueden aplicarse independientemente del proveedor de la nube, pero otros dependen de especificaciones.</span></p>
<p><span style="font-weight: 400;">Podemos agrupar las optimizaciones en cuatro categorías:</span></p>
<ol>
<li><span style="font-weight: 400;"> Rightsizing: asignar la cantidad adecuada de recursos (vCPU/Memoria) a hosts y pods.</span></li>
<li><span style="font-weight: 400;"> Off-hours: desconectar o reducir recursos durante las noches y los fines de semana.</span></li>
<li><span style="font-weight: 400;"> Spot node: utilizar instancias spot para nodos Kubernetes.</span></li>
<li><span style="font-weight: 400;"> Reserva de nodos: comprar una instancia/máquina virtual (o planes de ahorro para AWS).</span></li>
</ol>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">A modo de guía rápida, te compartimos el siguiente diagrama, en el que puedes encontrar el orden de las optimizaciones recomendadas en función del entorno del cluster (producción o no producción):</span></p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9952 size-full" src="https://geko.cloud/wp-content/uploads/2024/10/cluster-kubernetes.png" alt="" width="899" height="1510" srcset="https://geko.cloud/wp-content/uploads/2024/10/cluster-kubernetes.png 899w, https://geko.cloud/wp-content/uploads/2024/10/cluster-kubernetes-179x300.png 179w, https://geko.cloud/wp-content/uploads/2024/10/cluster-kubernetes-610x1024.png 610w, https://geko.cloud/wp-content/uploads/2024/10/cluster-kubernetes-768x1290.png 768w" sizes="(max-width: 899px) 100vw, 899px" /></p>
<p>&nbsp;</p>
<h3><span style="font-weight: 400;">Redimensionar</span></h3>
<p><span style="font-weight: 400;">El </span>redimensionamiento<span style="font-weight: 400;"> puede realizarse a nivel de pod/contenedor y/o a nivel de host/nodo.</span></p>
<p><span style="font-weight: 400;">Nota: redimensionar significa ajustar las capacidades de los recursos, pero también añadir/eliminar recursos idénticos.</span></p>
<h3><span style="font-weight: 400;">Contenedor</span></h3>
<p><span style="font-weight: 400;">En el mundo de los contenedores, existen varias </span>estrategias de escalado<span style="font-weight: 400;">: Escalado horizontal (HPA)</span></p>
<p><span style="font-weight: 400;">Al igual que un grupo de autoescalado de EC2 o Azure VMSS, el escalado horizontal tiene como objetivo añadir o eliminar recursos (pods en este caso) para mantenerse al día con la carga de trabajo actual.</span></p>
<p><a href="https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/"><span style="font-weight: 400;">Kubernetes Horizontal Pod AutoScaling</span></a><span style="font-weight: 400;"> está diseñado para aplicaciones sin estado, que pueden iniciarse rápidamente para gestionar picos de uso y detenerse con elegancia.</span></p>
<h4><span style="font-weight: 400;">Escalado vertical (VPA)</span></h4>
<p><span style="font-weight: 400;">A diferencia del escalado horizontal, que añade o elimina pods, el escalado vertical puede </span>aumentar o disminuir los recursos de los pods<span style="font-weight: 400;"> (CPU/Memoria) tras un periodo de evaluación.</span></p>
<p><a href="https://github.com/kubernetes/autoscaler/tree/master/vertical-pod-autoscaler"><span style="font-weight: 400;">El autoescalado vertical de Kubernetes</span></a><span style="font-weight: 400;"> es especialmente útil para ajustar las demandas de CPU y memoria al consumo real de los contenedores. A menudo, las demandas de los contenedores están sobredimensionadas, desperdiciando recursos.</span></p>
<p><span style="font-weight: 400;">VPA puede ajustar automáticamente los recursos de los contenedores. Sin embargo, no  es recomendable. Tómalo como consejo y luego ajusta tus definiciones de recursos de Kubernetes. </span></p>
<h4><span style="font-weight: 400;">Redimensionamiento de nodos</span></h4>
<p><span style="font-weight: 400;">Tus pods utilizan recursos de nodo, por lo que cuando utiliza HPA o VPA, es obligatorio poder </span>ajustar su capacidad<span style="font-weight: 400;">.</span></p>
<p><span style="font-weight: 400;">El Kubernetes</span><a href="https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler"> <span style="font-weight: 400;">Cluster Autoscaler</span></a><span style="font-weight: 400;"> puede añadir o eliminar nodos para optimizar la capacidad de los recursos del cluster.</span></p>
<p><span style="font-weight: 400;">El</span><a href="https://kubernetes.io/docs/tasks/run-application/configure-pdb/"> <span style="font-weight: 400;">PodDistruptionBudget</span></a><span style="font-weight: 400;"> es un elemento esencial cuando se activa el cluster Autoscaler para evitar el tiempo de inactividad de la aplicación.</span></p>
<p><span style="font-weight: 400;">Otro concepto importante relativo al escalado de nodos es la </span>coherencia<span style="font-weight: 400;"> con la carga de trabajo. Esto significa que se debe tener en cuenta la relación CPU/memoria de su nodo para evitar tener demasiada memoria o CPU sin utilizar. Por ejemplo, tus pods consumen más memoria que CPU, pero la capacidad de los nodos es más o menos igual. En este caso, estarás malgastando recursos de CPU y aumentando el coste de tu infraestructura. Para evitarlo, cambia el tipo de instancia de nodo a una instancia optimizada para memoria.</span></p>
<p><span style="font-weight: 400;">Para detectar el problema de coherencia con la carga de trabajo, comprueba el «</span>uso solicitado de CPU<span style="font-weight: 400;">» y el «</span>uso solicitado de memoria<span style="font-weight: 400;">». Por ejemplo, tienes un problema si el «uso de CPU» es del 100% mientras que la «demanda de memoria» es solo del 50%.</span></p>
<h3><span style="font-weight: 400;">Fuera de horario</span></h3>
<p><span style="font-weight: 400;">Fuera de hora significa </span>detener o reducir la capacidad de los recursos <span style="font-weight: 400;">por la noche (y los fines de semana). Para los entornos que no son de producción, debería ser la norma.</span></p>
<p><span style="font-weight: 400;">Parar los recursos entre las 8 de la tarde y las 7 de la mañana y los fines de semana tiene una ventaja, y es que reduce el coste en un 60%. </span></p>
<p><a href="https://codeberg.org/hjacobs/kube-downscaler">kube-downscaler</a> es el punto de entrada para clusters de producción y no producción (debe combinarse con<a href="https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler"> Cluster Autoscaler</a> para ahorrar dinero).</p>
<p>Este proyecto de código abierto reducirá los despliegues/clusters estáticos/HPA basándose en políticas definidas (tiempo/no conforme con condiciones de exclusión como la restricción del espacio de nombres).</p>
<h3><span style="font-weight: 400;">Producción</span></h3>
<p><span style="font-weight: 400;">En un entorno de producción, debes asegurarte de que, incluso fuera de las horas de trabajo, tu cluster/aplicación cliente permanece </span>altamente disponible<span style="font-weight: 400;"> y tolerante a fallos:</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Tiene al menos 2 réplicas de cada aplicación crítica.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Distribuidas en al menos 2 nodos.</span></li>
</ul>
<p><span style="font-weight: 400;">No se trata realmente de horas valle, sino de una reducción de escala cuando disminuye la carga del cluster.</span></p>
<p>&nbsp;</p>
<h3><span style="font-weight: 400;">No producción</span></h3>
<p><span style="font-weight: 400;">Un cluster que no sea de producción debería poder escalarse hasta 0 trabajadores, pero con los clusters Kubernetes gestionados, algunos servicios en la nube tienen </span>limitaciones <span style="font-weight: 400;">(ver más abajo).</span></p>
<blockquote><p><a href="https://github.com/kubecost/cluster-turndown"><span style="font-weight: 400;">cluster-turndown</span></a><span style="font-weight: 400;"> es un proyecto de código abierto que facilita la realización de operaciones fuera de producción. Actualmente, el proyecto es compatible con GKE, EKS y KOPS en AWS.</span></p></blockquote>
<h4><span style="font-weight: 400;">AWS EKS</span></h4>
<p><span style="font-weight: 400;">Puedes reducir el número de trabajadores (grupo administrado o no administrado) a 0, pero no olvides que AWS sigue cobrando por la administración del cluster.</span></p>
<h4><span style="font-weight: 400;">AZURE AKS</span></h4>
<p><span style="font-weight: 400;">Azure AKS es diferente a AWS porque Azure </span>no cobra<span style="font-weight: 400;"> por la gestión del cluster (a menos que añadas la opción uptime SLA.sta opción no tiene sentido para un cluster que no sea de producción), pero no puedes reducir el grupo de nodos por defecto (sistema) a 0.</span></p>
<p><span style="font-weight: 400;">El coste depende del tamaño de la máquina virtual. Para los pools de trabajadores, puedes reducirlos a 0.</span></p>
<h4><span style="font-weight: 400;">Nodo spot </span></h4>
<p><span style="font-weight: 400;">Los Spot Nodes son otra buena forma de reducir el coste de los clusters Kubernetes. En general, las instancias/máquinas virtuales spot son recursos «normales» que se benefician de un </span>descuento significativo<span style="font-weight: 400;">. Pero este descuento tiene un inconveniente: los proveedores de la nube </span>no garantizan la disponibilidad de estos recursos<span style="font-weight: 400;">. Pueden interrumpirse en cualquier momento.</span></p>
<p><span style="font-weight: 400;">Esto significa que las aplicaciones en ejecución deben ser tolerantes a fallos para un entorno de producción (fuera de producción, esto no es obligatorio, pero debes aceptar el riesgo de tiempo de inactividad hasta que un nuevo nodo esté listo).</span></p>
<p><span style="font-weight: 400;">Cada proveedor de nube ofrece una forma de recibir una notificación (API de metadatos local) unos segundos/minutos antes de que el nodo se apague. Esto mitiga el impacto del apagado del nodo.</span></p>
<p><span style="font-weight: 400;">Para utilizar con éxito los nodos spot, es ideal considerar el uso de:</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><a href="https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity"><span style="font-weight: 400;">node affinity y anti-affinity</span></a><span style="font-weight: 400;"> (identificar pods que puedan soportar/desplegarse en nodos spot).</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Kubernetes cluster-autoscaler con la función de</span><a href="https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/expander/priority/readme.md"> <span style="font-weight: 400;">expansión del cluster-autoscaler</span></a><span style="font-weight: 400;"> (para volver automáticamente al tipo bajo demanda si no hay más spots disponibles).</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">la función</span><a href="https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/aws/MixedInstancePolicy.md"> <span style="font-weight: 400;">MixedInstancePolicy de cluster-autoscaler</span></a><span style="font-weight: 400;">  [toma diferentes instancias (deben tener la misma capacidad de CPU y Memoria) para mejorar la disponibilidad de Spots. Exr5.2xlarge/r5a.2xlarge/r5d.2xlarge/r5ad.2xlarge/i3.2xlarge)] &#8211; solo AWS</span></li>
</ul>
<blockquote><p><span style="font-weight: 400;">AWS anunció</span><a href="https://aws.amazon.com/es/about-aws/whats-new/2020/12/amazon-eks-support-ec2-spot-instances-managed-node-groups/?nc1=h_ls"><span style="font-weight: 400;"> la compatibilidad con instancias spot en un grupo de nodos administrados</span></a><span style="font-weight: 400;">. Con esta nueva característica, el drenaje de nodos y la estrategia de instancias spot son gestionados por AWS. Además, ofrece una</span><a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-mixed-instances-groups.html#asg-spot-strategy"><span style="font-weight: 400;">estrategia de asignación de capacidad optimizada</span></a><span style="font-weight: 400;"> y</span><a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html"><span style="font-weight: 400;">reequilibrio de capacidad</span></a><span style="font-weight: 400;">, dos características interesantes para los grupos de Spot AutoScaling.</span></p></blockquote>
<p><span style="font-weight: 400;">Azure tiene algunas limitaciones/condiciones para utilizar los nodos spot:</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">El pool de nodos por defecto (sistema) no admite Spot Nodes (y debe tener al menos 1 VM). </span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">No puede mezclar nodos estándar y nodos spot en el mismo pool de nodos.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Debe crear uno (o más) pool de nodos estándar y otro (o más) pool de nodos spot.</span></li>
</ul>
<p>&nbsp;</p>
<h3><span style="font-weight: 400;">Producción</span></h3>
<p><span style="font-weight: 400;">El consejo más común para utilizar nodos spot en un cluster de producción es </span>distribuir la capacidad de nodos<span style="font-weight: 400;"> entre nodos bajo demanda/estándar y nodos spot para evitar sufrir un apagado completo si los nodos spot no están disponibles. La distribución depende principalmente de las aplicaciones alojadas.</span></p>
<p><span style="font-weight: 400;">Por ejemplo, la distribución podría ser</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">30% Spot &#8211; 70% A la carta/Estándar</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">50% Spot &#8211; 50% A la carta/Estándar</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">70% Spot &#8211; 30% A la carta/Estándar</span></li>
</ul>
<p>&nbsp;</p>
<h3><span style="font-weight: 400;">Fuera de producción</span></h3>
<p><span style="font-weight: 400;">En un entorno fuera de producción, la </span>estrategia de distribución puntual puede ser mucho más agresiva <span style="font-weight: 400;">que en producción, ya que no es necesaria una disponibilidad absoluta. Incluso puede apuntar a la distribución solo con nodos puntuales. En caso contrario, como en un entorno de producción, elige un equilibrio entre bajo demanda/estándar y puntual.</span></p>
<h3><span style="font-weight: 400;">Producción</span></h3>
<p><span style="font-weight: 400;">Para un cluster de producción debes</span> iniciar el proceso de reserva lo antes posible<span style="font-weight: 400;">. Puedes empezar poco a poco reservando solo, por ejemplo, el 10% de tu capacidad e ir reservando más con el tiempo.</span></p>
<h4><span style="font-weight: 400;">AWS</span></h4>
<p><span style="font-weight: 400;">Utilizar AWS Fargate (parcial o totalmente) es una elección fácil, ya que solo los planes de ahorro informático pueden cubrir tanto EC2 como Fargate.</span></p>
<p><span style="font-weight: 400;">Alternativamente, si tienes una </span>mezcla de instancias On-Demand y Spot<span style="font-weight: 400;">, puedes elegir cubrir el 100% de tu On-Demand y si no tienes una instancia Spot, depende de la carga del cluster. </span></p>
<h4><span style="font-weight: 400;">Azure</span></h4>
<p><span style="font-weight: 400;">El punto de partida es comprar máquinas virtuales reservadas para el conjunto de nodos por defecto (sistema). Si tienes una mezcla de instancias Standard y Spot, puedes elegir cubrir el 100% de tu instancia Standard y si no tienes una instancia Spot, depende de la carga del cluster.</span></p>
<blockquote><p><span style="font-weight: 400;">Con la función de cancelación de reservas, puedes ser realmente agresivo en la cobertura de reservas, ya que el punto de equilibrio se alcanza rápidamente (los gastos de cancelación son sólo el 3% de los gastos de reserva restantes). Consulta la</span><a href="https://docs.microsoft.com/en-us/azure/cost-management-billing/reservations/exchange-and-refund-azure-reservations#cancel-exchange-and-refund-policies"> <span style="font-weight: 400;">documentación de Azure</span></a><span style="font-weight: 400;"> para obtener más información.</span></p></blockquote>
<h3><span style="font-weight: 400;">No producción</span></h3>
<h4><span style="font-weight: 400;">AWS</span></h4>
<p><span style="font-weight: 400;">Si no ejecutas tu cluster únicamente con nodos de subasta y no cambias a grupos de 0 nodos durante las noches o los fines de semana, puedes reservar el </span>número mínimo<span style="font-weight: 400;"> de nodos operativos.</span></p>
<h4><span style="font-weight: 400;">Azure</span></h4>
<p><span style="font-weight: 400;">Como no puedes reducir el pool de nodos por defecto (sistema) a 0, puedes adquirir </span>máquinas virtuales<span style="font-weight: 400;"> reservadas para cubrirlos.</span></p>
<p><span style="font-weight: 400;">En el caso de los pools de nodos de trabajo, si los reduces a 0 durante las noches/los fines de semana, no puedes comprar reservas. Como alternativa, puedes reservar el número mínimo de nodos de trabajo.</span></p>
<blockquote><p><span style="font-weight: 400;">Con la función de cancelación de reservas, puedes ser muy agresivo en la cobertura de reservas, ya que el punto de equilibrio se alcanza rápidamente (los gastos de cancelación son sólo el 3% de los gastos de reserva restantes). Consulta la</span><a href="https://docs.microsoft.com/en-us/azure/cost-management-billing/reservations/exchange-and-refund-azure-reservations#cancel-exchange-and-refund-policies"> <span style="font-weight: 400;">documentación de Azure</span></a><span style="font-weight: 400;"> para obtener más información.</span></p></blockquote>
<h3><span style="font-weight: 400;">Particularidades de AWS Fargate</span></h3>
<h4><span style="font-weight: 400;">Obligatorio:</span></h4>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Solo cargas de trabajo interrumpibles.</span></li>
</ul>
<h4><span style="font-weight: 400;">Limitaciones:</span></h4>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Statefulset no soportado (usar EFS para volumen persistente)</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">No está disponible en todas las regiones de AWS</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Solo admite ALB como tipo de balanceador de carga</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Máximo 4vCPU y 30GB de memoria por contenedor</span></li>
</ul>
<h4><span style="font-weight: 400;">Opciones:</span></h4>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Fargate</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Fargate con instancias puntuales</span></li>
</ul>
<h4><span style="font-weight: 400;">Modelo de precios</span></h4>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Por vCPU por hora y por memoria (GB) por hora.</span></li>
</ul>
<h4><span style="font-weight: 400;">Fargate es un buen candidato para:</span></h4>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Clusters muy pequeños</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Pruebas rápidas/POC</span></li>
</ul>
<p>&nbsp;</p>
<h2><span style="font-weight: 400;">Operar</span></h2>
<p><span style="font-weight: 400;">La fase de operaciones permite mejorar continuamente tu estrategia FinOps. Sus controles permiten:</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Cambios en los costes globales</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Cambios en los costes elemento por elemento</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Dar a los desarrolladores los medios para supervisar su uso de Kubernetes y animarles a hacerlo.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Utilizar las últimas funcionalidades del proveedor de Cloud (por ejemplo, disponibilidad de la instancia/vm de nueva generación)</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Comprobar si se pueden aplicar nuevas optimizaciones</span></li>
</ul>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">Esta es una lista no exhaustiva de cosas que hay que hacer/comprobar durante la fase de operaciones, que DEBEN llevarse a cabo en entornos de producción y de no producción.</span></p>
<p><span style="font-weight: 400;">Si quieres saber más sobre recursos útiles relacionados con Kubernetes desde la perspectiva de FinOps, aquí te dejamos nuestras recomendaciones: </span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><a href="https://cloud.google.com/architecture/best-practices-for-running-cost-effective-kubernetes-applications-on-gke"><span style="font-weight: 400;">Mejores prácticas de Google Cloud para ejecutar Kubernetes de forma rentable</span></a></li>
<li style="font-weight: 400;" aria-level="1"><a href="https://www.finops.org/introduction/what-is-finops/"><span style="font-weight: 400;">Libro blanco FinOps para Kubernetes de la FinOps Foundation</span></a></li>
</ul>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">¿Necesitas ayuda? </span><a href="https://geko.cloud/es/contacto/"><span style="font-weight: 400;">Contacta</span></a><span style="font-weight: 400;"> con nuestro equipo.</span></p>
<p>La entrada <a href="https://geko.cloud/es/cluster-kubernetes/">Cómo gestionar un cluster Kubernetes desde una perspectiva FinOps</a> se publicó primero en <a href="https://geko.cloud/es/">Geko Cloud</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://geko.cloud/es/cluster-kubernetes/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>La federación en Kubernetes: qué es, ventajas y casos de uso</title>
		<link>https://geko.cloud/es/federacion-kubernetes/</link>
					<comments>https://geko.cloud/es/federacion-kubernetes/#respond</comments>
		
		<dc:creator><![CDATA[Geko Cloud]]></dc:creator>
		<pubDate>Wed, 23 Oct 2024 09:13:27 +0000</pubDate>
				<category><![CDATA[Labs]]></category>
		<guid isPermaLink="false">https://geko.cloud/?p=9941</guid>

					<description><![CDATA[<p>La federación en Kubernetes es una técnica clave para gestionar y coordinar múltiples clusters de Kubernetes desde un panel centralizado. Es una solución que resulta esencial para arquitecturas distribuidas en diferentes regiones geográficas, brindando alta disponibilidad y una potente capacidad de recuperación ante desastres.  En este artículo, explicaremos cómo funciona la federación en Kubernetes, sus [&#8230;]</p>
<p>La entrada <a href="https://geko.cloud/es/federacion-kubernetes/">La federación en Kubernetes: qué es, ventajas y casos de uso</a> se publicó primero en <a href="https://geko.cloud/es/">Geko Cloud</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><span style="font-weight: 400;">La </span><b>federación en Kubernetes</b><span style="font-weight: 400;"> es una técnica clave para gestionar y coordinar múltiples clusters de Kubernetes desde un panel centralizado. Es una solución que resulta esencial para arquitecturas distribuidas en diferentes regiones geográficas, brindando alta disponibilidad y una potente capacidad de recuperación ante desastres. </span></p>
<p><span style="font-weight: 400;">En este artículo, explicaremos cómo funciona la federación en Kubernetes, sus ventajas, inconvenientes y algunos aspectos técnicos importantes que permiten su implementación.</span></p>
<h3><b>¿Qué es la federación en Kubernetes?</b></h3>
<p><span style="font-weight: 400;">La federación en Kubernetes permite gestionar múltiples clusters a través de un </span><b>panel de control maestro</b><span style="font-weight: 400;">. Esto se logra utilizando un conjunto de </span><b>APIs</b><span style="font-weight: 400;"> que permiten la creación, actualización y eliminación de recursos de manera sincronizada en todos los clusters federados. Una vez que Kubernetes Federation (KubeFed) se instala en el cluster maestro, este proporciona flexibilidad para gestionar clusters distribuidos en diferentes ubicaciones geográficas o incluso en distintas plataformas de nube.</span></p>
<p>&nbsp;</p>
<h3><b>Ventajas de la federación en Kubernetes</b></h3>
<ol>
<li style="font-weight: 400;" aria-level="1"><b>Alta disponibilidad</b><span style="font-weight: 400;">: Los clusters federados permiten distribuir aplicaciones en diferentes regiones. Por ejemplo, si tenemos un cluster en Sudamérica y otro en Europa, los usuarios pueden ser atendidos por el cluster más cercano, lo que mejora la disponibilidad y el rendimiento.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Menor latencia</b><span style="font-weight: 400;">: Al servir las aplicaciones desde el cluster más cercano a los usuarios, se reducen significativamente los tiempos de respuesta.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Despliegue multi-cloud y on-premise</b><span style="font-weight: 400;">: La federación en Kubernetes permite combinar clusters en diferentes proveedores de nube como AWS, Google Cloud, Azure, Alibaba Cloud, e incluso clusters en entornos on-premise (data centers propios), permitiendo una arquitectura híbrida muy flexible.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Disaster Recovery (recuperación ante desastres)</b><span style="font-weight: 400;">: Los clusters pueden replicarse entre sí, de modo que si un cluster falla (por ejemplo, debido a la caída de un data center), las aplicaciones seguirán funcionando a través de otro cluster.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Gestión centralizada</b><span style="font-weight: 400;">: KubeFed permite gestionar los recursos y la infraestructura de todos los clusters desde un único lugar, facilitando el despliegue y la administración de manera más eficiente.</span></li>
</ol>
<p>&nbsp;</p>
<h3><b>Inconvenientes de la federación en Kubernetes</b></h3>
<ol>
<li style="font-weight: 400;" aria-level="1"><b>Complejidad</b><span style="font-weight: 400;">: Al utilizar la federación, la complejidad operativa aumenta. Es necesario gestionar correctamente los objetos federados para evitar errores que puedan afectar a todos los clusters.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Errores globales</b><span style="font-weight: 400;">: Si se comete un error en la definición de un objeto federado, el impacto será a nivel global, afectando a múltiples clusters simultáneamente.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Sobrecarga operativa</b><span style="font-weight: 400;">: Aunque la federación centraliza la gestión, cada cluster sigue teniendo sus propios recursos y componentes, lo que añade una capa adicional de gestión.</span></li>
</ol>
<p>&nbsp;</p>
<h3><b>Aspectos técnicos de la federación en Kubernetes</b></h3>
<h4><b>Estructura de los objetos federados</b></h4>
<p><span style="font-weight: 400;">Un punto clave de la federación es la capacidad de definir y replicar objetos entre diferentes clusters. Los objetos federados se organizan en tres partes principales:</span></p>
<ol>
<li style="font-weight: 400;" aria-level="1"><b>Template</b><span style="font-weight: 400;">: Define los recursos comunes que serán replicados en todos los clusters. Es la base sobre la cual se crea el objeto, por ejemplo, un deployment o un configmap. La sección </span><span style="font-weight: 400;">Template</span><span style="font-weight: 400;"> incluye la especificación del recurso como si fuera un objeto estándar de Kubernetes.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Placement</b><span style="font-weight: 400;">: Esta sección permite especificar en qué clusters será replicado un determinado recurso federado. Podemos decidir que un recurso específico solo se replique en algunos clusters, en lugar de en todos.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>Overrides</b><span style="font-weight: 400;">: Esta es una de las características más potentes de la federación. Permite modificar partes específicas del objeto federado en ciertos clusters. Por ejemplo, podríamos ajustar el número de réplicas de un deployment en un cluster sin que afecte a los demás clusters.</span></li>
</ol>
<h4><b>Ejemplo: Modificación de réplicas</b></h4>
<p><span style="font-weight: 400;">Imagina que tienes un deployment federado con tres réplicas en cada cluster. Con la federación, podrías ajustar el número de réplicas de un cluster específico mediante los </span><em><span style="font-weight: 400;">Overrides</span></em><span style="font-weight: 400;">, por ejemplo, reduciendo el número de réplicas en un cluster de prueba a solo una, mientras que los demás clusters mantendrán las tres réplicas originales.</span></p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9942 size-full" src="https://geko.cloud/wp-content/uploads/2024/10/kubernetes1.png" alt="" width="1176" height="371" srcset="https://geko.cloud/wp-content/uploads/2024/10/kubernetes1.png 1176w, https://geko.cloud/wp-content/uploads/2024/10/kubernetes1-300x95.png 300w, https://geko.cloud/wp-content/uploads/2024/10/kubernetes1-1024x323.png 1024w, https://geko.cloud/wp-content/uploads/2024/10/kubernetes1-768x242.png 768w" sizes="(max-width: 1176px) 100vw, 1176px" /></p>
<p>&nbsp;</p>
<h4><b>Habilitación de APIs y recursos customizados</b></h4>
<p><span style="font-weight: 400;">Por defecto, Kubernetes Federation ofrece un conjunto de APIs federadas listas para usar. Sin embargo, es posible federar recursos adicionales, incluidos los </span><b>Custom Resources</b><span style="font-weight: 400;"> (CRDs). Para habilitar una nueva API federada, simplemente se utiliza el comando:</span></p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9944 size-full" src="https://geko.cloud/wp-content/uploads/2024/10/kubernetes-2.png" alt="" width="1181" height="175" srcset="https://geko.cloud/wp-content/uploads/2024/10/kubernetes-2.png 1181w, https://geko.cloud/wp-content/uploads/2024/10/kubernetes-2-300x44.png 300w, https://geko.cloud/wp-content/uploads/2024/10/kubernetes-2-1024x152.png 1024w, https://geko.cloud/wp-content/uploads/2024/10/kubernetes-2-768x114.png 768w" sizes="(max-width: 1181px) 100vw, 1181px" /></p>
<p><span style="font-weight: 400;">Esto habilita la federación para ese tipo de recurso, permitiendo su gestión en todos los clusters federados.</span></p>
<p>&nbsp;</p>
<h3><b>Casos de uso de la federación en Kubernetes</b></h3>
<h4><b>Despliegue multi-regional</b></h4>
<p><span style="font-weight: 400;">En arquitecturas de alta disponibilidad, la federación en Kubernetes permite desplegar aplicaciones en clusters distribuidos por diferentes continentes. Por ejemplo, un e-commerce global podría tener sus aplicaciones replicadas en clusters en América, Europa y Asia, permitiendo un servicio óptimo para los usuarios locales.</span></p>
<h4><b>Disaster recovery</b></h4>
<p><span style="font-weight: 400;">La capacidad de replicar recursos federados en diferentes clusters es especialmente útil para escenarios de recuperación ante desastres. Si un data center falla, la aplicación puede seguir funcionando en otro cluster sin interrupciones, garantizando la continuidad del negocio.</span></p>
<h4><b>Personalización de despliegues</b></h4>
<p><span style="font-weight: 400;">Mediante el uso de los </span><b>Overrides</b><span style="font-weight: 400;">, podemos personalizar los despliegues para que cada cluster tenga características específicas. Por ejemplo, podríamos querer que un cluster en producción tenga un número mayor de réplicas que uno en un entorno de desarrollo o pruebas.</span></p>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">La federación en Kubernetes es una herramienta poderosa para gestionar múltiples clusters distribuidos geográficamente o en diferentes nubes. A pesar de la complejidad añadida, las ventajas en cuanto a alta disponibilidad, recuperación ante desastres y gestión centralizada la hacen una solución ideal para organizaciones que necesitan operar en múltiples regiones o requieren una infraestructura distribuida robusta.</span></p>
<p><span style="font-weight: 400;">¿Necesitas ayuda? </span><a href="https://geko.cloud/es/contacto/"><span style="font-weight: 400;">Contacta</span></a><span style="font-weight: 400;"> con nuestro equipo.</span></p>
<p>&nbsp;</p>
<p>La entrada <a href="https://geko.cloud/es/federacion-kubernetes/">La federación en Kubernetes: qué es, ventajas y casos de uso</a> se publicó primero en <a href="https://geko.cloud/es/">Geko Cloud</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://geko.cloud/es/federacion-kubernetes/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
