<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Héctor Fernandez |  Serverless Advocate 🥑 | Podcast Cloud para Todos]]></title><description><![CDATA[Me encanta ayudar a las personas a 🚀crecer en el mundo cloud. Sin importar el nivel que tengas, espero que el contenido sea de relevancia.
Sin importat si estas empezando o no]]></description><link>https://blog.hectorfernandez.dev</link><image><url>https://cdn.hashnode.com/res/hashnode/image/upload/v1699134252721/hb9NrrqoR.png</url><title>Héctor Fernandez |  Serverless Advocate 🥑 | Podcast Cloud para Todos</title><link>https://blog.hectorfernandez.dev</link></image><generator>RSS for Node</generator><lastBuildDate>Tue, 15 Sep 2026 12:40:34 GMT</lastBuildDate><atom:link href="https://blog.hectorfernandez.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Ephemeral environments ¿Cómo crearlos?]]></title><description><![CDATA[Si estás en el mundo del desarrollo de software de seguro te ha pasado en alguna oportunidad que fantaseas con tener una copia de producción para poder hacer tus pruebas y asegurarse que la integración funciona complementamente.
No estás solo/a mí ta...]]></description><link>https://blog.hectorfernandez.dev/ephemeral-environments-como-crearlos</link><guid isPermaLink="true">https://blog.hectorfernandez.dev/ephemeral-environments-como-crearlos</guid><category><![CDATA[Cloud]]></category><category><![CDATA[Developer]]></category><category><![CDATA[serverless]]></category><dc:creator><![CDATA[Hector Fernandez]]></dc:creator><pubDate>Tue, 20 Feb 2024 22:19:56 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1708466849142/790f0826-1d6a-4343-b4a5-fe1f03a8e263.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Si estás en el mundo del desarrollo de software de seguro te ha pasado en alguna oportunidad que fantaseas con tener una copia de producción para poder hacer tus pruebas y asegurarse que la integración funciona complementamente.</p>
<p>No estás solo/a mí también me pasa, y es por eso que hoy quiero contarte cómo puedes hacer para estar un paso más cerca de tener tu propio ambiente de desarrollo "production like" sin necesidad de estar dependiendo de terceros.</p>
<h2 id="heading-que-es-un-ambiente-efimero-o-temporal-ephemeral-environments">¿Qué es un ambiente efímero o temporal (Ephemeral environments)?</h2>
<p>Primero lo primero, son ambientes que se crean para <strong>una única finalidad</strong> (desarrollo, QA, e2e, etc) se usan y luego se destruyen. <strong>Nada</strong> permanece en estos ambientes (es la idea), y lo mejor de todo debes poder hacerlo en cuestión de minutos, NO en horas.</p>
<blockquote>
<p><em>A poco no estaría bueno poder hacer los cambios de código que necesitas, crear un</em> <strong><em>Pull Request</em></strong> <em>y en la misma descripción tengas un link a un ambiente completamente creado desde 0 con todo listo para probar esos cambios y asegurarte que lo que fue reportado ya está solucionado.</em>***¿Dime que no?***<em>de esto te estaré contando en las próximas líneas.</em></p>
</blockquote>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1710283659045/ff94487c-b663-4488-b6b6-a526471e3c15.png" alt="Ambiente efímero en una cuenta DEV" class="image--center mx-auto" /></p>
<p>Los <strong>ambientes efímeros</strong> cómo el de la foto anterior, se usan para probar integraciones, hacer demos o desarrollar de forma aislada sin la tediosa necesidad de levantar 245 mil nodos de kubernetes localmente para probar un formulario que está fallando. En algunas ocasiones se le conoce como “ambientes preview”, si bien son similares no son la misma cosa.</p>
<blockquote>
<p>La finalidad de crear estos ambientes, es que puedas tener algo para tí, es decir que no dependas de otro programador. De seguro ya te ha pasado antes de tener que esperar que alguien termine de usar la base de datos de desarrollo para poder hacer tus pruebas.</p>
</blockquote>
<h2 id="heading-como-ayudan-los-ambientes-efimeros-en-el-desarrollo-de-software">¿Cómo ayudan los ambientes efímeros en el desarrollo de software?</h2>
<ul>
<li><p><strong>Agilidad</strong>: sí suena “cliché” aún en el 2024, pero muchos equipos hablan de ser <em><s>"ágiles"</s></em><s>,</s> pero cuando se le pide poder tener una réplica del ambiente que están desarrollando las <em>ranas suenan en el río</em>. No quisiera entrar en detalle en cuestiones de costos, ya que muchos hablan de las “limitantes” por costos operativos, pero a mi entender, no va por ahí el tema.</p>
</li>
<li><p>Aumenta la <strong>confiabilidad</strong> de lo que estás entregando: si eres <strong>QA o desarrollador</strong> de software, vas a poder detectar y eliminar errores con una precisión milimétrica antes de que salgan a producción.</p>
</li>
<li><p><strong>Colabora con tu equipo a otro nivel:</strong> ahora podrás mostrarle a tus compañeros en un lugar controlado tus dudas o consultas sobre el desarrollo que estás haciendo en ese momento.</p>
</li>
</ul>
<hr />
<h2 id="heading-aprovecha-la-infraestructura-como-codigo-iac-que-ya-creaste">Aprovecha la Infraestructura como código (IaC) que ya creaste</h2>
<p>Se supone que ya en tu proyecto tienes toda la infraestructura gestionada mediante código (<strong>Serverless, Terraform, Pulumi, CDK</strong>, etc) ¡Aprovechala! ya lo más difícil está hecho, que es crear toda la infra necesaria, ahora lo que necesitas es crearte una “mini” versión de todo tu ambiente en cuestión de minutos.</p>
<hr />
<h2 id="heading-no-necesitas-tener-un-supercomputador-para-desarrollar">No necesitas tener un supercomputador para desarrollar.</h2>
<p>Algunas aplicaciones por su naturaleza tienen un montón de dependencias, como pueden ser microservicios en kubernetes, colas de mensajes y similares que deben estar activos para poder <em>“replicar”</em> un ambiente productivo. Hoy en día con las nubes públicas (<strong>AWS, Azure, GCP</strong>, etc) puedes lograrlo sin quedarte sin presupuesto al día siguiente.</p>
<div data-node-type="callout">
<div data-node-type="callout-emoji">💡</div>
<div data-node-type="callout-text">Aprovecha las ventajas de arquitecturas <strong>“serverless”</strong> las cuales pueden tener costo cercano a $0 cuando no se usan. El mundo serverless y ambientes efímeros son un buen aliado. </div>
</div>



