¿Qué es istio?

Hoy en día los microservicios son una gran tendencia utilizada por las empresas. Los desarrolladores utilizan microservicios para diseñar la portabilidad, mientras que los operadores gestionan implementaciones híbridas y en la nube extremadamente grandes. Istio es una de las últimas tecnologías que utilizan los desarrolladores para reducir la complejidad de sus implementaciones.

Istio es un Service Mesh de código abierto, que se aplica de forma transparente a las aplicaciones distribuidas existentes.

Las diversas características de Istio le permiten ejecutar de manera exitosa y eficiente una arquitectura de microservicio distribuido y proporcionar una manera uniforme de proteger, conectar y monitorear microservicios.

Entonces, ¿qué es Service Mesh? es una red de microservicios que integran aplicaciones y las interacciones entre ellas. Los requisitos para una malla de servicio son;

  • Descubrimiento
  • Balanceo de carga
  • Recuperación de fallas
  • Métrica
  • Supervisión
  • Pruebas A / B
  • Lanzamientos canarios
  • Limitación de velocidad
  • Control de acceso
  • Autenticación de extremo a extremo

¿Por qué Istio es tan importante?

Istio facilita la creación de una red de servicios implementados con equilibrio de carga, autenticación de servicio a servicio, monitoreo y más. Istio admite servicios mediante la implementación de un proxy de sidecar especial en todo el entorno que intercepta todas las comunicaciones de red entre microservicios, luego configura y administra Istio utilizando la funcionalidad del plano de control que incluye,

  • Balanceo de carga automático para tráfico HTTP, gRPC, WebSocket y TCP.

** gRPC: un marco RPC moderno de código abierto y alto rendimiento que puede ejecutarse en cualquier entorno

  • Control detallado del comportamiento del tráfico con reglas de enrutamiento, reintentos, failovers e inyección de fallas.
  • Una capa de política conectable y una API de configuración que admite controles de acceso, límites de velocidad y cuotas.
  • Métricas automáticas, registros y rastreos para todo el tráfico dentro de un clúster, incluidas la entrada y salida del clúster.

** ingreso de clúster: una colección de reglas que permiten que las conexiones entrantes lleguen a los servicios de clúster.
** salida del clúster: una colección de reglas que permiten que las conexiones salientes lleguen a los servicios del clúster.

  • Comunicación segura de servicio a servicio en un clúster con una fuerte autenticación y autorización basada en identidad.

Características Principales de Istio

Principalmente hay 05 características principales como;

  • La gestión del tráfico
  • Seguridad
  • Observabilidad
  • Soporte de la plataforma
  • Integración y personalización

Discutiré las características principales anteriores más profundamente en futuros tutoriales.

Ahora veremos la arquitectura de una malla de servicio Istio.

 

Un Istio Service Mesh consta de dos partes como, plano de datos y plano de control.

Plano de Datos: Se compone de un conjunto de proxies inteligentes llamado Envoy que se implementa como un sidecar. Estos proxies median y controlan toda la comunicación de red entre microservicios junto con Mixer (un centro de telemetría y de propósito general)

Plano de control: Administra y configura los servidores proxy para enrutar el tráfico. Además, configura Mezcladores para aplicar políticas y recopilar telemetría.

 

Te contaremos algunos de los componentes más importantes de la arquitectura.

El primero es Enviado. Envoy es un proxy de alto rendimiento desarrollado en C ++ para mediar todo el tráfico entrante y saliente para todos los servicios en la malla de servicios. Algunas características incorporadas:

  • Descubrimiento de servicio dinámico
  • Balanceo de carga
  • Terminación TLS
  • Proxies HTTP / 2 y gRPC
  • Rompedores de circuito
  • Controles de salud
  • Lanzamientos por etapas con división de tráfico basada en%
  • Inyección de falla
  • Métricas ricas

Envoy se implementa como un sidecar para el servicio relevante en el mismo pod Kubernetes. Esta implementación permite a Istio extraer una gran cantidad de señales sobre el comportamiento del tráfico como atributos.

 

Referencia: https://medium.com/faun/istio-step-by-step-part-01-introduction-to-istio-b9fd0df30a9e