Cómo añadir servicios de entrega de aplicaciones de F5 a OpenStack
Introducción
OpenStack, que se está convirtiendo rápidamente en la plataforma de nube dominante para ofrecer infraestructura como servicio (IaaS), impulsa actualmente nubes privadas, públicas y privadas gestionadas. A medida que las nubes OpenStack alojan cada vez más aplicaciones de producción esenciales, los servicios avanzados de entrega de aplicaciones para las capas 4 a 7 se vuelven imprescindibles. Estos servicios proporcionan seguridad, escalabilidad y optimización adicionales para garantizar que dichas aplicaciones sigan siendo seguras, rápidas y estén disponibles. F5 es el proveedor líder de servicios avanzados de entrega de aplicaciones para centros de datos y nubes públicas y privadas, incluidas las basadas en OpenStack. Los servicios de entrega de aplicaciones de F5 pueden integrarse en el diseño de una nube OpenStack, y evaluar de antemano las opciones disponibles resulta útil para planificar de forma eficiente su arquitectura e implementación.
¿Qué es OpenStack?
OpenStack es una plataforma de software de código abierto utilizada para ofrecer servicios de computación en la nube. OpenStack, que nació como un proyecto conjunto de la NASA y RackSpace Hosting, está gestionada actualmente por la fundación OpenStack, cuya misión es promover el software y la comunidad de OpenStack.
Actualmente, varias organizaciones comerciales producen su propia distribución de OpenStack u ofrecen servicios adicionales, como soporte, consultoría o dispositivos preconfigurados.
OpenStack se compone de una serie de componentes que proporcionan los distintos servicios necesarios para crear un entorno de computación en la nube. Estos componentes están ampliamente documentados en otros recursos. Sin embargo, hay una serie de módulos que son directamente relevantes para una implementación de F5 OpenStack.

Un elemento fundamental de OpenStack es la API RESTful, mediante la cual se pueden configurar y automatizar los componentes de la infraestructura. En muchos casos de uso de OpenStack —como la creación de una nube multiinquilino de autoservicio o de una infraestructura compatible con las prácticas de DevOps—, la orquestación basada en API es esencial. La posibilidad de reducir los tiempos de despliegue de semanas a minutos o de desplegar cientos de servicios al día suele ser el principal motivo para migrar a una plataforma en la nube. Para que esto sea eficaz, todos los componentes de la infraestructura deben formar parte del marco de automatización. Muchas aplicaciones necesitarán servicios avanzados de entrega de aplicaciones (como seguridad de aplicaciones o control de acceso) para estar realmente listas para producción, por lo que es fundamental que dichos servicios se integren con las herramientas de orquestación y aprovisionamiento de OpenStack.
Proyectos, inquilinos y redes
La multitenencia es un concepto importante en OpenStack. En OpenStack, un grupo de usuarios se denomina proyecto o inquilino. (Ambos términos son intercambiables). Se pueden asignar a los proyectos cuotas de recursos, como computación, almacenamiento o imágenes. Una de las decisiones más importantes al diseñar una arquitectura multitenencia es cómo se configura la red para los inquilinos. Las plataformas F5® BIG-IP® ofrecen diversas opciones de multitenencia y separación de redes para permitir la interoperabilidad con la multitenencia de OpenStack.
Redes de proveedor
Las redes de proveedor suelen utilizar redes planas (sin etiquetar) o, más habitualmente, redes VLAN (etiquetadas según 802.1Q). Estas se corresponden estrechamente con las redes tradicionales de los centros de datos. El administrador define y crea las redes de OpenStack, que se comparten entre los distintos inquilinos.
En algunos casos, las instancias de computación de un inquilino tendrán interfaces conectadas directamente a la red del proveedor. Los inquilinos no definen sus propias redes, sino que simplemente se conectan a las redes del proveedor configuradas utilizando los intervalos de direcciones IP definidos por el administrador del proveedor. En otros casos, los inquilinos crearán configuraciones de redes virtuales dentro de las redes del proveedor.
Redes de inquilinos
Los administradores pueden permitir que los tenants creen sus propias arquitecturas de red específicas, que suelen estar controladas por OpenStack Neutron mediante instancias de Open vSwitch en los nodos de computación, aunque también pueden utilizarse otras soluciones de redes definidas por software (SDN). Tanto las VLAN como los túneles Ethernet transparentes que utilizan la tecnología GRE o VXLAN permiten la comunicación entre las instancias de computación de los tenants y las aíslan de otros tenants. A principios de 2016, los túneles GRE eran el método de implementación más habitual. Los tenants pueden crear sus propias redes y rangos de direcciones IP, que pueden solaparse entre distintos tenants. Cada tenant puede disponer de un router de OpenStack para permitir la comunicación fuera de sus redes. Para ello, se asignan al tenant una o varias direcciones IP flotantes, que el router del tenant traduce a la dirección IP privada configurada para dicho tenant. (Tenga en cuenta que las direcciones IP flotantes de OpenStack Neutron y BIG-IP son conceptos distintos; más adelante se explicará cómo gestiona la plataforma BIG-IP el aislamiento de los tenants).
Servicios de entrega de aplicaciones de F5
Los productos de F5 ofrecen una amplia gama de servicios avanzados de entrega de aplicaciones diseñados para proporcionar escalabilidad, disponibilidad y seguridad multicapa. Algunos ejemplos destacados, aunque no exhaustivos, son:

