Automatiser les services applicatifs F5 : guide pratique
Introduction
L’automatisation du déploiement et de la gestion de la configuration des équipements de mise à disposition et de sécurité des applications est devenue une pratique quasiment incontournable. Dans le rapport 2017 d’IDG FutureScape, l’automatisation et la gestion multicloud figuraient parmi les principales initiatives susceptibles d’avoir un impact sur les entreprises d’ici 2021. L’automatisation apporte évolutivité, fiabilité et intégration au déploiement des services essentiels de sécurité, d’optimisation et de disponibilité dont les applications ont besoin, tout en intégrant leur mise à disposition aux workflows orchestrés de compilation, de test et de déploiement qui s’imposent comme le modèle dominant de déploiement des applications.
Même une automatisation simple de tâches élémentaires, telles que l’ajout de nouveaux serveurs virtuels ou de membres à un pool, peut permettre aux équipes d’exploitation de proposer des fonctionnalités en libre-service aux responsables d’applications ou à d’autres systèmes automatisés, tout en libérant du temps pour des activités plus productives, comme le développement de la prochaine génération d’outils d’automatisation.
Le besoin d’automatisation prend encore plus d’importance lorsqu’une organisation commence à adopter plusieurs plateformes cloud pour fournir des services informatiques. Lorsque vous cherchez à déployer des services sur plusieurs sites présentant des caractéristiques de plateforme différentes, l’automatisation peut contribuer à réduire la charge opérationnelle supplémentaire et à limiter les erreurs dues à une méconnaissance des nouvelles plateformes.
Mais comment automatiser, et quoi automatiser ? Compte tenu de la diversité des modèles opérationnels, des interfaces et des langages, les logiciels d’automatisation peuvent intervenir au niveau d’un seul appareil ou prendre la forme d’outils plus complexes couvrant plusieurs systèmes. Les plateformes cloud d’infrastructure en tant que service (IaaS) proposent toutes leurs propres outils natifs pour déployer des infrastructures et des services virtuels. F5 offre également un éventail d’interfaces et d’options d’orchestration. Si cette diversité d’outils et d’options vous permet d’adopter l’approche d’automatisation la mieux adaptée à votre organisation, choisir l’outil approprié peut s’avérer difficile, et le risque de complexité et de prolifération des outils est bien réel.
Dans ce document, nous présenterons les différentes façons d’automatiser le déploiement, la gestion et la configuration des appliances F5 BIG-IP (physiques et virtuelles), et vous donnerons quelques conseils pour choisir l’approche la mieux adaptée à votre entreprise.
Automatisation : quelques considérations clés
Le spectre de l’automatisation
L’automatisation couvre un large éventail d’activités. À une extrémité du spectre se trouve le développement de scripts simples écrits en Bash, TMSH, Python ou dans d’autres langages, qui peuvent être exécutés localement afin d’accélérer les opérations de configuration manuelle. À l’autre extrémité se trouve un système complet d’« infrastructure en tant que code », qui associe la gestion du code source, des orchestrateurs de workflows et, éventuellement, plusieurs outils d’automatisation afin de créer un système dans lequel la configuration de l’infrastructure est définie et modifiée au moyen de fichiers texte stockés dans un dépôt. Entre ces deux extrêmes, différentes options permettent de faciliter la gestion du déploiement et de la configuration d’une plateforme BIG-IP.

Mutable ou immuable
La plupart des déploiements BIG-IP actuels peuvent être considérés comme mutables, ce qui signifie que leur configuration est susceptible d’évoluer au fil du temps. En effet, la plateforme BIG-IP est principalement déployée en tant qu’équipement mutualisé fournissant des services à plusieurs applications. À mesure que de nouvelles applications sont déployées, ou que les applications existantes montent en charge ou nécessitent des services supplémentaires, la configuration de BIG-IP est mise à jour en conséquence. Cette méthode de déploiement permet aux équipes d’infrastructure de gérer un ensemble d’infrastructures centralisées qui fournit des services aux applications à partir d’une plateforme commune.
Cependant, les plateformes BIG-IP sont parfois déployées au sein d’une pile applicative distincte, dans laquelle les services d’un BIG-IP donné sont liés à une application ou à un service spécifique. Dans ce cas, nous pourrions considérer la configuration du BIG-IP comme immuable ; autrement dit, la configuration est installée au démarrage ou intégrée à l’image logicielle, et n’est pas modifiée pendant le cycle de vie de l’instance BIG-IP. Les modifications de configuration sont effectuées en modifiant l’image logicielle ou le contenu du script de l’agent de démarrage, puis en procédant à un nouveau déploiement. Ce modèle est souvent appelé « nuke and pave ». Bien que globalement moins répandu, ce modèle de déploiement devient une option viable pour les organisations qui exigent qu’une application dispose d’une pile isolée et étroitement intégrée, comprenant à la fois le code et l’infrastructure, grâce à l’apparition de nouveaux modèles de licence BIG-IP prenant en charge les instances par application, d’outils de gestion des licences améliorés et d’outils tels que F5 cloud libs (un ensemble de scripts et de bibliothèques Node.js conçus pour faciliter l’intégration d’un BIG-IP dans un environnement cloud).

