1. Qué son los microservicios
Los microservicios son un estilo arquitectónico para sistemas distribuidos donde la aplicación se divide en múltiples servicios pequeños, independientes y autónomos, cada uno ejecutando una función de negocio específica y comunicándose con los demás mediante interfaces ligeras (normalmente APIs REST/JSON o mensajería).
2. Comparación rápida con SOA
| Característica | SOA (ej. SAP PI) | Microservicios |
|---|---|---|
| Tamaño de servicio | Más grande, orientado a procesos o funciones amplias. | Muy pequeño, enfocado a una única responsabilidad. |
| Middleware | ESB central (ej. SAP PI) que orquesta y transforma. | No hay un único bus central, cada servicio gestiona su lógica. |
| Comunicación | SOAP, REST, JMS, protocolos diversos. | REST/JSON, gRPC, mensajería ligera (Kafka, RabbitMQ). |
| Despliegue | Integrado en plataforma central. | Independiente, con despliegue aislado por servicio (contenedores, Kubernetes). |
| Escalado | Escala toda la aplicación o el middleware. | Escala solo el microservicio que lo necesita. |
3. Características clave
- Independencia: cada microservicio se puede desarrollar, desplegar y escalar por separado.
- Comunicación distribuida: mediante HTTP/REST, gRPC o mensajería asíncrona (Kafka, RabbitMQ).
- Resiliencia: un fallo en un microservicio no debe tumbar todo el sistema.
- Poliglotismo: cada servicio puede usar el lenguaje y la tecnología que prefiera, mientras respete la interfaz.
- Automatización DevOps: integración continua, despliegue continuo (CI/CD).
4. Ejemplo de microservicios
En lugar de un SAP PI orquestando todo, podrías tener:
- Servicio de Inventario → expone
GET /stock/{producto}. - Servicio de Pedidos → expone
POST /pedido. - Servicio de Facturación → expone
POST /factura. - Servicio de Notificaciones → envía email/SMS.
Estos servicios se comunican entre sí vía API REST o mediante eventos publicados en Kafka.
5. Ventajas
- Escalabilidad granular.
- Despliegue independiente.
- Mejor resiliencia y aislamiento de fallos.
- Adaptación rápida a cambios en partes específicas del negocio.
6. Retos y ciberseguridad
En microservicios, la superficie de ataque crece porque:
- Hay más endpoints expuestos (cada servicio tiene su API).
- Hay más tráfico interno (service-to-service) que puede ser interceptado si no se protege.
- Es más fácil perder el control de autenticación/autorización si no hay gobernanza central.
Controles típicos:
- Service mesh (Istio, Linkerd) para cifrar tráfico interno (mTLS) y aplicar políticas.
- API Gateway (Kong, Apigee, NGINX) para controlar acceso externo.
- Escaneo de imágenes de contenedores y configuración segura en Kubernetes/Docker.
- Monitoreo y trazabilidad distribuida (OpenTelemetry, Jaeger).
7. Relación con SAP PI
- SAP PI es más típico en arquitecturas SOA tradicionales con un bus central.
- Los microservicios evitan un bus central, pero pueden integrarse con PI si necesitas comunicar microservicios con sistemas SAP legacy.
- En entornos híbridos, PI puede actuar como puente entre microservicios y sistemas monolíticos.