BLOG

Choisir Ansible ou Terraform pour les services application F5

Miniature de Lori MacVittie
Lori MacVittie
Publié le 30 septembre 2019

Choisissez l’un ou l’autre - ou les deux - pour déployer et exploiter les services application F5.

Le mouvement open source s’est toujours concentré sur la liberté. La liberté de choisir la solution qui vous convient le mieux en fonction de vos compétences, de votre budget, de votre architecture et de vos objectifs. Ce principe continue d’être un facteur important aujourd’hui lorsqu’il s’agit de créer une infrastructure reproductible pour le pipeline de déploiement.

Il existe de nombreuses options intéressantes pour automatiser le provisionnement et le fonctionnement des services application . Deux des choix les plus populaires sont RedHat Ansible et HashiCorp Terraform. 

Permettez-moi de m'arrêter ici et de mentionner que F5 prend entièrement en charge Ansible et Terraform . Nous travaillons avec les deux pour garantir l'interopérabilité et l'intégration, afin que vous n'ayez pas à le faire. Quel que soit votre choix, nous sommes là pour vous.

Mais nous avons constaté lors des interactions avec nos clients que pour certaines tâches, Ansible excelle tandis que pour d'autres, c'est Terraform qui brille. C’est parce que l’automatisation – et la maintenance – d’un pipeline nécessitent différents ensembles de tâches.

Terraform excelle dans l’orchestration – la gestion de l’état d’un environnement. Cela signifie que Terraform comprend à quoi un environnement doit ressembler et comment il doit se comporter. Si quelque chose ne va pas, Terraform peut le signaler pour examen.

Ansible excelle dans la gestion de configuration . Cela signifie que son objectif est de maintenir l’état des composants individuels. S'il y a un problème avec un composant individuel dans l'environnement, Ansible peut ajuster la configuration pour résoudre le problème. 

La focalisation différente de chaque outil signifie qu'il n'est pas surprenant de les voir utilisés ensemble pour automatiser le cycle de vie du déploiement. 

Pour voir comment ces deux outils fonctionnent avec F5 Application Services, il est judicieux de définir un terrain d'entente avec une vue du cycle de vie du déploiement : 

Cycle de vie du déploiement

Tout comme il existe un cycle de vie pour les applications avec un pipeline de livraison correspondant, il existe un cycle de vie pour les services application avec un pipeline de déploiement correspondant. Ce cycle de vie nécessite plusieurs étapes :

  1. Disposition
    un. Le provisionnement est le processus de démarrage réel d'une instance, qu'il s'agisse d'une machine virtuelle ou d'un conteneur, que ce soit dans un cloud public ou privé.
  2. À bord
    un. L'intégration est nécessaire pour configurer le réseau requis pour fonctionner dans l'environnement dans lequel BIG-IP a été déployé.
  3. Déployer
    un. Pendant la phase de déploiement du cycle de vie, un service application est défini, configuré et lancé.
  4. Fonctionner
    un. Les opérations en cours nécessitent une surveillance et des analyses. F5 Telemetry Streaming permet à BIG-IP de se connecter aux pipelines de télémétrie pour partager les métriques et les données souhaitées.
  5. Changement
    un. Le changement est le processus de modification des configurations existantes (spécifiées initialement lors de la phase de déploiement).

Ansible et Terraform peuvent tous deux être le principal fournisseur d’automatisation pour les cinq phases. Cependant, chacun excelle à différentes phases et donc utiliser les deux peut en fait être une meilleure stratégie. Nous sommes plus susceptibles de voir Ansible utilisé pour les phases de déploiement et de changement (gestion de la configuration) tandis que Terraform est plus souvent utilisé pour le provisionnement et l'intégration (orchestration).

Ansible et Terraform ensemble

Nous savons également que de nombreux clients souhaitent standardiser leurs chaînes d’outils – pour de bonnes raisons. Maintenir une expertise dans plusieurs outils peut s’avérer difficile, sans parler de l’exploitation et de la maintenance de l’infrastructure nécessaire pour exécuter plusieurs chaînes d’outils. Dans ce cas, il existe des moyens de choisir parmi ces formidables outils celui sur lequel standardiser.

  1. Changements peu fréquents dans l’infrastructure
    Dans ce scénario, vous apportez des modifications aux services application , mais pas nécessairement à l'infrastructure, c'est-à-dire BIG-IP. C'est souvent le cas lorsqu'on profite d'une BIG-IP existante pour déployer de nouvelles applications. Ansible est un bon choix ici car il excelle dans la gestion de la configuration et c'est principalement ce que vous ferez. Ansible prend en charge une large gamme de langages et de styles d'API, ce qui en fait une solution idéale pour les équipes DevOps et NetOps qui souhaitent apporter des modifications aux services application . Vous pouvez utiliser Ansible pour configurer les services application F5 via les modules F5 Ansible ou via F5 AS3. Ou vous pouvez utiliser les deux en fonction de vos besoins spécifiques. Pour une analyse plus approfondie sur la façon de choisir votre approche Ansible, consultez cet excellent blog de Mani Gadde et Andrius Benokraitis .
  2. Changements fréquents dans l’infrastructure
    Le cloud, en particulier le cloud public, est souvent choisi pour faciliter un taux élevé de changements dans les applications et leur infrastructure de support. Immuable infrastructure aide souvent à gérer la volatilité dans cette situation, c’est-à-dire à démonter et à redéployer une infrastructure entière. Terraform est un excellent choix pour ce scénario car il excelle dans le provisionnement et l’intégration d’infrastructures entières avec rapidité. Sa conception et son accent sur l’orchestration conviennent parfaitement à la création d’infrastructures cohérentes et reproductibles à grande échelle, en particulier dans des environnements volatils comme celui du cloud. 
  3. Changement fréquent de l'infrastructure et des services application
    Terraform + Ansible peuvent constituer une excellente combinaison pour gérer des taux de changement élevés à la fois dans l'infrastructure et dans les services application . Étant donné que vous vous attendez à des changements fréquents dans l'état de l'environnement et des composants individuels, vous aurez besoin d'outils de gestion des changements et d'orchestration pour vous aider à maintenir la disponibilité des applications et de leurs services application de support.

Quel que soit votre choix - Ansible, Terraform ou les deux - F5 s'engage à soutenir votre choix avec des intégrations natives et des modèles pré-packagés ainsi qu'une communauté contribuant et affinant activement les deux.