Contenido del curso
0:00/5:19
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ásAntes de fragmentar cualquier servicio, necesitas una API monolítica funcional que sirva como punto de partida para migrar hacia una arquitectura de microservicios cloud native. Esa es la base que vamos a preparar usando .NET, SQL Server en Azure y un repositorio clonado desde Platzi.
¿Por qué los microservicios requieren servicios en la nube?
Cuando diseñas microservicios, estás pensando en una solución que debe soportar gran demanda, y eso solo es viable con infraestructura cloud native.
Usar una instancia local de SQL Server puede funcionar al inicio, pero al desplegar los servicios aparecen problemas de comunicación entre componentes. Por eso, durante el recorrido vas a integrar herramientas que viven naturalmente en la nube:
¿Qué significa cloud native? Es un enfoque donde las aplicaciones se diseñan desde cero para ejecutarse en la nube, aprovechando servicios gestionados, escalabilidad horizontal y despliegues distribuidos.
No importa qué proveedor elijas, AWS, Azure o Google Cloud, toda arquitectura de microservicios va a depender de servicios gestionados para desplegarse correctamente.
¿Cómo clono el repositorio base del curso de microservicios?
El punto de partida está en el repositorio oficial de Platzi, dentro de la carpeta SRC.
La recomendación es hacer un fork del repositorio para mantener tu copia sincronizada con los cambios futuros. Si vas a manipularlo de forma constante, puedes clonarlo directamente con tus llaves SSH y abrirlo en Visual Studio Code.
Dentro del proyecto encontrarás SRC/API global, que es la minimal API construida con .NET que vamos a usar como base.
¿Puedo usar otro lenguaje en lugar de .NET? Sí. Puedes replicar la misma API con Python, Go, PHP o el lenguaje que prefieras. Una de las ventajas reales de los microservicios es que cada servicio puede escribirse en un lenguaje distinto.
¿Cómo ejecuto la minimal API en .NET por primera vez?
Una vez clonado el repositorio, abre tu terminal y entra a la carpeta del proyecto con cd SRC/API global. Desde ahí puedes compilar y correr la aplicación.
Estos son los pasos concretos:
dotnet build para validar que no haya errores de compilación. Es normal ver advertencias por validaciones de cadenas, pero deben aparecer cero errores.dotnet run para levantar la API. El servicio queda disponible en localhost:5092./swagger en la URL del navegador para ver todos los métodos documentados.Desde Swagger puedes probar cada endpoint. Si al ejecutar el método Adultos ves un mensaje de que la base de datos no se ha inicializado, significa que falta configurar la cadena de conexión.
¿Dónde configuro la cadena de conexión a SQL Server?
La configuración vive en el archivo appsettings.json, específicamente en la línea 9, dentro de la propiedad DefaultConnection.
Reemplaza el valor por tu cadena de conexión real, ya sea apuntando a SQL en Azure o a tu motor preferido. Después puedes refrescar la página o detener y volver a ejecutar la aplicación con dotnet run. Cualquiera de las dos opciones funciona.
Cuando la conexión queda lista y vuelves a probar el endpoint Adultos, deberías ver un registro existente, por ejemplo Amin Espinosa, que confirma que la API está leyendo correctamente la base.
¿Qué estructura tiene la base de datos del proyecto?
La base de datos contiene dos tablas que servirán para fragmentar la lógica más adelante:
Esta simetría no es casualidad. Tener dos tablas con la misma estructura te permite practicar cómo separar dominios y responsabilidades cuando empieces a dividir la API en servicios independientes.
En la documentación del repositorio vas a encontrar el esquema completo de la base de datos, para que puedas replicarlo sin importar el motor SQL que uses.
¿Qué métodos expone la API y por qué importan?
La API global incluye entre cinco y seis métodos ya implementados que cubren operaciones básicas sobre las tablas Adultos y Niños. Sobre esos métodos vas a trabajar el resto del recorrido.
La idea es tomar este monolito funcional y empezar a fragmentarlo en piezas independientes, cada una con su propia responsabilidad, su propio despliegue y, eventualmente, su propia base de datos. Ese es el salto real hacia microservicios.
¿Ya tienes tu cadena de conexión funcionando y la API respondiendo en Swagger? Cuéntame en los comentarios qué motor de base de datos elegiste y si decidiste replicar la API en otro lenguaje distinto a .NET.