La plataforma BIG-IP
La plataforma BIG-IP está disponible en ediciones físicas, virtuales y en la nube. La plataforma proporciona servicios de aplicaciones mediante módulos de software BIG-IP. Una plataforma BIG-IP puede ejecutar uno o varios módulos de software para adaptarse a las necesidades de las aplicaciones y puede implementarse como una unidad independiente o en clústeres de alta disponibilidad.

La plataforma BIG-IP es un proxy bidireccional de copia cero, con estado y de muy alto rendimiento. Comprender este principio arquitectónico básico puede ayudar a entender cómo presta servicios la plataforma BIG-IP y a aclarar las decisiones arquitectónicas.

Los clientes se conectan al dispositivo o a la instancia de BIG-IP, que a su vez se conecta a los servidores de back-end (o, en algunos casos, como en los servicios DNS, gestiona el tráfico de las aplicaciones y responde directamente al cliente). Esto crea un «aislamiento» TCP, con una regeneración completa de la sesión TCP entre el cliente y el servidor. Dentro de este aislamiento lógico, la plataforma BIG-IP proporciona servicios de entrega de aplicaciones. A medida que el tráfico de las aplicaciones atraviesa la plataforma, se puede inspeccionar, modificar y controlar, por lo que la plataforma BIG-IP permite controlar por completo el tráfico entrante y saliente de las aplicaciones.
La plataforma BIG-IP también cuenta con la certificación de ICSA Labs tanto para cortafuegos de red como de aplicaciones web, para los que se someten a rigurosas pruebas la separación del tráfico y la seguridad de la plataforma, lo que ofrece garantías adicionales sobre la seguridad de la plataforma.
Integración de F5 y OpenStack
Los servicios y las plataformas de entrega de aplicaciones de OpenStack y F5 se combinan para ofrecer servicios de nivel de producción a las aplicaciones alojadas en OpenStack. Se puede acceder a los servicios de entrega de aplicaciones de F5 de dos formas dentro de OpenStack: mediante el servicio Neutron Load Balancing as a Service (LBaaS) versión 2 y la orquestación de Heat. (F5 también admite la integración de LBaaS versión 1 con Neutron, pero la comunidad de OpenStack dejó obsoleta la API de la versión 1 a partir de la versión Liberty de OpenStack).
LBaaS
Neutron LBaaS proporciona servicios básicos de balanceo de carga para instancias de computación (y, por tanto, de aplicaciones). Estos servicios se limitan a un subconjunto básico de funciones y características comunes a una amplia variedad de plataformas de balanceo de carga.
El modelo de prestación de servicios LBaaS abstrae los recursos que proporcionan el servicio de los propios servicios. Los recursos que proporcionan los servicios forman parte de la infraestructura de OpenStack, en lugar de estar incluidos en los recursos del inquilino de OpenStack. Este modelo se denomina a veces «bajo la nube».

