F5 y la contenerización

INTRODUCCIÓN

Las organizaciones luchan constantemente entre adoptar cambios tecnológicos para abrir nuevas oportunidades de negocio y proteger el negocio de nuevos desafíos y riesgos. En este documento, examinaremos la contenerización y cómo la adopción de esta tecnología en los productos de F5 afecta a los profesionales de TI, arquitectos y tomadores de decisiones comerciales.

En los últimos 20 años, la virtualización ha transformado la informática en servidores, permitiendo que múltiples sistemas operativos separados se ejecuten en una plataforma de hardware. Un enfoque más moderno es la contenerización (o virtualización del sistema operativo), que permite que múltiples aplicaciones se ejecuten en una sola instancia de un sistema operativo host. Luego, cada instancia de la aplicación comparte los binarios y las bibliotecas instaladas en la única instancia del sistema operativo. La figura 1 compara estos enfoques.

Figura 1 - Comparación de máquinas virtuales con contenedores

A diferencia de las máquinas virtuales (VM), los contenedores pueden compartir el mismo sistema operativo, virtualizándose a nivel del sistema operativo, en lugar de a nivel del hipervisor.

No es sorprendente que a los desarrolladores les gusten los contenedores porque hacen que desarrollar e implementar aplicações y crear microservicios sea rápido y fácil. La contenerización también permite una mayor portabilidad, ya que las aplicaciones en contenedores son más fáciles de implementar en diferentes sistemas operativos, plataformas de hardware y servicios en la nube. Los contenedores utilizan menos recursos que las aplicações que se ejecutan directamente en sistemas operativos alojados en hardware o en máquinas virtuales.

Generalmente, la mayor parte de la discusión (y documentación) sobre los contenedores se centra en la perspectiva de programación o DevOps. Como profesional de TI, arquitecto de sistemas o tomador de decisiones comerciales, si bien valora la flexibilidad que puede brindar la contenerización, es posible que tenga inquietudes genuinas sobre cómo este cambio afectará la administración, la gestión y el monitoreo de aplicaciones y servicios dentro de su entorno. También desea asegurarse de que la contenedorización no afecte negativamente la seguridad de la red y de las aplicaciones.

Afrontando los desafíos de la TI moderna

En un mercado cada vez más competitivo, los sistemas de TI modernos deben ofrecer beneficios comerciales realizables. Para cumplir con este requisito, es vital que los departamentos de TI puedan aumentar su capital de aplicação , diseñando y creando arquitecturas que incluyan no solo más aplicaciones, sino aplicaciones con mayor funcionalidad, usabilidad mejorada e integración más sencilla.

El desafío para los directores de TI es que sus departamentos deben ofrecer una mayor funcionalidad sin aumentar la plantilla. Las mejoras en la productividad ahora provienen, no de contratar más personas, sino de avances en tecnología y automatización que permiten aumentar la cantidad de aplicaciones disponibles para los clientes, administradas por un equipo del mismo tamaño.

La facilidad de implementación de contenedores presenta un desafío adicional. Los desarrolladores necesitan educación y orientación para garantizar que consideren tanto la escala como la seguridad al crear aplicações y los profesionales de TI pueden ayudarlos a lograr esos resultados. Aquí, es necesario pensar en el impacto en la producción de las plataformas de contenedores como Kubernetes y Docker, y cómo la necesidad de ser ágil no genera resultados indeseables debido a malas prácticas de seguridad o a la falta de consideración de las cargas de producción. 

Kubernetes es una plataforma de código abierto para gestionar cargas de trabajo y servicios en contenedores. Kubernetes se originó como un sistema de orquestación de contenedores de Google que luego la empresa donó a la Cloud Native Computing Foundation, lo que hizo que el código fuente estuviera abierto para todos. Docker ofrece un tipo similar de arquitectura y distribución de código abierto, que consta de un conjunto de software como servicio (SaaS) y plataforma como servicio (PaaS) acoplados. 

Cálculo del tiempo de obtención de valor

