Il s'agit d'un guide étape par étape sur la façon de devenir ingénieur DevOps, avec des liens vers des ressources d'apprentissage pertinentes.
Si vous souhaitez en savoir plus sur DevOps, assurez-vous de vous abonner à ma newsletter .
Si vous trouvez ce référentiel utile, pensez à me soutenir sur Patreon :
Le but de cette feuille de route est de vous donner une idée du paysage. La feuille de route vous guidera si vous ne savez pas quoi apprendre ensuite, plutôt que de vous encourager à choisir ce qui est à la mode et à la mode. Vous devez mieux comprendre pourquoi un outil serait mieux adapté à certains cas que l’autre et vous rappeler que le battage médiatique et la mode ne signifient pas toujours le mieux adapté au travail.
Si vous aimez ou utilisez ce projet pour apprendre ou démarrer votre solution, donnez-lui une étoile. Merci!
Téléchargez la version PDF.
Ressources d'apprentissage pour les ingénieurs DevOps (pour la plupart gratuites)
1. GIT
2. Apprenez un langage de programmation
3. Apprenez Linux et les scripts
4. Apprenez les réseaux et la sécurité
5. Apprenez la gestion des serveurs
6. Apprendre les conteneurs
7. Apprenez l'orchestration des conteneurs
8. Apprenez l'infrastructure sous forme de code
9. Apprenez le CI/CD
10. Apprenez la surveillance et l'observabilité
11. Découvrez un fournisseur Cloud
12. Apprendre les pratiques de génie logiciel
Ressources supplémentaires
Outils
Livres
Toutes vos ressources (fichiers) seront conservées dans un référentiel GIT. Ces fichiers sont du code d'application mais aussi de l'infrastructure en tant que code .
Git est un outil gratuit utilisé pour la gestion du code source. Git est habitué à suivre les modifications du code source, permettant à plusieurs développeurs de travailler ensemble sur un développement non linéaire.
Les deux plateformes Git les plus populaires sont GitLab et GitHub .
Ici, vous devez apprendre les commandes Git, comme git clone, branch, merge et comment collaborer sur un projet avec des pull request.
Ressources:
Livre Pro Git GRATUIT
Apprenez Git par Atlassian GRATUITEMENT
Apprenez GRATUITEMENT le branchement Git
Apprenez Git et GitHub sur CodeAcademy GRATUITEMENT
Explorateur de commandes Git GRATUIT
Immersion Git GRATUITE
Une référence visuelle Git GRATUITE
En tant qu'ingénieur, il est recommandé de connaître au moins un langage de programmation que vous pouvez utiliser pour écrire des scripts d'automatisation .
Certains langages de programmation populaires pour DevOps sont Python, Go et JavaScript .
Python est un langage multi-paradigmes. Étant un langage interprété, le code est exécuté dès son écriture et la syntaxe permet d'écrire du code de différentes manières. Python est fréquemment recommandé comme premier langage que les nouveaux codeurs devraient apprendre, en raison de l'accent mis sur la lisibilité, la cohérence et la facilité d'utilisation.
Ici, vous devez apprendre les concepts de base des langages de programmation, tels que la syntaxe, if/else, les boucles, les structures de données, etc.
Ressources:
Automatisez les choses ennuyeuses avec le livre Python GRATUIT
Cours intensif Python GRATUIT
Le didacticiel JavaScript moderne GRATUIT
Cours accéléré JavaScript pour les débutants GRATUIT
JavaScript éloquent, 3e édition, livre GRATUIT de Marjin Haverbeke
Suivez l'exemple GRATUITEMENT
Un système d'exploitation sert de pont entre l'utilisateur d'un ordinateur et son matériel. Sa fonction est d'offrir un cadre dans lequel un utilisateur peut exécuter des programmes de manière pratique et efficace.
Comme la plupart des serveurs utilisent le système d'exploitation Linux , vous devez vous familiariser avec Linux et sa CLI.
Une distribution facile à démarrer est Ubuntu .
De plus, vous devez connaître les scripts pour automatiser les tâches de développement et d’exploitation.
Ici, vous pouvez apprendre des langages spécifiques au système d'exploitation, tels que Bash ou Powershell , ou indépendants, comme Python ou Go.
Ressources:
Système d'exploitation - Aperçu GRATUIT
Tutoriel de script Shell GRATUIT
Tutoriel Powershell pour les débutants : Apprenez GRATUITEMENT les scripts Powershell
Manuel de référence Bash GRATUIT
Guide ultime : Démarrer avec Ubuntu GRATUITEMENT
Manuel FreeBSD GRATUIT
Manuel de commande Linux GRATUIT
Un protocole réseau est un ensemble établi de règles qui déterminent la manière dont les données sont transmises entre différents appareils du même réseau. Essentiellement, il permet aux appareils connectés de communiquer entre eux, quelles que soient les différences dans leurs processus internes, leur structure ou leur conception.
Ici, vous devrez savoir comment fonctionne un réseau, comment configurer les pare-feu , comprendre le fonctionnement du DNS , le modèle OSI , les adresses IP, les ports, etc.
Ressources:
Modèle OSI expliqué GRATUITEMENT
Réseaux informatiques : une approche descendante livre Vidéo Contenu vidéo
Cours Pluralsight sur les principes fondamentaux de TCP/IP et de mise en réseau pour les professionnels de l'informatique
DevSecOps : Maîtriser la sécurisation du CI/CD | Cours Udemy sur les pipelines DevOps
Sécurité pratique dans DevOps : assurez une sécurité, un déploiement et une livraison continus avec DevSecOps Book
Sécuriser DevOps : la sécurité dans le cloud
La gestion des serveurs comprend toute la surveillance et la maintenance de l'infrastructure nécessaires au fonctionnement fiable et à des niveaux de performances optimaux des serveurs. Les principaux objectifs d’une stratégie de gestion de serveur efficace sont les suivants :
Minimisez les ralentissements et les temps d’arrêt des serveurs tout en maximisant la fiabilité.
Créez des environnements de serveur sécurisés.
Faites évoluer les serveurs et les opérations associées pour répondre aux besoins de l’organisation au fil du temps.
Ici, vous devrez savoir ce que sont les proxys directs et inverses , les serveurs de mise en cache et comment faire fonctionner les serveurs Web , tels que Nginx, Apache ou IIS.
Ressources:
Qu'est-ce qu'un proxy inverse ? GRATUIT
Serveur de cache GRATUIT
Proxy inversé et proxy direct : les différences GRATUIT
Qu’est-ce que l’équilibrage de charge ? GRATUIT
Qu'est-ce qu'un pare-feu ? GRATUIT
Le manuel NGINX GRATUIT
Apprenez le serveur Apache GRATUITEMENT
Apprenez IIS GRATUITEMENT
Un conteneur est une unité logicielle standard qui regroupe le code et toutes ses dépendances, de sorte que l'application s'exécute rapidement et de manière fiable d'un environnement informatique à un autre.
Docker est de loin la technologie de conteneurs la plus populaire aujourd'hui. Une image de conteneur Docker est un package logiciel léger, autonome et exécutable qui comprend tout ce dont vous avez besoin pour exécuter une application : code, runtime, outils système, bibliothèques système et paramètres. Ici, vous devez savoir comment exécuter des conteneurs, Docker Networking, des volumes, des Dockerfiles et exécuter plusieurs conteneurs avec Docker-Compose.
Ressources:
Que sont les conteneurs ? GRATUIT
Conteneurs d'apprentissage de bas en haut GRATUITEMENT
Tutoriel Docker pour les débutants par TechWorld avec Nana GRATUIT
Docker Mastery : avec Kubernetes + Swarm à partir d'un cours Docker Captain Udemy
Qu’est-ce que le maillage de services ? GRATUIT
DevOps avec Kubernetes GRATUIT
L'orchestration de conteneurs automatise le déploiement, la gestion, la mise à l'échelle et la mise en réseau des conteneurs.
L'orchestration de conteneurs peut être utilisée dans n'importe quel environnement dans lequel vous utilisez des conteneurs. Il peut vous aider à déployer la même application dans différents environnements sans avoir besoin de la reconcevoir. Et les microservices dans les conteneurs facilitent l’orchestration des services, notamment le stockage, la mise en réseau et la sécurité.
Ici, vous devez apprendre comment fonctionne Kubernetes et comment administrer le cluster Kubernetes et y déployer des applications.
Ressources:
Cours intensif Kubernetes pour débutants absolus par TechWorld avec Nana GRATUIT
Introduction : Comment Kubernetes est né, qu'est-ce que c'est et pourquoi vous devriez vous en soucier
Administrateur Kubernetes certifié (CKA) avec tests pratiques Cours Udemy
Apprendre Kubernetes - Débutant à avancé par cours KodeKloud
Comprendre quand utiliser GRATUITEMENT les services de cluster, les entrées ou les passerelles API
Comprendre quels problèmes Service Mesh résout (utiliser une abstraction smi-spec.io GRATUIT
Apprenez à automatiser TLS et DNS GRATUITEMENT
Livre Kubernetes opérationnel
Parcours d'apprentissage Kubernetes - 50 jours de zéro à héros de Microsoft GRATUIT
Parfois appelé IaC , il fait référence aux techniques et outils utilisés pour définir l'infrastructure, généralement dans un langage de balisage comme YAML ou JSON. L'infrastructure en tant que code permet aux ingénieurs d'automatiser la configuration et le démontage de l'environnement. Accélère et réduit les risques de déploiement en provisionnant des environnements de copie dorée à la demande.
Terraform est l'outil de provisionnement d'infrastructure le plus populaire, mais il en existe d'autres tels que Ansible, Chef, Puppet et Vagrant.
Ici, vous devez savoir comment effectuer le provisionnement de l'infrastructure et la gestion de la configuration .
Ressources:
GUI, CLI, API : découvrez GRATUITEMENT les termes de base de l'infrastructure en tant que code
Tutoriels officiels Terraform GRATUITS
Un guide complet de Terraform GRATUIT
Automatisez la documentation Terraform comme un pro ! GRATUIT
Écrire des modules Terraform réutilisables GRATUITEMENT
Qu’est-ce qu’Istio ? GRATUIT
Aperçu des marionnettes GRATUIT
Cours de Marionnettes GRATUITS et PAYANTS
Premiers pas avec Ansible GRATUITEMENT
Apprendre les bases d'Ansible
Démarrez avec Red Hat Ansible GRATUITEMENT et PAYANT
Cours Maîtriser Ansible Udemy
Apprenez Chef GRATUITEMENT
L'intégration continue/déploiement continu (CI/CD) est une méthode permettant de fournir fréquemment des applications aux clients en introduisant l'automatisation dans les étapes de développement des applications. CI/CD est une solution aux problèmes que l’intégration de nouveau code peut causer aux équipes de développement et d’exploitation.
CI/CD introduit une automatisation et une surveillance continues tout au long du cycle de vie des applications, depuis les phases d'intégration et de test jusqu'à la livraison et le déploiement. Ces pratiques connectées sont souvent appelées « pipeline CI/CD » et sont soutenues par les équipes de développement et d'exploitation.
Il existe différentes étapes d'un pipeline CI/CD, telles que : créer, tester et déployer , mais il pourrait y avoir beaucoup plus d'activités incluses :
Vérifier le code du contrôle de version et le construire
Avoir des portes échelonnées pour différents types d'approbations
Gestion des variables d'environnement
Redémarrage des services
Exécution de tests
Et plus encore...
Ici, vous devez apprendre à configurer le serveur CI/CD, à intégrer automatiquement le code et les pipelines de déclenchement, ainsi qu'à créer et à gérer des outils de gestion de packages.
Certains outils CI/CD populaires sont Jenkins, TeamCity, CircleCI, Bamboo, GitLab et Azure DevOps.
Ressources:
Intégration continue GRATUITE
Pipeline CI/CD : une introduction en douceur GRATUITE
Apprenez GitLab avec des tutoriels GRATUITS
Commencez avec GitLab CI/CD GRATUITEMENT
Jenkins, From Zero To Hero : Devenez un DevOps Jenkins Master Cours Udemy
Apprenez GRATUITEMENT les actions GitHub
Syntaxe de workflow pour les actions GitHub GRATUITES
Apprenez GRATUITEMENT Azure DevOps
Aide-mémoire GitLab GRATUIT
La surveillance implique la supervision de l'ensemble du processus de développement depuis la planification, le développement, l'intégration et les tests, le déploiement et les opérations. Cela implique une vue complète et en temps réel de l’état des applications, des services et de l’infrastructure dans l’environnement de production.
Ceci est particulièrement important lorsque notre logiciel est en production et nous devons suivre toutes sortes de problèmes dans notre infrastructure et nos applications.
Les deux outils les plus populaires sont Prometheus et Grafana .
Ici, vous devez savoir comment mettre en place la surveillance et visualiser les données.
Ressources:
Qu’est-ce que l’observabilité ? Guide complet du débutant GRATUIT
Le comment, le pourquoi et le quoi de la surveillance des microservices GRATUITEMENT
Surveillance DevOps GRATUITE
Application GRATUITE de techniques de surveillance de base ou avancées
Apprenez Prometheus GRATUITEMENT
Apprenez le Grafana GRATUITEMENT
Pile Elastic GRATUITE
Les fournisseurs de cloud fournissent une couche d'API pour abstraire l'infrastructure et la provisionner en fonction des limites de sécurité et de facturation. Le cloud fonctionne sur des serveurs dans des centres de données, mais les abstractions donnent intelligemment l'impression d'interagir avec une seule « plateforme » ou une grande application. La capacité de provisionner, configurer et sécuriser rapidement les ressources auprès des fournisseurs de cloud a été la clé à la fois de l’énorme succès et de la complexité du DevOps moderne.
Les fournisseurs de cloud les plus populaires sur le marché sont AWS et Azure , ainsi que Google Cloud .
Ici, vous devez savoir gérer les utilisateurs et l'administration, les réseaux, les serveurs virtuels, etc.
Ressources:
Examen AZ-900 : Les principes fondamentaux de Microsoft Azure GRATUITEMENT
Cours de certification Microsoft Azure Fundamentals (AZ-900) GRATUIT
AZ-900 | Cours complet Microsoft Azure Fundamentals, tests pratiques gratuits, site Web et guides d'étude GRATUITS
Praticien cloud certifié AWS ultime - 2022 Udemy
Développeur AWS par parcours d'apprentissage A Cloud Guru
En tant qu'ingénieur DevOps, vous travaillerez probablement en équipe avec d'autres développeurs dans un monde Agile, comme Scrum . Il est donc très important de connaître les différentes parties de SDLC , ainsi que les outils qui y sont utilisés.
De plus, il serait bon de savoir comment fonctionnent les tests d'automatisation , car vous devrez les configurer de manière CI/CD.
Ici, vous devez savoir ce qu'est Scrum , toutes les phases du SDLC , comment fonctionnent les tests d'automatisation , etc.
Ressources:
Qu’est-ce que Scrum ? GRATUIT
Façons d’en savoir plus sur Scrum GRATUITEMENT
Phases et modèles du cycle de vie du développement logiciel (SDLC) GRATUITS
Le guide du débutant sur Agile dans Jira : description du cours GRATUIT
Apprenez SAFe GRATUITEMENT
Apprenez les tests d'automatisation GRATUITEMENT
GitLab - Guide du débutant sur DevOps GRATUIT
Modèles SDLC courants GRATUITS
Suivi du travail :** Asana, Monday, Jira, Trello, Azure Boards.
Contrôle du code source : Git, Github, GitLab, BitBucket, Azure DevOps.
CI/CD : Jenkins, Team City, Github Actions, Travis CI, Bamboo, Circle CI, Azure Pipelines, Octopus Deploy, Harness, CloudBees CodeShip.
Analyse du code source : SonarQube, Veracode.
Gestion des artefacts : Artifactory, Docker Container Register, npm, Yarn, NuGet.
Gestion de configuration : Terraform, Ansible, Puppet, Chef.
Orchestration de conteneurs : Docker, Kubernetes, Red Hat OpenShift.
Suivi : Prometheus, Grafana, Splunk, Dynatrace, Kibana.
Le manuel DevOps : Comment créer une agilité, une fiabilité et une sécurité de classe mondiale dans les organisations technologiques , Gene Kim, Patrick Debois, John Willis, Jez Humble
Le livre présente le développement de produits, l'assurance qualité, les opérations informatiques et la sécurité des informations. C'est une excellente lecture pour ceux qui débutent dans DevOps ou qui souhaitent en savoir plus sur la façon dont les différents composants de DevOps fonctionnent ensemble.
Accélérer : la science des logiciels Lean et DevOps : créer et faire évoluer des organisations technologiques hautement performantes , Nicole Forsgren, Jez Humble, Gene Kim
Ce livre présente à la fois les résultats et la science derrière la mesure des performances de livraison de logiciels. Pour promouvoir DevOps auprès de la haute direction, c'est un outil fantastique.
Livraison continue : versions logicielles fiables grâce à l'automatisation de la construction, des tests et du déploiement , Jez Humble, David Farley
Il introduit la gestion automatisée de l’architecture et la migration des données. De nombreux concepts de pipeline de déploiement devenus depuis devenus standards ont été établis dans ce livre. La configuration en tant que code, l'automatisation de la construction et du déploiement ainsi que les techniques de test efficaces sont abordées dans quelques détails techniques. C'est un livre principalement technique.
Topologies d'équipe : organiser les équipes commerciales et technologiques pour un flux rapide , Matthew Skelton, Manuel Pais
Le livre explique comment organiser les équipes de manière à permettre un flux rapide de valeur pour les clients. Il fournit un ensemble de quatre topologies d'équipe fondamentales : les équipes alignées sur les flux, les équipes habilitantes, les équipes sous-systèmes compliqués et les équipes de plate-forme, qui peuvent être combinées et adaptées pour s'adapter à différents contextes organisationnels.
DevOps efficace : créer une culture de collaboration, d'affinité et d'outils à grande échelle , Jennifer Davis, Ryn Daniels
Le livre propose des moyens efficaces pour améliorer la coordination des équipes. Il montre comment briser les silos d'informations, surveiller les relations et réparer les malentendus qui surviennent entre et au sein des équipes de votre organisation.
Le projet Phoenix : un roman sur l'informatique, le DevOps et la réussite de votre entreprise , Gene Kim, Kevin Behr, George Spafford
C'est un roman classique sur l'efficacité et la communication. Le travail informatique est comme le travail dans une usine de fabrication, et un système doit être mis en place pour rationaliser le flux de travail. L'un des meilleurs livres qui existent.
Ingénierie de la fiabilité des sites , Betsy Beyer, Chris Jones, Jennifer Petoff, Niall Richard Murphy
Ce livre explique l'ensemble du cycle de vie du développement, du déploiement et de la surveillance de Google, ainsi que la manière de gérer les plus grands systèmes logiciels au monde (également appelés SRE). Quiconque se considère plutôt du côté « Ops » du DevOps ou qui souhaite savoir comment renforcer les liens entre les différentes équipes Dev et Ops devrait lire SRE.
On peut même présenter cette feuille de route sous forme de burger :).
Si vous pensez que la feuille de route peut être améliorée, veuillez ouvrir un PR avec toutes les mises à jour et soumettre tout problème. De plus, je continuerai à améliorer cela, vous souhaiterez donc peut-être mettre en vedette ce référentiel pour le revisiter.
Ouvrir une pull request avec des améliorations
Discutez des idées dans les problèmes
Faites passer le mot
Dr Milan Milanović - CTO chez 3MD.
Romano Roth - Chef du DevOps chez Zühlke.