<h2 id="heading-deja-de-estar-emulando-la-nube">Deja de estar emulando la nube</h2>
<p>No pierdas tiempo en eso, ne hubiese gustado que me dijeran esto hace años. <strong>Enfócate en entregar algo de valor desde el día 1</strong>. Tus pruebas en un <em>"Ephemeral environment"</em> será mucho más real a lo que pasará en producción, entonces por qué seguir usando contenedores que no sabes cuándo fue la última vez que se actualizaron, o si en un futuro seguirá teniendo soporte.</p>
<p>Hace poco el caso de <a target="_blank" href="https://medium.com/@zoiwrites/terraform-is-dead-long-live-opentofu-bf4c73364050">Terraform y OpenTofu</a> nos dejó esto en claro, las reglas de negocios de terceros pueden cambiar en cualquier momento.</p>
<h2 id="heading-long-live-the-king-ambiente-de-qa-desarrollo-o-como-lo-llames">Long live the king “Ambiente de QA/ Desarrollo (o como lo llames)”</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1708464271300/8a651752-681c-4b98-9b87-cddf2da30420.jpeg" alt class="image--center mx-auto" /></p>
<p>Estamos en la era de la nube y de la Infraestructura como código (IaC), si seguimos aferrándonos a los ambientes eternos <strong><em>“Dev, QA, Staging, etc”</em></strong> es como que sigamos alquilando películas cuando ya tenemos servicios de streaming mucho más eficientes.</p>
<div data-node-type="callout">
<div data-node-type="callout-emoji">✋</div>
<div data-node-type="callout-text">Son <strong>paradigmas </strong>que venimos arrastrando sin sentido común, lo que hace que nuestros proyectos sean <strong>costosos y lentos </strong>desde su creación. </div>
</div>