Un factor clave para obtener beneficios comerciales realizables es minimizar el tiempo para obtener valor. Cada vez más, factores como el rendimiento y la latencia pasan a un segundo plano frente a la facilidad de inserción. En consecuencia, si tiene dos componentes, ambos con una funcionalidad casi idéntica, pero uno tiene un mayor rendimiento mientras que el otro es más fácil de integrar, las organizaciones tienden a elegir el componente que sea más fácil de integrar con el entorno actual. A medida que aumenta la complejidad ambiental, es probable que este sesgo continúe.

Determinación del valor

Al buscar implementar una tecnología como la contenerización, se necesita alguna forma de medir el valor que aporta este nuevo enfoque. Los factores que afectan el valor normalmente incluyen idoneidad, capacidad, esfuerzo y costo. La siguiente ecuación da un ejemplo de cómo asignar valor relativo en función de esos factores.

F5 y la contenerización

Las unidades que utilices en la ecuación son irrelevantes; lo importante es que sean las mismas para cada elemento que evalúes.

Esta ecuación resalta que la tecnología debe ser transparente para integrarse y que la familiaridad (es decir, la facilidad de inserción) puede ser más importante que las mejores características o el mejor rendimiento de su clase. En consecuencia, el esfuerzo de implementación tiene un efecto de equilibrio en lo que respecta a los cálculos del valor general, lo que puede dar lugar a que productos menos capaces sean más atractivos para los clientes debido a su facilidad de inserción.

Un ejemplo de este efecto podría darse con dos soluciones de monitoreo que compiten entre sí. El producto A tiene especificaciones fantásticas, con registro e informes de primera clase. Incorpora seguridad de nivel militar y es altamente manejable. Desafortunadamente, su interfaz de línea de comandos propietaria, su escaso soporte para estándares abiertos y la falta de funciones de integración hacen que sea difícil de instalar. También es más caro que la mayoría de los otros productos del mercado.

En comparación, el Producto B no tiene ni de lejos las capacidades de su rival, aunque todavía ofrece niveles aceptables de monitoreo y seguridad. Sin embargo, supera al producto de la competencia en lo que se refiere tanto a coste como a facilidad de instalación. La tabulación de las puntuaciones de cada producto produce la siguiente tabla, con calificaciones otorgadas del 1 al 10 por idoneidad, capacidad y esfuerzo de instalación, siendo 1 el más bajo y 10 el más alto.

 

Producto A

Producto B

Idoneidad

10

4

Capacidad

10

2

Esfuerzo de instalación

10

2

Coste

$1,000

$500

Valor

20

60

Al introducir estas cifras en la ecuación anterior se obtiene el valor que aparece en la fila inferior de la tabla.

Se puede ver cómo el producto menos adecuado y capaz, que es cinco veces más fácil de instalar y cuesta la mitad, ofrece aproximadamente tres veces el valor en comparación con su rival de mejor calidad. Muchas organizaciones comprenden estas consideraciones y utilizan cada vez más la facilidad de instalación e integración como un factor clave al adoptar e implementar nuevas tecnologías. Los enfoques basados en contenedores pueden reducir significativamente el esfuerzo de implementación y los costos de control, manteniendo al mismo tiempo tanto la idoneidad como la capacidad.

¿Por qué los contenedores son cada vez más populares?

Dado que las aplicaciones generan cada vez más valor comercial, la contenerización proporciona una solución lógica a los desafíos de las prácticas de implementación de TI centradas en DevOps. Los contenedores proporcionan aislamiento de la plataforma en la que se ejecutan y entre sí sin la sobrecarga de administración que supone ejecutar máquinas virtuales. Los desarrolladores pueden crear fácilmente entornos de aplicaciones que contengan todos los binarios y bibliotecas que necesitan, con las funciones de red y gestión necesarias integradas. La contenerización también simplifica las pruebas y la implementación de aplicação .

Los entornos basados ​​en contenedores proporcionan una mayor utilización de recursos que las computadoras virtuales al ampliar masivamente la cantidad de instancias de aplicação que pueden ejecutarse en un servidor. Sin la sobrecarga de los sistemas operativos host e invitado, los entornos de contenedores hacen un uso más eficiente del tiempo del procesador y del espacio de memoria al compartir el kernel del sistema operativo. La contenerización también proporciona más flexibilidad arquitectónica, ya que la plataforma subyacente puede ser una máquina virtual o un servidor físico. Estrategia de productos de Red Hat1 indica que casi la mitad de los clientes de Kubernetes que implementen aplicaciones en contenedores en el futuro ejecutarán el motor de contenedores directamente en hardware.

