GNU/Linux >> Tutoriales Linux >  >> Cent OS

¿Qué es Istio? - Arquitectura, Características, Beneficios y Desafíos

Introducción

Asegurar y monitorear las cargas de trabajo es la máxima prioridad cuando se trabaja con microservicios. El monitoreo es una tarea difícil cuando se hace manualmente. Los desarrolladores deben configurar cada servicio para garantizar una comunicación segura dentro del sistema. Además, necesitan monitorear los intercambios, lo que lleva tiempo. Tiempo que podría haberse dedicado a desarrollar la propia aplicación.

En su lugar, existe una solución mucho más sencilla:utilizar una plataforma de malla de servicios como Istio. .

En este tutorial, aprenderá sobre Istio, su arquitectura y cómo se usa.

¿Qué es Istio? – Definición de la red de servicios de Istio

Istio es una implementación de malla de servicios de código abierto que gestiona la comunicación y el intercambio de datos entre microservicios. La plataforma se agrega para reducir la complejidad de administrar los servicios de red.

Una vez instalado, inyecta proxies dentro de un pod de Kubernetes, junto al contenedor de la aplicación. Cada proxy está configurado para interceptar solicitudes y enrutar el tráfico al servicio apropiado mientras aplica políticas.

¿Por qué la necesidad de una red de servicios?

Al pasar de una arquitectura monolítica a una de microservicios, los desarrolladores tienen la oportunidad de crear aplicaciones altamente flexibles, resistentes y escalables dentro de ciclos de vida de desarrollo de software mucho más rápidos. Aunque la arquitectura de microservicios tiene muchos beneficios, la evolución en el desarrollo de aplicaciones también presenta ciertos desafíos.

Dado que la arquitectura consta de muchos servicios individuales que trabajan juntos, es importante garantizar una comunicación fluida. Estos componentes autónomos se comunican entre sí a través de API. Sin embargo, administrar el flujo de tráfico y las llamadas a la API requiere mucho tiempo y esfuerzo por parte del equipo de desarrollo.

Se necesitaba una solución de terceros que permitiera a los miembros del equipo centrarse en desarrollar la lógica del servicio en lugar de la lógica de la red. Por lo tanto, las mallas de servicio como Istio se diseñaron para administrar la capa de red de la comunicación de servicio a servicio.

Arquitectura de Istio

La arquitectura de Istio incluye dos componentes principales:

  • Plano de control. Este componente se utiliza para configurar y administrar proxies en el plano de datos.
  • Plano de datos. El segundo elemento de Istio incluye todos los proxies sidecar insertados dentro de los pods.

Plano de control

Antes de la versión 1.5, el plano de control era un grupo de diferentes componentes:piloto, ciudadela y galera. Istio 1.5 presentó Istiod , un plano de control que combinó los componentes antes mencionados en uno. Istiod simplificó la configuración y el funcionamiento de la red de servicios.

Los servicios de Istio en el plano de control incluyen:

  • Piloto utiliza la API de Envoy para comunicarse con los sidecars de Envoy. Es responsable de la gestión del tráfico, el enrutamiento y el descubrimiento de servicios.
  • Ciudadela proporciona una comunicación segura entre los servicios mediante la gestión de la autenticación de usuarios, certificados y gestión de credenciales.
  • Cocina es responsable de la gestión de configuración, ingesta, distribución y procesamiento.

Plano de datos

El plano de datos consta de Envoy representantes desplegados en las cápsulas como sidecars. Interactúan y administran el tráfico de todos los servicios dentro del sistema. Esto incluye controlar toda la comunicación de red entre microservicios.

Dado que se agregan como sidecars, no es necesario rediseñar la arquitectura de la aplicación para implementar los proxies.

Los proxies controlan el tráfico especificando reglas de enrutamiento (para HTTP, gRPC, TCP) y aplicando TLS y encriptación de tráfico.

Todo el tráfico pasa por los servidores proxy de Envoy. Por lo tanto, estos componentes recopilan grandes cantidades de datos y brindan información valiosa sobre el tráfico de su negocio.

Los proxies de Envoy proporcionan:

  • Descubrimiento dinámico de servicios
  • Equilibrio de carga
  • Controles de salud
  • Terminación de TLS
  • Proxies HTTP/2 y gRPC
  • Disyuntores
  • Lanzamientos por etapas con división de tráfico basada en porcentajes
  • Inyección de errores
  • Métricas enriquecidas

Características de Istio

Las características más importantes de la plataforma son:

1. Control de tráfico
La característica principal de Istio es su papel en la gestión del tráfico. Controla el flujo de tráfico entre servicios mediante la implementación de reglas de enrutamiento a través de sus servidores proxy Envoy. Al implementar proxies, Istio dirige el tráfico y las llamadas a la API sin realizar ningún cambio en el servicio en sí. Esto permite a los usuarios realizar lanzamientos controlados, lanzamientos por etapas y pruebas A/B.

2. Observabilidad
La plataforma controla y observa todo el tráfico entrante y saliente dentro de la capa de red. Por lo tanto, recopila grandes cantidades de datos que brindan información útil para el desarrollo futuro.

3. Seguridad
Mientras los desarrolladores protegen la aplicación de posibles amenazas y ataques, Istio autoriza, autentica y cifra todas las comunicaciones internas. Los pods y los servicios se comunican entre sí y transfieren datos según las políticas de Istio.

Ventajas y desventajas de Istio

Para ayudarlo a decidir si implementar o no Istio en la arquitectura de microservicios, eche un vistazo a algunas de sus ventajas y desventajas.

Ventajas

  • Aporta información sobre los problemas de rendimiento de la red.
  • Asegura la comunicación de servicio a servicio y de módulo a módulo.
  • Implementa reglas y políticas de enrutamiento que administran la comunicación y la transferencia de datos.
  • Permite implementaciones canary y pruebas A/B.

Desventajas

  • La configuración e implementación de Istio requiere mucho tiempo.
  • Además, es difícil configurar los archivos .yaml para garantizar la configuración correcta y la comunicación cifrada.

Cent OS
  1. ¿Qué es Docker (y los contenedores de Linux?)

  2. ¿Qué características hay en Zsh y faltan en Bash, o viceversa?

  3. ¿Qué beneficios vería actualizar de 14.04 a 15.04 y cuáles son algunas advertencias?

  4. ¿Por qué Deis y qué es?

  5. ¿Qué son los modos SELinux y cómo configurarlos?

Funciones y fecha de lanzamiento de Ubuntu 22.04

Novedades en Fedora 25 Workstation

Ubuntu 17.04 Fecha de lanzamiento y características

Lanzamiento de Ubuntu 18.10, características y más

¿Qué es la gestión de la automatización y la configuración con CHEF? Parte 1

¿Qué es EasyApache y cómo lo uso?