OpenStack LBaaS se basa en una serie de objetos lógicos para crear una configuración de balanceo de carga.

El modelo de objetos se muestra en la Figura 3.

Como en todas las operaciones de OpenStack, LBaaS se gestiona mediante una API RESTful. La API permite a los inquilinos realizar llamadas REST para crear, actualizar y eliminar objetos de LBaaS, con una serie de pasos entre la llamada a la API de un inquilino y el cambio de configuración que se produce en una instancia de BIG-IP.

La correspondencia entre los objetos de LBaaS y las llamadas a la API para crearlos o actualizarlos en una configuración de una instancia de BIG-IP corre a cargo del controlador F5 OpenStack LBaaS. El controlador LBaaS permite que una instancia de BIG-IP se convierta en un proveedor de servicios de equilibrio de carga dentro de una nube basada en OpenStack.
El controlador LBaaS de F5 consta en realidad de dos componentes independientes:
- El complemento F5 LBaaS, que se instala en un servidor que ejecuta el servicio de API de Neutron
- El proceso del agente F5 LBaaS (que incluye el controlador), que se instala en el host donde se ejecutará dicho proceso. Cada grupo de servicios de dispositivos (un conjunto de dispositivos BIG-IP en un clúster) requiere un proceso de agente independiente.
El controlador LBaaS recibe tareas como resultado de las llamadas a la API de LBaaS realizadas por el inquilino y las traduce en llamadas a la API de F5 iControl® para crear o actualizar objetos de configuración en el dispositivo BIG-IP o en la edición virtual. Cuando los inquilinos utilizan redes de inquilino aisladas y túneles de superposición de red o VLAN, el controlador LBaaS permite prestar servicio a varios inquilinos desde una única instancia de BIG-IP o configuración de alta disponibilidad (HA). El complemento F5 LBaaS crea las llamadas a la API necesarias para la instancia de BIG-IP y para Nova, a fin de garantizar que el tráfico del inquilino se enrute al objeto de escucha aislado del inquilino (VIP en la terminología de BIG-IP) en la instancia compartida de BIG-IP.
Aislamiento de inquilinos
En entornos multiinquilino, una parte fundamental de Nova consiste en garantizar que los inquilinos estén aislados entre sí. Los componentes LBaaS de BIG-IP utilizan diversas funciones multiinquilino de BIG-IP para garantizar la separación del tráfico de los inquilinos.

Para comprender con más detalle cómo y cuándo se utilizan estas funciones multiinquilino, consulte el archivo README del controlador y el agente de F5 OpenStack LBaaS.
LBaaS proporciona un sistema sencillo basado en API para implementar servicios de equilibrio de carga en OpenStack, ofreciendo un equilibrio de carga básico para un gran número de clientes. Sin embargo, la API solo ofrece un subconjunto de las funciones de un controlador de entrega de aplicaciones (ADC) completo. En esta tabla se comparan LBaaS y los servicios nativos de BIG-IP en relación con algunas propiedades clave de la entrega de aplicaciones, como la compatibilidad con protocolos, los servicios adicionales y los monitores de estado.