Déclaratif ou impératif
Il existe deux modèles conceptuels définissant la manière dont les interfaces d’automatisation sont mises à la disposition des utilisateurs. Les schémas d’automatisation de « première génération », les plus courants, tendent à suivre un modèle impératif. Dans les modèles d’automatisation impératifs, l’utilisateur doit généralement savoir à la fois ce qu’il souhaite accomplir et quelles étapes précises (le plus souvent des appels d’API) sont nécessaires pour y parvenir. Il lui incombe donc souvent de comprendre les détails de configuration des services avancés, mais aussi de gérer la complexité et les efforts supplémentaires liés à l’intégration de ces services aux outils d’automatisation. Cela revient à commander un sandwich en précisant chacune des opérations nécessaires à sa préparation, plutôt que de simplement demander un sandwich et de laisser la personne qui le prépare déterminer quelles opérations effectuer et dans quel ordre.
À l’inverse, une interface déclarative permet aux utilisateurs (humains ou machines) de créer des services en indiquant simplement ce qu’ils souhaitent obtenir. Il n’est pas nécessaire de connaître en détail toutes les étapes requises, car la cible d’automatisation dispose de workflows préconfigurés ou de modèles de service permettant de générer la configuration en fonction des résultats attendus. Bien qu’une interface déclarative nécessite une configuration initiale légèrement plus complexe, cette complexité est compensée par la simplicité d’utilisation une fois que des modèles de service adaptés ont été créés. Il s’agit donc, en règle générale, du mécanisme privilégié pour concevoir des systèmes d’automatisation.
Directement ou via un outil de gestion
Vous devrez également déterminer si les appels d’API d’automatisation doivent être effectués depuis des outils tiers directement vers l’appareil à modifier ou par l’intermédiaire d’un outil de gestion supplémentaire. Les outils de gestion permettent d’abstraire et de simplifier les opérations, et peuvent offrir des niveaux supplémentaires de contrôle et de journalisation par rapport à une connexion directe à l’entité gérée. Toutefois, vous devrez assurer la maintenance de cet outil afin de garantir la haute disponibilité de vos couches de gestion lorsqu’il est essentiel de pouvoir apporter rapidement des modifications.

