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.
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.
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.
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.
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.
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.
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.
Figura 2 - Lograr una contenerizació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:
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.
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.
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).
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 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:
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
La comunidad de F5 para foros de discusión y artículos de expertos.