A medida que las empresas persiguen estrategias de transformación digital para aventurarse en nuevas fuentes de ingresos o simplemente seguir siendo competitivas, un factor importante es la necesidad de velocidad, o la capacidad de brindar experiencias de cliente verdaderamente excelentes rápidamente. A medida que las organizaciones adoptan metodologías DevOps, descubren que las arquitecturas de red actuales son un factor limitante. La arquitectura de red tradicional es estática, vulnerable a errores humanos y requiere una inversión operativa significativa para su gestión. Es imperativo automatizar no solo la infraestructura de red que soporta las implementaciones de aplicação , sino también los servicios de red como DNS y equilibrio de carga, como parte de un proceso extendido de integración/desarrollo continuo (CI/CD).
A través de la automatización de la red, las organizaciones pueden lograr una mayor agilidad, lo que permite una red más dinámica y confiable, una mayor eficiencia operativa, una reducción del tiempo de implementación y una implementación de aplicação más consistente.
La programabilidad es un factor clave para la automatización operativa. A lo largo de los años, F5 ha adoptado este concepto y admite la programabilidad de todos los controladores de entrega de aplicação (ADC) F5® BIG-IP®, lo que permite agilidad y extensibilidad en la estructura de servicios de red de aplicação . Tanto la edición física como la virtual de los ADC BIG-IP cuentan con planos de gestión, control y datos flexibles y programables:
Un enfoque integral de la programabilidad de la red ayuda a las operaciones a reaccionar según la demanda ante eventos u oportunidades operativas y comerciales. La cartera de productos F5 que ofrece capacidad de programación de red permite a las organizaciones automatizar y orquestar de manera eficiente.
F5 y Puppet se han asociado para abordar la necesidad de agilidad de las empresas modernas en apoyo de la integración continua y la implementación continua (CI/CD) a través de una solución integral. Puppet ofrece una herramienta de gestión de configuración con soporte comercial, Puppet Enterprise, que brinda un enfoque unificado definido por software para automatizar la gestión de recursos informáticos, de red y de almacenamiento, y ayuda a las organizaciones a entregar aplicações de una manera más fluida.
Con su enfoque declarativo basado en modelos para la automatización de TI, Puppet Enterprise le permite realizar funciones desde la automatización de tareas simples y repetitivas hasta la implementación de nubes públicas, privadas e híbridas a gran escala. La capacidad de modelar, probar y luego implementar cambios de configuración en estos entornos de nube garantiza un uso eficiente de los recursos de su infraestructura; con la extensibilidad de Puppet a través de módulos, las organizaciones pueden aprovechar el marco existente para soportar sus dispositivos BIG-IP.
Una infraestructura Puppet típica tiene agentes de software instalados en cada sistema administrado. Estos agentes envían periódicamente múltiples piezas de información llamadas "hechos" sobre el sistema a un servidor maestro Puppet. A cambio, el Puppet Master utiliza los datos recibidos junto con un manifiesto (un programa Puppet compuesto de código Puppet para compilar un catálogo que define la configuración final) antes de enviar el catálogo de vuelta al agente. El agente puede luego aplicar el estado del sistema según lo define el catálogo.
A diferencia de un caso de servidor donde el agente de software se ejecuta directamente en el nodo, la infraestructura Puppet le permite configurar un proxy que ejecuta el agente para un dispositivo BIG-IP. Ahora usted puede tener el dispositivo BIG-IP bajo administración de Puppet y disfrutar de los beneficios que la solución le ofrece. El agente Puppet puede residir en un servidor separado del maestro Puppet o puede ejecutarse en el mismo servidor.
Los archivos de idioma de Puppet se llaman manifiestos y se nombran con la extensión de archivo .pp . El núcleo del lenguaje Puppet es declarar recursos. Todas las demás partes del lenguaje existen para agregar flexibilidad y conveniencia a la forma en que se declaran los recursos. El Puppet master siempre utiliza el manifiesto principal establecido por el entorno del nodo actual, donde puede describir recursos de forma declarativa.
El flujo de datos para la solución conjunta F5 y Puppet se ilustra en la Figura 1.
Dos características clave para esta implementación conjunta son la API iControl y la gestión de dispositivos de red Puppet. Las API de F5 iControl proporcionan la comunicación entre el proxy Puppet y los dispositivos F5 BIG-IP, mientras que Puppet Network Device Management ayuda a las organizaciones a configurar los dispositivos de red. Al utilizar el dispositivo de red Puppet y la API F5 iControl, puede implementar el módulo Puppet F5 y llevar la administración de Puppet a los dispositivos BIG-IP. Los módulos Puppet F5 ofrecen recursos para administrar objetos BIG-IP, incluida la implementación y administración de servidores virtuales, así como la configuración y administración de grupos y miembros de grupos. Puppet utiliza módulos F5 para encontrar los recursos definidos para los dispositivos BIG-IP y carga automáticamente cualquier clase personalizada o tipo definido almacenado en los módulos F5.
Esta solución conjunta de F5 y Puppet le ayuda a:
Los módulos Puppet F5 pueden crear y configurar objetos BIG-IP (incluidos nodos de servidor, grupos y servidores virtuales) que son necesarios para la implementación típica de aplicação . Cuando se trata de la implementación de múltiples dispositivos BIG-IP, las organizaciones pueden usar los módulos Puppet para automatizar todas las tareas iniciales de incorporación de BIG-IP, como licencias de dispositivos, configuraciones de DNS y NTP, VLAN internas y externas, IP propias y dominios de ruta.
Para configurar una aplicação HTTP típica en un dispositivo BIG-IP, debe configurar nodos, monitores y perfiles; implementar direcciones IP virtuales y más. Esto puede parecer manejable sin automatización en un solo dispositivo BIG-IP, pero configurar varios dispositivos F5 posiblemente en múltiples centros de datos para entregar grandes aplicações empresariales es complejo, requiere mucho tiempo y es propenso a errores. Con el manifiesto Puppet declarativo basado en modelos, las organizaciones pueden administrar y automatizar la implementación de aplicação en múltiples dispositivos BIG-IP en todos los centros de datos.
Para iniciar la implementación, instale el maestro Puppet y cree un sistema proxy capaz de ejecutar el agente Puppet. Además, debe instalar todas las dependencias, incluidas la gema iControl y la gema Faraday en el entorno Puppet Ruby en el host proxy (agente Puppet). El despliegue se ilustra en la Figura 2.
Antes de poder utilizar el módulo F5, debe crear un archivo device.conf en el directorio de configuración de Puppet ( /etc/puppet o /etc/puppetlabs/puppet ) en el proxy de Puppet:
[bigip1] Escribe f5 URL: https://admin:admin@10.192.74.111
En el ejemplo anterior, administrador:admin@10.192.74.111 se refiere al inicio de sesión de Puppet para el dispositivo F5: <NOMBRE DE USUARIO>:<CONTRASEÑA>@<DIRECCIÓN IP DE BIGIP>.
A continuación, ingresa la configuración en la declaración de clase o nodo correspondiente en tu sitio.pp, en el manifiesto de nodo <devicecertname>.pp o en algún archivo de manifiesto profiles::<profile_name>. A continuación se muestra un archivo de manifiesto de Puppet de muestra (site.pp) para configurar una aplicação HTTP en la plataforma BIG-IP:
nodo bigip1 { f5_node { '/Common/web_server_1': asegurar => 'presente', dirección => '10.1.20.11', descripción => 'Nodo del servidor web 1', requisito_de_disponibilidad => 'todos', monitores_de_salud => ['/Common/icmp'], }-> f5_node { '/Common/web_server_2': asegurar => 'presente', dirección => '10.1.20.12', descripción => 'Nodo del servidor web 2', requisito_de_disponibilidad => 'todos', monitores_de_salud => ['/Common/icmp'], }-> f5_node { '/Common/web_server_3': asegurar => 'presente', dirección => '10.1.20.13', descripción => Nodo de servidor web 3, requisito_disponibilidad => 'todos', monitores_de_salud => ['/Common/icmp'], }-> f5_pool { '/Common/web_pool': asegurar => 'presente', miembros => [ { nombre => '/Common/web_server_1', puerto => '80', }, { nombre => '/Common/web_server_2', puerto => '80', }, { nombre => '/Common/web_server_3', puerto => '80', }, ], requisito_disponibilidad => 'todos', monitores_de_salud => ['/Common/http_head_f5'], }-> f5_virtualserver { '/Common/http_vs': asegurar => 'presente', proveedor => 'estándar', pool_predeterminado => '/Common/web_pool', dirección_destino => '10.1.10.240', máscara_destino => '255.255.255.255', perfil_http => '/Common/http', puerto_servicio => '80', protocolo => 'tcp', origen => '0.0.0.0/0', traducción_dirección_origen => 'automap' } }
Este ejemplo presenta tres tareas:
Antes de ejecutar el dispositivo Puppet (comando para Puppet Network Device), no hay servidores virtuales, grupos o nodos configurados en el dispositivo BIG-IP. Al ejecutar el comando puppet device -v --user=root , el nodo proxy del dispositivo generará un certificado y aplicará sus clasificaciones al dispositivo F5.
Como se muestra a continuación, todas las tareas se completaron con éxito sin fallas.
$ sudo puppet device -v --user=root –trace Información: Se está aplicando la configuración a bigip1 en https://10.192.74.111:443 Información: Recuperando pluginfacts Información: Recuperando el complemento Información: Catálogo de almacenamiento en caché para bigip1 Información: Aplicando la versión de configuración '1498175426' Aviso: /Stage[main]/Main/Node[bigip1]/F5_node[/Common/web_server_1]/ensure: creado Aviso: /Stage[main]/Main/Node[bigip1]/F5_node[/Common/web_server_2]/ensure: creado Aviso: /Stage[main]/Main/Node[bigip1]/F5_node[/Common/web_server_3]/ensure: creado Aviso: /Stage[main]/Main/Node[bigip1]/F5_pool[/Common/web_pool]/ensure: creado Aviso: /Stage[main]/Main/Node[bigip1]/F5_virtualserver[/Common/http_vs]/ensure: creado Información: Nodo[bigip1]: Cancelando la programación de todos los eventos en el nodo [bigip1] Aviso: Catálogo aplicado en 0,50 segundos
Puppet ahora ha creado un nuevo servidor virtual completamente configurado (Figura 3). Este servidor equilibra la carga de las aplicações HTTP en un grupo recién creado (Figura 4). El grupo incluye tres servidores web recién creados (Figura 5).
Todos los módulos Puppet F5 son idempotentes, lo que significa que las tareas se ejecutan solo si el estado del nodo no coincide con el estado configurado o deseado. En otras palabras, si se ejecuta nuevamente el mismo manifiesto, Puppet no reconfigura estos objetos.
Información: Se está empezando a aplicar la configuración a bigip1 en https://10.192.74.111:443 Información: Recuperando pluginfacts Información: Recuperando el complemento Información: Catálogo de almacenamiento en caché para bigip1 Información: Aplicando la versión de configuración '1498522983' Aviso: Catálogo aplicado en 1,51 segundos
La automatización es un componente clave de DevOps y CI/CD, y a menudo comienza con la gestión de la configuración. La solución conjunta de F5 y Puppet permite a los equipos de operaciones implementar, automatizar y administrar la configuración de toda una pila de infraestructura de aplicaciones . Esto brinda a los desarrolladores de aplicação la capacidad de escalar elásticamente hacia arriba y hacia abajo los recursos de infraestructura, automatizar las pruebas de aplicação y reducir los tiempos de desarrollo de aplicação . Como resultado, las organizaciones pueden lograr niveles de agilidad y extensibilidad sin precedentes.
Para obtener más información sobre cómo la solución conjunta de F5 y Puppet puede ayudar a su negocio, visite forge.puppet.com/f5/f5