Arquitectura de microservicios: cuándo conviene y cuándo es sobreingeniería
Microservicios resuelve un problema de escala organizacional, no de escala técnica. Adoptarlo sin tener ese problema solo multiplica la complejidad operativa.
El problema que resuelven los microservicios es de coordinación entre equipos, no de rendimiento
Dividir un sistema en servicios independientes permite que varios equipos desplieguen y escalen sus partes sin coordinarse en cada cambio. Ese beneficio solo existe cuando efectivamente hay varios equipos trabajando en paralelo sobre el mismo sistema.
Un equipo pequeño no tiene ese problema de coordinación, así que no obtiene ese beneficio — solo hereda la complejidad que viene con la arquitectura.
El costo operativo de microservicios es real y se paga todos los días
Cada servicio adicional significa más piezas de infraestructura que monitorear, más puntos de fallo por red entre servicios, y una complejidad de depuración considerablemente mayor cuando un problema atraviesa varios servicios a la vez.
Un equipo de tres o cuatro personas rara vez tiene la capacidad operativa para sostener esa complejidad sin que el resto del trabajo se resienta.
Un monolito bien organizado escala más lejos de lo que la mayoría asume
Un monolito con módulos internos bien delimitados, con fronteras de responsabilidad claras dentro del mismo código, resuelve la gran mayoría de los proyectos corporativos sin necesidad de separar servicios físicamente por red.
La separación en servicios reales puede hacerse después, cuando la necesidad —no la moda— lo justifique, y suele ser más barato migrar un monolito bien organizado que deshacer microservicios mal diseñados desde el inicio.
Las señales que sí justifican dar el paso
Varios equipos autónomos que necesitan desplegar de forma independiente sin bloquearse entre sí. Componentes del sistema con necesidades de escala radicalmente distintas —uno que recibe miles de solicitudes por segundo y otro casi ninguna—. O una regulación que exige aislar ciertos datos o procesos del resto del sistema.
Sin al menos una de esas señales presentes, la arquitectura de microservicios suele resolver un problema que el proyecto todavía no tiene.
¿Está definiendo la arquitectura de un sistema nuevo?
Escríbanos con el contexto de su organización. Respondemos con criterio técnico, no con un formulario de ventas.
Contactar