Cet article est une adaptation de The 2019 DevOps RoadMap - Your Guide to become DevOps Engineer écrit à l'origine par Javin Paul

Le concept DevOps est vraiment d'actualité et la plupart de mes amis, collègues et développeurs seniors que je connais travaillent dur pour devenir un ingénieur DevOps et se projettent comme champions DevOps dans leur organisation. Bien que je comprenne vraiment les avantages du DevOps, qui est directement lié à l'amélioration du développement et du déploiement de logiciels, je peux dire de mon expérience limitée que ce n'est pas une tâche facile. Il est très difficile de choisir le bon chemin en pensant à tant d'outils et de pratiques. Bon nombre de mes connaissances me demandent aussi comment devenir ingénieur DevOps, quels outils dois-je apprendre ? quelles pratiques dois-je suivre ? pourquoi Docker et Kubernetes ? Est-ce que l'automatisation de l'infrastructure fait partie de DevOps ? devrais-je apprendre Chef, Puppet, ou Ansible ?

Aujourd'hui je vais partager avec vous une ressource impressionnante qui vous aidera à devenir l'ingénieur DevOps que vous avez toujours voulu être, la roadmap 2019 du DevOps.

J'étais en train de naviguer sur internet quand je suis tombé sur cette excellente page GitHub de Kamranahmedse, qui montre quelques roadmaps utiles pour devenir un développeur front-end, un développeur back-end, un développeur web complet et enfin un ingénieur DevOps, le dernier mais non le moindre.

Cette roadmap est géniale dans tous les sens du terme car elle indique non seulement le rôle d'un ingénieur DevOps, mais aussi quel outil vous devez apprendre pour couvrir ce domaine. En plus de cela, c'est très attrayant visuellement avec de jolies couleurs, donc vous pouvez simplement prendre une impression et la coller dans votre bureau pour une référence plus facile.

Afin de compléter la roadmap, j'ai également partagé quelques cours en ligne utiles pour que vous puissiez apprendre et améliorer l'outil ou le domaine que vous voulez.

La roadmap 2019 du DevOps pour les développeurs

Quoi qu'il en soit, voici la roadmap 2019 du DevOps dont je parle :

Maintenant, passons en revue la roadmap étape par étape et découvrons comment nous pouvons apprendre les compétences essentielles requises pour devenir un gourou des DevOps en 2019 :

Apprendre un langage de programmation

Évidemment et je suppose que vous connaissez certainement l'un des trois principaux langages de programmation, à savoir Java, Python, ou JavaScript. Si ce n'est pas le cas, ne vous inquiétez pas, vous pouvez jeter un coup d'oeil aux cours ci-dessous pour apprendre votre choix de language, sachant que je vous suggère fortement d'apprendre au moins un de ces trois principaux langages de programmation générale.

Si vous voulez apprendre Java, alors The Complete Java MasterClass est un excellent cours, qui est aussi récemment mis à jour pour Java 10.

Si vous voulez apprendre Python, alors The Complete Python BootCamp est ma ressource préférée, qui vous enseignera Python 3, la version la plus populaire de Python.

Et, si vous voulez apprendre JavaScript alors vous pouvez commencer pas le cours de Mosh Hamdani JavaScript Basics for Beginners sur Udemy.

Si vous avez besoin de plus de choix, vous pouvez consulter ces listes de cours gratuit pour Java, Python et Javascript.

Comprendre différents concepts de système d'exploitation

C'est là qu'intervient la partie Ops, auparavant c'était uniquement les gars du support et les administrateurs système qui étaient responsables de connaître le système d'exploitation et le matériel, mais avec DevOps, maintenant les développeurs ont aussi besoin de les connaître. Vous devez au moins connaître la gestion des processus, les threads et la simultanéité, les sockets, la gestion des E/S, la virtualisation, le stockage en mémoire et les systèmes de fichiers, comme suggéré sur la roadmap.

Comme la plupart d'entre nous travaillons sous Linux, je vous suggère de suivre le cours Linux Administration BootCamp sur Udemy pour apprendre et mieux comprendre le système d'exploitation Linux.

Si vous avez besoin de plus de choix, vous pouvez également consulter cette liste de cours gratuits sur Linux.

Apprendre à vivre avec le terminal

Pour un gars du DevOps, il est important d'avoir une bonne maîtrise de la ligne de commande, surtout s'il travaille sous Linux. Connaître un shell Linux comme Bash, ou Ksh et des outils comme find, grep, awk, sed, lsof, et des commandes réseau comme nslookup et netstat est obligatoire.

Si vous ressentez le besoin de vous rafraîchir la mémoire sur ces commandes et outils, vous devriez suivre le cours Linux Command Line Interface (CLI) Fundamentals sur Pluralsight.

C'est un bon rappel pour les utilisateurs débutants et expérimentés de Linux. Vous aurez besoin d'un abonnement Pluralsight pour accéder au cours qui coûte environ 29 $ par mois ou 299 $ par an, mais cela en vaut la peine.

Pluralsight est comme le Netflix du développeur, il a plus de 6000 cours de haute qualité sur les dernières technologies, ce qui signifie que vous pouvez apprendre n'importe quoi et n'importe où.

