Chapitre 15 : Déploiement Flashcards
Quels sont les différents environnements ?
Environnement de développement, Environnement de test, Environnement de production
Définit l’environnement de développement
- Ordinateur personnel du développeur contenant tout le nécessaire pour le développement
- IDE, Base de données et serveur web locaux
Définit l’environnement de test
- Simule l’environnement de production
- Roule souvent sur une machine virtuelle
- Peut avoir un système d’exploitation différent de l’environnement de dev
Définit l’environnement de production
- Vrai environnement où le logiciel est installé
- Utilisateurs finaux opèrent dessus ou communiquent avec
Définit la virtualisation
- La virtualisation est une technique qui consiste à créer une version simulée ou abstraite de ressources informatiques, telles que des serveurs, des systèmes d’exploitation, des réseaux, des dispositifs de stockage ou des applications.
Quels sont les avantages de la virtualisation ?
- Elleoffredenombreuxavantages,notamment:
- Optimisation des ressources : Permet de maximiser l’utilisation de la puissance de calcul,
du stockage et de la mémoire. - Réduction des coûts : Diminution des besoins en matériel physique et en énergie.
- Flexibilitéetportabilité:Déploiementrapide,migrationfaciledesmachinesvirtuellesou conteneurs, et adaptation aux besoins changeants.
- Isolation et sécurité: Les environnements virtuels sont isolés les uns des autres, limitant les risques en cas de panne ou d’attaques..
- Facilité de tests et développement : Permet de créer des environnements similaires à la production pour expérimenter sans impacter les systèmes principaux..
Nomme 2 techniques de virtualisation
Virtualisation des serveurs (machine virtuelle) et Conteneurs
Définit une machine virtuelle
Abstraction complète de la machine, interagit avec les composantes physiques de l’ordinateur via hypervisors
Avantages : Émuler complètement plusieurs machines (plusieurs OS, plusieurs infrastructures serveurs)
Inconvénients : Utilise beaucoup de ressources
Définit un container
- Paquets contenant toutes les composantes (services, librairies) pour exécuter une application
- Utilise les fonctionnalités de l’OS hote pour en simuler un autre
✓Solution légère
➢N’émule pas tout le système ➢Utilisation efficiente des ressources
✓Favorise l’architecture de microservice
× Risque de contamination
Définit ce qu’est un déploiement
Transition de l’application d’un environnement à un autre
Consiste en différentes activités : Assemblage et configuration, livraison, transfert, installation, activation, mise à jour
Définit l’assemblage et la configuration
Chaque composant définit les interfaces qu’elle fournit et qu’elle requiert
Les composants interdépendants sont assemblés dans un artéfact (assembly) qui peut aussi requérir des interfaces
- Chaque composant est libellé par une version
- Ordre de sa révision
- variante spécifique à l’environnement ciblé
Explique le concept de transfert
- L’application est transférée pour être utilisée par les utilisateurs finaux
- On ne peut livrer le logiciel qu’une fois les tests d’acceptation complétés sans échec
- TOUS les artéfacts du projet sont livrés
- Documentation, code source, tests, manuel
utilisateur, guide d’installation
- Documentation, code source, tests, manuel
Explique ce qu’il se passe durant la mise-à-jour
- Change une partie du logiciel installé à cause de la livraison d’une nouvelle version
- Peut nécessiter la désactivation ou la désinstallation du logiciel pour effectuer les changements nécessaires
Parle de la pratique DevOps
- Inclure les Ops tout au long du processus de développement * Déployer en continue, tout automatiser
- Instaurer un processus de déploiement suivi par tous
- Développement de l’infrastructure doit suivre les mêmes pratiques que le code de l’application
Quelle est la différence entre l’intégration continue et la livraison continue ?
Intégration continue
* Automatisation de l’intégration des changements apportés au code.
* Des tests automatisés sont utilisés pour éviter l’introduction de fautes (bugs) ou d’une incompatibilité entre le nouveau code (branche) et le code principal (main).
Livraison continue
* Infrastructure d’automatisation du déploiement/publication ciblant un ou plusieurs environnements