Automating the deployment and configuration management of application delivery and security devices has become a near-mandatory practice. In the 2017 IDG FutureScape report, automation and multi-cloud management ranked as some of the key initiatives that will impact businesses by 2021. Automation brings scale, reliability, and integration to the deployment of the essential security, optimization, and availability services that applications need—and makes their delivery part of the orchestrated build, test, and deploy workflows that are emerging as the dominant model of application deployment.
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.
However, sometimes BIG-IP platforms are deployed as part of a discrete application stack, where the services of a particular BIG-IP are tied to a specific application or service. In this situation, we could treat the BIG-IP configuration as immutable; that is, the configuration is installed at boot, or as part of the software image, and is not changed during the lifecycle of the BIG-IP instance. Configuration changes are effected by altering the software image or startup agent script contents, and then redeploying. This model is often referred to as “nuke and pave.” While less common overall, the availability of new BIG-IP licensing models to support per-app instances, enhanced licensing tools, and tools like F5 cloud libs (a set of Node.js scripts and libraries designed to help you onboard a BIG-IP in a cloud) are making this deployment model a viable option for organizations that require an application to have a tightly bound, isolated stack of both code and infrastructure.
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.
BIG-IP devices are most commonly automated via the REST API which exposes the majority of BIG-IP functionality via a documented schema. The F5-supplied modules for automation tools such as Ansible make extensive use of the REST API. In addition to offering a per-setting, imperative interface, REST API calls can be used to launch F5 iApp templates, where the values to configure the iApp service are passed as a JSON payload in the API call. The addition of the iControl LX capability also enables the creation of a user-defined API endpoint that can perform a multi-step operation from a single API call.
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.
The most common startup configuration is cloud-init, which is enabled in all BIG-IP VE images (except in Microsoft Azure), but it’s most suitable for use in AWS and OpenStack deployments. Alongside cloud-init, F5 supplies a series of cloud startup libraries to help configure BIG-IP on boot.
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:
Substituting F5 services into an existing platform construct
In this model, F5 services are inserted using an existing platform construct, such as using F5 as the OpenShift Container Platform Router or using F5 with the OpenStack Load Balancing as a Service (LBaaS) system. Using these mechanisms requires little change in operational procedures, since a platform-native interface is used to configure services, and the supplied driver and other software translates the platform configuration directives into an F5 configuration seamlessly. Remember, however, that only the features that are available through the platform-native interface can be easily deployed.
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.
Many private cloud platforms have management systems designed for automation. VMware, for example has several management and integration tools, including vRealize Orchestrator (vRO) for which there is a third-party plugin for BIG-IP configuration. Other examples include the plugin for the OpenStack HEAT templating system.
While not a full automation solution, service discovery is a simple and powerful way to integrate BIG-IP configurations with changes in the environment. Service discovery works through periodically polling the cloud system via API to retrieve a list of resources, and modifying the BIG-IP configuration accordingly. This is especially useful in environments where resources are configured into auto-scale groups, because scaling the back-end compute resource requires the load balancer to be aware of the new resources. Service discovery components are supplied with F5 cloud auto-scale solutions for AWS and 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 |
F5 Supported |
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 |
F5 Supported2 |
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
Platform Integrations
Container Management Platforms
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.
You’ll need a higher-level orchestration tool with associated workflows and integrations with a number of automation systems. These tools are most commonly used in Continuous Integration/Continuous Delivery (CI/CD) working practices, for which automation is, for all practical implementations, required. Although a number of orchestration tools exist, Jenkins is perhaps the most common, and there are example workflows available that show how you can use Jenkins, F5, and Ansible to incorporate F5 infrastructure-as-code capabilities in a CI/CD workflow. In general, however, the orchestration tool will work through one of the configuration automation tools to actually make changes to deploy services.
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.
Another option is to use pools of reusable licenses purchased through subscription (or perpetually) alongside the F5 BIG-IQ License Manager, which will allow you to assign and revoke licenses from a pool.
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.