API, agent de démarrage ou interface en ligne de commande ?
Les appareils BIG-IP sont le plus souvent automatisés via l’API REST, qui expose la majorité des fonctionnalités de BIG-IP au moyen d’un schéma documenté. Les modules fournis par F5 pour les outils d’automatisation tels qu’Ansible utilisent largement l’API REST. Outre une interface impérative permettant de définir chaque paramètre, les appels à l’API REST peuvent servir à lancer des modèles iApp F5, les valeurs de configuration du service iApp étant transmises sous forme de charge utile JSON dans l’appel d’API. L’ajout de la fonctionnalité iControl LX permet également de créer un point de terminaison d’API défini par l’utilisateur, capable d’effectuer une opération en plusieurs étapes à partir d’un seul appel d’API.
Une autre méthode courante pour automatiser la configuration de BIG-IP consiste à utiliser des agents de démarrage, qui s’exécutent au démarrage et peuvent récupérer des informations externes afin de configurer la plateforme BIG-IP. Les agents de démarrage sont souvent utilisés pour effectuer la configuration initiale afin d’« intégrer » les appareils. Ils peuvent également récupérer des scripts et des fichiers de configuration supplémentaires depuis des sites tiers tels que GitHub ou depuis votre propre dépôt. Les agents de démarrage peuvent aussi servir à configurer entièrement une plateforme BIG-IP, en particulier si vous avez opté pour une configuration fixe propre à chaque application.
La configuration de démarrage la plus courante est cloud-init, qui est activé dans toutes les images BIG-IP VE (sauf dans Microsoft Azure), mais qui convient surtout aux déploiements AWS et OpenStack. En complément de cloud-init, F5 fournit un ensemble de bibliothèques de démarrage cloud pour faciliter la configuration de BIG-IP au démarrage.
Si vous choisissez d’utiliser des agents de démarrage pour configurer une plateforme après son démarrage, veillez tout particulièrement à la gestion des défaillances en cas d’utilisation de sources externes, notamment lorsqu’une instance est susceptible d’être lancée dans le cadre d’un événement de mise à l’échelle. Si les ressources externes sont indisponibles, comment le système se comportera-t-il ? Des dispositifs « zombies » supplémentaires seront-ils créés pour tenter de répondre à la demande ?
Dans certains cas, les systèmes d’automatisation peuvent agir comme des utilisateurs et exécuter des commandes CLI. Bien que cela puisse parfois résoudre certains problèmes lorsque les appels d’API ne sont pas suffisamment complets, la difficulté de prise en charge et la fragilité de la solution en font généralement une méthode de dernier recours.
Modèles et playbooks
Les modèles et les playbooks permettent d’automatiser les déploiements et de créer des infrastructures présentant un certain degré de standardisation. Un niveau de standardisation approprié rend votre infrastructure plus robuste et plus facile à prendre en charge. Des modèles bien conçus offrent une interface déclarative grâce à laquelle l’entité à l’origine de la demande (utilisateur ou machine) doit uniquement connaître les propriétés dont elle a besoin, et non les détails de l’implémentation. Le fait d’effectuer les déploiements exclusivement à l’aide de modèles et de résoudre les problèmes uniquement en corrigeant ces modèles peut améliorer la qualité du service, car les problèmes sont généralement corrigés une seule fois, puis les services sont redéployés à partir du nouveau modèle.
Intégrations de plateformes
Les outils d’intégration aux plateformes permettent d’intégrer la configuration des services BIG-IP à des plateformes informatiques telles que les clouds privés ou les systèmes de gestion de conteneurs. Les mécanismes varient selon les plateformes et les implémentations, mais relèvent généralement de trois modèles :
Substitution des services F5 dans une structure de plateforme existante
Dans ce modèle, les services F5 sont intégrés à l’aide d’une structure de plateforme existante, par exemple en utilisant F5 comme routeur OpenShift Container Platform ou en utilisant F5 avec le système OpenStack Load Balancing as a Service (LBaaS). Ces mécanismes nécessitent peu de changements dans les procédures opérationnelles, car une interface native de la plateforme est utilisée pour configurer les services, tandis que le pilote fourni et les autres logiciels traduisent de manière transparente les directives de configuration de la plateforme en une configuration F5. Gardez toutefois à l’esprit que seules les fonctionnalités accessibles via l’interface native de la plateforme peuvent être facilement déployées.
Abonnement aux événements de la plateforme
Une autre méthode d’intégration courante consiste à faire en sorte qu’un module logiciel (tel que Container Connector pour Kubernetes et Mesos) s’abonne aux événements d’une plateforme, puis modifie une configuration en fonction de ces événements. Vous pouvez sélectionner les événements et les services à déployer en ajoutant des balises ou des étiquettes aux applications à prendre en charge, puis en configurant le logiciel de connexion afin qu’il surveille les événements comportant les balises requises.
Intégration aux outils de gestion de plateforme
De nombreuses plateformes de cloud privé disposent de systèmes de gestion conçus pour l’automatisation. VMware, par exemple, propose plusieurs outils de gestion et d’intégration, notamment vRealize Orchestrator (vRO), pour lequel il existe un plug-in tiers permettant de configurer BIG-IP. On peut également citer le plug-in destiné au système de création de modèles OpenStack HEAT.
Découverte de services
Bien qu’elle ne constitue pas une solution d’automatisation complète, la découverte de services offre un moyen simple et puissant d’adapter les configurations BIG-IP aux changements de l’environnement. Elle consiste à interroger régulièrement le système cloud via une API afin de récupérer une liste de ressources, puis à modifier la configuration BIG-IP en conséquence. Cette approche est particulièrement utile dans les environnements où les ressources sont configurées dans des groupes de mise à l’échelle automatique, car la mise à l’échelle des ressources de calcul back-end nécessite que l’équilibreur de charge ait connaissance des nouvelles ressources. Des composants de découverte de services sont fournis avec les solutions de mise à l’échelle automatique dans le cloud de F5 pour AWS et Azure.
Outils d’automatisation courants : guide de ressources
Bien que nous ne puissions pas présenter tous les outils d’automatisation ou d’orchestration imaginables, vous trouverez ci-dessous une liste des outils, cas d’usage et fonctionnalités les plus couramment utilisés par les clients de F5.
-------------------------
Intégrations linguistiques
Langue
Statut
Exemples et source
Python
Contribution de F5
https://github.com/F5Networks/f5-common-python
Go
Contribution des utilisateurs
https://github.com/f5devcentral/go-bigip
PowerShell
Pris en charge par F5
https://devcentral.f5.com/wiki/icontrol.powershell.ashx
Outils de gestion de la configuration et d’automatisation de l’infrastructure
Outil
Statut
Exemples et source
Ansible
Contribution de F5
https://github.com/F5Networks/f5-ansible
Terraform
Contribution de F5
https://github.com/f5devcentral/terraform-provider-bigip
Puppet
Contribution de F5
https://github.com/f5devcentral/f5-puppet
Chef
Contribution des utilisateurs
https://github.com/target/f5-bigip-cookbook
SaltStack
Tiers
https://docs.saltstack.com/en/latest/ref/runners/all/salt.runners.f5.html
Systèmes de modèles d’infrastructure
Plateforme
Statut
Exemples et source
AWS
Pris en charge par F5 2
https://github.com/F5Networks/f5-aws-cloudformation
Azure
Pris en charge par F5¹
https://github.com/F5Networks/f5-azure-arm-templates
Pris en charge par F5 1
https://github.com/F5Networks/f5-google-gdm-templates
OpenStack
Pris en charge par F5¹
https://github.com/F5Networks/f5-openstack-hot
----------------------------
Agents de démarrage et scripts cloud
Bibliothèques cloud
https://github.com/F5Networks/f5-cloud-libs
---------------------------
Intégrations de plateformes
Plateformes de gestion de conteneurs
Plateforme
Statut
Exemples et source
Kubernetes
Pris en charge par F5¹
https://github.com/F5Networks/k8s-bigip-ctlr
Marathon
Pris en charge par F5 1
https://github.com/F5Networks/marathon-bigip-ctlr
CloudFoundry
Pris en charge par F5¹
https://github.com/F5Networks/cf-bigip-ctlr
Plateformes de cloud privé
Plateforme
Statut
Exemples et source
OpenStack (LBaaS)
Pris en charge par F5¹
https://github.com/F5Networks/f5-openstack-lbaasv2-driver
OpenStack (Heat)
Pris en charge par F5¹
https://github.com/F5Networks/f5-openstack-hot
VMWare (vRO)
Tiers
https://bluemedora.com/products/f5/big-ip-for-vrealize-operations/
-------------------
Remarque sur les outils d’orchestration et de gestion des workflows
Les outils et intégrations ci-dessus permettent d’automatiser le déploiement et la configuration de la plateforme BIG-IP afin d’assurer la disponibilité, la sécurité et la mise à l’échelle des applications. Aussi essentiels soient-ils, ces services ne constituent qu’une partie du déploiement d’une application full-stack. La création coordonnée et testée d’une pile applicative complète comprenant les serveurs, les données, le code applicatif compilé et l’infrastructure nécessite davantage qu’un simple outil d’automatisation.
Vous aurez besoin d’un outil d’orchestration de plus haut niveau, doté de workflows associés et intégré à plusieurs systèmes d’automatisation. Ces outils sont le plus souvent utilisés dans le cadre de pratiques d’intégration continue et de livraison continue (CI/CD), pour lesquelles l’automatisation est indispensable dans la quasi-totalité des mises en œuvre. Bien qu’il existe plusieurs outils d’orchestration, Jenkins est sans doute le plus répandu, et des exemples de workflows sont disponibles pour vous montrer comment utiliser Jenkins, F5 et Ansible afin d’intégrer les fonctionnalités d’infrastructure en tant que code de F5 dans un workflow CI/CD. Toutefois, de manière générale, l’outil d’orchestration s’appuie sur l’un des outils d’automatisation de la configuration pour effectuer concrètement les modifications nécessaires au déploiement des services.
Licences
Les plateformes BIG-IP nécessitent une licence pour fonctionner. Il est donc utile d’intégrer l’octroi de licences au chemin critique de l’automatisation. Dans les environnements très dynamiques où les dispositifs virtuels BIG-IP peuvent devoir être rapidement redimensionnés à la hausse ou à la baisse, ou créés à des fins de test et de développement, les modèles de licence doivent être étudiés avec soin.
Dans le cloud public, une solution consiste à utiliser les versions de BIG-IP facturées à l’usage (disponibles sur les marketplaces cloud). Ces instances obtiennent automatiquement leur licence, et les coûts sont facturés par le fournisseur de cloud selon l’utilisation ou la durée d’engagement.
Une autre option consiste à utiliser des pools de licences réutilisables achetées par abonnement (ou de manière perpétuelle) conjointement avec le Gestionnaire de licences F5 BIG-IQ, qui vous permettra d’attribuer et de révoquer des licences à partir d’un pool.
Vous pouvez automatiser les étapes d’octroi de licences à l’aide d’agents de démarrage et d’appels d’API. Cela nécessite un accès Internet sortant au serveur de licences F5 (même dans le cas de licences à l’usage sur des plateformes cloud).
Quelle solution utiliser et dans quel cas ?
Selon votre organisation, le choix des outils d’automatisation et d’orchestration appropriés peut s’avérer très simple ou, au contraire, difficile. Il est simple si vous avez déjà adopté un outil ou une méthodologie pour d’autres composants et qu’il vous suffit d’intégrer BIG-IP au système. Même sans intégration à un outil particulier, la richesse de l’API REST iControl, associée aux fonctionnalités d’iControl LX et à cloud-init, permet d’intégrer BIG-IP à un outil d’automatisation existant de manière relativement simple (en particulier avec des modèles iApp, qui permettent de créer une configuration même complexe en un seul appel d’API).
Toutefois, si vous partez de zéro, les choses peuvent être plus complexes. Comme pour le choix de toute autre solution, vous devez commencer par bien cerner vos besoins. Bien que ce document ne puisse pas établir à votre place la liste de vos exigences, voici un ensemble de questions et de recommandations qui vous aideront dans votre évaluation.
- Modèle d’automatisation : Un modèle déclaratif sera beaucoup plus simple à utiliser pour les utilisateurs de votre orchestration. Ceux-ci doivent simplement savoir ce qu’ils veulent, plutôt que de connaître toutes les étapes procédurales nécessaires pour y parvenir.
- Plateformes et environnements potentiels : À ce stade, il semble inévitable que les conteneurs et diverses plateformes cloud constituent une composante essentielle de l’infrastructure applicative : planifiez en conséquence.
- Compétences : Disposez-vous déjà de compétences dans certaines des technologies sous-jacentes ? Gardez à l’esprit que ces compétences peuvent exister en dehors de votre service, mais au sein de l’entreprise dans son ensemble. Si c’est le cas, il peut être judicieux de choisir un outil qui utilise un langage déjà adopté par votre organisation.
- Maintenabilité : Ne développez que des systèmes que vous êtes en mesure de prendre en charge. Cela peut sembler évident, mais l’une des clés de la réussite consiste à choisir un niveau de complexité que votre organisation est capable de gérer, afin de maximiser les avantages de l’automatisation sans entraîner de surcharge opérationnelle excessive.
Packs de solutions de cloud privé F5
Les offres de solutions F5 pour le cloud privé permettent d’acquérir facilement les technologies et les services nécessaires au déploiement des services applicatifs F5 dans différents environnements de cloud privé. Ces offres regroupent logiciels, matériel et services professionnels afin de fournir une solution clé en main et validée pour plusieurs plateformes de cloud privé. Elles peuvent servir de modèle de déploiement reproductible sur d’autres plateformes, afin d’uniformiser et d’harmoniser les services de mise à disposition et de sécurité des applications dans plusieurs environnements.
Conclusion
L’automatisation croissante des systèmes informatiques est inévitable. L’adoption d’une approche stratégique pour fournir des services essentiels de mise à disposition et de sécurisation des applications permettra de garantir que les applications déployées par votre organisation restent sécurisées et disponibles. L’automatisation peut également contribuer à réduire vos coûts d’exploitation, en particulier lorsque vous travaillez sur plusieurs plateformes et clouds publics.
Choisir le bon système d’automatisation peut s’avérer complexe et devrait idéalement s’inscrire dans une démarche collaborative et globale, tenant compte à la fois des compétences dont vous disposez et de la facilité de prise en charge du système. Quelle que soit la solution retenue, vous pouvez compter sur la plateforme BIG-IP et l’expertise de F5 pour vous aider à fournir les services de niveau entreprise dont dépendent vos applications, quel que soit leur environnement de déploiement.
PUBLIÉ LE 9 FÉVRIER 2018
