Los 6 mejores proyectos de redes de código abierto para un mundo nativo de la nube

Con la popularidad y las ventajas cada vez mayores de la nube y los contenedores, las organizaciones están adoptando cada vez más aplicaciones nativas de la nube e infraestructura basada en contenedores para ejecutar sus aplicaciones comerciales. Para administrar de manera eficiente la infraestructura en la nube, las herramientas de red juegan un papel importante. Tener el conjunto adecuado de herramientas de red puede ayudar al administrador de la red a administrar y operar las aplicaciones nativas de la nube. A continuación, se muestran algunos proyectos de redes de código abierto que los administradores de redes pueden usar para sus mundos nativos de la nube:

1. Proyecto Calico

Proyecto Calico es un proyecto gratuito y de código abierto que se puede utilizar para administrar políticas de red seguras y altamente escalables para contenedores, máquinas virtuales y cargas de trabajo nativas basadas en host. Es compatible con plataformas nativas de la nube conocidas como Kubernetes, Docker EE, OpenStack, OpenShift y servicios bare-metal.

Utiliza estándar Herramientas de red de Linux para ofrecer dos servicios principales para aplicaciones nativas de la nube: conectividad de red entre cargas de trabajo y aplicación de políticas de seguridad entre cargas de trabajo. Admite una amplia gama de opciones de implementación utilizando componentes modulares, incluidos los complementos CNI para Kube, el complemento Neutron ML2, Felix, la pila de enrutamiento BGP y una interfaz de línea de comandos simple, calicoctl. Además, ofrece opciones de redes superpuestas y no superpuestas en la nube pública o en implementaciones locales. Ofrece visibilidad y resolución de problemas, seguridad de autoservicio, seguridad de confianza cero, microsegmentación en la nube, detección de intrusiones y tenencia múltiple. También proporciona controles de acceso de salida avanzados, firewalls extendidos a Kubernetes y controles de seguridad adicionales.

Este proyecto tiene varios planos de datos, por lo que un usuario puede elegir las tecnologías que mejor se adapten a sus necesidades, como un plano de datos de filtro de paquetes de Linux Berkeley (eBPF), un plano de datos de red de Linux y un plano de datos HNS de Windows.

2. Cilium

Cilium es una herramienta de código abierto que proporciona conectividad de red transparente y segura junto con equilibrio de carga entre las cargas de trabajo de las aplicaciones. Funciona en la capa 3/4 para los servicios de seguridad y redes tradicionales y en la capa 7 para asegurar el uso de los últimos protocolos de aplicación como gRPC, HTTP y Kafka.

Esta herramienta de código abierto se puede integrar en marcos de orquestación comunes, como Kubernetes. La base de esta herramienta es la tecnología del kernel de Linux llamada eBPF. Admite la inserción dinámica de código de bytes eBPF en el kernel de Linux en numerosos puntos de integración, como sockets de aplicaciones, E / S de red y puntos de seguimiento, para implementar la lógica de seguridad, redes y visibilidad.

Está disponible en dos ediciones: Cilium Open Source y Cilium Enterprise. Cilium Open Source incluye parte del código base de la comunidad de Cilium de código abierto, mientras que la edición Enterprise admite la distribución de flujos de trabajo de seguridad y observabilidad avanzada.

3. Enviado

Enviado es un proxy de red de código abierto desarrollado para el borde de capa 7 y utilizado para aplicaciones nativas de la nube. Ofrece un alto rendimiento con un tamaño reducido y funciona como un proxy de servicio. Se basa en los aprendizajes de los equilibradores de carga de software y hardware como HAProxy / NGINX. Se basa en Lyft y tiene una base de colaboradores vibrante. También es un proyecto oficial con Base de computación nativa en la nube (CNCF) proyecto.

Envoy es un proxy distribuido de C ++ creado para aplicaciones y servicios individuales. Ofrece un bus de comunicación y planos de datos universales desarrollados para grandes arquitecturas de malla de servicios de microservicios. Cuando el tráfico de servicios en una infraestructura fluye utilizando una malla Envoy, permite una fácil visualización de las áreas problemáticas mediante la observación regular, el ajuste del rendimiento general y también agrega características de sustrato en un solo lugar.

La última versión de Envoy es 1.17.1 (publicado el 25 de febrero). Admite configuración estática mediante el uso de archivos YAML. Para una configuración más avanzada, tiene un conjunto de API basadas en gRPC.

redes de código abierto

4. Jaeger

