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

Google

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

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

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