Cuando se requieren las capacidades avanzadas de un proxy completo de capa de aplicación, el despliegue de servicios de entrega de aplicaciones de F5 mediante el servicio de orquestación OpenStack Heat y las plantillas asociadas permite combinar una creación de servicios sencilla y automatizada con configuraciones de servicio más complejas.
Servicio de orquestación Heat y plantillas
OpenStack Heat es un servicio de orquestación que genera aplicaciones en ejecución a partir de plantillas. La plantilla de Heat describe la infraestructura en uno o varios archivos de texto, y el servicio Heat ejecuta las llamadas a la API correspondientes para crear los componentes necesarios. El servicio Heat puede ampliarse más allá de los módulos principales mediante complementos personalizados.
El complemento F5 Heat permite que las plantillas de Heat creen configuraciones avanzadas de entrega de aplicaciones en cualquier dispositivo BIG-IP o edición virtual con acceso de red al que se pueda acceder desde el servidor que ejecuta el servicio Heat. La instancia de BIG-IP también necesitará conectividad y enrutamiento a las instancias de los inquilinos, ya que el complemento Heat no configura dicha conectividad.
Las plantillas de Heat utilizan un lenguaje de marcado sencillo, YAML, diseñado para que resulte fácil de leer y utilizar. Las plantillas de Heat son declarativas, lo que significa que basta con definir los componentes de infraestructura deseados y confiar en que los proveedores subyacentes creen la configuración especificada.
Las plantillas de Heat permiten crear escenarios de entrega de aplicaciones más avanzados, especialmente cuando se combinan con el sistema de plantillas F5 iApps®. Las plantillas de iApps permiten crear de forma repetible configuraciones de entrega de aplicaciones con solo proporcionar la plantilla necesaria y los valores específicos de la instancia. Las configuraciones de entrega complejas que utilizan funciones avanzadas, como servicios de firewall de aplicaciones web, aceleración de aplicaciones y algoritmos avanzados de equilibrio de carga, pueden implementarse mediante simples llamadas a la API.
Las plantillas de Heat funcionan tanto con instancias de ediciones virtuales de BIG-IP dentro del entorno de red de cada tenant («en la nube») como con dispositivos BIG-IP implementados en la red física subyacente. El dispositivo BIG-IP no necesita participar en ninguna llamada a la API de red de Neutron, ya que se trata como cualquier otro nodo de computación dentro del tenant.


El complemento Heat de F5 está disponible en el repositorio de GitHub de F5. Este repositorio contiene tanto el complemento Heat —que se instala en el servidor donde se ejecuta el motor Heat— como ejemplos de plantillas de Heat.
Opciones de plataforma flexibles
Los servicios de entrega de aplicaciones de F5 están disponibles en varias plataformas, todas ellas con las mismas capacidades de entrega de aplicaciones, ya que utilizan el mismo sistema operativo principal y el mismo micronúcleo de F5.
Dispositivos F5 y chasis F5 VIPRION®
Las plataformas de hardware de F5 ofrecen un alto rendimiento y una enorme escalabilidad para entornos que requieren un gran número de clientes o inquilinos, o para casos de uso que exigen un alto rendimiento de procesamiento. Un único par de alta disponibilidad (HA) puede prestar servicio a cientos de inquilinos y millones de clientes. Los dispositivos de hardware de F5 proporcionan acuerdos de nivel de servicio (SLA) relativos a la tasa de conexiones y descargan considerablemente el entorno informático subyacente mediante el uso de hardware especializado para el procesamiento de SSL y TCP. Cuando se requieren servicios de seguridad de red y mitigación de ataques de denegación de servicio distribuido (DDoS), las plataformas de hardware de F5 ofrecen un rendimiento excelente y altos niveles de protección. La compatibilidad con varios espacios de direcciones superpuestos y protocolos de superposición de red permite utilizar dispositivos de hardware en la mayoría de los entornos multiinquilino.
Ediciones virtuales de F5 BIG-IP
Las ediciones virtuales de F5 BIG-IP están disponibles para la mayoría de los hipervisores (incluido KVM) y para su uso con proveedores de infraestructura como servicio (IaaS) de nube pública, como Amazon AWS y Microsoft Azure. Las ediciones virtuales (VE) de BIG-IP también están disponibles con distintas capacidades, desde una edición para laboratorio hasta versiones listas para producción con actualizaciones de pago a medida que se crece para rendimientos de entre 25 Mb y 10 Gb. Las licencias por volumen y los grupos de licencias flexibles permiten gestionar de forma dinámica el ciclo de vida de las instancias de BIG-IP en entornos de pruebas y desarrollo. La facturación por consumo también está disponible en entornos de nube pública. Las ediciones virtuales de BIG-IP ofrecen los mismos servicios de entrega de aplicaciones que las plataformas de hardware, pero carecen del hardware especializado y de la escalabilidad de los dispositivos.
Las ediciones virtuales de BIG-IP pueden estar totalmente contenidas en una red de inquilino. OpenStack las considera simplemente otra instancia de computación y se configuran mediante plantillas de Heat o pueden utilizarse como proveedor de LBaaS.

