• éligibleCPF

Formation Architecture DevOps complète et moderne par la pratique Git, GitLab, Jenkins, SonarQube, Docker, Kubernetes, Ansible, Nexus, ElasticStack, Certificats, File de message, Cloud

Durée 10 jours
Niveau Fondamental
Classe à distance
Possible

Vous pouvez suivre cette formation en direct depuis votre domicile ou votre lieu de travail. Plus d'informations sur notre solution de classe à distance...

Référence CUROPS
Éligible CPF Code RS5234
Certification Exploiter les méthodes et outils DevOps dans l’administration des infrastructures

L’évolution des architectures logicielles et des outils a été marquée par des changements nets dans la façon de développer, déployer et maintenir des applications durant tout leur cycle de vie (installation, mise à jour, évolution, etc.). Le développement logiciel est entré dans une phase d’industrialisation et les outils « DevOps » permettent aujourd’hui aux développeurs de travailler au sein d’une véritable usine logicielle.

Ce cursus Architecture DevOps complète et moderne par la pratique présente sous un angle pratique la complémentarité de ces outils et des différents services standards - utilisés en mode Cloud ou non - qui sont offerts aujourd’hui aux développeurs, qu’ils construisent une architecture simple ou plus complexe (file de messages, micro-services, etc.) en respectant des contraintes de sécurité et de scalabilité réalistes comme on en rencontre dans les projets professionnels.

L’approche pédagogique est progressive en présentant clairement en quoi chaque outil ou service proposé apporte un confort supplémentaire au développeur et vient s’intégrer dans un écosystème devenu très riche, notamment avec l’offre Cloud.

Ce cursus est composé de plusieurs modules de formation. Seules les dates du premier module apparaissent sur le site.

Objectif opérationnel :

Savoir déployer et maintenir une application en production avec les outils DevOps modernes.

Objectifs pédagogiques :

À l'issue de cette formation Architecture DevOps Complète, vous aurez acquis les connaissances et compétences nécessaires pour :

  • Comprendre la problématique d’industrialisation des déploiements et du provisionnement d’infrastructures ainsi que le vocabulaire associé (devops, build, intégration/livraison et déploiement continu, monitoring, scalabilité, …)
  • Connaître les distinctions entre les solutions de Cloud, la virtualisation et la containerisation
  • Gérer les sources d’un projet avec Git
  • Construire un logiciel (build, dépôt, nexus, …)
  • Mettre en œuvre un pipeline CI/CD avec GitLab pour simplifier la mise à jour de son application
  • Intégrer les tests dans le déploiement (Unitaire/intégration, Fonctionnels, Sécurité, Qualité)
  • Créer et gérer des conteneurs Docker
  • Virtualiser et gérer la configuration (vagrant, terraform, chef, puppet, …)
  • Orchestrer ses conteneurs avec Kubernetes
  • Intégrer GitLab et Kubernetes
  • Adapter les ressources de ses applications (scalabilité)
  • Savoir utiliser ElasticStack pour surveiller ses applications
  • Comprendre les architectures modernes (micro services, API Rest, file de messages avec Kafka, etc.) et comment elles sont mises en œuvre concrètement
  • Utiliser des solutions Cloud pour disposer d’une infrastructure sécurisée (IaaS, firewall, certificats TLS/SSL, …)
  • Déployer son application dans des conteneurs sur le Cloud au sein d’un cluster Kubernetes pour une mise à l’échelle automatique en fonction des sollicitations
  • Déployer son application en Serverless
  • Aller plus loin avec Kubernetes (installation, stockage, déploiement, cloud, monitoring, helm)

Public :

Ce cursus s'adresse à des développeurs, chefs de projet et architectes.

Prérequis :

Cette formation Architecture DevOps Complète 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. Dans le cadre du passage de la certification, les participants devront notamment justifier d'une expérience professionnelle d'un an minimum en tant que technicien systèmes et réseaux ou développeur.

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’infrastructure 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 avec Git

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 1Mise 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 outil de build
Artefacts et formats utilisés
Build is Test. Typologie des tests. Exemples d'outils
Analyse qualité et métriques. Stanard et mise en oeuvre avec SonarQube
Atelier 2Exé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 3Mise 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 4Mise 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 5Définition et construction des images Docker d’une application micro-services, pilotage via Docker Compose

