Prise en main du système linux
- Historique des systèmes Unix/Linux.
- Les différentes versions d'Unix (AIX, HP-UX, Solaris...).
- Les distributions Linux.
- Les standards et les architectures.
- Structure d'une ligne de commande Unix.
- Utilisation et personnalisation de l'interface graphique.
- Arborescence standard du système de fichiers Unix.
- Utilisateurs et groupes, protections d'accès.
- Organisation des répertoires et des fichiers. Les permissions des fichiers sous Unix/Linux.
- Les commandes de base pour les fichiers et répertoires. Copier, déplacer et supprimer des fichiers ou répertoires.
- Comment utiliser efficacement la documentation en ligne ?
Travaux pratiques
Exploration de l'arborescence. Utilisation des commandes de base. Exemple d'utilisation de la documentation en ligne.
Installation et configuration de Git
- Installation sous différents systèmes : Unix/Windows.
- Le système d'émulation sous Windows msysGit.
- Configuration du fichier .gitconfig. La console.
- Déclaration d'un outil d'analyse de différentiel de versions.
Travaux pratiques
Installation et configuration de Git sous Windows.
Utilisation de Git
- Le modèle objet Git : blob, tree, commit et tag.
- Le répertoire Git et le répertoire de travail.
- L'index ou staging area.
- Création et initialisation un dépôt.
- Les concepts de branche, tag et de dépôt.
- Outil de visualisation Gitk.
Travaux pratiques
Création et initialisation d'un dépôt. Utilisation de l'outil de visualisation Gitk.
La gestion du dépôt avec GitLab
- La gestion des collaborateurs d’un projet et leurs droits.
- Le système d’issues et le lien avec les commits.
- Présentation du wiki et des snippets.
Travaux pratiques
Paramétrage des droits et création de merge requests.
GitLab CI/CD
- Présentation de GitLab CI/CD et des GitLab runners.
- Présentation de Docker.
- Le fichier manifeste gitlab-ci.yml, présentation du langage YAML.
- Les balises essentielles pour décrire des étapes, des jobs, des traitements (stages, images, script…).
- Le suivi d’exécution du pipeline. Jobs automatiques, manuels et planifiés.
- Les "artifacts" et l’amélioration des performances avec le cache.
- La documentation officielle relative à la syntaxe du fichier manifeste.
- La gestion des environnements.
Travaux pratiques
Exemples simples de création et d'enchaînement de jobs.
DevOps : les fondamentaux
- Les mutations engendrées par la (r)évolution digitale.
- Les nouveaux challenges.
- Les solutions : les méthodes Agiles et DevOps.
- Leur positionnement parmi les frameworks et les normes de la production de services IT.
- Les fondements du mouvement DevOps.
Automatisation, dégager de la valeur sur la chaîne de production logicielle
- Les choix d'architecture.
- La gestion des exigences produit et les outils associés.
- La gestion des environnements et les outils associés.
- La gestion de version et les outils associés.
- La livraison continue et les outils associés.
- L'automatisation des tests et les outils associés.
- Le déploiement continu et les outils associés.
- Le passage à l'échelle.
Travaux pratiques
Définir un "Backlog DevOps" permettant de construire une chaîne de déploiement continu. Priorisation et définition du plan d'itérations. Partage des observations et synthèse des enseignements.