William Schnaider Torres Bermon
Royer Guerrero Pinilla
Royer Guerrero Pinilla
HARLIN ACERO ACERO
Gabriel Mancia
Cristian Camilo Castro Veloza
Gildder Guerrero Ramirez
1️⃣ Contexto
Fragmentar una “macro API” significa dividir una API monolítica (por ejemplo, un API REST enorme con decenas de endpoints y dominios mezclados) en microservicios independientes, cada uno con su propio dominio funcional y contrato claro. Esto es crítico para:
2️⃣ Cómo funciona la fragmentación (visión general paso a paso)
Paso 1: Análisis del dominio y uso actual
Orders, Payments, Inventory, Users.Paso 2: Identificación de límites técnicos y de datos
Paso 3: Diseñar contratos API para cada microservicio
Paso 4: Orquestación del acceso
Paso 5: Migración incremental
3️⃣ Aspectos clave a considerar
4️⃣ Red flags (alertas comunes)
Les recomiendo este video
🤔 ¿Que tan pequeño deben ser nuestros microservicios?
Una cosa sobre los microservicios es que usualmente no se habla sobre el tamaño. Sabemos que micro significa pequeño pero que tan pequeño? Hay podemos caer en estar creando nanoservicios que no estan mal porque traen muchas ventajas pero trae otras potenciales complicaciones
⛓️💥 Fragmentación exesiva ― puede que generar que sea dificil de entender de una manera holistica los workflows. Adicionalmente tendras que modificar varios servicios para conseguir lo que buscas asi que terminaras teniendo acoplamiento
🍝 Llamados HTTP como codigo espagetti ― En lugar de tener el codigo enrredado en un monolito lo pasaras a un enrredo de llamadas en la red que pueden incluso darte un mal performance
En resumen si haces tus microservicios muy pequeños ontendras probablemente un distributed big ball of mud lo ideal segun mi experiencia es difinir unas responsabilidades claras del microservicio. Recordemos que los microservicios buscan resolver un problema que si sos YouTube y se cae los comentarios los usuarios puedan seguir reproduciendo los videos y no se caiga todo asi que hay que buscar un equilibrio e ir rompiendo el monolito poco a poco. Reducir su tamaño hasta conseguir el efecto deseado ademas muchas veces los microservicios son un ejemplo de como en tu organizacion se estrucutran los equipos entonces busca que los equipos puedan trabajar sin depender uno del otro y ya estaria. Suerte
Totalmente de acuerdo. El principal objetivo de un microservicio es separar y aislar responsabilidades bien definidas dentro de una aplicación, no basándose en el tamaño del servicio, sino en las funciones específicas que debe cumplir. Cada microservicio debe encargarse de manera autónoma de una funcionalidad completa y concreta del sistema. Por ejemplo, un microservicio puede ser responsable de la administración de usuarios, mientras que otro gestiona el manejo de sesiones. Esta separación facilita la escalabilidad, el mantenimiento y la evolución independiente de cada una de las partes del sistema.
¿Cuándo debo fusionar métodos de una API?
Debes fusionar métodos cuando comparten el mismo dominio de negocio y tienen el mismo ciclo de vida de despliegue. Si tienes un método para ObtenerUsuarios y otro para ObtenerUsuarioPorId, separarlos en dos microservicios distintos genera una sobrecarga innecesaria de red y mantenimiento.
La regla de oro es la cohesión. Si dos funciones cambian por las mismas razones y al mismo tiempo, pertenecen al mismo servicio. Piensa en un restaurante: no tienes un cocinero exclusivo para picar cebolla y otro solo para picar tomate; tienes un chef de preparación que maneja los vegetales. Fusionar estos métodos usando parámetros opcionales (como un ID nulo para traer todos los registros) reduce la complejidad de tu infraestructura, disminuye los costos de alojamiento y hace que el código sea mucho más fácil de rastrear.
Me aparece el siguiente error al conectar la BD de Azure:
Microsoft.Data.SqlClient.SqlException (0x80131904): Login failed for user 'aminespinoza'. at Microsoft.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception,
La fragmentación de la API se refiere al proceso de dividir una API monolítica en múltiples microservicios independientes. Cada fragmento se encarga de una parte específica de la funcionalidad, lo que permite una mejor escalabilidad y mantenimiento. En la clase se menciona que al separar métodos como "get adult" y "get children", se logra una arquitectura más modular, facilitando la comunicación entre servicios y la implementación de nuevas funcionalidades de manera ágil y eficiente. Esto mejora la capacidad de respuesta y la resiliencia de la aplicación.