Lexique Devops
Publié le : 30 décembre 2020 | Mis à jour le : 27 juin 2023On me fait souvent la remarque qu’on ne comprend pas tout ce que je raconte, car j’emploie un vocabulaire propre au domaine du Devops. Je vous propose un lexique qui va s’enrichir au fil du temps.
Table des matières
Agile
Une méthode agile est une
méthode utilisée dans le cadre du développement d’un produit, centrée sur
l’humain et la communication. Cette méthode recommande un développement itératif
en découpant un projet en sous-projets pour lequel on se fixe des objectifs à
court termes atteignables. Ces sous-projets sont appelés des sprints
et sont
de courtes durées.
Le but d’une méthode agile est de livrer rapidement au client une première version du produit qui correspond à ses besoins, qui évoluera ensuite au fil des versions.
Méthodes agiles : Scrum, eXtrem Programming, …
Automatisation
Fonctionnement d’un système sans intervention humaine, automatisation d’une suite d’opération.
Build
Le build est la phase appelée aussi intégration. Elle consiste à assembler le code des développeurs avec toutes ses dépendances afin de fournir un livrable de l’application. Dans cette phase, on retrouve, l’analyse du code (lint), les tests unitaires et la compilation.
Déploiement Continu
Déploiement ou livraison continue est une méthode de développement de logiciels dans le cadre de laquelle les modifications de code sont automatiquement préparées en vue de leur publication dans un environnement de production. La livraison continue étend le principe de l’intégration continue en déployant tous les changements de code dans un environnement de test et/ou de production après l’étape de création. Lorsque la livraison continue est correctement implémentée, les développeurs disposent en permanence d’un artefact de génération prêt pour le déploiement qui a été soumis avec succès à un processus de test standardisé.
Infrastructure as Code
Une infrastructure en tant que code (Infrastructure as Code) est une infrastructure informatique virtuelle qui peut être créée, configurée et approvisionnée automatiquement via du code.
Cette approche vient résoudre le problème de la dérive des environnements de production, ce qu’on appelle des systèmes mutables.
Intégration Continue
CI ou intégration continue est une méthode de développement avec laquelle les développeurs intègrent régulièrement leurs modifications de code à un référentiel centralisé, suite à quoi des opérations de création et de tests sont automatiquement menés. L’intégration continue désigne souvent l’étape de création ou d’intégration du processus de publication de logiciel et implique un aspect automatisé. Les principaux objectifs de l’intégration continue sont de trouver et de corriger plus rapidement les bogues, d’améliorer la qualité des logiciels et de réduire le temps nécessaire pour valider et publier de nouvelles mises à jour de logiciels.
Mutabilité vs Immutabilité
Immutabilité : Caractère de ce qui ne peut changer.
Une infrastructure mutable est un système qui évolue de manière incrémentale et donc mis à jour de manière continue. L’état de l’infrastructure est le résultat d’une accumulation d’opérations pouvant être pour certaines manuelles.
Par contre, une infrastructure immutable est un système qui n’est jamais modifié après son déploiement. Ce système devra en conséquence avoir le moins de mutation possible, voire aucune.
Par exemple, pour construire des images de VM immutables vous pouvez utiliser Packer d'HashiCorp pour ensuite les enregistrer en les versionnant dans votre gestionnaire d’Artéfacts.
Idempotence
En algèbre, l'idempotence est la propriété d’une opération, d’avoir le même effet qu’on l’applique une ou plusieurs fois. Par exemple, la valeur absolue est idempotente : abs(abs(−5)) = abs(−5), les deux membres étant égaux à 5.
En programmation une fonction est idempotente si l’état du système reste le même après un ou plusieurs appels.
Déclaratif vs Impératif
Dans une approche déclarative, le code de configuration décrit l’état dans lequel l’environnement de production doit se trouver, sans prendre en compte les étapes pour y arriver. Le système fait en sorte que l’infrastructure atteigne l’état désiré.
Dans une approche impérative, le fichier de configuration définit les commandes et les étapes nécessaires pour que l’environnement parvienne à l’état désiré. Le système réalise les commandes indiquées. Exemple : Ansible
Orchestration
L’orchestration est un processus automatique de gestion d’un système informatique.
Provisioning
Le provisioning est un processus d’allocation automatique de ressources informatiques.