Introduction à DevOps
Principes DevOps
Valeurs DevOps: Culture, Automatisation, Lean, Mesure, Partage
Culture DevOps : présentation, caractéristiques, mise en place
Inte?gration et de?ploiement continues
Panorama des outils DevOps.
Présentation de GIT
Gestion de configuration logicielle (GCL) : présentation, positionnement, outils
Terminologie GCL : Branch, Tag, Checkout, Commit, Merge, ...
Git : fonctionnalités, composants
Git vs SubVersioN
Configuration de Git : préférences, authentification
Editeur de code et outil d'analyse
Atelier : Installation d'un client Git - Création d'un dépôt de données
Exploitation du repository
Import de sources du projet
Récupération d'une copie locale Création de branches
Commit de modifications et gestion des conflits
La création d'une branche
Gestion des métadonnées, historique
Création de Tags dans Git
Atelier : Mise en place de projets sur le repository - Récupération d'une copie locale et multiples opérations de propogations de modifications avec gestion des conflits
Administration de Git
Gestionnaire Git disponibles : gitweb, git-gui, ...
Git distibué
Le service web GitHub
Gestion des utilisateurs
Import et export de repositories
Sécurité du dépôt et des échanges (SSL)
Sauvegarde et restauration
Atelier : Multiples tâches d'administration
Tâches avancées
Organisation de la gestion de versions
Git dans un système d'intégration continue
Gestion des logs
Statistiques du dépôt
Atelier : Git dans un système d'intégration continue (Hudson), gestion des logs et génération de statistiques (tableaux, graphiques)
Comprendre l'intégration continue
Processus de développement, tests unitaires / d'intégration
Intégration continue : présentation, positionnement dans une démarche agile Gestion des environnements : développement, recette, production
Outils de conteneurs applicatifs (Docker)
Configurations système et applicative et outils de centralisation (Puppet, Ansible) Industrialisation des déploiements.
Panorama outils de gestion : versionnement, build, tests, qualité Présentation d'outils d'intégration continue : Jenkins, GitLab-CI, Bamboo,... Types d'installation
Atelier : Mise en place d'un outil d'intégration continue, tour d'horizon de l'interface Gérer des builds
Structure d'un build de projets : steps ou pipeline
Mise en place de builds : automatiques / manuels
Plugins pour la gestion des dépôts de source : Git, TFS, SVN,... Outils de build : Maven, Ant, Gradle,...
Organisation des branches et des tags
Gestion des dépendances et dépôts
Intégration des dépôts avec les outils de build
Gestion des notifications
Atelier : Interfaçage avec des dépôts de dépendances - Configuration et lancement de builds
Contrôler la qualité du code
Présentation, gestion de la qualité du code
Panorama des outils : Checkstyle, FindBugs, ...
Rapport de qualité : configuration, plugins (Violations)
Autres rapports : complexité, tâches,...
Atelier : Intégration d'outils de gestion de qualité du code (SonarQube) dans une démarche d'intégration continue
Automatiser les tests
Types de tests
Automatisation, couverture
Tests unitaires et d'intégration
Tests d'acceptance, tests de performances Optimisation des tests
Atelier : Multiples scénarios d'automatisation de tests unitaires, d'intégration, de performances
Mettre en place une stratégie de déploiement
Stratégie globale d'automatisation Scripts de déploiement et de mise à jour Rollbacks
Atelier : Construction de scripts de déploiement Administrer les outils
Sécurité du serveur d'intégration continue
Gestion des utilisateurs : bases, rôles, autorisations Gestion des journaux
Espace mémoire/charge CPU, espace disque Monitoring
Atelier : Multiples tâches d'administration du serveur