La contenerización supone el siguiente avance en el camino desde la informática basada en hardware hasta la virtualización y la multinube, permitiendo hasta un 100 % de automatización, tiempos de creación de servicios en fracciones de segundo y duraciones de servicio que pueden medirse en segundos. Es este aprovisionamiento y desaprovisionamiento inmediato de servicios y microservicios dentro de una arquitectura de TI moderna lo que posibilitan entornos de contenedores como Docker, OpenShift y Kubernetes.

Es importante destacar que la contenerización ofrece un beneficio clave que es vital en el mundo multiplataforma y multinube de hoy: la capacidad de trasladar aplicaciones desde las instalaciones locales a la nube, a otro proveedor de nube y de regreso a las instalaciones locales, todo sin cambios en el código subyacente. Dado que la interoperabilidad es un factor clave que sustenta las decisiones arquitectónicas, esta portabilidad permite a los departamentos de TI alcanzar hitos clave para las implementaciones de servicios de aplicaciones y apoya a los equipos de DevOps en el cumplimiento de los objetivos organizacionales. Un informe reciente de IBM2 Destaca cómo el uso de contenedores para implementaciones de aplicaciones también permite a las empresas mejorar la calidad de las aplicaciones, reducir los defectos y minimizar el tiempo de inactividad de las aplicação y los costos asociados.

El mismo informe también enumera aplicações que son especialmente adecuadas para entornos basados ​​en contenedores, que incluyen análisis de datos, servicios web y bases de datos. Aquí, el factor clave es el rendimiento, pero otros factores relevantes a considerar son si es probable que las aplicações se ejecuten en múltiples entornos y si usan microservicios para soportar múltiples equipos de DevOps trabajando en paralelo. Con los contenedores, puedes solucionar problemas de rendimiento simplemente activando más instancias de una aplicación, suponiendo que implementes un diseño de arquitectura sin estado y proporciones servicios de aplicación a escala.

Desafíos de los contenedores

Los contenedores no están totalmente exentos de desafíos de implementación y esta tecnología, aún joven, aún no ha alcanzado el nivel de madurez de la virtualización. La siguiente sección destaca algunos de los desafíos que plantean los contenedores.

  1. Gestión de claves : la gestión de claves entre contenedores puede ser problemática, especialmente porque uno de los principales beneficios de los contenedores es la portabilidad. Su entorno de administración de claves debe poder hacer frente al movimiento de contenedores entre hosts locales, así como también hacia la nube y viceversa.
  2. Redes : los contenedores desafían los modelos de redes tradicionales debido a la velocidad con la que pueden activarse y desactivarse. En consecuencia, las direcciones de red estáticas no serían viables en dicho entorno. Y aunque los mecanismos de direccionamiento como el Protocolo de configuración dinámica de host (DHCP) funcionaron bien con hosts físicos y máquinas virtuales, las cargas de trabajo de contenedores pueden aparecer y desaparecer antes de que la dirección IP del contenedor pueda registrarlas y el contenedor en sí se pueda descubrir. La separación del hardware de red física mediante el uso de redes definidas por software (SDN) basadas en contenedores es vital para poder migrar topologías de contenedores completas desde entornos locales a entornos de nube pública y privada. La mayoría de los entornos de contenedores implementan algún tipo de interfaz de red de contenedores (CNI) para llevar a cabo esta función.
  3. Múltiples tecnologías de contenedores : es posible que su organización ya tenga varias tecnologías de contenedores diferentes implementadas dentro de su entorno. Incluso con estas implementaciones, es probable que su personal carezca de un conocimiento técnico profundo de todos estos entornos. La capacitación es importante, así como también darle tiempo a su equipo para familiarizarse con estas diferentes implementaciones de contenedores. La gestión de estas tecnologías de contenedores múltiples también es más costosa. Sin embargo, las mejoras en la capacidad de administración, particularmente en la última versión de Kubernetes, tienden a hacer que las organizaciones se estandaricen en el entorno más fácil y más utilizado.
  4. Riesgos de configuración predeterminada : a medida que las aplicaciones se desarrollan en contenedores, aumenta el riesgo de que los contenedores estén mal configurados. Un ejemplo es implementar contenedores en su configuración predeterminada. Unidad 42 de inteligencia de amenazas globales en Palo Alto3 Recientemente se identificaron más de 40.000 dispositivos contenedores únicos que tienen la configuración predeterminada. Por supuesto, no todos esos casos son vulnerables a la explotación, pero resalta que las prácticas básicas de mala configuración están muy extendidas y hacen que estas organizaciones sean objetivos de una mayor explotación.