Intégration continue

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 6Inté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 7Scaling de l’application avec Kubernetes, Mise à jour progressive de l’application micro-service, Démonstration de la pile ElasticStackAtelier 8Déploiement et administration d’EFK (ElastikStack avec Fluentd). Utilisation de HELM pour le déploiement de cette solution de monitoring

La solution GitLab

Fonctionnalités et versions disponibles
Architecture, modèle de données
Découverte de l’interface et des éléments de base
Configuration client, configuration des accès et des notifications
Découverte de la configuration de la plate-forme école
Atelier 9Parcours de l’interface et des projets proposés

Fonctionnalités de base de GitLab

Notion de projet et groupe dans GitLab
Gestion des droits d’accès : visibilité, rôles
Le fichier README.md  et les bonnes pratiques
Gestion des branches et des tags
Visualisation de l’historique et de l’activité
Création de projets et templates de projets
L’utilisation des badges
Atelier 10Manipulation des sources d'un projet

Workflows de collaboration

GitFlow et GitLab Flow
Gestion des issues
Configuration des notifications
Branches et tags protégés
Releases, Milestones
Le processus de merge request
Atelier 11Travail en équipe, répartition des rôles, cycle de production d’une release

Les éléments clés de l’architecture CI/CD de Gitlab

Pipelines et workflows
Les éléments clés du pipeline
Runners et typologie, apports des technologies de conteneurisation
Tags de runner

Pipelines GitLab CI/CD (GitLab Continuous Integration & Delivery)

Rôle et fonctionnement du fichier .gitlab-ci.yml
Cache et artefacts
Contrôle du flow : only/except et rules
Include et gabarits
Environnement et déploiements
Pipelines multi-projets
Utiliser les spécificités de Docker dans un pipeline
Atelier 12Définition d'un pipeline de déploiement continu

Utilisation avancée du pipeline

Artefacts, tests unitaires et exploitation des formats JUnit
Utilisation des built-in templates de Gitlab : accessibilité, performance, qualité...
Atelier 13Ajout des tests automatisés dans la pipeline

Dépôt de packages

Industrialiser la production de packages avec Gitlab : l’exemple de Python et PHP
Industrialiser la production d’images Docker avec Gitlab : problématiques et mise en place
Atelier 14Automatisation de la construction d’une image Docker, mise à disposition dans la registry et utilisation

Intégration de Gitlab et Kubernetes

Apport de l’orchestrateur de conteneurs
Les apports de Podman
Architecture de la CI/CD avec Kubernetes

Concevoir une application moderne (dite Cloud-Native)

Découplage du stockage (Base de données, clé/valeur Redis, objet S3, systeme de files de messages type RabbitMQ ou Kafka) et du runtime (processus)
Concevoir une application sans état (stateless), conforme aux 12 facteurs
Découpage en micro-service et communication en API REST
Atelier 15Utiliser un IDE en ligne (ex. gitpod)
Notre application se compose de trois parties : un frontend statique HTML/CSS/JS, un backend accessible en API et un stockage
Le code sera fourni mais bien sûr modifiable/adaptable

Mettre en place une pipeline d’intégration continue (CI)

Créer un repo Git (sur GitHub) et “pousser” le code
Créer un test unitaire
Brancher des outils d’analyse de la sécurité du code 
Configurer un workflow CI GitHub Actions pour compiler le code à chaque modification majeure (npm install, run build, test..)

Déployer manuellement sur des serveurs au sein d’un Cloud IaaS

Utiliser un Cloud Public pour créer deux VMs (App et BdD) sur un réseau dédié (VPC)
Déployer l’application manuellement sur la VM App
Configurer le FW Cloud (Network security group)
Configurer les record DNS pour publier l’application
Mettre en place un Load-Balancer avec certificat TLS/SSL (ex Let’s encrypt)

Déployer en “Infra as Code” sur des serveurs au sein d’un cloud Cloud IaaS

Utiliser Cloud-init pour automatiser la préparation des VMs
Utiliser TerraForm pour la création/mise l’échelle de l’application
Mettre à l'échelle en faisant varier le nombre de VM App
Déploiement sur une autre Région du Cloud
Utilisation d’un CDN (ex CloudFlare) pour la présentation du certificat