1Consulte la Guía de integración de F5 y OpenStack para obtener información detallada.
Dado que el complemento LBaaS de F5 admite varias instancias del agente y del controlador de F5, es posible combinar dispositivos de hardware y ediciones virtuales de BIG-IP en una misma configuración de LBaaS.
Como ocurre con todas las decisiones de arquitectura, la opción adecuada es la que mejor se adapta a los requisitos específicos de la solución. Se pueden crear soluciones escalables y de alto rendimiento utilizando hardware o ediciones virtuales de BIG-IP. Los requisitos generales de escalabilidad y servicios deben ayudar a los arquitectos de infraestructuras a decidirse por el hardware, el software o una combinación de ambos. Para un consumidor o arrendatario que solo desea aprovisionar servicios, la elección entre LBaaS y Heat es más importante que la propia plataforma de entrega.
Alta disponibilidad
La alta disponibilidad es fundamental en las pilas de red y aplicaciones de misión crítica y, como cabría esperar, la plataforma BIG-IP cuenta con una sólida arquitectura de alta disponibilidad. Los dispositivos y las ediciones virtuales de BIG-IP pueden implementarse como dispositivos independientes (por ejemplo, para entornos de prueba y desarrollo), en pares de alta disponibilidad o en grupos de dispositivos activos de N vías con un máximo de cuatro dispositivos. Todos estos tipos de implementación son compatibles con las plataformas OpenStack.
Escalabilidad
La posibilidad de añadir capacidad adicional a los recursos de LBaaS o BIG-IP del inquilino permite a los administradores o inquilinos hacer frente a aumentos en el rendimiento de las aplicaciones o en el número de inquilinos. Ampliar la capacidad vertical u horizontalmente sin interrumpir los servicios es esencial para crear una nube ágil y escalable.
La plataforma BIG-IP puede escalar tanto vertical como horizontalmente: los dispositivos y las ediciones virtuales pueden escalar verticalmente mediante actualizaciones de licencia, mientras que el chasis VIPRION puede hacerlo añadiendo blades de hardware adicionales. El complemento LBaaS de BIG-IP gestionará varios agentes y controladores (cada uno de los cuales gestiona una única instancia o clúster de BIG-IP), lo que permite el escalado horizontal. Cuando se utilicen varios agentes, el complemento LBaaS de F5 mantendrá, de forma predeterminada, todos los objetos del equilibrador de carga LBaaS de un inquilino concreto asignados a un dispositivo (o clúster) BIG-IP.
Cuando se utilizan instancias de BIP-IP VE dentro de un tenant, estas pueden volver a ampliarse mediante una licencia o se pueden añadir instancias adicionales para cubrir nuevas cargas de trabajo.
Conclusión
A medida que las implementaciones de OpenStack alojan cada vez más aplicaciones críticas de producción, aumenta la necesidad de contar con servicios de entrega de aplicaciones sólidos y de alta calidad dentro de OpenStack. Los servicios de entrega de aplicaciones de F5 proporcionan la capacidad, la seguridad y las funcionalidades avanzadas que necesitan estas aplicaciones críticas, junto con la agilidad y la reducida carga operativa que ofrece una nube basada en OpenStack.
PUBLICADO EL 19 DE ABRIL DE 2016
