Automatización de los servicios de aplicaciones F5: una guía práctica

Introducción

La automatización de la gestión de la implementación y la configuración de la entrega de aplicaciones y dispositivos de seguridad se ha convertido en una práctica casi obligatoria. En el informe de IDG de 2017 FutureScape, la automatización y la gestión de multinube se clasificaron como algunas de las iniciativas clave que afectarán a las empresas en 2021. La automatización aporta capacidad de escalado, fiabilidad e integración a la implementación de los servicios esenciales de seguridad, optimización y disponibilidad que necesitan las aplicaciones, y hace que su entrega forme parte de los flujos de trabajo orquestados de construcción, prueba e implementación que están emergiendo como el modelo dominante de implementación de aplicaciones.

Incluso la automatización sencilla de tareas básicas como añadir nuevos servidores virtuales o miembros de un conjunto puede permitir que las operaciones proporcionen capacidad de autoservicio a los propietarios de aplicaciones u otros sistemas automatizados, así como tiempo libre para un trabajo más productivo, como la creación de la siguiente ola de herramientas de automatización.

La necesidad de automatizar adquiere una importancia aún mayor cuando una organización comienza a adoptar múltiples plataformas en la nube para prestar servicios de TI. Cuando se intenta implementar servicios en varias ubicaciones con diferentes características de plataforma, la automatización puede ayudar a reducir el aumento de la sobrecarga operativa y a reducir los errores debidos a la falta de familiaridad con las nuevas plataformas.

Pero, ¿cómo y qué automatizar? Con diferentes modelos de operaciones, interfaces e idiomas, el software de automatización puede funcionar en una sola capa de dispositivo, o como herramientas más complejas y multisistémicas. Todas las plataformas de nube de infraestructura como servicio (IaaS) ofrecen sus propias herramientas nativas para implementar infraestructura y servicios virtuales. Además, F5 ofrece una gama de interfaces y opciones de orquestación. Si bien esta variedad de herramientas y opciones le brinda la oportunidad de automatizar de la manera que mejor se adapte a su organización, la elección de la herramienta adecuada puede ser una tarea desalentadora, y el riesgo de complejidad y proliferación de herramientas es real.

En este documento, le proporcionaremos una visión general de las formas en que puede automatizar la implementación, la gestión y la configuración de los dispositivos F5 BIG-IP (tanto físicos como virtuales), junto con algunos consejos sobre cómo elegir el camino adecuado para su empresa.

Automatización: algunas consideraciones clave

El espectro de la automatización

La automatización cubre una amplia gama de actividades. En un extremo del espectro está el desarrollo de scripts simples escritos en Bash, TMSH, Python, u otros lenguajes que podrían ejecutarse localmente para acelerar las actividades de configuración manual. En el otro extremo del espectro se encuentra un sistema completo de “infraestructura como código” que combina la gestión del código fuente, orquestadores de flujos de trabajo y (potencialmente) múltiples herramientas de automatización para crear un sistema en el que la configuración de la infraestructura se define y se modifica con archivos de texto contenidos en un repositorio. Entre estos dos extremos se encuentran una serie de opciones diferentes para ayudarle a gestionar la implementación y la configuración de una plataforma BIG-IP.

Ilustración sencilla de cómo la integración de la infraestructura como código y la herramienta de orquestación es la mejor solución, tal y como se describe en el blog.

Mutables vs. inmutables

La mayoría de las implementaciones actuales de BIG-IP pueden considerarse mutables, lo que significa que podemos esperar que su configuración cambie con el tiempo. Esto se debe a que la plataforma BIG-IP se implementa principalmente como un dispositivo multitenant que proporciona servicios a múltiples aplicaciones. A medida que se implementan nuevas aplicaciones (o que las aplicaciones existentes escalan o requieren servicios adicionales), la configuración del BIG-IP se actualizará para corresponder. Este método de implementación permite a los equipos de infraestructura gestionar un conjunto de infraestructuras centralizadas, que proporcionan servicios a las aplicaciones desde una plataforma común.

