Introduction au métier de DevOps
Explorez le potentiel du DevOps
Les débouchés (les postes que vous pourrez occuper après cette formation)
Après avoir suivi une formation de DevOps, vous pourriez accéder à divers postes passionnants dans le domaine de l’informatique et de la technologie. Certains des postes courants auxquels vous pourriez prétendre incluent le DevOps, l’administrateur système, l’architecte cloud, le développeur logiciel, ou encore le chef de projet informatique. Ces postes offrent des opportunités de carrière stimulantes et variées dans le domaine de l’ingénierie logicielle et des opérations informatiques.
Pourquoi devenir DevOps ?
En 2024, le métier de DevOps présente de nombreux avantages. Avec l’évolution rapide de la technologie et la demande croissante pour des solutions logicielles fiables et efficaces, les entreprises cherchent de plus en plus à intégrer des pratiques DevOps pour améliorer leur agilité et leur efficacité opérationnelle.
En tant que DevOps, vous serez en mesure de jouer un rôle clé dans la mise en oeuvre de ces pratiques, ce qui vous permettra de rester pertinent sur le marché du travail et de bénéficier de nombreuses opportunités de carrière passionnantes.
De plus, vous serez en mesure de travailler sur des projets innovants et de collaborer avec des équipes multidisciplinaires, ce qui vous permettra d’acquérir de nouvelles compétences et de progresser dans votre carrière.
L'opérateur de formation
Le groupe YNOV CAMPUS figure dans le TOP 10 des groupes d’enseignement supérieur français. C’est le leader spécialisé dans l’enseignement des filières digitales avec près de 10 000 étudiants. Le groupe YNOV est présent en France à travers dix campus à Aix-en-Provence, Bordeaux, Lyon, Nantes, Paris, Montpellier, Rennes, Lille, Nice et Toulouse. Pour le Maroc nous avons un campus à Casablanca.
Compétences : ce que vous allez apprendre
- Découvrir les fondements du DevOps et comment l’adopter dans une organisation.
- Implémenter le concept DevOps en adoptant une culture de collaboration et en mettant en place un CI/CD pipeline via des outils modernes et dédiées d’automatisation.
- Automatiser le déploiement, la montée en charge et la mise en oeuvre de conteneurs d’application sur des clusters de serveurs.
- Mettre en place et superviser une infrastructure on-promise et dans le cloud.
- Explorer les pratiques et les outils d’automatisation de l’infrastructure.
- Sécuriser une infrastructure digitale ainsi que le processus de livraison logiciel.
Programme de la formation
Partie I : Mise à niveau
Bloc 1 : Système et Réseaux
– Systèmes d’Exploitation
▪Bases des systèmes d’exploitation
▪Systèmes Linux, Unix et Windows
▪Administration
▪Commandes
▪Scripts Shell et PowerShell
-Réseaux et Administration
▪Fonctionnement et caractéristiques d’un réseau informatique
▪Les équipements réseaux
▪Les modèles OSI et TCP/IP
▪Commutation et Routage
▪Applications, protocoles et services
▪Administration de serveurs (Nginx, Tomcat, IIS) via SSH
Bloc 2 : Programmation et Bases de Données
-Bases de la Programmation en langage Go
▪Algorithmique : variables, structures de contrôle, structures de données, etc.
▪Programmation orientée objet
▪Mise en place d’un serveur web
▪Manipulation des API
-Bases de Données
▪Description des différents modèles de SGBD et de leurs fonctionnalités
▪BD relationnelles :
•Installation et configuration d’un serveur de base de données PostgreSQL
•Exploitation d’une base de données avec les opérations CRUD
•Création et manipulation de sauvegardes de BDD
•Utilisation d’une interface d’administration de BDD
▪BD non relationnelles :
– Manipulation des documents d’une BD
– Installation et administration d’une BD MongoDB
– Manipulation des BDD clé-valeur utilisées en cache (Redis)
Bloc 3 : Virtualisation, Cloud Computing et Sécurité
– Virtualisation et Cloud Computing
▪Virtualisation des machines
▪Concepts clés du Cloud Computing
▪Les services fondamentaux des principaux fournisseurs cloud public : Calcul, stockage, bases de données, réseaux, sécurité (IAM), supervision, facturation, etc.
▪Principes et caractéristiques d’une architecture structurée dans le cloud
-Bases de la Sécurité
▪Vulnérabilités : d’infrastructure, du système d’exploitation et des applications
▪Différents types d’attaques
▪Outils de reconnaissance passive et active
▪Exploitation des vulnérabilités
▪Sensibilisation aux attaques de type Social Engineering
Bloc 4 : Gestion de Projet Agile
-Systèmes de Contrôle de Version
▪Versioning du code avec Git
▪Création et gestion d’un dépôt distant GitLab
▪Utilisation des branches avec Git pour travailler en équipe
-Gestion de projet
▪Méthodologie Agile : SCRUM
▪Organisation de sprints
▪Définition des priorités des tâches
▪Animation et organisation des points de suivi
▪Outil de ticketing et de gestion de projet JIRA
Partie II : Pipeline de Mise en Production
-Aperçu et Introduction au DevOps
▪Cycle de Développement Logiciel (SDLC)
▪Problématique à résoudre
▪L’approche DevOps comme concept :
•Les aspects de collaboration intra et inter équipes (volet : People)
•L’automatisation du cycle de développement logiciel (volet : Process)
•Aperçu sur les outils, services et plateformes DevOps (volet : Tools)
▪Le concept vs le rôle et ses responsabilités
-Intégration Continue (CI) avec GitLab
▪Configuration de GitLab pour l’exécution de pipeline d’intégration continue
▪Automatisation de l’utilisation des outils de build et gestion des packages
▪Automatisation des tests unitaires et tests de régression
▪Mise en place d’un système de test E2E automatisé
▪Analyse automatique de la qualité et de la sécurité du code avec SonarQube
-Livraison/Déploiement Continu(e) (CD) avec GitLab
▪Extension d’un CI pipeline pour déployer une application dans un environnement de Test
▪Automatisation des tests des montées en charge
▪Automatisation du déploiement en production
-Mise en place d’un pipeline CI/CD complet avec Jenkins
Partie III : Infrastructure
Bloc 1 : Conteneurs
-Conteneurisation des Applications avec Docker
▪Les bases de la conteneurisation : besoin et concept
▪Architecture générale et composants de Docker
▪La création et la gestion des conteneurs avec Docker
▪Persistance et Gestion des données de l’application (Stockage)
▪Communication entre conteneurs (Networking)
▪Exécution instantanée de plusieurs conteneurs avec Docker Compose
-Orchestration des Conteneurs avec Kubernetes
▪Orchestration des conteneurs : besoin et concept
▪Architecture générale et composants de Kubernetes
▪Création et administration d’un cluster Kubernetes (avec kubeadm ou kubspray)
▪Objets Kubernetes : pod, service, ingress, namespace, volume, configmap, secret
▪Contrôleurs Kubernetes : deployment, replicaset, statefulset, daemonset, job et cronjob
▪Les fichiers de configuration YAML (syntaxe et bonnes pratiques)
▪Technologies connexes : écosystème des outils complémentaires (kubectl, Helm, etc.)
Bloc 2 : Automatisation de l’Infrastructure
-Infrastructure as Code I : Mise à disposition des Infrastructures avec Terraform
▪Infrastructure en tant que code : besoin et concept
▪Mise à disposition d’une infrastructure cloud : besoin et concept
▪Concepts de base et composants de Terraform : provider, resources, data sources, commandes, state, output values, input variables, environment variables, etc.
▪Terraform Provisioners
▪Terraform Modules & Workspaces
▪Remote State Management
▪Mise à disposition d’une infrastructure cloud (+ astuces et bonnes pratiques)
-Infrastructure as Code II : Gestion des Configurations avec Ansible
▪Gestion des Configurations : besoin et concept
▪Comparaison des outils de gestion des configurations : Puppet / Chef / Ansible
▪Fichiers de Configuration d’Ansible et concepts de base
▪Ansible Inventory
▪Ansible Variables
▪Ansible Playbooks
▪Ansible Modules
▪Ansible Handlers, Roles and Collections
▪Introduction au Templating (templates Jinja2 pour des configurations dynamiques)
-GitOps avec ArgoCD
▪GitOps : besoin et concept
▪CD pipeline : les modèles Push et Pull
▪Mise en place d’ArgoCD pour le déploiement automatisé des applications
▪Phases, Options et Politiques de synchronisation
▪Stratégies de suivi (tracking)
Bloc 3 : Observabilité et Monitoring
-Monitoring avec Prometheus
▪Observabilité et Monitoring : comprendre le concept, l’intérêt, les types et les techniques
▪Prometheus comme outil de supervision : Installation et configuration sur Kubernetes
▪Cas d’utilisation spécifiques pour l’utilisation de Prometheus Monitoring
▪Architecture de Prometheus : Serveur Prometheus (Retrieval, Storage, http server), Cibles, Métriques, Gestionnaire d’alertes (Alert Manager), Prometheus web UI.
▪Fonctionnement de Prometheus
▪Stockage de données Prometheus et langage de requêtes PromQL
▪Superviser des conteneurs Docker ou des clusters Kubernetes avec Prometheus
▪Paramétrer des alertes automatiques avec Prometheus Alertmanager
▪Visualisation des résultats avec Grafana
-Tracing avec Jaeger
▪Le Tracing : le concept, l’intérêt et les techniques
▪Utilisation de Jaeger pour tracer les requêtes entre services
-Logging avec les piles ELK / EFK
▪Le logging : le concept, l’intérêt et les techniques
▪Les pile ELK (Elasticsearch / Logstach / Kibana) et EFK (Elasticsearch / Fluentd / Kibana)
▪Utilisation pour le logging de l’infrastructure et des applications déployées sur Kubernetes
Partie IV : Sécurité (DevSecOps)
-Introduction au DevSecOps
▪Problèmes et limitations de la sécurité classique
▪Le DevSecOps comme concept :
•Les pratiques pour l’implémenter : Shift-left Security, Automatisation, Sensibilisation, etc.
•Le concept vs le rôle et ses responsabilités
-Sécurité dans le cycle de développement logiciel
▪Introduction aux scans de vulnérabilités dans un cycle de développement logiciel (SDLC)
▪Avant le déclenchement du pipeline CI/CD
•Pre-commit Hooks
•Gestion des Secrets avec Vault
▪Scans intégrés au niveau du pipeline CI/CD
•Static Application Security Testing (SAST)
•Software Composition Analysis (SCA)
•Sécurité des Conteneurs :
o Bonnes pratiques de création des images Docker
o Scans des images au niveau du pipeline de livraison
o Scans des images au niveau des registres Docker
•Dynamic Application Security Testing (DAST)
•Visualisation des résultats des scans dans un « Vulnerability Management Tool »
•Actions de remédiation
•Actions de détection et analyse des false positives
-Introduction à d’autres aspects de la sécurité
▪Sécurité dans le Cloud
▪Sécurité d’un cluster Kubernetes
▪Sécurité de l’Infra as Code
▪Gouvernance et Conformité (Compliance as Code)
Soft Skills
• Développement personnel
• Rédaction de CV
• Techniques de travail en groupe
• Technique d’entretien d’embauche
• Optimisation du profil sur Linkedin
• Débats en anglais
Formation modulaire orienté pratique : Les participants se verront attribuer un projet sur lequel ils travailleront tout au long de la formation, aboutissant à une soutenance finale pour mettre en lumière les compétences acquises.
Séminaire d’intégration, cours interactif, encadrement personnalisé.
- Prérequis : minimum Bac + 3
- Critères de sélection : Sélection sur dossier / test écrit (QCM)/ test oral.
- Modalités, étapes de candidature : Inscription sur le site JOBINTECH
FAQ'S
Quelle est la différence entre SQL et PL/SQL ?
SQL (Structured Query Language) est un langage de programmation utilisé pour communiquer avec les bases de données relationnelles. Il est principalement utilisé pour interroger, insérer, mettre à jour et supprimer des données dans une base de données. PL/SQL (Procedural Language/Structured Query Language), quant à lui, est une extension du SQL qui permet d’écrire des blocs de code procéduraux, des procédures stockées, des fonctions et des déclencheurs dans une base de données Oracle.
Quels sont les sujets généralement couverts dans une formation SQL ?
Une formation SQL couvre généralement les bases du langage SQL, y compris les requêtes SELECT pour interroger les données, les clauses WHERE pour filtrer les résultats, les jointures pour combiner des tables, les opérations d’insertion, de mise à jour et de suppression de données, les fonctions d’agrégation, les sous-requêtes, et la gestion des tables et des vues.
Quels sont les sujets généralement couverts dans une formation PL/SQL ?
Une formation PL/SQL couvre généralement les bases du langage PL/SQL, y compris la structure et la syntaxe des blocs de code PL/SQL, les variables et les types de données, les boucles et les conditions, les procédures stockées, les fonctions, les curseurs, les packages PL/SQL, les déclencheurs (triggers), la gestion des exceptions et les interactions avec SQL.
Quelles sont les compétences nécessaires pour apprendre SQL et PL/SQL ?
Pour apprendre SQL, il est utile d’avoir une compréhension des bases de données relationnelles et une connaissance générale de la logique de requêtage. Pour apprendre PL/SQL, une compréhension de base de SQL est nécessaire, ainsi qu’une familiarité avec les concepts de programmation procédurale tels que les variables, les boucles et les conditions.
Quelles sont les perspectives de carrière après avoir acquis des compétences en SQL et PL/SQL ?
Les compétences en SQL et PL/SQL sont très demandées sur le marché du travail. Après avoir acquis ces compétences, vous pouvez envisager des carrières en tant que développeur de bases de données, analyste de données, administrateur de bases de données, consultant SQL, ou développeur d’applications qui utilisent des bases de données relationnelles.