El auge de los microservicios basados en proxy: revelando la arquitectura
La esencia de los microservicios basados en proxy
Las arquitecturas de microservicios basadas en proxy interponen un proxy de red ligero entre las instancias de servicio y el mundo externo, ya sean otros servicios o clientes. Este proxy, a menudo llamado "sidecar", es más que un simple agente de tráfico: es el centinela silencioso que intercepta, inspecciona y transforma las solicitudes a medida que se deslizan por la red efímera de microservicios.
¿Por qué adoptar este enfoque?
- Separación de preocupaciones:Descargar preocupaciones transversales (seguridad, observabilidad, confiabilidad) de la lógica empresarial
- Aplicación de políticas uniformes: Centralizar el control de acceso, la limitación de velocidad y la interrupción de circuitos
- Patrones de resiliencia: Inyectar reintentos, retrocesos y tiempos de espera de forma transparente
- Observabilidad:Capturar seguimientos y métricas sin modificar el código
- Seguridad de confianza cero:Cifre todo el tráfico y verifique las identidades automáticamente
Anatomía arquitectónica: cómo los proxies encarnan el espíritu de los microservicios
Patrón de sidecar
Cada módulo de servicio cuenta con un proceso proxy; Envoy, Linkerd o HAProxy son opciones comunes. El tráfico destinado al servicio se enruta a través del sidecar, que aplica políticas de red, recopila telemetría y gestiona el cifrado mTLS.
Ejemplo de manifiesto (Kubernetes + Istio):
apiVersion: v1 kind: Pod metadatos: nombre: poets-service especificación: contenedores: - nombre: poets-app imagen: registry.example.com/poets:latest - nombre: istio-proxy imagen: docker.io/istio/proxyv2:1.18.0 args: ["proxy", "sidecar"]
Istio inyecta automáticamente el proxy istio
sidecar, tejiendo un tapiz invisible de control alrededor de su servicio.
Service Mesh: La red como un organismo vivo
Una malla de servicios, como Istio, Linkerd, o Consul Connect, orquesta la configuración y el ciclo de vida de estos servidores proxy, haciendo que la red de servicio a servicio sea programable y observable.
Recurso:
– Documentación oficial de Envoy Proxy
– Arquitectura de Linkerd
Ventajas prácticas: una tabla de compensaciones
Característica | Microservicios basados en proxy | Microservicios tradicionales |
---|---|---|
Rastreo distribuido | Nativo, transparente | Instrumentación manual |
mTLS en todas partes | Automatizado | Responsabilidad de la aplicación |
Disrupción de circuito | Declarativo, basado en políticas | Explícito en el código |
Limitación de velocidad | Centralizado, dinámico | Descentralizado, estático |
Lanzamientos de Canary | División de tráfico en el proxy | Manejado por el balanceador de carga |
Descubrimiento de servicios | Incorporado, dinámico | Se necesita registro externo |
Aislamiento de fallos | Por solicitud, a nivel de proxy | Código o nivel infra |
Esta mesa susurra la historia de un mundo donde la red ya no es un lastre, sino un lienzo para la innovación.
Patrones procesables: Implementación de microservicios basados en proxy
1. Implementación de un proxy sidecar
En Kubernetes, la inyección de sidecar se puede automatizar con herramientas como Istio o Linkerd.
Ejemplo de Istio paso a paso
- Instalar Istio:
intento
curl -L https://istio.io/downloadIstio | sh -
cd istio-*
exportación RUTA=$PWD/bin:$PATH
istioctl install --set perfil=demo -y
Espacio de nombres de etiqueta de kubectl predeterminado istio-injection=enabled - Implemente su servicio:
"`yaml
Versión de API: v1
tipo: Servicio
metadatos:
nombre: poetas-app
especulación:
puertos:- puerto: 80
nombre: http
selector:
aplicación: poetas
- puerto: 80
apiVersion: aplicaciones/v1
tipo: Implementación
metadatos:
nombre: poetas-despliegue
especulación:
réplicas: 1
selector:
etiquetas de coincidencia:
aplicación: poetas
plantilla:
metadatos:
etiquetas:
aplicación: poetas
especulación:
contenedores:
– nombre: poetas-app
imagen: registry.example.com/poets:latest
“`
La inyección de sidecar agregará automáticamente el proxy Envoy; no más texto repetitivo y engorroso.
- Aplicar la política de tráfico:
yaml
Versión de API: networking.istio.io/v1alpha3
tipo: DestinationRule
metadatos:
nombre: poetas-destino
especulación:
anfitrión: poetas-app
Política de tráfico:
grupo de conexiones:
TCP:
MaxConexiones: 1
2. Observabilidad sin cambios en el código
Una vez instalados los proxies, la telemetría fluye como el vino en una velada francesa. Istio y Linkerd exponen las métricas a través de los endpoints de Prometheus, listas para... Grafana tableros de control.
Obtener métricas:
kubectl -n istio-system port-forward svc/prometheus 9090 # Abra http://localhost:9090 para consultar métricas
3. Implementación de mTLS sin intervención del desarrollador
Configure la autenticación de pares y las reglas de destino, y la malla cifra toda la comunicación de servicio a servicio.
Ejemplo de autenticación de pares de Istio:
apiVersion: security.istio.io/v1beta1 kind: PeerAuthentication metadatos: nombre: predeterminado espacio de nombres: predeterminado especificación: mtls: modo: ESTRICTO
Ya no es necesario fabricar manualmente túneles TLS en cada servicio.
Ejemplo a nivel de código: Desbloqueo de circuitos sin código
Regla de destino (Istio) para interrupción del circuito:
apiVersion: networking.istio.io/v1alpha3 kind: DestinationRule metadata: name: circuit-breaker spec: host: poets-app trafficPolicy: outlierDetection: consecutivo5xxErrors: 1 interval: 1s baseEjectionTime: 30s maxEjectionPercent: 100
Este encantamiento YML le otorga resiliencia a su servicio, sin necesidad de realizar cambios en el código.
Cuándo no utilizar microservicios basados en proxy
Guión | Malla basada en proxy | Alternativa más sencilla |
---|---|---|
< 5 servicios, baja complejidad | Arriba | Comunicación directa |
Servicios de borde, solo para público general | Innecesario | Puerta de enlace API |
Entornos con recursos muy limitados | Puede ser pesado | Proxies ligeros |
Lecturas y recursos adicionales
- Conceptos de seguridad de Istio
- Cadena de filtros proxy de Envoy
- Comparación entre Linkerd e Istio
- Malla de servicios Consul Connect
El pulso de la nube moderna
Las arquitecturas de microservicios basadas en proxy, en su intrincada coreografía de proxies y políticas, ejemplifican la búsqueda de orden y creatividad en la era digital. La red, antaño un turbio submundo, se convierte ahora en un escenario: cada proxy, un actor, cada solicitud, un verso fugaz en la poesía de los sistemas distribuidos.
Comentarios (0)
Aún no hay comentarios aquí, ¡puedes ser el primero!