<p>Los <strong>costos fijos</strong>, estos ambientes perpetuos vienen de la mano con costos fijos, lo estés usando o no. Por otro lado,también tiene falta de flexibilidad o hablame de cuando teníamos que abrir puertos usando nginx para microservicios y lo lindo que lo pasabamos rezando que nada fallara. Lentitud, pasar de un ambiente a otro siempre fue lento, ya que necesitamos no solo la aprobación del cambio sino también que el ambiente quedará libre para nosotros poder hacer las pruebas que necesitamos y no entorpecer el trabajo del otro.</p>
<p>Recuerda que acá, todo se construye en cuestión de minutos y de la misma forma se destruye, por lo que no tienes que preocuparte si un compañero del equipo dejó “tal” cosa corriendo fuera de la jornada.</p>
<p><strong><em>Sin cuellos de botella, no tienes que esperar por alguien más, cuando lo necesitas mandas a crear tu ambiente y en cuestión de segundos o minutos (dependiendo de tu caso) podrás tener un setup listo.</em></strong></p>
<hr />
<h2 id="heading-consistencia-de-datos">Consistencia de datos:</h2>
<p>Te recuerdas tener que sincronizar datos o preguntar “quién” o  “cuándo” podría hacerse un respaldo de la data de producción (anonimizar) y pasarla a un ambiente en particular. Eso sí que era una verdadera pesadilla.</p>
<ul>
<li><p><strong>Inconsistencias</strong>: Tenias un usuario  favorito, llamemoslo “Capybara”, resulta que ese mismo usuario no existe entre otros ambientes por lo que tienes que ir creándolo cada vez que quieras hacer una prueba.</p>
</li>
<li><p><strong>Adiós “Capy”:</strong>  Alguien por error borró tu usuario estrella y ahora no tienes forma de sacar registros o hacer las integraciones que tenías en mente. Esa pérdida de información es tiempo que no puedes recuperar.  Muchas veces es sin intención, pero pasa.</p>
</li>
<li><p><strong>Procesos manuales:</strong> Esos seeds que iban y venían entre desarrolladores, algunos tienen alguna data y otros tenían un juego de datos diferentes. Todos esos procesos manuales son los que nos llevan a incurrir en errores. Somos humanos (prometo que este post fué escrito por mí), y podemos llegar a cometer errores, la intención es minimizarlos y trabajar de forma más eficiente.</p>
</li>
</ul>
<hr />
<h2 id="heading-manos-a-la-masa-al-teclado-y-creemos-uno">Manos a la masa (al teclado) y creemos uno</h2>
<p>Por ahora hemos venido hablando de lo que és un <code>Ephemeral environment</code> y las ventajas frente a entornos <code>long time</code> tal y cómo los conocemos. Ahora me gustaría dejarte un plan de acción para implementar esta metodología y crear tu propio ambiente temporal con pocos pasos y valiéndonos de la ayuda que Git ya nos brinda hoy en día.</p>
<div data-node-type="callout">
<div data-node-type="callout-emoji">🤖</div>
<div data-node-type="callout-text">Ésta parte del post esta WIP, Si quieres que haga un repositorio de Git o una explicación más detallada de los pasos, déjame saber en los comentarios y con gusto lo comparto.</div>
</div>

