Contenido del curso
¿Cómo funciona la web moderna?
Observabilidad y monitoreo
Telemetría y tipos de datos
Reto: Monoliths y Microservices
Cierre y despedida
Contenedores, Docker y Kubernetes explicados
Resumen
Si trabajas con arquitecturas modernas, entender contenedores y microservicios es la base para luego dominar la observabilidad. Aquí te explico cómo encajan los microservicios, los contenedores, la orquestación y la nube, con ejemplos sencillos para que veas por qué importan y cómo se relacionan entre sí.
¿Qué son los microservicios y por qué se usan contenedores?
Los microservicios son bloques de código modulares y autocontenidos que representan partes específicas de tu aplicación, como el login, el carrito de compras o los pagos. En lugar de tener todo el código en un solo lugar, divides la aplicación en piezas pequeñas que pueden trabajar de forma independiente.
Esos microservicios suelen vivir dentro de contenedores. Un contenedor es una pieza ligera e independiente de código que incluye todo lo necesario para ejecutarse: el código, las dependencias, las herramientas externas y los settings de configuración [2:00]. Es un acercamiento todo en uno que asegura que tu aplicación corra igual aquí, allá o en cualquier entorno.
¿Qué es un contenedor en desarrollo de software? Es un paquete ligero que incluye tu código junto con sus dependencias, herramientas y configuración, para que se ejecute igual en cualquier máquina o nube.
Al proceso de construir aplicaciones con muchos contenedores discretos se le llama containerization o contenedorización [2:50].
¿Cuál es la diferencia entre servidores, máquinas virtuales y contenedores?
Para entenderlo, imagina a Gabi, dueña de una casa gigante de 27 cuartos donde solo vive ella. Está desperdiciando espacio. Así trabajaban antes los desarrolladores: un servidor entero por aplicación, pagando hasta 30 000 dólares por servidor sin aprovecharlo del todo [5:10].
Luego Gabi decide dividir la casa en nueve apartamentos y rentar cada uno. Eso es virtualización: cada aplicación vive en una computadora virtual separada, con su propio CPU, memoria y sistema operativo.
Pero algunos inquilinos casi nunca están en casa, así que Gabi empieza a rentar los espacios por hora o por minuto, compartiendo cocina y baño. Así funcionan los contenedores hoy: comparten CPU, RAM y sistema operativo, entran a hacer su tarea y desaparecen cuando ya no se necesitan.
¿Dónde se ejecutan los contenedores?
Los contenedores son portables. Los puedes correr en:
- Tu laptop personal.
- Una máquina virtual en la nube.
- Una computadora entera dedicada.
Esta portabilidad te permite mover tu entorno de desarrollo de un lado a otro sin sorpresas, activarlos cuando los necesitas y desactivarlos cuando ya no.
¿Qué beneficios trae usar contenedores?
Frente a los métodos tradicionales, las ventajas son claras:
- Menos sobrecostos y desperdicio de recursos.
- Mayor portabilidad entre entornos.
- Consistencia en la ejecución.
- Mejor capacidad para seguir desarrollando.
- Escalabilidad, si lo haces bien.
Eso sí, hay un costo: con tantas partes pequeñas cambiando todo el tiempo, observar el sistema completo se vuelve un reto enorme. Y ahí es donde entra la observabilidad, el tema central del curso.
¿Qué herramientas se usan para gestionar contenedores en la nube?
La herramienta más popular para crear, mantener y desplegar contenedores es Docker, un servicio open source cuyo logo es una ballena cargando contenedores, justo como los barcos que llevan mercancía entre continentes [8:30].
Pero cuando una empresa como Google despliega varios miles de millones de contenedores cada semana, administrarlos a mano es imposible. Ahí aparece la orquestación.
¿Qué es la orquestación de contenedores? Es la automatización de tareas repetitivas relacionadas con contenedores, como desplegarlos, escalarlos y comunicarlos entre sí, para que las aplicaciones grandes funcionen de forma fluida.
La herramienta por defecto para orquestación es Kubernetes, abreviada como K8S. Fue desarrollada originalmente por Google y automatiza el despliegue, escalado y administración de aplicaciones basadas en microservicios [10:15].
¿Qué proveedores de cloud hosting existen?
El último pieza del rompecabezas son los proveedores de almacenamiento en la nube. Los más comunes son:
- Amazon Web Services.
- Google Cloud.
- Microsoft Azure.
- IBM Cloud.
Todos ofrecen escalabilidad, flexibilidad y capacidad de almacenamiento. Cambian la interfaz, los paquetes y el pricing, pero en esencia te dan lo mismo: equipos enormes de ingeniería cuidando sus data centers para que tu aplicación corra segura.
¿Cómo se conecta todo en una arquitectura moderna?
La idea final es sencilla. Tienes microservicios, que son partes pequeñas de tu aplicación. Cada microservicio se empaqueta en un contenedor, por ejemplo con Docker. Los contenedores deben hablar entre sí (el login con el carrito, el carrito con los pagos), y eso lo coordina un sistema de orquestación como Kubernetes. Todo eso vive en servidores de proveedores de nube como AWS, Google Cloud o Azure.
Y aquí viene lo interesante: aunque esta arquitectura te da velocidad y escalabilidad, también introduce un problema gigante. Saber qué está pasando en cada parte de tu aplicación se vuelve complicado. Ese reto se llama observabilidad, y es justo lo que vas a aprender a resolver en las próximas clases.
¿Cuál de estos conceptos te gustaría que profundizáramos primero en los comentarios?