Sin embargo, a veces las plataformas BIG-IP se despliegan como parte de una pila de aplicaciones discretas, donde los servicios de un BIG-IP en particular están vinculados a una aplicación o servicio específico. En esta situación, podríamos decir que la configuración de BIG-IP es inmutable; es decir, la configuración se instala en el arranque, o como parte de la imagen de software, y no se cambia durante el ciclo de vida de la instancia de BIG-IP. Los cambios de configuración se efectúan modificando la imagen de software o iniciando el contenido del script del agente y, a continuación, redistribuyéndolo. A este modelo a menudo se le llama «nuke and pave». Aunque menos común en general, la disponibilidad de nuevos modelos de licencias de BIG-IP para soportar instancias por aplicación, herramientas de licencia mejoradas y herramientas como librerías de nube de F5 (un conjunto de scripts y librerías Node.js diseñados para ayudarle a bordo de un BIG-IP en una nube) están haciendo de este modelo de implementación una opción viable para las organizaciones que requieren que una aplicación tenga una pila de código e infraestructura aislada y estrechamente unida.

Ilustración gráfica de infraestructura inmutable y mutable

Declarativo vs. imperativo

Existen dos modelos conceptuales de cómo las interfaces de automatización están expuestas a los consumidores. Los esquemas de automatización de “primera ola” más comunes tienden hacia un modelo imperativo. En los modelos de automatización imperativos, el consumidor de automatización normalmente necesita saber tanto lo que quiere conseguir como los pasos explícitos (normalmente mediante llamadas a la API) para conseguirlo. Esto hace que el peso de entender los detalles de configuración de los servicios avanzados, así como la complejidad y el esfuerzo adicional para integrar los servicios con las herramientas de automatización, recaiga en el consumidor. Es como pedir un bocadillo especificando cada una de las operaciones necesarias para hacerlo, en lugar de, simplemente, pedir un bocadillo con la expectativa de que el que lo haga sepa los pasos y el orden necesarios para hacerlo.

Por el contrario, una interfaz declarativa permite a los consumidores (humanos o máquinas) crear servicios pidiendo lo que quieren. No es necesario un conocimiento detallado de todos los pasos necesarios, ya que el objetivo de automatización tiene los flujos de trabajo preconfigurados o las plantillas de servicio para crear la configuración basada en los resultados requeridos. Mientras que una interfaz declarativa implica una configuración inicial un poco más compleja, esa complejidad se ve compensada por la simplicidad de operación una vez que se construyen las plantillas de servicio adecuadas. Esto lo convierte, en general, en el mecanismo preferido para construir sistemas de automatización.

Directamente o a través de una herramienta de gestión

Otra decisión que deberá tener en cuenta es si las llamadas a la API de automatización deben realizarse desde herramientas de terceros directamente al dispositivo que necesita ser modificado o a través de una herramienta de gestión adicional. Las herramientas de gestión pueden abstraer y simplificar las operaciones y pueden ofrecer capas adicionales de control y registro frente a una conexión directa con la entidad gestionada. Sin embargo, necesitará respaldar esa herramienta para asegurarse de que sus capas de gestión estén altamente disponibles en situaciones en las que la capacidad de realizar cambios rápidamente es crítica.

Ilustración gráfica de Via Management Server vs. Direct

¿API, agente de inicio o CLI?

Los dispositivos BIG-IP suelen automatizarse a través de la API REST, que presenta la mayor parte de la funcionalidad BIG-IP a través de un esquema documentado. Los módulos suministrados por F5 para las herramientas de automatización, como Ansible, utilizan ampliamente la API REST. Además de ofrecer una interfaz imperativa por configuración, las llamadas a la API REST pueden utilizarse para lanzar plantillas iApp de F5, donde los valores para configurar el servicio iApp se pasan como carga útil JSON en la llamada a la API. La adición de la capacidad de iControl LX también permite la creación de un punto final de API definido por el usuario que puede realizar una operación de varios pasos a partir de una única llamada de API.

Otra forma común de automatizar la configuración de BIG-IP es utilizar agentes de arranque, que se ejecutan al inicio y pueden obtener información externa para configurar la plataforma BIG-IP. Los agentes de arranque se utilizan a menudo para realizar la configuración inicial de los dispositivos «onboard» y pueden obtener scripts adicionales y archivos de configuración de sitios de terceros como GitHub o su propio repositorio. Los agentes de inicio también se pueden utilizar para configurar completamente una plataforma BIG-IP, especialmente si ha elegido una configuración fija por aplicación.

La configuración de inicio más común es cloud-init, que está habilitada en todas las imágenes BIG-IP VE (excepto en Microsoft Azure), pero es la más adecuada para su uso en implementaciones AWS y OpenStack. Junto con cloud-init, F5 proporciona una serie de librerías de arranque en nube para ayudar a configurar BIG-IP en el arranque.