Figura 2 - Lograr una contenerización equilibrada

Contenedorización equilibrada

Un criterio de diseño vital en la contenerización es el equilibrio entre los tres vectores de rendimiento, densidad y confiabilidad, como se muestra en la Figura 2.

El enfoque de F5 es centrarse en la contenerización a nivel de componente en lugar de a nivel de sistema. Este enfoque aporta varias ventajas, entre las que se incluyen:

  • Reducir la huella de memoria de cada contenedor al no asignar memoria a funciones de red no utilizadas.
  • Minimizar la dependencia del CNI del host, evitando así problemas de rendimiento de la red.
  • Implementar componentes pequeños y livianos que llevan el dominio de falla al nivel de suscriptor/usuario.

La contenedorización a nivel de componentes nos permite lograr ese triple equilibrio a través de la desagregación, la programación y la orquestación. Los productos F5 que implementan contenedores utilizarán estas características para maximizar los beneficios de la contenerización.

F5 Container Ingress Services

Para apoyar a las organizaciones a medida que adoptan tecnologías basadas en contenedores, F5 ofrece F5® Container Ingress Services , una integración de contenedores de código abierto. Container Ingress Services proporciona servicios de automatización, orquestación y redes, como enrutamiento, descarga SSL, enrutamiento HTTP y seguridad sólida. Es importante destacar que integra nuestra gama de servicios BIG-IP con entornos de contenedores nativos, como Kubernetes y Red Hat OpenShift.

Arquitectónicamente, Container Ingress Services ocupa la siguiente posición en relación con sus aplicaciones en contenedores, agregando servicios de controlador de Ingress de puerta de entrada y habilitando visibilidad y análisis a través de BIG-IP.

Figura 3 - Servicios de ingreso de contenedores F5

Container Ingress Services aborda dos de los problemas clave identificados anteriormente en este documento: escalabilidad y seguridad. Puede escalar aplicaciones para satisfacer las cargas de trabajo de los contenedores y proteger los datos de los contenedores habilitando los servicios de seguridad. Con la integración de la plataforma BIG-IP, puede implementar el rendimiento de aplicaciones de autoservicio dentro de su entorno de orquestación. El uso de Container Ingress Services también reduce la probabilidad de que los desarrolladores implementen contenedores Kubernetes con configuraciones predeterminadas mediante el uso de gráficos Helm para implementaciones y actualizaciones basadas en plantillas.

Además, Container Ingress Services permite la seguridad con protección avanzada contra ataques a aplicação de contenedores y servicios de control de acceso. Para los desarrolladores de aplicaciones y los profesionales de DevOps que no están familiarizados con las configuraciones, los servicios de aplicação de F5 ofrecen políticas listas para usar y control de acceso basado en roles (RBAC) con soporte de nivel empresarial, además de comunidades de código abierto y de clientes de DevCentral.

Controlador de entrada de NGINX para Kubernetes

Los desafíos asociados con Kubernetes nativo están relacionados con el desarrollo y escalamiento de aplicaciones de contenedores modernas sin una mayor complejidad. Puede haber limitaciones en el rendimiento y la confiabilidad, y los servicios que proporcionan una puerta de entrada a los contenedores de Kubernetes pueden implementarse de manera inconsistente, lo que requiere un mayor esfuerzo de integración para implementar y configurar.

