Contenido del curso
0:00/2:39
Dividir una API en microservicios escalables
Suscríbete para ver másKafka para comunicar microservicios por eventos
Suscríbete para ver másFlujo de trabajo con Kafka para enrutar microservicios automáticamente
Suscríbete para ver másBases de datos fuera de contenedores Docker
Suscríbete para ver másAutomatiza microservicios ASP.NET con Bash
Suscríbete para ver másAutomatizar microservicios con Bash y Dockerfile
Suscríbete para ver másAzure Service Bus para comunicación entre microservicios
Suscríbete para ver másRest Client como alternativa a Swagger en VS Code
Suscríbete para ver másTres microservicios .NET corriendo sin Docker
Suscríbete para ver másCreación de servicios de consulta con .NET y SQL
Suscríbete para ver másDocker Compose con cinco microservicios .NET
Suscríbete para ver másMonorepo vs multirepo en microservicios
Suscríbete para ver másConfiguración de secretos de GitHub para desplegar en Azure
Suscríbete para ver másDespliegue de aplicaciones con Azure Container Apps desde Docker Hub
Suscríbete para ver másDespliegue automático de microservicios con GitHub Actions
Suscríbete para ver másDesplegando microservicios con GitHub Actions
Suscríbete para ver másPróximos pasos de mejora en arquitectura de microservicios
Suscríbete para ver másEntender la diferencia entre imagen, contenedor y microservicio es el primer paso para dominar una arquitectura de microservicios. Aunque en el día a día del desarrollo de software solemos usar estos términos como sinónimos, cada uno cumple un rol distinto dentro del ciclo de despliegue. Si confundes los conceptos, vas a confundir también las decisiones técnicas.
¿Qué es una imagen en Docker y para qué sirve?
Una imagen es el punto de partida. La generas a partir de un archivo Dockerfile y, en esencia, es el resultado de compilar tu solución de software en un único paquete que contiene todo lo necesario para que tu aplicación funcione.
Piénsalo así: una imagen es un archivo comprimido, un ZIP muy moderno. No se ejecuta por sí sola, no interactúa con nada, simplemente existe como un artefacto listo para ser distribuido.
¿Qué contiene una imagen de Docker? Contiene el código de tu aplicación, sus dependencias y la configuración mínima del entorno para que pueda correr en cualquier máquina. Todo empaquetado a partir de un Dockerfile.
Esa imagen la puedes publicar dentro de un registro de contenedores, que funciona como el repositorio donde otras instancias (en la nube o locales) van a buscarla cuando la necesiten.
¿Cuándo una imagen se convierte en contenedor?
El salto de imagen a contenedor ocurre en el momento de la ejecución. Cuando una instancia descarga tu imagen y la corre, en automático se vuelve un contenedor. Esto se ve muy claro en Docker Desktop al ejecutar el comando docker run: el concepto pasa de imagen a contenedor frente a tus ojos.
¿Qué puedes hacer con un contenedor?
Una vez que tu imagen está corriendo como contenedor, ganas interacción real con ella. Y ahí es donde aparecen las capacidades operativas:
Esa diferencia importa: la imagen es estática, el contenedor es la imagen viva, ejecutándose y respondiendo.
¿Cuál es la diferencia entre imagen y contenedor? La imagen es el archivo empaquetado con tu aplicación. El contenedor es esa imagen ejecutándose como un proceso activo, con el que ya puedes interactuar.
¿Qué es un microservicio y en qué se diferencia de un contenedor?
Aquí viene el concepto que da nombre a toda la arquitectura. Un contenedor ejecutándose por sí solo ya es un servicio. Pero el término microservicio viene heredado de la arquitectura de servicios y aporta una idea distinta: hablamos de un conjunto de pequeñas aplicaciones que trabajan juntas.
En lugar de tener una gran API con 25 métodos distintos, vas a tener probablemente 25 servicios con un método cada uno. Ese conjunto de servicios pequeños y especializados, conviviendo y comunicándose entre sí, es lo que conforma una arquitectura de microservicios.
¿Por qué importa distinguir estos tres conceptos?
Porque cada uno se usa en un momento distinto del flujo de trabajo, y mezclarlos lleva a errores de diseño:
Con esta distinción clara, ya puedes saber en qué momento hablas de empaquetar, en qué momento de ejecutar, y en qué momento estás realmente desplegando una arquitectura de microservicios. ¿Tú cómo venías usando estos términos hasta ahora? Cuéntame en los comentarios.
Gildder Guerrero Ramirez
Manuel Jesús Canul Witzil
José Ángel Soriano Soriano
Las diferencias son:
Imágenes: Son archivos estáticos que contienen todo lo necesario para ejecutar una aplicación. Se crean a partir de un Dockerfile y son como un "archivo comprimido" de tu aplicación.
Contenedores: Son instancias en ejecución de imágenes. Cuando una imagen se ejecuta, se convierte en un contenedor, permitiendo interacción y acceso a recursos.
Microservicios: Son arquitecturas que descomponen aplicaciones en servicios pequeños e independientes. Cada microservicio opera como un contenedor, cumpliendo una función específica.
Entender estas diferencias es crucial para implementar correctamente arquitecturas de microservicios.
Feliz con este curso, llego cuando más lo necesitaba! <3
Los microservicios son el futuro pero para empresas o para un ERP bien seccionado