Si decide utilizar agentes de inicio para configurar una plataforma después del arranque, preste especial atención a la gestión de fallos si se utilizan fuentes externas, especialmente cuando una instancia puede lanzarse como parte de un evento de escalamiento. Si los recursos externos no están disponibles, ¿cómo se comportará el sistema? ¿Se crearán dispositivos «zombies» adicionales para tratar de mantener el ritmo de la demanda?

En algunos casos, los sistemas de automatización pueden comportarse como usuarios y ejecutar comandos CLI. Si bien esto puede ocasionalmente resolver algunos problemas en los que las llamadas a la API pueden no estar completas, en general la dificultad de soporte y la fragilidad de la solución hacen de este método el último recurso.

Plantillas y libros técnicos

Las plantillas y los libros técnicos pueden crear implementaciones automatizadas y construir infraestructuras que tengan un cierto grado de estandarización. El nivel apropiado de estandarización hace que su infraestructura sea más robusta y compatible. Las plantillas bien creadas ofrecen una interfaz declarativa, donde la entidad solicitante (usuario o máquina) sólo necesita conocer las propiedades que necesita, y no los detalles de implementación. La implementación estricta a través de plantillas y la reparación sólo a través de la corrección de plantillas puede conducir a un servicio de mayor calidad, ya que los problemas por lo general solo tienen que solucionarse una vez los servicios se redistribuyen desde la nueva plantilla.

Integraciones de plataformas

Las herramientas de integración de plataformas de computación vinculan la configuración de los servicios de BIG-IP a plataformas como la nube privada o los sistemas de gestión de contenedores. Los mecanismos varían según las plataformas y las implementaciones, pero generalmente se dividen en tres modelos:

Sustitución de servicios de F5 en una construcción de plataforma existente 
En este modelo, los servicios de F5 se insertan utilizando una construcción de plataforma existente, como el uso de F5 como enrutador de plataforma de contenedores OpenShift o el uso de F5 con el sistema OpenStack Load Balancing as a Service (LBaaS). El uso de estos mecanismos requiere pocos cambios en los procedimientos operativos, ya que se utiliza una interfaz nativa de la plataforma para configurar los servicios, y el controlador suministrado y otros programas informáticos traducen las directivas de configuración de la plataforma a una configuración de F5 sin problemas. Recuerde, sin embargo, que sólo las características que están disponibles a través de la interfaz nativa de la plataforma pueden ser fácilmente desplegadas.

Suscripción a eventos de la plataforma

Otro método común de integración es que un módulo de software (como el Container Connector para Kubernetes y para Mesos) se suscriba a eventos dentro de una plataforma y luego modifique una configuración basada en los eventos. Puede seleccionar qué eventos y servicios implementar etiquetando las aplicaciones a las que se debe prestar servicio y configurando el software del conector para que supervise los eventos con las etiquetas necesarias.

Integración con herramientas de gestión de plataformas 

Muchas plataformas privadas de nube tienen sistemas de gestión diseñados para la automatización. VMware, por ejemplo, tiene varias herramientas de gestión e integración, incluyendo vRealize Orchestrator (vRO) para el que existe un complemento de terceros para la configuración de BIG-IP. Otros ejemplos incluyen el complemento para el sistema de plantillas OpenStack HEAT.

Descubrimiento de servicios

Aunque no es una solución de automatización completa, la detección de servicios es una forma sencilla y potente de integrar configuraciones de BIG-IP con los cambios en el entorno. La detección de servicios funciona mediante sondeos periódicos del sistema en la nube a través de API para recuperar una lista de recursos y modificar la configuración de BIG-IP en consecuencia. Esto es especialmente útil en entornos en los que los recursos están configurados en grupos de escala automática, ya que para escalar el recurso informático de back-end es necesario que el equilibrador de carga esté al tanto de los nuevos recursos. Los componentes de descubrimiento de servicios se suministran con soluciones de escala automática de nubes de F5 para AWS y Azure.

Herramientas de automatización: una guía de recursos

Aunque no podemos cubrir todas las herramientas de automatización u orquestación imaginables, a continuación encontrará una lista de las herramientas, casos de uso y funciones más comunes utilizadas por los clientes de F5.

Integraciones de idiomas

Idioma

Estado

Ejemplos y fuente

Python

