Le programme
- Appréhender la culture agile
Le manifeste Agile
De la vision à la livraison, lachronologie du projet
Le système sensoriel pour suivrel’évolution du projet
La planification et la gestion del’inconnu
Le rythme : travailler de façon itérative
Lamutation : amélioration progressive et continue du projet etdes process
Quelques principes : KISS, YAGNI, empirisme,transparence, …
- Apprendre les pratiques agiles
Le Lean Management : objectif, principes
Kanban :principe, avantage, cycle de vie d'une étiquette
Pratiques XP(eXtreme Programming)
Le cadre Scrum, distribution desrôles
Time boxes : Sprint planning, Sprint Review, SprintRetrospective, Daily Scrum
Artéfacts : Product Backlog,Sprint Backlog, Burndown chart
- Mettre en place une solution de gestion de version Git
Principes de gestion de contrôle de source (SCM)
Historique,contrôle local, centralisé et distribué
Fonctionnement desinstantanées, comparaison avec les différences
Installation(Linux, MacOS, Windows)
Accès au manuel : man /help
Configuration initiale de Git : préférences, profilutilisateur
Initialisation d’un dépôt local
Atelier : Installation de Git - Création d'un projet
- Exploiter le dépôt local et son cycle de vie
Concepts, de répertoire de travail, index et dépôt
Vérifierl’état de la copie de travail : status
Indexer sesmodifications : add
Ignorer des fichier :.gitignore
Valider ses modifications : commit
Supprimeret déplacer des fichiers
Atelier : contributions et validations
- Visualiser l’historique
Visualiser les modifications : log
Personnaliser leformat : stat, pretty, …
Filtrer par date , auteur,message de commit, contenu modifié, ...
Visualiser et exporterune différence (format natif, outil externe)
Étiqueter sesvalidations : étiquettes légères et annotées
Rechercheravec git-grep
- Annuler des actions
Réécrire la dernière validation
Désindexer unfichier
Réinitialiser un fichier
- Travailler avec les branches
Principe de branche, le pointeur HEAD
Créer unebranche
Basculer entre les branches, le mode détaché
Fusionnerles branches : avance-rapide, trois sources
Gérer lesconflits de fusion
Outil de fusion externe : mergetool(emerge, vimdiff, meld, …)
Visualiser les branches existantes,celles qui ont été fusionnées
Supprimer unebranche
Stratégies de gestion de branches : branchelongue, thématique, …
- Travailler avec un dépôt distant
Dépôt distant, branches distantes, suivi de branche
Afficheret inspecter les dépôts distants
Ajouter, renommer, retirerses dépôts distants
Tirer, pousser et supprimer une branchedistante
- Réécrire l’histoire, rebaser
Mise en garde : les dangers de la réécriture
Rebaserune portion de branche
Quand rebaser et quand fusionner
- Remiser et nettoyer
Remiser son travail en cours
Créer une branche depuis uneremise
Nettoyer son répertoire de travail
- Personnaliser Git
Configurer éditeur par défaut, exclusions automatiques,...
Création et utilisation d’alias
Outils graphiques :Git-Gui, GitKraken, SmartGit, ...
Créer des filtres :smudge et clean
Crochets côté client : pre-commit,pre-rebase, post-rewrite…
Crochets côté serveur :pre-receive, update, post-receive
- Faire référence à un projet externe
Principe des sous-modules
Déclarer, tirer et mettre à jourun sous-module
Modifier et gérer les conflits sur unebibliothèque externe
Problèmes des sous-modules
- Publier un dépôt Git sur un serveur
Les protocoles : local, HTTP, SSH, Git
Création d’undépôt nu, comptes utilisateurs
Utilisateur git unique, clésSSH et git-shell
Démon Git
Atelier : Mise en place d’un serveur Git
- Appréhender Docker
Les différentes formes de virtualisation et leurconcept
Présentation des avantages et des cas d'utilisation desconteneurs
Présentation de Docker et de son architecture
- Comprendre l'intégration continue
Processus de développement, d'intégration et dedéploiement
Intégration continue : présentation,positionnement dans une démarche agile
Gestion desenvironnements : développement, recette, production
Panoramaoutils de gestion : versionning, build, tests, qualité
Présentationd'outils d'intégration continue : Jenkins, GitLab-CI, Bamboo, …
Atelier : Publier un projet sur uneplateforme d’intégration continue
- Mettre en place un pipeline d’intégration avec Gitlab-CI
Chargement d’une image Docker
Mise en place dupipeline : les stages et les jobs
Exécution du pipeline etvisualisation de la sortie
Configurer les dépendances entrejobs
Gérer le déclenchement de l’intégration suivant lesbranches ou tags
Atelier : Configurer etlancer l’intégration
- S’équiper pour l’assurance qualité
Outils de qualité, types et intérêts
Panorama des types tests :unitaires, fonctionnels, e2e
Stratégies des tests, TDD, BDD,StoryBDD, non-régression
Ce qu’il faut et ne faut pas tester
Atelier : Mettre en place un contrôle deconvention d’écriture
- Tester son application
Présentation d'une bibliothèque de test unitaire
Classes et méthodes de tests,assertion
Provisionner en données : fixtures
Lesdoublures : bouchons, mock
Les résultats : succès,échec, erreur, risqué, incomplet
Atelier : Mettre en place des testsautomatisés, contrôler les scénarios
- Passer de l’intégrationau déploiement : le mouvement DevOps
Présentation du mouvement DevOps
Valeurs DevOps: Culture,Automatisation, Lean, Mesure, Partage
Culture DevOps :présentation, caractéristiques, mise en place
Principed’infrastructure as code
Présentation d’Ansible