La solución a estos desafíos es NGINX Kubernetes Ingress Controller , que mejora el entorno básico de Kubernetes al proporcionar servicios de entrega para aplicaciones de Kubernetes. Normalmente, los pods de Kubernetes solo pueden comunicarse con otros pods en el mismo clúster. La figura 4 muestra el controlador de ingreso de Kubernetes que proporciona acceso desde la red externa a los pods de Kubernetes, gobernado mediante reglas de recursos de ingreso que controlan factores como la ruta del Identificador universal de recursos (URI), el nombre del servicio de respaldo y otra información de configuración. Los servicios disponibles dependen de si utiliza NGINX o NGINX Plus. 

Figura 4 – Controlador de ingreso NGINX para Kubernetes

Las empresas que utilizan NGINX obtienen características como equilibrio de carga, terminación de cifrado SSL o TLS, reescritura de URI y cifrado SSL o TLS ascendente. NGINX Plus aporta capacidades adicionales, como persistencia de sesión para aplicações con estado y autenticación API JSON Web Token (JWT).

Aspen Mesh

A medida que las organizaciones adoptan microservicios para desbloquear la agilidad de los desarrolladores y la escalabilidad nativa de la nube, se enfrentan a una curva de aprendizaje mientras las capacidades organizacionales se ponen al día con la tecnología. Estas organizaciones quieren desbloquear rápidamente los beneficios de los microservicios y, al mismo tiempo, preservar la estabilidad que sustenta la experiencia de sus clientes.

Aspen Mesh es una versión totalmente compatible de la malla de servicios Istio de código abierto que ayuda a las empresas a adoptar microservicios y Kubernetes a escala y obtener observabilidad, control y seguridad de las arquitecturas de microservicios. Aspen Mesh agrega funciones empresariales clave de malla de servicios, incluida una interfaz de usuario que facilita la visualización y la comprensión del estado y la salud de sus servicios, RBAC detallado y capacidades de configuración y políticas que facilitan la implementación de un comportamiento deseado en sus aplicações en contenedores.

Aspen Mesh proporciona una implementación nativa de Kubernetes, que se implementa en su clúster de Kubernetes y puede ejecutarse en su nube privada o pública, o en sus instalaciones. Es importante destacar que puede funcionar en forma cooperativa con un mecanismo de ingreso basado en F5, utilizando servicios de ingreso de contenedores para proporcionar capacidades de capa 7 más profundas.

Arquitectónicamente, Aspen Mesh aprovecha un modelo de proxy sidecar para agregar niveles de funcionalidad y seguridad a las aplicações en contenedores, como se ve en la Figura 5.

Figura 5 - Arquitectura de Aspen Mesh

F5 y la adopción de contenedores

F5 está a la vanguardia en la adopción de contenedores, brindando a las organizaciones la capacidad de ejecutar entornos de aplicacion contenerizada confiables, seguros y de alto rendimiento que escalan servicios de aplicação en cargas de trabajo simples y masivas, específicas de la industria. La tecnología de contenedores será un elemento clave en los futuros entornos de desarrollo e implementación de aplicação , como las implementaciones sin servidor, las arquitecturas de malla de servicios y la seguridad de borde móvil. Como empresa, F5 utiliza tanto su propia investigación de desarrollo como implementaciones comerciales de contenedores para impulsar y desarrollar aplicaciones y servicios que marcarán la diferencia en su negocio.

Al igual que con la virtualización de productos existentes, incorporamos tecnología de contenedores en formas que pueden no ser inmediatamente obvias para el administrador, pero que serán completamente transparentes para el usuario final. Como cliente, verá un mayor rendimiento, flexibilidad y seguridad. A medida que implementamos sin problemas estas nuevas aplicaciones y servicios, usted puede concentrarse en garantizar que tenga la funcionalidad que necesita.

También estamos trabajando para adoptar las mejores soluciones de código abierto en nuestros productos, ampliando los servicios que proporcionan estas plataformas de código abierto y mejorando las capacidades de nuestros entornos de contenedores. Nuestro objetivo es siempre crear productos que sean más fáciles de implementar, más rápidos de integrar en sus redes existentes, más confiables y más seguros.