Construire une image Docker et déployer l'application en container

Concevoir, écrire et tester un Dockerfile pour créer une image de l’application
L’inclure dans le repo Git précédent
Configurer le build de l’image et sa publication dans un Registry
Déployer l'application sur les serveurs App sous forme de container

Déployer l'application sur Kubernetes (ou un CaaS) et mettre à l’échelle

Déployer l’image sur un CaaS (type Google Cloud Run,Azure ACI, Scaleway, Civo..)
Créer un cluster Kubernetes et y déployer l’image au sein de Pods via kubectl
Utiliser un LoadBalancer et un Ingress Controller pour la publication Web

Déployer l’application en Serverless

Déployer l’application sur un service Serverless (ex Netlify ou Cloudflare Workers) depuis son repo Git

Rappels sur Kubernetes

Présentation Kubernetes, origine du projet
Comprendre comment Kubernetes va bouleverser vos pratiques IT
La CNCF : la source pour Kubernetes
Les différents containers supportés, plateformes utilisant Kubernetes
Découverte des outils autour de Kubernetes

Architecture de Kubernetes

Le control plane : l’api Kubernetes, le scheduler, le controler manager, la BD NoSQL etc…
Les Workers Kubernetes : Kubelet, proxy et docker
La notion de ressources et versions d’api
Atelier 16Savoir utiliser la cli Kubernetes, kubectl
Gérer les ressources dans les pods

Concepts d’orchestration des conteneurs

Comprendre l’orchestration, la haute disponibilité, la mise à l’échelle des applications
Le manifest yaml
La notion de ressources : pods, services réseau, services de stockage, déploiements et réplications d’applications stateful et stateless
Gérer les sondes, les ressources dans les pods
Exposer son pod sur l’extérieur
Comprendre les applications Stateless et statefull
Atelier 17Créer nos premiers pods
Gérer les ressources dans les pods
Gérer des sondes d’activités et disponibilités des pods
Exposer le pods sur le réseau

Le déploiement d’applications

Comprendre la ressource Kubernetes « deployment »
L’importance des labels : sans labels, pas de Kubernetes
Réplication, principes de fonctionnement, mise en œuvre et gestion du cycle de vie des pods
Comprendre et savoir gérer les mises à jour des deployment, rollout, plusieurs versions en exécution…
Déploiement et partage des éléments de configuration, comprendre les configmaps et secret
Atelier 18Créer des contrôleurs de réplication de pods
Déployer des applications avec la ressource deployements
Gérer les différentes stratégies de mise à jour de vos applications
Créer et administrer des secret et configmaps

Le réseau avec Kubernetes

Comprendre la ressource « Service »
Comment communiquent les applications
Comprendre et savoir exposer nos applications aux utilisateurs
Comprendre et savoir faire communiquer nos applications entre elles
Notions de sécurité réseaux, NetworkPolicy, ...
Atelier 19Exposer des applications par ports – NodePort
Exposer des applications par IP – LoadBalancer
Créer un réseau interne pour nos applications – Cluster IP
Exposer ses applications via des url avec les ingress et gateway istio

Le stockage pour nos applications

Comprendre la gestion des volumes avec Kubernetes
Les ressources PersistenVolume et PersistenVolumeClaim...
Savoir fournir du stockage dynamique à nos déploiements
Connecter le stockage avec les pods
Atelier 20Créer une demande de stockage dynamique
Associer le stockage avec ses applications

Le déploiement d’applications avec états

Comprendre la ressource Kubernetes « Statefulset »
Comprendre le déploiement d’applications avec états
Atelier 21Étude de cas de bout en bout
Déploiement d’un cluster base de données SQL sur Kubernetes

Introduction à Helm

Les concepts de base (chart, dépôt, release)
Les apports de Helm
Rechercher des charts (helm search)
Cycle de vie d’un package avec Helm (install, upgrade, unisntall)
Obtenir des informations utiles (get values, list, etc.)
Atelier 22Recherche de charts sur des dépôts publics et nos propres dépôts
Installation des packages

Cette formation vous prépare à la certification Exploiter les méthodes et outils DevOps dans l'administration des infrastructures, comprise dans le tarif de la formation.