Contribución de F5

https://github.com/F5Networks/f5-common-python

Ir

Contribución del usuario

https://github.com/f5devcentral/go-bigip

PowerShell

Compatible con F5

https://devcentral.f5.com/wiki/icontrol.powershell.ashx

 

Herramientas de gestión de la configuración y automatización de la infraestructura

Herramienta

Estado

Ejemplos y fuente

Ansible

Contribución de F5

https://github.com/F5Networks/f5-ansible

Terraform

Contribución de F5

https://github.com/f5devcentral/terraform-provider-bigip

Puppet

Contribución de F5

https://github.com/f5devcentral/f5-puppet

Chef

Contribución del usuario

https://github.com/target/f5-bigip-cookbook

SaltStack

Terceros

https://docs.saltstack.com/en/latest/ref/runners/all/salt.runners.f5.html

 

Sistemas de plantillas de infraestructura

Plataforma

Estado

Ejemplos y fuente

AWS

Compatible con F5 2

https://github.com/F5Networks/f5-aws-cloudformation

Azure

Compatible con F5 1

https://github.com/F5Networks/f5-azure-arm-templates

Google

Compatible con F5 1

https://github.com/F5Networks/f5-google-gdm-templates

OpenStack

Compatible con F5 1

https://github.com/F5Networks/f5-openstack-hot

 

Agentes de arranque y scripts de nube

Cloud-init
https://devcentral.f5.com/articles/f5-in-aws-part-5-cloud-init-single-nic-and-scale-out-of-big-ip-in-v12-21476

Cloud libs
https://github.com/F5Networks/f5-cloud-libs

Integraciones de plataformas
Plataformas de gestión de contenedores

Plataforma

Estado

Ejemplos y fuente

Kubernetes

Compatible con F5 1

https://github.com/F5Networks/k8s-bigip-ctlr

Marathon

Compatible con F5 1

https://github.com/F5Networks/marathon-bigip-ctlr

CloudFoundry

Compatible con F5 1

https://github.com/F5Networks/cf-bigip-ctlr

 

Plataformas de nube privada

Plataforma

Estado

Ejemplos y fuente

OpenStack (LBaaS)

Compatible con F5 1

https://github.com/F5Networks/f5-openstack-lbaasv2-driver

OpenStack (Heat)

Compatible con F5 1

https://github.com/F5Networks/f5-openstack-hot

VMWare (vRO)

Terceros

https://bluemedora.com/products/f5/big-ip-for-vrealize-operations/

Una nota sobre herramientas de orquestación y flujo de trabajo

Las herramientas e integraciones anteriores representan formas automatizadas de implementar y configurar la plataforma BIG-IP para proporcionar disponibilidad de aplicaciones, seguridad y servicios de escalado. Estos servicios, por esenciales que sean, constituyen sólo una parte del despliegue de una aplicación de pila completa. Crear una pila completa de aplicaciones con los servidores, los datos, el código de aplicación compilado y la infraestructura de forma coordinada y probada requiere algo más que una simple herramienta de automatización.

Necesitará una herramienta de orquestación de mayor nivel, con flujos de trabajo asociados e integraciones con varios sistemas de automatización. Estas herramientas son las más utilizadas en las prácticas de trabajo de Integración continua/Entrega continua (IC/CD), para las que se requiere la automatización en todas las implementaciones prácticas. Aunque existen varias herramientas de orquestación, Jenkins es quizás la más común, y hay ejemplos de flujos de trabajo disponibles que muestran cómo puede utilizar Jenkins, F5 y Ansible para incorporar capacidades de infraestructura como código de F5 en un flujo de trabajo de IC/CD. En general, sin embargo, la herramienta de orquestación funcionará a través de una de las herramientas de automatización de la configuración para realizar cambios para implementar servicios.

Licencias

Las plataformas BIG-IP requieren licencias para funcionar, por lo que es útil incluir las licencias en el camino crítico de la automatización. En entornos altamente dinámicos en los que los dispositivos virtuales BIG-IP pueden necesitar ser rápidamente ampliados o reducidos, o creados con fines de prueba y desarrollo, los modelos de licencia deben ser considerados cuidadosamente.

En la nube pública, una vía es utilizar las versiones de facturación de servicios públicos de BIG-IP (disponible a través de los mercados de la nube). Las instancias de facturación de servicios públicos se autolicenciarán, y los costes se cobrarán a través del proveedor de nube en base a un compromiso de pago por uso o de tiempo.