<h2 id="heading-1-tener-una-infraestructura-como-codigo-ya-definida">1) Tener una Infraestructura como Código ya definida</h2>
<p>Sin dudas es el primer paso, así que si aún no la tienes te invito a que empieces usando la herramienta que más te convenga *(****Extra tip:***<em>si eres programador utiliza CDK que son más amigables para arrancar</em>).</p>
<h2 id="heading-2-definir-un-flujo-de-trabajo">2) Definir un flujo de trabajo</h2>
<p>Tendremos que definir en qué momento se crean estos ambientes temporales. Por poner un ejemplo, quiero que al momento de crear una <a target="_blank" href="https://aprendegit.com/que-es-un-pull-request/"><code>Pull Request</code></a> quiero que se cree un ambiente y me disponibilize una URL. Es un simple ejemplo, dependerá según la cantidad de personas que están en el equipo y la forma como manejan el <em>“merge”</em> de código.</p>
<h2 id="heading-3-variables-de-entorno"><strong>3) Variables de entorno</strong></h2>
<p>¿En tu aplicación se necesitan variables de entorno para integrarse con terceros o similar? Bueno es un buen punto para pensar en repositorios seguros como AWS Secret Manager o  AWS Parameter Store, ya que a este ambiente que vamos a crear necesitas poder acceder a estos valores.</p>
<h2 id="heading-4-integraciones-con-cicd">4) Integraciones con CI/CD</h2>
<p>Todo esto no ocurre al tronar los dedos, debemos de definir dentro de nuestras pipes de CI/CD para que se despliegue nuestro ambiente cada vez que lo necesitemos. En este caso te tendrás que hacer amigo de las “actions” y dominarlas.</p>
<h2 id="heading-5-datos-iniciales">5) Datos iniciales</h2>
<p>Al ser un ambiente nuevo, recuerda que no tendrá ningún dato para probar, lo mejor será definir junto con el encargado de datos que juego de datos necesitamos sí o sí para que nuestra aplicación tenga un comportamiento similar a lo que pasaría en producción. Esos datos deben ser cargados mediante “seeds” y actualizados a lo largo del tiempo.</p>
<h2 id="heading-6-borremos-todo">6) Borremos todo</h2>
<p>Recuerda que la ventaja de este ambiente es que tiene una vida útil corta, por eso debemos definir en qué punto se debe borrar este ambiente. Por citar un ejemplo, podríamos decir que queremos que se borre al “mergear” una Pull Request en nuestra rama principal. Ya con esto definimos en qué momento dejará de existir nuestro ambiente y también cuando dejaremos de pagar por él.💲💲💲</p>
<hr />
<h2 id="heading-para-que-se-pueden-usar-estos-ambientes-temporales">¿Para qué se pueden usar estos ambientes temporales?</h2>
<p>Los entornos efímeros son ideales para:</p>
<h3 id="heading-pruebas"><strong>Pruebas:</strong></h3>
<p>Validación precisa y eficiente del código en diferentes escenarios, asegurando su correcto funcionamiento. Pensando como Dev, tener la capacidad de probar cosas de forma aislada, es un camino de ida sin lugar a dudas.</p>
<h3 id="heading-integracion">Integración:</h3>
<p>Verificación de la interoperabilidad entre diferentes componentes del sistema, previniendo problemas de compatibilidad. No más tiempo muerto entre QA o entre Devs</p>
<h3 id="heading-despliegues">Despliegues:</h3>
<p>Implementaciones controladas y escalables a producción, minimizando el tiempo de inactividad y maximizando la disponibilidad. También se puede usar para crear una demo comercial en poco tiempo.</p>
<hr />
<h2 id="heading-conclusiones">Conclusiones</h2>
<p>Los entornos efímeros o <code>Ephemeral environment</code> se han convertido en una herramienta poderosa para optimizar la velocidad de entrega de aplicaciones sin servidor. En conjunto con soluciones <strong>CI/CD</strong>, estos entornos desechables permiten un desarrollo y una implementación más ágiles, consistentes y eficientes.</p>
<p>Estos ambientes están muy orientados a arquitectura sin servidor “<strong>serverless</strong>” pero no quiere decir que no puedas tener un ambiente de <strong>kubernetes</strong> usando esta metodología,  puedes hacerlo es cuestión de pensar cómo optimizar los recursos que ya tienes activos, por ejemplo no tienes que darle un cluster a cada usuario, podrías usar uno compartido y entregarles un ambiente virtual a cada uno de los desarrolladores.</p>
<p>Usa la <strong>Infraestructura como código</strong> como más puedas, ya el mayor camino lo tienes ganado. Así mismo no dejes “hardcoded” valores de recursos, en su lugar usa variables que según el stack que se quiera crear se llamen de otra manera.</p>
<p>Recuerda, no dejes de experimentar, es una ventaja del mundo cloud.</p>
<hr />
<p>Gracias por llegar hasta acá <strong>¡Estemos en contacto!</strong> escríbeme por LinkedIn y dime que tal te pareció el artículo, tu aporte me ayuda a seguir creciendo.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1708521699862/0270a3ab-ee18-4df9-b683-11f8d5d2d1bc.png" alt class="image--center mx-auto" /></p>
<p><a target="_blank" href="https://www.linkedin.com/in/hectorfernandezdev/">LinkedIn: Hector Fernandez</a></p>
<hr />
<p>Final Summary:<a target="_blank" href="https://www.linkedin.com/in/hectorfernandezdev/">  
</a>How to Deploy Ephemeral Environments, Infraestructure as Code. Cloud.</p>
<hr />
]]></content:encoded></item><item><title><![CDATA[Cloud native en 2025 ¿Necesidad u opción?]]></title><description><![CDATA[💡
Post actualizado con información del 2025.


¿Qué es ser nativo en la nube desde el día 1?
Hoy te contaré como tener procedimientos establecidos y teniendo una mentalidad de computación en la nube puede ayutdarte a despegar desde el momento que es...]]></description><link>https://blog.hectorfernandez.dev/cloud-native-en-2025-necesidad-u-opcion</link><guid isPermaLink="true">https://blog.hectorfernandez.dev/cloud-native-en-2025-necesidad-u-opcion</guid><category><![CDATA[AWS]]></category><category><![CDATA[Cloud]]></category><category><![CDATA[Developer]]></category><category><![CDATA[Devops]]></category><dc:creator><![CDATA[Hector Fernandez]]></dc:creator><pubDate>Sat, 04 Nov 2023 21:03:03 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1708467019573/9e25263a-a506-4645-9366-efcfcc6fb450.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<hr />
<div data-node-type="callout">
<div data-node-type="callout-emoji">💡</div>
<div data-node-type="callout-text">Post actualizado con información del 2025.</div>
</div>