Cette certification repose sur deux modalités d'évaluation : un projet professionnel à partir d'un cas pratique réel ou reconstitué avec rapport de 15 à 20 pages et soutenance orale ; un cas pratique.

Projet professionnel

Contenu : À partir d'un cas d'entreprise réelle ou fictive, Le/la candidat(e) doit :

- définir un environnement de développement; sélectionner les outils et bibliothèques logicielles ; produire les fichiers de configuration et les scripts, nécessaires à l'automatisation de l'installation et au partage d'un environnement de développement,
- concevoir une procédure d'intégration continue ; définir la procédure de build et d'exécution des tests ; sélectionner l'outil d'intégration continue; produire les configurations et/ou scripts nécessaires à l'automatisation de l'étape de build et de l'étape d'exécution des tests,
- définir les configurations de l'infrastructure; choisir un gestionnaire de configuration ; définir les environnements et leurs caractéristiques techniques en réalisant les configurations et scripts nécessaires ; réaliser les tests automatisés de l'infrastructure définie; versionner les fichiers sources,
- tester l'infrastructure; assurer l'exécution des tests lors du partage des sources,
- définir une procédure de déploiement continu; choisir les outils nécessaires ; mettre en oeuvre la procédure,
- définir des métriques de monitorage de l'infrastructure et des applications; installer les outils de collecte, d'agrégation et d'analyse choisis ; Configurer les outils en fonction des métriques définies.

Correction : un jury composé de 3 personnes, dont au moins un professionnel.

Rendus attendus :
• à l'écrit: Un rapport de 15 à 20 pages comprenant :
o une introduction : contexte du projet, résumé exécutif, etc,
o une première partie sur la compréhension besoin client, la traduction technique de la réponse apportée,
o une seconde partie sur les enjeux de la mise en oeuvre du projet : justification des choix et des arbitrages réalisés, problèmes rencontrés et solutions apportés, etc,
o une troisième partie sur le bilan de projet et les améliorations envisagées,
o une conclusion: apprentissages, perspectives pour le projet professionnel envisagé, etc.

• À l'oral: une présentation orale de 50 minutes maximum découpée en 3 parties :
o Présentation du rapport (20mn),
o Présentation de la démo (10mn),
o Echange avec le jury (20mn).

Cas pratique

Contenu : à partir d'une thématique donnée, le/la candidat(e) doit :

- Concevoir un système de veille technologique ; réaliser un état de l'art des méthodologies et outils de la thématique donnée en explicitant le choix des sources; proposer une analyse de la fiabilité des sources utilisées ;

Correction : un jury composé de 3 personnes, dont au moins un professionnel.

Rendus attendus :

• à l'écrit : Un rapport de 2 à 5 pages, comprenant :
o une première partie de présentation des documents : sources, canal, date, analyse de la pertinence de la source, etc,
o une seconde partie de synthèse : les tendances du domaine, les conséquences pour la pratique professionnelle, etc.

Retrouvez cette formation Architecture DevOps Complète sur le site du CPF (MonCompteFormation).

Retrouvez le détail de cette certification sur le site de France compétences (numéro de fiche RS5234).

Date de mise à jour du programme : 21/12/2023

Dates et lieux

Du 15 au 17 mai 2024
Lieu
Distanciel
Durée
10 jrs
5990 € HT
Du 15 au 17 mai 2024
Lieu
Paris
Durée
10 jrs
5990 € HT
Du 17 au 19 juillet 2024
Lieu
Distanciel
Durée
10 jrs
5990 € HT
Du 17 au 19 juillet 2024
Lieu
Paris
Durée
10 jrs
5990 € HT
Du 11 au 13 septembre 2024
Lieu
Distanciel
Durée
10 jrs
5990 € HT
Du 11 au 13 septembre 2024
Lieu
Paris
Durée
10 jrs
5990 € HT
Du 13 au 15 novembre 2024
Lieu
Distanciel
Durée
10 jrs
5990 € HT
Du 13 au 15 novembre 2024
Lieu
Paris
Durée
10 jrs
5990 € HT


Formations Informatique
et Management
en ligne à ce jour

+
Stagiaires dans nos salles
de cours sur
l'année

%
De participants satisfaits
ou très satisfaits de nos
formations


Formateurs experts
validés par
PLB