Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
André Santos

Min Read

25 février 2024

Boostez le développement avec Vagrant et Ansible

Au cours des huit dernières années, nous avons observé avec une attention particulière l'évolution des écosystèmes Web tels que Rubis et Ruby on Rails, qui est l'un des outils incontournables pour l'infrastructure backend que nous utilisons à la fois développement d'applications web et mobiles.

Huit ans, c'est long dans la vie d'une technologie en perpétuel processus d'évolution. C'est pourquoi nous avons vu des projets construits dans des lieux presque oubliés Rails 3.1 au-dessus de Rubis 1.9, sans arguments de mots clés ni opérateurs de navigation sécurisés, jusqu'à la version la plus récente Rails 5.2.2 sur Ruby 2.5.3. Ajoutez maintenant plusieurs versions différentes de gems et une poignée de dépendances des packages, en plus des différents systèmes d'exploitation, et nous obtenons une myriade d'environnements de projet.

Dans de tels scénarios, la mise en place d'un environnement de développement permettant de reproduire les conditions nécessaires à la reproduction d'un bogue, ou même la mise en place d'un moyen rapide de vérifier l'état actuel du projet afin d'estimer les efforts nécessaires à l'introduction d'une nouvelle fonctionnalité devient une tâche critique et urgente.

Il est de plus en plus difficile de passer d'un projet à l'autre avec des configurations et des environnements différents, et la transition vers d'anciens projets afin de fournir un correctif rapide se transforme en une tâche épouvantable et frustrante.

En effet, la configuration d'anciens projets prend plus de temps que la reproduction, la correction et le déploiement d'un nouveau correctif.

Ce n'est pas drôle.
Ce n'est pas sain.
Ce n'est pas efficace.

Il est devenu évident qu'il était nécessaire de préserver l'environnement de développement de manière portable et confinée, afin de permettre une transition plus fluide entre les projets.

C'est à ce moment-là Vagabond est passé à l'action.

blue arrow to the left
Imaginary Cloud logo

En Vagrant, nous avons confiance

Vagabond est un outil populaire de déclaration et de gestion de machines virtuelles open source de Hashi Corp. Sa popularité vient de la simplicité Rubis syntaxe qui décrit une ressource à partir de l'image de base, de la fonctionnalité d'allocation des ressources et d'autres configurations de provisionnement mineures, telles que la façon dont elle monte un dossier partagé ou utilise des scripts de provisionnement pour préparer l'environnement de développement.

Il est également livré avec une variété de fournisseurs qui peuvent prendre en charge Vagabond sur plusieurs plateformes, avec la création d'une machine virtuelle locale sur Boîte virtuelle, VMWare et Hyper-V.

De plus, il a été étendu par la communauté pour prendre en charge les services d'hébergement populaires tels que Amazon Web Services ou Océan numérique, leur permettant de travailler en tant que fournisseurs et de résumer tout le processus de création et de gestion de Gouttelettes et Instances EC2.

Les développeurs peuvent ainsi simuler et coordonner plusieurs architectures de nœuds via une interface familière. Et le meilleur ? Toutes les spécifications sont regroupées dans un seul fichier texte, qui peut être facilement regroupé dans un projet et conservé sous contrôle de version, prêt à être validé.

Aller plus loin avec Ansible

Vagabond offre un moyen rapide et propre d'interagir avec les environnements de développement, en utilisant un système d'exploitation similaire à celui de la production et de la production. Cela augmente la résilience des applications et les rend moins sujettes aux défaillances qui restent cachées dans les environnements de développement. Cependant, Vagrant n'est pas à lui seul le meilleur outil pour provisionner une machine virtuelle.

Compte tenu de cela, Ansible était notre arme de prédilection pour approvisionner les machines virtuelles. Il ne nécessite aucun type d'agent s'exécutant sur la machine virtuelle, comme d'autres alternatives telles que Cuisinier et Marionnette ferait, et effectue la majeure partie de son travail via Poussez, via SSH.

Ses spécifications sont faites en YAML, ce qui le rend lisible et facile à comprendre, afin que chacun puisse rapidement assimiler chaque instruction et modifier un script de provisionnement en fonction de nouveaux besoins, par exemple en ajoutant une bibliothèque système supplémentaire pour une nouvelle gemme. La structure globale des scripts permet également d'avoir une vision claire des modifications introduites, ce qui permet d'intégrer les nouvelles dépendances ajoutées lors des révisions de code et des audits de sécurité. C'est quelque chose que l'on oublie facilement lorsqu'on évalue un script shell simple avec de longues commandes qui ressemblent à un train de marchandises sans fin.

Avec Vagabond, d'Ansible les scripts sont simplement du texte brut qui peut être stocké avec le projet, sous le code de version.

L'expérience Vagrant

Comme pour toutes les autres innovations, Vagabond et d'Ansible l'introduction peut rencontrer différents degrés de résistance lors de son adoption. Les développeurs qui sont affectés à un seul projet pendant de longues périodes peuvent ne pas apprécier pleinement cette nécessité ou ne pas apprécier sa portabilité, ce qui est compréhensible.

Cependant, au fur et à mesure que les développeurs passent d'un projet à l'autre et modifient différentes choses au quotidien, ils comprendront mieux la valeur de Vagrant. Il n'est pas rare de réparer quelque chose sur un ancien Python projet le matin, passez à Rubis entretien l'après-midi et bricolage Node.js le lendemain, par exemple.

Vagrant permet de modifier efficacement le contexte du projet.

L'avenir de Vagrant et Ansible

Ansible seul est un puissant outil de provisionnement qui interagit efficacement avec plusieurs VPS et peut être utilisé pour déployer des modifications dans de grands clusters. Alors qu'une utilisation massive de Ansible gérer de grands clusters n'est pas prévisible dans un avenir proche. En l'adoptant de manière cohérente, on peut réutiliser les scripts Ansible déjà construits pour configurer des machines virtuelles de développement, provisionner le VPS qui hébergera à la fois des environnements de mise en scène et de production.

Il est principalement aligné sur les meilleures pratiques de développement, car il crée de bons scripts de provisionnement flexibles qui peuvent faire plus que simplement provisionner une machine virtuelle, les réutiliser lors de la tentative de déploiement de l'application dans plusieurs environnements.

Alors que Vagabond peut être utilisé comme outil pour créer et gérer VPS pour le développement, ou même pour créer des environnements de mise en scène et de production, il existe d'autres outils qui peuvent être utilisés pour atteindre les mêmes objectifs, tels que Terraforme.

Mais c'est une toute nouvelle histoire pour un autre jour...

Ready for a UX Audit? Book a free call

Vous avez trouvé cet article intéressant ? Ceux-ci vous plairont peut-être aussi !

blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
André Santos
André Santos

Votre développeur web de tous les jours qui aime se cacher dans le backend. Javascript et Ruby sont mes préférés. Je me débrouille toujours avec Docker et mes builds se cassent assez souvent.

Read more posts by this author

People who read this post, also found these interesting:

arrow left
arrow to the right
Dropdown caret icon