Commun DevOps Conditions Générales
Voici une liste des communes DevOps des termes indispensables pour être efficace en entreprise DevOps.
Table des matières
Test d'acceptation: généralement des tests de haut niveau de l'ensemble du système effectués pour déterminer si la qualité globale des fonctionnalités nouvelles et existantes est suffisamment bonne pour que le système passe en production.
Application release orchestration (ARO) : outils, scripts ou produits qui installent automatiquement et configurent correctement une version donnée d'une application dans un environnement cible, prêt à l'emploi. Aussi appelée « application release automatisation » (ARA) ou « livraison continue et release automatisation » (CDRA).
Test boîte noire : une pratique de test ou d'assurance qualité qui ne suppose aucune connaissance du fonctionnement interne du système testé, et qui tente donc de vérifier un comportement ou un état externe plutôt qu'interne.
Agent de build : un type d'agent utilisé en intégration continue qui peut être installé localement ou à distance par rapport au serveur d'intégration continue. Il envoie et reçoit des messages sur la gestion des versions de logiciels.
Construire l'automatisation : des outils ou des frameworks qui permettent au code source d'être automatiquement compilé en binaires publiables. Comprend généralement des tests unitaires au niveau du code pour s'assurer que les éléments de code individuels se comportent comme prévu.
Configuration sous forme de code : une technique de gestion de la configuration du système dans laquelle la configuration des machines, des applications, des travaux, etc. est spécifiée dans le code et conservée dans le contrôle de version, permettant aux équipes de configurer les applications/systèmes/travaux en quelques secondes.
Dérive de configuration : un terme désignant la tendance générale des configurations logicielles et matérielles à dériver ou à devenir incohérentes avec la version modèle du système en raison de modifications manuelles ad hoc (comme des correctifs) qui ne sont pas réintroduites dans le modèle.
Récipient: similaires mais plus légers qu'une machine virtuelle, les conteneurs sont des packages exécutables autonomes contenant tout ce qui est nécessaire pour exécuter un logiciel : code, runtime, outils système, bibliothèques système, paramètres, etc.
Livraison continue (CD): un ensemble de processus et de pratiques qui supprime radicalement le gaspillage de votre processus de production de logiciels, permet une livraison plus rapide de fonctionnalités de haute qualité et établit une boucle de rétroaction rapide et efficace entre votre entreprise et vos utilisateurs.
Intégration continue (CI): une pratique de développement qui oblige les développeurs à intégrer du code dans un référentiel partagé plusieurs fois par jour. Chaque check-in est ensuite vérifié par un build automatisé, permettant aux équipes de détecter les problèmes en amont.
Pipeline de livraison : une séquence de tâches orchestrées et automatisées mettant en œuvre le livraison de logiciel processus pour une nouvelle version de l’application. Chaque étape du pipeline vise à augmenter le niveau de confiance dans la nouvelle version jusqu'au point où une décision de procéder ou non peut être prise. Un pipeline de livraison peut être considéré comme le résultat de l'optimisation des performances d'une organisation. release processus.
DevOps – développement + opérations : un portemanteau de développement et d'exploitation, DevOps est un ensemble de processus, de pratiques et d'outils qui améliorent la communication, la collaboration et les processus entre les différents rôles du cycle de développement logiciel, ce qui permet de fournir de meilleurs logiciels avec rapidité et stabilité.
DevSecOps: la pratique consistant à intégrer la sécurité dans DevOps processus.
Boucles de rétroaction: la création d'un retour d'information rapide et continu entre les opérations et le développement au début du processus de livraison du logiciel est un principe majeur qui sous-tend DevOps. Cela permet non seulement de s'assurer que vous offrez aux clients ce qu'ils veulent réellement, mais aussi d'alléger la charge de développement, de réduire la peur de deploydéveloppement, crée une meilleure relation entre le développement et les opérations et augmente la productivité.
Gouvernance: en informatique, la gouvernance fait référence au processus par lequel les organisations évaluent et garantissent que leurs investissements technologiques fonctionnent comme prévu et n'introduisent pas de nouveaux risques. Un processus de gouvernance formel aide également les entreprises à garantir que les activités informatiques sont alignées sur les objectifs commerciaux, tout en garantissant que tout est conforme aux normes communes, telles que OWASP, PCI 3.2 et CWE/SANS.
Infrastructure en tant que code : une technique de gestion de la configuration du système dans laquelle les machines, les périphériques réseau, les systèmes d'exploitation, les intergiciels, etc. sont spécifiés dans un format entièrement automatisable. La spécification ou « blueprint » est considérée comme du code exécuté par des outils d'approvisionnement, conservé sous contrôle de version et généralement soumis aux mêmes pratiques que celles utilisées pour le développement de code d'application.
Infrastructure en tant que service (IaaS) : des machines virtualisées hébergées dans le cloud, généralement facturées sur une base « pay as you go ». Les utilisateurs ont le contrôle total des machines, mais doivent installer et configurer eux-mêmes tous les intergiciels et applications requis.
Jenkins : Jenkins, le serveur d'automatisation open source écrit en Java, est depuis longtemps la norme de facto pour l'intégration continue. Avec Jenkins, les développeurs peuvent intégrer leur code dans un référentiel partagé plusieurs fois par jour. Alors que les organisations cherchent à faire évoluer leurs processus de livraison de logiciels, elles constatent souvent que Jenkins nécessite trop de scripts et/ou de maintenance des flux de travail, et qu'elles doivent passer à la livraison continue. La livraison continue exploite non seulement des outils d'intégration continue, mais également des outils de bout en bout release orchestration, automatisation des tests, sécurité, gestion des services informatiques, etc.
Lis: La « fabrication au plus juste », ou « production au plus juste », est une approche ou une méthodologie qui vise à réduire les déchets dans un processus de production en se concentrant sur la préservation de la valeur. Largement dérivés des pratiques développées par Toyota dans la construction automobile, les concepts lean ont été appliqués au développement de logiciels dans le cadre de méthodologies agiles. La carte de la chaîne de valeur, qui tente d'identifier visuellement les étapes de processus précieuses et inutiles, est un outil clé du lean.
Exigences non fonctionnelles (NFR) : la spécification des qualités du système, telles que la facilité d'utilisation, la clarté de la conception, la latence, la vitesse et la capacité à gérer un grand nombre d'utilisateurs, qui décrivent la facilité ou l'efficacité avec laquelle une fonctionnalité peut être utilisée, plutôt que simplement si elle existe. Ces caractéristiques peuvent également être traitées et améliorées à l'aide de la boucle de rétroaction de livraison continue.
Open source: désigne un programme ou une application dont le code source peut être modifié par n'importe qui. Il existe une variété de frameworks open source, comme AngularJS et React, des outils open source, comme Gradle et Jenkins, et des bibliothèques open source, comme JHipster, qui peuvent être utilisées pour améliorer le développement de logiciels spécifiques et deployprocessus de ment. Dans un environnement d'entreprise complexe, un DevOps peut intégrer des outils open source et les rationaliser dans le pipeline de livraison.
Plate-forme en tant que service (PaaS) : les environnements d'exécution d'applications hébergées dans le cloud, généralement facturés sur une base «pay as you go». Les clients fournissent le code d'application et les paramètres de configuration limités, tandis que le middleware, les bases de données, etc. font partie de l'environnement d'exécution fourni.
Approvisionnement: le processus de préparation de nouveaux systèmes pour les utilisateurs. Dans un scénario de livraison continue, ce travail est généralement effectué par des équipes de développement ou de test. Les systèmes sont généralement virtualisés et instanciés à la demande. La configuration des machines pour installer les systèmes d'exploitation, les intergiciels, etc. est gérée par des outils automatisés de gestion de la configuration du système, qui vérifient également que la configuration souhaitée est maintenue.
Les tests de régression: test du système de bout en bout pour vérifier que les modifications apportées à une application n'ont pas eu d'impact négatif sur les fonctionnalités existantes.
Release gestion: le processus de gestion des logiciels releases de la phase de développement au logiciel proprement dit release elle-même.
Décalage à gauche: l'augmentation de la vitesse de livraison s'accompagne d'une augmentation des risques de sécurité et des problèmes de conformité dans différentes applications, équipes et environnements. Le déplacement vers la gauche fait référence à l'intégration des processus d'évaluation des risques, de test de sécurité et d'évaluation de la conformité plus tôt dans le pipeline de livraison. Cela rend moins cher et plus facile d'aborder le potentiel release des retards ou des défaillances, des vulnérabilités de sécurité qui menacent la production et des violations de la gouvernance informatique qui entraînent des amendes coûteuses.
Développement piloté par les tests (TDD): une pratique de développement dans laquelle de petits tests pour vérifier le comportement d'un morceau de code sont écrits avant le code lui-même. Les tests échouent initialement, et le but du ou des développeurs est alors d'ajouter du code pour les faire réussir.
Tests unitaires: test au niveau du code (c'est-à-dire, ne nécessite pas l'exécution d'un système de bout en bout entièrement installé) pour vérifier le comportement de morceaux de code individuels. Le développement piloté par les tests utilise largement les tests unitaires pour décrire et vérifier le comportement prévu.
Cartographie des flux: une technique d'amélioration de la visualisation des processus largement utilisée dans les approches de fabrication et d'ingénierie lean. Les cartes de flux de valeur sont utilisées pour identifier les étapes essentielles du processus par rapport aux « déchets » qui peuvent être progressivement éliminés du processus.
Système de contrôle de version (VCS) : un système qui enregistre les modifications apportées à un fichier ou à un ensemble de fichiers au fil du temps afin que vous puissiez rappeler des versions spécifiques ultérieurement. (GitHub, GitLab, Subversion...)
Virtualisation une approche de gestion des systèmes dans laquelle les utilisateurs et les applications n'utilisent pas de machines physiques, mais des systèmes simulés s'exécutant sur du matériel "réel". Ces « machines virtuelles » peuvent être automatiquement créées, démarrées, arrêtées, clonées et supprimées en quelques secondes, ce qui confère aux opérations une flexibilité considérable.
Essais en boîte blanche : une pratique de test ou d'assurance qualité basée sur la vérification du bon fonctionnement des composants internes d'un système en examinant son comportement (interne) et son état pendant son exécution.
Tolérance zéro: comme dans, tolérance zéro pour les échecs de production. Les clients ont une tolérance zéro en cas d'échec. UN deployUne panne de service ou tout type d'interruption de service des logiciels destinés aux clients peut avoir un impact catastrophique sur une organisation, en particulier dans les secteurs hautement réglementés.