loader image

Gate Training

logo-png
Virtualisation - Cloud - DevOps

Formation Infrastructure DevOps : Les outils

3 Jours

Description de la formation DevOps

Traditionnellement, les équipes informatiques étaient cloisonnées. La communication entre développeurs et opérationnels était alors inexistante ou fortement entravée, ce qui conduisait à des difficultés lors des déploiements d’applications. L’approche DevOps essaie de gommer ces défauts afin de rassembler développeurs et opérationnels dans des équipes projet.
L’objectif principal de cette approche est de délivrer un service de qualité, répondant à des besoins de changement permanents, tout en diminuant au maximum les délais entre l’expression du besoin utilisateur et la mise en production.

Dans les faits, l’approche DevOps a des impacts sur le déploiement des applications. Au lieu de les déployer sur des infrastructures exploitées par des équipes opérationnelles, des équipes projets full-stack développent et fournissent des systèmes complets incluant l’infrastructure serveur et les applications s’y exécutant. La mise au point de l’infrastructure de production fait donc partie du développement de l’application. Elle est exprimée soit en termes de configuration de machine virtuelle, comme dans les outils Open Source Vagrant, Puppet, Chef, Ansible, soit en termes de conteneur Docker.
L’approche Docker (la containerisation), permettant de rationaliser l’utilisation des ressources matérielles et de fusionner dans un livrable unique l’infrastructure et l’applicatif, présente d’énormes avantages dans l’approche DevOps. Cette solution Open Source a tendance à se répandre massivement dans les entreprises. DevOps inclut également la livraison ou le déploiement continu, ce qui implique que les nouvelles infrastructures de production soient testées, surveillées, orchestrées et mises à l’échelle en permanence. Sur ces aspects, encore une fois, l’Open Source règne avec des produits comme Jenkins, Kubernetes, Docker Swarm ou autres…

Cette formation Infrastructure Outils DevOps de trois jours fait un rappel sur les concepts fondateurs de DevOps et ses impacts sur l’organisation des services informatiques, puis présente les outils Open Source DevOps les plus utilisés actuellement et propose des ateliers associés.

Objectifs

Objectif opérationnel : 

Savoir maîtriser les outils DevOps.

Objectifs pédagogiques : 

À l’issue de cette formation Infrastructures Outils DevOps, vous aurez acquis les connaissances nécessaires pour :

  • Comprendre la problématique d’industrialisation des déploiements et du provisionnement d’infrastructure
  • Connaître les distinctions entre les solutions de Cloud, la virtualisation et la containerisation
  • Connaître les produits de gestion de configuration les plus utilisés et applicables pour le Cloud et la virtualisation
  • Mettre en œuvre avec Jenkins et Docker
  • Connaître l’offre de surveillance continue et de mise à l’échelle
  • Faire ses premiers pas avec Kubernetes et ElasticStack.

À qui s’adresse cette formation ?

Public :

Cette formation est destiné aux développeurs ou opérationnels désirant obtenir un profil full-stack.
À l’issue de ce stage, les participants auront une vision claire de la démarche DevOps et une première pratique des outils Open Source incontournables de ce domaine.

 

Prérequis :

Ce cours requiert une précédente activité dans un service informatique, que ce soit au travers d’une expérience de développement, d’intégration, d’exploitation ou d’encadrement.

 

Contenu du cours DevOps

Principes du mouvement DevOps

L’argumentaire et les principes DevOps
Impacts sur les services informatiques, sur les profils recherchés
Limites de l’approche et risques lors d’une transition brutale, Équilibre entre rigueur et agilité
Intégration/Livraison et Déploiement continu
Contraintes sur l’nfrastructure DevOps : Zero-downtime, Monitoring, Scaling
Chaîne de production logicielle
Infrastructure as Code – Infrastructure immutable (Principes et Bénéfices)
Introduction à GitOps

Gestion des sources

Mission d’un SCM. Commit, Branches et Tags
Typologie des branches d’un projet. Workflows de collaboration (GitFlow)
L’exemple de Git. Revue des Principales commandes
Pull et Merge Requests
Atelier 1  :Mise en place d’un dépôt, création de branche, merge et rebase
Serveur GitLab : Déploiement, utilisation et administration

Outils de build

Caractéristiques et Apports d’un outils de build. Exemples
Artefacts et formats utilisés
Build is Test. Typologie des tests. Exemples d’outils
Analyse qualité et métriques. Standard et mise en oeuvre avec SonarQube
Atelier 2  :Exécution de commande de construction, visualisation des rapports de test

Plateforme de CI/CD

Rôles de la plateforme.
Architecture Maître/Esclaves. Provisionnement des esclaves
Notion de pipeline. Historique des builds
Pipeline As code. L’exemple de Jenkins
Atelier 3 :Mise au point d’un Jenkinsfile et couplage du serveur Jenkins au serveur GitLab (multibranch pipeline)

Virtualisation et gestion de configuration

Présentation des différents types de virtualisation, Cloud public, Cloud privé
Automatisation du provisionning
Présentation et comparaison de Vagrant, Terraform, Chef, Puppet
Automatisation des déploiements applicatifs avec Ansible
Automatiser la création des « templates » avec Packer
Mise à jour des schémas de bases de données avec Liquibase
Atelier 4 :Mise au point de configuration Vagrant et Ansible, stockage sur GitLab, pilotage du déploiement par Jenkins
Réalisation d’un code Ansible pour déployer un serveur Nexus OSS

Containerisation

Les avantages de la containerisation, l’outil Docker
Le fichier Dockerfile
Les principales commandes Docker
Architecture micro-services et Docker Compose
Containerd, CRI-O et norme CRI/OCI
Atelier 5 :Définition et construction des images Docker d’une application micro-services, pilotage via Docker Compose

Intégration continue et Containerisation

Apports de Docker dans l’intégration continue
Plugins Jenkins pour Docker
Provisionnement des machines de build
Plateformes d’intégration
Déploiement des images Docker dans les dépôts d’entreprise
Atelier 6 :Intégration de la construction d’image et du déploiement d’image dans le cycle de construction d’un projet.
Utilisation d’esclaves Docker par Jenkins
Mise en place d’une pipeline de déploiement continu avec Jenkins, NexusOSS (Registry), Docker

Mise à l’échelle, Surveillance continue et Mise à jour

Principes de Kubernetes et liens avec Docker
Concepts de nœuds, de cluster. Services techniques apportés : annuaire, répartition de charge…
Mise à jour progressive de cluster, Retour en arrière
Centralisation et gestion des logs applicatifs, l’approche d’ElasticStack (EFK)
Introduction à HELM
Atelier 7 :Scaling de l’application avec Kubernetes, Mise à jour progressive de l’application micro-service, Démonstration de la pile ElasticStackAtelier 8 :Déploiement et administration d’EFK (ElastikStack avec Fluentd). Utilisation de HELM pour le déploiement de cette solution de monitoring

Réf:

0361

Tarif:

600 Dt

Niveau:

Fondamental

Classe à distance:

Possible