loader image

Gate Training

logo-png
Virtualisation - Cloud - DevOps

Formation DevOps : démarche et outils

2 Jours

Description de la formation DevOps Outils

L’objectif principal de l’approche DevOps 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 et son provisionnement automatisé font 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, Ansible, soit en termes d’images de conteneur Docker et Kubernetes.

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, Gitlab CI ou autres…

Important, concernant cette formation :
Cette formation ne se substitue pas aux formations spécialisées sur les technologies DevOps comme Git, GitLab, Maven, Jenkins, Docker, Kubernetes, Ansible, etc.
L’objectif principal de cette formation est de comprendre la complémentarité de tous ces concepts et outils à travers des exemples concrets de livraison d’applications, de mise en production et de maintenance sous une forme « moderne » et performante. Chaque outil et sa configuration ne seront donc pas abordés en détail mais le formateur propose des ateliers pratiques corrigés que chacun pourra mettre en œuvre avec ou sans personnalisation selon ses objectifs.

Objectifs

Objectif opérationnel : 

Connaître les concepts fondateurs de DevOps, ses impacts sur l’organisation des services informatiques et les outils les plus répandus sur le marché.

Objectifs pédagogiques : 

À l’issue de cette formation 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 apports, les enjeux et les atouts de l’approche DevOps face à ces problématiques
  • Savoir mettre en œuvre une usine logicielle DevOps
  • Connaître les produits de gestion de configuration les plus utilisés et applicables pour le Cloud et la virtualisation
  • Être capable de mettre en œuvre la démarche DevOps d’un bout à l’autre du processus en incluant notamment l’offre de surveillance continue, l’anticipation des risques et la mise à l’échelle

À qui s’adresse cette formation ?

Public :

Cette formation DevOps est destinée aux développeurs ou opérationnels désirant obtenir un profil full-stack en vue de développer et fournir des systèmes complets incluant l’infrastructure serveur et les applications s’y exécutant.
Elle intéressera également les chefs de projet et acteurs de la DSI cherchant à acquérir une vision claire de la démarche DevOps ainsi qu’une première pratique des outils Open Source incontournables de ce domaine.

Prérequis :

Pour bien comprendre les apports de la démarche DevOps, 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. Sans être indispensables, des notions préalables relatives à la conteneurisation seront utiles pour assimiler plus rapidement la rationalisation de l’utilisation des ressources matérielles au sein d’une usine logicielle DevOps.

 

Contenu du cours DevOps Outils

Jour 1

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
Gestion des risques et mise en place progressive
Équilibre entre rigueur et agilité
Intégration/Livraison et Déploiement continus, Chaîne de production logicielle (Build, Deploy, Run)
Contraintes sur l’infrastructure DevOps : Zero-downtime, Monitoring, Scaling
Les alternatives : Infrastructure as Code – Orchestrateurs de conteneurs – Serverless  – Déploiement immuable (Principes et Bénéfices)

Pilotage de projet DevOps

Les acteurs d’un projet DevOps
Les méthodes agiles et leurs variantes, les besoins en terme de pilotage
Panorama des outils proposés, les solutions intégrées comme Gitlab ou Github
Souplesse des outils à travers les issues, milestones et labels

Travaux Pratiques
Mise en place projet DevOps dans Gitlab,
Collaboration autour d’issues.

Organisation de tableau de bord

Gestion des sources

Unique source de vérité, outils as Code, introduction à GitOps
Mission d’un SCM : Commit, Branches et Tags
Typologie des branches d’un projet. Workflows de collaboration, trouver le bon pattern pour votre équipe
Rappel des principales commandes Git
Pull et Merge Requests

Travaux Pratiques
Mise en place du dépôt de source dans Gitlab,

création de Merge Request à partir des issues précédentes

Les outils de build

Caractéristiques et Apports d’un outil de build. Exemples
Automatisation, Reproductibilité, Gestion des dépendances
Build is Test. Typologie des tests. Intégration build avec les outils de test
Analyse statique de code,  qualité et vulnérabilités. Mise en œuvre avec SonarQube
Formats des artefacts, les dépôts d’artefacts, le processus de releasing

Travaux Pratiques
Adaptation cycle de vie Maven,

Déploiements des artefacts dans Nexus (jar et images conteneurs)

Pipelines de CI/CD

Rôles de la plateforme CI/CD
Architecture Maître/Esclaves. Provisionnement des esclaves
Notion de pipeline. Historique des builds
Pipeline As code. L’exemple de Jenkins

Travaux Pratiques
Mise au point d’une pipeline CI scriptée (Jenkinsfile)

Jour 2

Virtualisation et gestion de configuration

Présentation des différents types de virtualisation, Cloud public, Cloud privé
Les besoins du provisionnement et IaaS,
Présentation et comparaison des outils de gestion de configuration Chef, Puppet et Ansible
Les outils d’Hashicorp Vagrant,  Packer, Terraform
Migration des schémas de bases de données avec Liquibase

Travaux Pratiques
Mise au point de configurations avec Vagrant et Ansible,

Mise au point d’un playbook Ansible et intégration dans la pipeline CI

Containerisation

Les avantages de la containerisation, Docker et ses alternatives
Le format OCI, techniques de construction d’images, intégration dans le build
Usages de docker en développement, en CI/CD en production :
– Les principales commandes Docker
– Provisionnement des machines de build, pipeline de construction d’image
– DevOps/Container et micro-services

Travaux Pratiques
Définition et construction des images Docker d’un micro-services,

intégration dans la pipeline CI

Orchestration de conteneurs : Surveillance continue et mise à l’échelle

Rappels des contraintes DevOps sur l’infrastructure de production
Rôle et apports d’un orchestrateur de conteneurs
Kubernetes architecture du cluster, services techniques apportés, API Rest, le client kubectl
Les principales ressources applicatives : Deployment, Service, Pods
Déploiement, principes du roll-out, le roll-back, le scaling
L’écosystème Kubernetes : Helm, Ingress, Service Mesh, Prometheus/Grafana
Mise en place d’un monitoring continu
L’usage de Kubernetes dans une pipeline CD

Travaux Pratiques
Déploiement, roll-out, mise à l’échelle du micro-service précédent,
Mise en place des outils de surveillance,
intégration de kubernetes dans la pipeline CD
Réf:

0124

Tarif:

600 Dt

Niveau:

Fondamental

Classe à distance:

Possible