Jaeger es una plataforma de rastreo distribuida desarrollada por Tecnologías Uber y donado a CNCF. Esta plataforma se puede utilizar para monitorear sistemas basados ​​en microservicios. Se puede utilizar para tareas como la supervisión de transacciones, el análisis de dependencia de servicios, el análisis de la causa raíz, la propagación del contexto distribuido y la optimización del rendimiento o la latencia.

Esta plataforma está inspirada en Apuesto y OpenZipkin. Ofrece características como el backend de Jaeger que no tienen puntos únicos de falla y escalan según las necesidades comerciales. Por ejemplo, cualquier instalación de Jaeger generalmente procesa varios miles de millones de tramos todos los días. Admite etiquetas de tramo fuertemente tipadas y registros estructurados y un mecanismo de propagación de contexto generalmente distribuido a través del equipaje. Además, representa trazas como gráficos acíclicos dirigidos (DAG) a través de referencias de tramo. La interfaz de usuario web, el backend de Jaeger y las bibliotecas de instrumentación se han creado desde cero para admitir la Estándar OpenTracing.

Jaeger se puede instalar de forma predeterminada como parte de Red Hat OpenShift Service Mesh que incluye una implementación de Istio. Incluye varios componentes (cliente, agente, recopilador, consulta y consola) que trabajan juntos para almacenar, recopilar, visualizar intervalos y seguimientos.
redes de código abierto

5. Franela

Franela es una red superpuesta que se puede utilizar para conectar contenedores entre varios hosts. Se puede utilizar para configurar el tejido de red de capa 3 creado para Kubernetes. Ejecuta un pequeño agente binario único (llamado flanneld) en cada host. Utiliza la API de Kubernetes o etcd directamente para almacenar la configuración de la red.

Esta herramienta es una red superpuesta básica que funciona bien con el rango de direcciones de subred asignado. En términos simples, una red superpuesta se construye sobre otra red. Si bien la franela se creó principalmente para Kubernetes, es una red superpuesta simple que se puede utilizar como una alternativa básica a las soluciones de red definidas por software existentes. Para ser más específicos, esta herramienta de red le da a cada host una subred IP desde la cual el demonio Docker puede asignar direcciones IP a los contenedores individuales. Cada dirección está vinculada a un contenedor para que todos los contenedores de un sistema puedan existir en varios hosts.

Usando herramientas de implementación y distribuciones, la franela se puede implementar con Kubernetes fácilmente. Por ejemplo, CoreOS Tectonic puede configurar franela en los clústeres de Kubernetes utilizando un código abierto Instalador tectónico. Sin embargo, también se puede instalar manualmente en cualquier Clúster de Kubernetes.

6. Kuma

Kuma es una red de servicios moderna creada por Kong, la compañía detrás de la popular puerta de enlace API de Kong. Kuma se diferencia de las mallas de servicios más antiguas al admitir no solo contenedores, sino también máquinas virtuales. De esta manera, es una buena opción para aplicaciones greenfield (modernas) y brownfield (heredadas).

Kuma se basa en Envoy, el servicio de proxy de red líder (y también se enumera arriba). A día de hoy, Kuma es la única malla de servicio CNCF que se ejecuta en Envoy. Kuma permite implementaciones muy complejas. Hay dos modos: independiente y multizona. Independiente consta de un solo plano de control y muchos planos de datos, y multizona consta de más de un plano de control y varios planos de datos. Kuma tiene integración de API nativa con cualquier proveedor de API. Esto es conveniente y ayuda a construir una infraestructura de red robusta que integra lo mejor de ambos mundos: puerta de enlace API y malla de servicios.

Aún en sus primeras etapas, Kuma ha tenido un gran comienzo, pero aún está por verse cómo se desempeña en comparación con el actual Istio y Linkerd. Si ha sentido que Istio es demasiado complejo para sus necesidades, debería echarle un vistazo a Kuma.

Redes de código abierto: facilitando el viaje a la nube

Con las herramientas de red adecuadas, los desarrolladores de aplicaciones pueden administrar mejor sus aplicaciones nativas de la nube o mover sus aplicaciones existentes a la nube de manera más eficiente y rápida. Puede ayudar a eliminar los problemas de rendimiento de la red y también garantizar la alta disponibilidad de las aplicaciones alojadas. Estos proyectos de código abierto son rentables y también ofrecen flexibilidad y agilidad. Seleccionar las herramientas de red adecuadas puede ayudar a los desarrolladores de aplicaciones en su viaje hacia la nube.

Imagen destacada: Shutterstock


Vistas de publicaciones:
24


Leave a Reply

Your email address will not be published. Required fields are marked *