<h2 id="heading-que-es-ser-nativo-en-la-nube-desde-el-dia-1">¿Qué es ser nativo en la nube desde el día 1?</h2>
<p>Hoy te contaré como tener procedimientos establecidos y teniendo una mentalidad de computación en la nube puede ayutdarte a despegar desde el momento que estás pensando tu idea.</p>
<p><strong><em>¿Tu equipo de desarrollo conoce los servicios principales de tu proveedor de la nube?</em></strong> No estamos hablando que un desarrollador pueda crear una infraestructura desde cero sin la ayuda de nadie, no. Estamos hablando, que pueda identificar cómo resolver el problema usando las herramientas de la nube de forma nativa, por ejemplo "este procesamiento podría ser una función serverless" o decir "el motor de base de datos más adecuado es "X"", ese tipo de detalles y conocimiento son el tipo de ayudas que deberías de tener con un equipo que siente la nube en al sangre.</p>
<h2 id="heading-cuando-todo-puede-fallar-fallara-creeme">Cuando todo puede fallar, fallará (créeme)</h2>
<p>Hablemos ahora de la recuperación ante desastres, algo bastante común, pero que la mayoría de las empresas no están totalmente preparadas, algo tan simple como programar que tu base de datos tenga un respaldo cada 24 hs (o menos según sea el caso) puede ayudarte a tener una menor pérdida de datos. La nube te puede ayudar para este tipo de cosas, aprovechala. No te olvides también de hacer pruebas de restablecimiento usando las herramientas nativas. Está comprobado que las empresas que hacen este tipo de pruebas están mucho más preparadas para recuperarse de forma segura.</p>
<h2 id="heading-crecer-pero-con-medida">Crecer pero con medida</h2>
<p>Comenzando a trabajar en la nube la escalabilidad es otro factor sumamente importante, no es lo mismo reservar una habitación de hotel cuando estamos de vacaciones con nuestra familia que cuando estamos por negocios, los motivos de ambos viajes cambian, lo mismo pasa con la capacidad de cómputo, debes de tomar esas acciones y no quedarte fuera del juego por estar amarrado a una herramienta. Usar los servicios en la nube puede ser casi infinito, lo importante es usar los servicios adecuados, tener el conocimiento necesario y medir realmente lo que estemos usando.</p>
<hr />
<h2 id="heading-conclusion">Conclusión</h2>
<p>Adoptar un pensamiento de nube nativo desde el dia uno es una estrategia que puede ayudarte a tener una base segura para seguir creciendo. Todos estos pilares te ayudarán a ganar escalabilidad, agilidad y sobre todo ser costo eficiente; un factor super importante al momento de moverse a una nube.</p>
<h2 id="heading-extra-tips">Extra tips:</h2>
<ul>
<li><p>Tener un equipo que tenga la capacidad de hacer debug de su código local te ahorrá un montón de problemas.</p>
</li>
<li><p>Dale la oportunidad a tu equipo de experimentar, de probar cosas nuevas, tener acceso individual y que puedan proponer nuevas ideas, eso hará que tu producto tenga un mayor impacto.</p>
</li>
</ul>
<p>Pensar en Desarrollo nativo no es solamente para DevOps, todo lo contrario es para todo el equipo que participa en el ciclo de vida de tu aplicación, anima a tus devs a que aprendan más conocimientos del mundo cloud.</p>
<p>Ya que llegaste hasta acá ¡Estemos en contacto! escríbeme por LinkedIn y dime que tal te pareció el artículo</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1742497159550/48683083-c608-4af9-a953-423bcd7d7717.png" alt class="image--center mx-auto" /></p>
<p><strong>Héctor Fernández</strong></p>
<p>AWS Community Builder<br /><a target="_blank" href="https://www.linkedin.com/in/hectorfernandezdev/">LinkedIn: Hector Fernandez</a></p>
]]></content:encoded></item></channel></rss>