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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 |
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 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/ |
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.
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).
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.
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.
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.