D'ailleurs, si vous avez besoin de plus de choix et que vous voulez devenir maître sur les scripts shell, vous pouvez également jeter un oeil à cette liste des meilleurs cours pour apprendre le shell scripting.

Réseaux et sécurité

Fini le temps de l'isolement, dans le monde d'aujourd'hui, tout est lié à tout ce qui rend les réseaux et la sécurité très importants. Pour devenir un bon ingénieur DevOps, vous devez connaître les concepts de base des réseaux et de la sécurité tels que DNS, modèle OSI, HTTP, HTTPS, FTP, SSL, TLS etc.

Qu'est-ce que c'est et comment l'installer

En tant que champion DevOps, vous devriez savoir ce qui est configuré dans votre machine et comment vous pouvez le configurer, ensyute seulement vous pouvez penser à l'automatiser. En général, un ingénieur DevOps devrait savoir comment configurer un serveur Web comme IIS, Apache et Tomcat. Il doit également connaître les notions de serveur de mise en cache, de load balancer, de serveur proxy inversé, de pare-feu, etc.

Apprendre l'infrastructure en tant que code

C'est probablement la chose la plus importante pour un ingénieur DevOps et c'est aussi un domaine très vaste. En tant qu'ingénieur DevOps, vous devez connaître les conteneurs comme Docker et Kubernetes, les outils de gestion de configuration comme Ansible, Chef, Salt, et Puppet, les infrastructures comme Terraform et CloudFormation. Voici quelques-uns des cours que je recommande pour apprendre ces outils.

Si vous voulez apprendre Docker alors Docker Mastery: The Complete Toolset sur Udemy est le meilleur cours pour commencer. Il fournit une couverture complète de tous les outils dont un ingénieur DevOps aura besoin.

Si vous voulez apprendre Kubernetes, je vous suggère de suivre le cours Learn DevOps : The Complete Kubernetes. Cela vous apprendra comment construire, déployer et gérer Kubernetes.

Et, si vous voulez apprendre Chef, il n'y a pas de meilleur cours que Chef Fundamentals: A Recipe for Automating Infrastructure sur Udemy. Probablement le meilleur cours pour apprendre Chef en ce moment.

Si vous avez besoin de plus de choix sur Docker, vous pouvez explorer cette liste de 10 cours essentiels pour ingénieur DevOps.

Apprendre davantage sur les outils d'intégration et de livraison continues (CI et CD)

C'est une autre chose très importante pour les gourous et les champions de DevOps, c'est-à-dire mettre en place un pipeline pour une intégration et une livraison continues. Il y a beaucoup d'outils dans le domaine CI/CD, par exemple Jenkins, Gitlab CI, TeamCity, Drone, etc.

Mais, je recommande fortement d'apprendre au moins Jenkins, car c'est l'outil CI/CD le plus largement utilisé et probablement le plus mature sur le marché. Si vous ne connaissez pas Jenkins, ce cours est le meilleur pour commencer.

Si vous voulez apprendre Jenkins, alors il n'y a pas de meilleur cours que le classique Master Jenkins CI For DevOps and Developers sur Udemy.

Par ailleurs, si vous avez besoin de plus de choix, vous pouvez également consulter cette liste de 6 free Jenkins and Maven courses pour les développeurs Java.

Apprendre à surveiller les applications et l'infrastructure

Outre l'installation et le déploiement, la surveillance est un autre aspect important de DevOps et c'est pourquoi il est important pour un ingénieur de DevOps d'en savoir plus sur l'infrastructure et la surveillance des applications.

Il y a beaucoup d'outils dans cet espace, par exemple Nagios, Icing, Datadog, Zabbix, Monit, AppDynanic, New Relic etc. Vous pouvez choisir certains d'entre eux en fonction de celui qui est utilisé dans votre entreprise comme AppDynamic et Nagios.

En savoir plus sur les fournisseurs de cloud computing

Le Cloud est la prochaine grande chose et tôt ou tard, vous devrez déplacer votre application vers le Cloud, d'où l'importance pour un ingénieur DevOps de connaître au moins certains des fournisseurs de Cloud populaires et leurs bases.

Alors qu'AWS est clairement le leader dans le Cloud, il n'est pas seul, Google Cloud et Azure rattrapent lentement leur retard et nous avons d'autres acteurs comme Heroku, Cloud Foundry, et Digital Ocean.

Pour commencer, je vous suggère fortement de rejoindre le cours AWS Serverless APIs & Apps - A Complete Introduction sur Udemy, qui est tout simplement le meilleur.

Par ailleurs, si vous avez besoin de plus de choix, vous pouvez également consulter cette liste de cours gratuits AWS pour les développeurs et les gars DevOps.

Conclusion

Merci d'avoir lu cet article jusqu'à présent... Bonne chance dans votre voyage DevOps ! Ce ne sera certainement pas facile, mais en suivant cette roadmap et ce guide, vous vous rapprochez un peu plus de DevOps pour devenir ingénieur.

N'hésitez pas à vous abonner à la newsletter mensuelle Les Veilleurs de nuit pour recevoir chaque mois l'actualité des développeurs !