L’automatisation du déploiement et de la gestion de la configuration des dispositifs de distribution d’applications et de sécurité est devenue une pratique quasi obligatoire. Dans le rapport IDG FutureScape 2017, l'automatisation et la gestion multi-cloud figurent parmi les principales initiatives qui auront 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, et intègre leur livraison dans les flux de travail orchestrés de création, de test et de déploiement qui émergent comme le modèle dominant de déploiement d'applications.
Même une automatisation simple de tâches de base telles que l'ajout de nouveaux serveurs virtuels ou de membres de pool peut permettre aux opérations de fournir une capacité de libre-service aux propriétaires d'applications ou à d'autres systèmes automatisés, et de libérer du temps pour un travail plus productif, comme la création de la prochaine vague d'outils d'automatisation.
Le besoin d’automatisation prend encore plus d’importance lorsqu’une organisation commence à adopter plusieurs plates-formes cloud pour fournir des services informatiques. Lorsque vous essayez de déployer des services dans plusieurs emplacements avec des caractéristiques de plate-forme différentes, l'automatisation peut aider à réduire les frais opérationnels accrus et à diminuer les erreurs dues à la méconnaissance des nouvelles plates-formes.
Mais comment et quoi automatiser ? Avec différents modèles d'opérations, interfaces et langages, les logiciels d'automatisation peuvent fonctionner sur une seule couche d'appareil ou comme des outils multi-systèmes plus complexes. Les plateformes cloud d'infrastructure en tant que service (IaaS) offrent toutes leurs propres outils natifs pour déployer des infrastructures et des services virtuels. De plus, F5 offre une gamme d’interfaces et d’options d’orchestration. Bien que cette gamme d’outils et d’options vous donne la possibilité d’automatiser de la manière la mieux adaptée à votre organisation, choisir le bon outil peut être une tâche ardue, et le risque de complexité et de prolifération des outils est réel.
Dans cet article, nous vous présenterons les différentes manières d’automatiser le déploiement, la gestion et la configuration des appareils F5 BIG-IP (physiques et virtuels), ainsi que quelques conseils sur la manière de choisir le chemin le plus adapté à votre entreprise.
L'automatisation couvre une gamme d'activités. À une extrémité du spectre se trouve le développement de scripts simples écrits en Bash, TMSH, Python ou d’autres langages qui peuvent être exécutés localement pour accélérer les activités de configuration manuelle. À l’autre extrémité du spectre se trouve un système complet « d’infrastructure en tant que code » qui combine la gestion du code source, les orchestrateurs de flux de travail et (potentiellement) plusieurs outils d’automatisation pour créer un système dans lequel la configuration de l’infrastructure est définie et modifiée avec des fichiers texte contenus dans un référentiel. Entre ces deux extrêmes se trouvent un certain nombre d’options différentes pour vous aider à gérer le déploiement et la configuration d’une plateforme BIG-IP.
La plupart des déploiements BIG-IP actuels peuvent être considérés comme mutables, ce qui signifie que nous pouvons nous attendre à ce que leur configuration change au fil du temps. Cela est dû au fait que la plateforme BIG-IP est principalement déployée en tant que périphérique multi-locataire qui fournit des services à plusieurs applications. À mesure que de nouvelles applications sont déployées (ou que les applications existantes évoluent ou nécessitent des services supplémentaires), la configuration du BIG-IP sera mise à jour pour correspondre. Cette méthode de déploiement permet aux équipes d’infrastructure de gérer un ensemble d’infrastructures centralisées, qui fournissent des services aux applications à partir d’une plate-forme commune.
Cependant, les plates-formes BIG-IP sont parfois déployées dans le cadre d'une pile d'applications discrète, où les services d'un BIG-IP particulier sont liés à une application ou à un service spécifique. Dans cette situation, nous pourrions traiter la configuration BIG-IP comme immuable ; c'est-à-dire que la configuration est installée au démarrage, ou dans le cadre de 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 effectuant un redéploiement. Ce modèle est souvent appelé « nuke and pave ». Bien que moins courants dans l'ensemble, la disponibilité de nouveaux modèles de licences BIG-IP pour prendre en charge les instances par application, des outils de licences améliorés et des outils tels que les bibliothèques cloud F5 (un ensemble de scripts et de bibliothèques Node.js conçus pour vous aider à intégrer un BIG-IP dans un cloud) font de ce modèle de déploiement une option viable pour les organisations qui ont besoin qu'une application dispose d'une pile de code et d'infrastructure étroitement liée et isolée.
Il existe deux modèles conceptuels expliquant comment les interfaces d’automatisation sont exposées aux consommateurs. Les schémas d’automatisation de « première vague » les plus courants tendent vers un modèle impératif. Dans les modèles d’automatisation impératifs, le consommateur d’automatisation doit généralement savoir à la fois ce qu’il souhaite réaliser et les étapes explicites (généralement par des appels d’API) pour y parvenir. Cela place souvent sur le consommateur la charge de comprendre les détails de configuration des services avancés, ainsi que la complexité et les efforts supplémentaires nécessaires pour intégrer les services aux outils d’automatisation. C'est un peu comme demander un sandwich en spécifiant chaque opération nécessaire à sa préparation, plutôt que de simplement demander un sandwich et d'attendre du préparateur de sandwich qu'il sache quelles opérations et dans quel ordre effectuer pour le préparer.
En revanche, une interface déclarative permet aux consommateurs (humains ou machines) de créer des services en demandant ce qu’ils veulent. Une connaissance détaillée de toutes les étapes requises n'est pas nécessaire car la cible d'automatisation dispose des flux de travail préconfigurés ou des modèles de service pour créer la configuration en fonction des résultats requis. Bien qu'une interface déclarative implique une configuration initiale légèrement plus complexe, cette complexité est compensée par la simplicité de fonctionnement une fois que les modèles de service appropriés sont créés. Cela en fait, en général, le mécanisme privilégié pour construire des systèmes d’automatisation.
Une autre décision que vous devrez prendre en compte est de savoir si les appels d’API d’automatisation doivent être effectués à partir d’outils tiers directement vers l’appareil qui doit être modifié ou via un outil de gestion supplémentaire. Les outils de gestion peuvent abstraire et simplifier les opérations et peuvent offrir des couches supplémentaires de contrôle et de journalisation par rapport à une connexion directe à l'entité gérée. Cependant, vous devrez prendre en charge cet outil pour garantir que vos couches de gestion sont hautement disponibles dans les situations où la capacité d’apporter des modifications rapidement est essentielle.
Les appareils BIG-IP sont le plus souvent automatisés via l'API REST qui expose la majorité des fonctionnalités BIG-IP via un schéma documenté . Les modules fournis par F5 pour les outils d'automatisation tels qu'Ansible utilisent largement l'API REST. En plus d'offrir une interface impérative par paramètre, les appels d'API REST peuvent être utilisés pour lancer des modèles d'iApp F5, où les valeurs permettant de configurer le service iApp sont transmises sous forme de charge utile JSON dans l'appel d'API. L'ajout de la fonctionnalité iControl LX permet également la création d'un point de terminaison API défini par l'utilisateur qui peut effectuer une opération en plusieurs étapes à partir d'un seul appel API.
Une autre façon courante d’automatiser la configuration BIG-IP consiste à utiliser des agents de démarrage, qui s’exécutent au démarrage et peuvent récupérer des informations externes pour configurer la plate-forme BIG-IP. Les agents de démarrage sont souvent utilisés pour effectuer la configuration initiale des appareils « intégrés » et peuvent récupérer des scripts et des fichiers de configuration supplémentaires à partir de sites tiers tels que GitHub ou votre propre référentiel. Les agents de démarrage peuvent également être utilisés pour configurer complètement une plate-forme BIG-IP, en particulier si vous avez choisi une configuration fixe par application.
La configuration de démarrage la plus courante est cloud-init , qui est activée dans toutes les images BIG-IP VE (sauf dans Microsoft Azure), mais elle est plus adaptée à une utilisation dans les déploiements AWS et OpenStack. Parallèlement à cloud-init, F5 fournit une série de bibliothèques de démarrage cloud pour aider à configurer BIG-IP au démarrage.
Si vous choisissez d'utiliser des agents de démarrage pour configurer une plateforme après le démarrage, faites très attention à la gestion des échecs si des sources externes sont utilisées, en particulier lorsqu'une instance peut être lancée dans le cadre d'un événement de mise à l'échelle. Si les ressources externes ne sont pas disponibles, comment le système se comportera-t-il ? Des appareils « zombies » supplémentaires seront-ils créés pour tenter de répondre à la demande ?
Dans certains cas, les systèmes d’automatisation peuvent se comporter comme des utilisateurs et exécuter des commandes CLI. Bien que cela puisse parfois résoudre certains problèmes où les appels d'API peuvent ne pas être complets, en général, la difficulté du support et la fragilité de la solution en font la méthode de dernier recours.
Les modèles et les playbooks peuvent créer des déploiements automatisés et créer des infrastructures présentant un certain degré de standardisation. Le niveau de standardisation approprié rend votre infrastructure plus robuste et plus facile à prendre en charge. Les modèles bien créés offrent une interface déclarative, où l'entité demandeuse (utilisateur ou machine) n'a besoin de connaître que les propriétés dont elle a besoin, et non les détails d'implémentation. Le déploiement strict via des modèles et la correction uniquement en corrigeant les modèles peuvent conduire à un service de meilleure qualité, car les problèmes sont généralement résolus une fois, puis les services sont redéployés à partir du nouveau modèle.
Les outils d'intégration de plateformes lient la configuration des services BIG-IP à des plateformes de calcul telles que le cloud privé ou les systèmes de gestion de conteneurs. Les mécanismes varient selon les plateformes et les implémentations, mais se répartissent généralement en trois modèles :
Remplacement des services F5 dans une construction de plateforme existante
Dans ce modèle, les services F5 sont insérés à l'aide d'une construction de plate-forme existante, par exemple en utilisant F5 comme routeur de plate-forme de conteneur OpenShift ou en utilisant F5 avec le système OpenStack Load Balancing as a Service (LBaaS) . L'utilisation de ces mécanismes nécessite peu de modifications des procédures opérationnelles, car une interface native de la plateforme est utilisée pour configurer les services, et le pilote fourni et d'autres logiciels traduisent de manière transparente les directives de configuration de la plateforme en une configuration F5. N'oubliez pas cependant que seules les fonctionnalités disponibles via l'interface native de la plateforme peuvent être facilement déployées.
Une autre méthode d'intégration courante consiste pour un module logiciel (tel que Container Connector pour Kubernetes et pour Mesos) à s'abonner à des événements au sein d'une plateforme, puis à modifier une configuration en fonction des événements. Vous pouvez sélectionner les événements et les services à déployer en marquant ou en étiquetant les applications qui doivent être traitées et en configurant le logiciel du connecteur pour surveiller les événements avec les balises requises.
De nombreuses plateformes de cloud privé disposent de systèmes de gestion conçus pour l’automatisation. VMware, par exemple, dispose de plusieurs outils de gestion et d'intégration, notamment vRealize Orchestrator (vRO) pour lequel il existe un plugin tiers pour la configuration de BIG-IP. D'autres exemples incluent le plugin pour le système de création de modèles OpenStack HEAT .
Bien qu'il ne s'agisse pas d'une solution d'automatisation complète, la découverte de services est un moyen simple et puissant d'intégrer les configurations BIG-IP aux changements de l'environnement. La découverte de services fonctionne en interrogeant périodiquement le système cloud via l'API pour récupérer une liste de ressources et en modifiant la configuration BIG-IP en conséquence. Cela 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 de la ressource de calcul back-end nécessite que l'équilibreur de charge soit conscient des nouvelles ressources. Les composants de découverte de services sont fournis avec les solutions de mise à l’échelle automatique cloud F5 pour AWS et Azure .
Bien que nous ne puissions pas couvrir tous les outils d’automatisation ou d’orchestration imaginables, vous trouverez ci-dessous une liste des outils, des cas d’utilisation et des fonctionnalités les plus courants utilisés par les clients F5.
Intégrations linguistiques
Langue |
Statut |
Exemples et sources |
Python |
F5 a contribué |
https://github.com/F5Networks/f5-common-python |
Aller |
Contribution des utilisateurs |
https://github.com/f5devcentral/go-bigip |
PowerShell |
F5 pris en charge |
https://devcentral.f5.com/wiki/icontrol.powershell.ashx |
Outils de gestion de configuration et d'automatisation de l'infrastructure
Outil |
Statut |
Exemples et sources |
Ansible |
F5 a contribué |
https://github.com/F5Networks/f5-ansible |
Terraform |
F5 a contribué |
https://github.com/f5devcentral/terraform-provider-bigip |
Fantoche |
F5 a contribué |
https://github.com/f5devcentral/f5-puppet |
Cuisinier |
Contribution des utilisateurs |
https://github.com/target/f5-bigip-cookbook |
Pile de sel |
Tierce personne |
https://docs.saltstack.com/en/latest/ref/runners/all/salt.runners.f5.html |
Systèmes de modèles d'infrastructure
Plateforme |
Statut |
Exemples et sources |
AWS |
F5 pris en charge2 |
https://github.com/F5Networks/f5-aws-cloudformation |
Azuré |
F5 pris en charge1 |
https://github.com/F5Networks/f5-azure-arm-templates |
F5 pris en charge1 |
https://github.com/F5Networks/f5-google-gdm-templates |
|
OpenStack |
F5 pris en charge1 |
https://github.com/F5Networks/f5-openstack-hot |
Agents de démarrage et scripts cloud
Init dans le cloud
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 en nuage
https://github.com/F5Networks/f5-cloud-libs
Intégrations de plateformes
Plateformes de gestion de conteneurs
Plateforme |
Statut |
Exemples et sources |
Kubernetes |
F5 pris en charge1 |
https://github.com/F5Networks/k8s-bigip-ctlr |
Marathon |
F5 pris en charge1 |
https://github.com/F5Networks/marathon-bigip-ctlr |
CloudFoundry |
F5 pris en charge1 |
https://github.com/F5Networks/cf-bigip-ctlr |
Plateformes de Cloud privé
Plateforme |
Statut |
Exemples et sources |
OpenStack (LBaaS) |
F5 pris en charge1 |
https://github.com/F5Networks/f5-openstack-lbaasv2-driver |
OpenStack (chaleur) |
F5 pris en charge1 |
https://github.com/F5Networks/f5-openstack-hot |
VMware (vRO) |
Tierce personne |
https://bluemedora.com/products/f5/big-ip-for-vrealize-operations/ |
Les outils et intégrations ci-dessus représentent des moyens automatisés de déployer et de configurer la plate-forme BIG-IP pour fournir des services de disponibilité, de sécurité et de mise à l'échelle des applications. Ces services, aussi essentiels soient-ils, ne constituent qu’une partie d’un déploiement d’application full-stack. La création d’une pile d’applications complète avec les serveurs, les données, le code d’application compilé et l’infrastructure de manière coordonnée et testée nécessite plus qu’un simple outil d’automatisation.
Vous aurez besoin d’un outil d’orchestration de niveau supérieur avec des flux de travail associés et des intégrations avec un certain nombre de systèmes d’automatisation. Ces outils sont le plus souvent utilisés dans les pratiques de travail d'intégration continue/livraison continue (CI/CD), pour lesquelles l'automatisation est, pour toutes les implémentations pratiques, requise. Bien qu'il existe un certain nombre d'outils d'orchestration, Jenkins est peut-être le plus courant, et il existe des exemples de workflows disponibles qui montrent comment vous pouvez utiliser Jenkins, F5 et Ansible pour intégrer les fonctionnalités d'infrastructure en tant que code de F5 dans un workflow CI/CD. En général, cependant, l’outil d’orchestration fonctionnera via l’un des outils d’automatisation de configuration pour apporter réellement des modifications aux services de déploiement.
Les plates-formes BIG-IP nécessitent une licence pour fonctionner, il est donc utile d’inclure l’octroi de licences dans le chemin critique de l’automatisation. Dans les environnements hautement dynamiques où les périphériques virtuels BIG-IP peuvent devoir être rapidement mis à l'échelle ou réduits ou créés à des fins de test et de développement, les modèles de licence doivent être soigneusement étudiés.
Dans le cloud public, une solution consiste à utiliser les versions de facturation des services publics du BIG-IP (disponibles via les marchés cloud). Les instances de facturation des services publics seront auto-licenciées et les coûts seront facturés via le fournisseur de cloud sur la base d'un paiement à l'utilisation ou d'un engagement de temps.
Une autre option consiste à utiliser des pools de licences réutilisables achetées par abonnement (ou perpétuellement) avec le gestionnaire de licences F5 BIG-IQ , qui vous permettra d'attribuer et de révoquer des licences d'un pool.
Vous pouvez automatiser les étapes d'octroi de licences via des agents de démarrage et des appels API, ce qui nécessitera un accès Internet sortant au serveur de licences F5 (même dans le cas de licences utilitaires sur des plateformes cloud).
Selon votre organisation, choisir les bons outils d’automatisation et d’orchestration peut être une tâche très simple ou difficile. C’est facile si vous avez déjà adopté un outil ou une méthodologie pour d’autres composants et que vous avez simplement besoin d’intégrer BIG-IP dans le système. Même sans intégration dans un outil particulier, la riche API REST iControl combinée aux capacités d'iControl LX et à cloud-init rend l'intégration de BIG-IP dans un outil d'automatisation existant relativement simple (surtout si elle est combinée avec des modèles iApp, qui peuvent être utilisés pour créer même une configuration complexe avec un seul appel d'API).
Cependant, si vous partez de zéro, les choses peuvent être plus complexes. Tout comme pour la sélection de toute autre solution, la compréhension de vos besoins doit être une priorité. Bien que ce document ne puisse pas établir votre liste d'exigences à votre place, voici un ensemble de questions et de recommandations pour vous aider à faire votre évaluation.
Les packages de solutions de cloud privé F5 constituent un moyen simple d’acquérir la technologie et les services nécessaires pour fournir des services d’application F5 dans un certain nombre d’environnements de cloud privé. Les packages regroupent des logiciels, du matériel et des services professionnels pour créer une solution clé en main et validée pour un certain nombre de plateformes de cloud privé. L’utilisation de packages de solutions de cloud privé peut vous fournir un déploiement de modèle qui peut être répliqué sur d’autres plates-formes pour créer un ensemble plus uniforme et cohérent de services de sécurité et de distribution d’applications dans plusieurs environnements.
Des niveaux accrus d’automatisation informatique sont inévitables. Adopter une approche stratégique pour fournir des services clés de livraison et de sécurité des applications garantira que les applications déployées par votre organisation restent sécurisées et disponibles. L’automatisation peut également vous aider à réduire vos frais opérationnels, en particulier lorsque vous travaillez sur plusieurs plates-formes et clouds publics.
Choisir le bon système d’automatisation peut s’avérer difficile et doit idéalement être réalisé dans le cadre d’un effort collaboratif et holistique, en tenant compte des compétences dont vous disposez ainsi que de la capacité de support du système. Quelle que soit la solution choisie, vous pouvez être sûr que la plateforme BIG-IP et l’expertise F5 seront disponibles pour vous aider à fournir les services de qualité professionnelle sur lesquels vos applications comptent, quel que soit l’endroit où elles sont déployées.
Les dernières nouveautés en matière de renseignement sur les menaces applicatives.
La communauté F5 pour les forums de discussion et les articles d'experts.