Para ejecutar nuestra estrategia de adopción de contenedores, nos centramos en los siguientes enfoques:

  • Ampliar la gama de servicios de aplicação no relacionadas con la seguridad que ofrecemos. Aquí, el foco está en proporcionar mejores herramientas que aumenten la observabilidad y capacidad de administración de los entornos de contenedores, incluida la administración del rendimiento de las aplicação , el registro y seguimiento, la depuración mejorada y el monitoreo general del estado de las aplicação .
  • Agregue servicios de seguridad no orientados al plano de datos a los contenedores. Aquí planeamos innovar brindando servicios de seguridad que reduzcan la superficie de ataque en los contenedores en ejecución.
  • Habilitar el alojamiento de contenedores de terceros en productos F5. Esta opción de integración permitiría que aplicaciones desarrolladas por el cliente o por terceros se ejecuten dentro de una interfaz de ejecución de contenedor flexible dentro de los productos F5 actuales y futuros. Este enfoque permitiría a F5 crear soluciones llave en mano que incluyan una gama de contenedores y aplicaciones listos para usar o desarrollados a medida, mejorando así significativamente la interoperabilidad.
  • Proporcionar paquetes para servicios de aplicação existentes utilizando herramientas de código abierto. Esta opción crea oportunidades para que podamos ofrecerle políticas de servicio consistentes entre entornos heredados y de nueva construcción.
  • Automatice los servicios de escalabilidad y seguridad de las aplicaciones de contenedores para aumentar las aplicações bajo administración y, al mismo tiempo, contener los recursos asignados para respaldarlas.
El futuro de los contenedores

F5 está comprometido con un futuro que ve a los contenedores como un mecanismo de entrega fundamental para muchas tecnologías de servicios de aplicaciones futuras. Estas tecnologías incluirán servidores sin servidor, malla de servicios y borde móvil, pero pueden incluir otros enfoques actualmente en desarrollo o aún no previstos. Estamos rediseñando nuestra gama de productos para incorporar contenedores a nuestras soluciones sin afectar los aspectos importantes de la gestión eficaz de la red.

Al igual que ocurre con la virtualización, los propios contenedores se volverán más conscientes de las capacidades subyacentes del hardware en el que se ejecuta el motor del contenedor. Los subprocesos múltiples, las velocidades de memoria, el acceso al almacenamiento y las redes serán cada vez más transparentes para las aplicaciones que se ejecutan en cada contenedor, lo que mejorará aún más el uso de los recursos.

No vemos los contenedores como un reemplazo de la virtualización, sino como un complemento de ella. En consecuencia, nuestra expectativa es que los contenedores tengan una vida útil al menos igual a la de la virtualización y que la coexistencia continúe. Por último, esperamos que aparezcan más niveles de abstracción que coexistirán junto con la virtualización y los contenedores.

Entendemos que una preocupación clave para los clientes siempre será la seguridad. En consecuencia, F5 continúa utilizando su experiencia en dispositivos de hardware y software, firewalls y redes para brindar la mayor seguridad posible en todos sus productos.

En resumen, además de nuestra tecnología ya existente relacionada con contenedores, F5 planea seguir incorporando contenedores a la gama de productos F5, brindándole más opciones de integración, mayor confiabilidad, rendimiento mejorado y menor tiempo de implementación con aplicaciones actualizadas y futuras.

Para obtener más información sobre F5 y la compatibilidad de contenedores con aplicaciones, visite f5.com/solutions/bridge-f5-with-container-environments

1 El auge de los servidores Kubernetes Bare-Metal , Container Journal, Mike Vizard, 2019
2 El estado del desarrollo de aplicaciones basadas en contenedores , Informe de IBM Cloud, 2018
3 Mal configurado y expuesto: Servicios de contenedores , Palo Alto Networks, Nathaniel Quist, 2019

Publicado el 23 de junio de 2022
  • Compartir en Facebook
  • Compartir con X
  • Compartir en Linkedin
  • Compartir por correo electrónico
  • Compartir vía AddThis

CONECTE CON F5

Laboratorios F5

Lo último en inteligencia de amenazas de aplicaciones.

Centro de desarrollo

La comunidad de F5 para foros de discusión y artículos de expertos.

Sala de prensa de F5

Noticias, blogs de F5 y mucho más.