Otra opción es utilizar grupos de licencias reutilizables adquiridas mediante suscripción (o perpetuamente) junto con el Administrador de licencias de F5 BIG-IQ, que le permitirá asignar y revocar licencias de un grupo.

Puede automatizar los pasos de licencia a través de agentes de inicio y llamadas de API, que requerirán acceso saliente de Internet al servidor de licencias de F5 (incluso en el caso de licencias de servicios públicos en plataformas de nube).

¿Qué usar y cuándo?

Dependiendo de su organización, elegir las herramientas de automatización y orquestación adecuadas puede ser muy fácil o una tarea difícil. Es fácil si ya ha adoptado una herramienta o metodología para otros componentes y sólo necesita integrar BIG-IP en el sistema. Incluso sin integración en una herramienta en particular, la API iControl REST combinada con las capacidades de iControl LX y el Cloud Init hacen que la integración de BIG-IP en una herramienta de automatización existente sea relativamente sencilla (especialmente si se combina con plantillas iApp, que se pueden utilizar para crear incluso una configuración compleja con una sola llamada de API).

Sin embargo, si está empezando de cero, las cosas pueden ser más complejas. Al igual que la selección de cualquier otra solución, la comprensión de sus necesidades debe ser lo primero. Si bien este documento no puede elaborar su lista de requisitos, a continuación le presentamos un conjunto de preguntas y recomendaciones que le ayudarán a realizar su evaluación.

  • Modelo de automatización: un modelo declarativo será mucho más sencillo para que los consumidores interactúen con su orquestación. Los consumidores solo necesitan saber lo que quieren, en lugar de todos los pasos del procedimiento para llegar allí.
  • Plataformas y entornos potenciales: asumir que los contenedores y una serie de plataformas de nube serán una parte clave de la infraestructura de la aplicación parece algo inevitable en este punto, así que planifique en consecuencia.
  • Habilidades: ¿ya cuenta con habilidades en algunas de las tecnologías subyacentes? Tenga en cuenta que estas habilidades pueden existir fuera de su departamento, pero dentro del negocio como un todo. Si es así, podría tener sentido elegir una herramienta que utilice un lenguaje que su organización ya haya adoptado.
  • Compatibilidad: construya únicamente sistemas que usted pueda admitir. Esto puede parecer obvio, pero una clave del éxito es elegir el nivel de complejidad que puede ofrecer dentro de su organización, de modo que pueda maximizar los beneficios de la automatización sin causar un exceso de gastos operativos.

Paquetes de soluciones de nube privada de F5 

Los paquetes de soluciones de nube privada de F5 son una forma sencilla de adquirir la tecnología y los servicios necesarios para ofrecer servicios de aplicaciones de F5 en varios entornos de nube privada. Los paquetes agrupan el software, el hardware y los servicios profesionales para crear una solución validada e inmediata para una serie de plataformas de nube privada. El uso de paquetes de soluciones de nube privada puede proporcionarle un modelo de despliegue que puede replicarse en otras plataformas para crear un conjunto más uniforme y consistente de entrega de aplicaciones y servicios de seguridad en varios entornos.

Conclusión

El mayor nivel de automatización de las TI es inevitable. Adoptar un enfoque estratégico para ofrecer entrega de aplicaciones clave y servicios de seguridad garantizará que las aplicaciones que su organización implementa se mantengan seguras y disponibles. La automatización también puede ayudar a reducir sus gastos operativos, especialmente cuando trabaja en múltiples plataformas y nubes públicas.

Elegir el sistema de automatización adecuado puede ser todo un reto, y lo ideal es que se haga como un esfuerzo colaborativo y holístico con vistas a los conjuntos de habilidades disponibles para usted, así como a la compatibilidad del sistema. Cualquiera que sea la solución que elija, puede estar seguro de que la plataforma BIG-IP y la experiencia en F5 estarán disponibles para ayudarle a ofrecer los servicios de nivel empresarial en los que confían sus aplicaciones, sin importar dónde se implementen.

Published February 09, 2018
  • Share to Facebook
  • Share to X
  • Share to Linkedin
  • Share to email
  • Share via AddThis

Connect with F5

F5 Labs

The latest in application threat intelligence.

DevCentral

The F5 community for discussion forums and expert articles.

F5 Newsroom

News, F5 blogs, and more.