Public cible
Vous êtes un développeur qui souhaite orienter sa carrière vers un modèle DevOps plus avancé ? Vous êtes un ingénieur Ops classique et souhaitez comprendre ce que signifie DevOps ? Ou bien vous n'êtes ni l'un ni l'autre et, après avoir passé un certain temps dans le domaine des technologies de l'information, vous souhaitez changer de travail sans savoir par où commencer ?
Si c'est le cas, continuez à lire pour découvrir comment devenir ingénieur DevOps intermédiaire en six mois ! Enfin, même si vous êtes dans le domaine du DevOps depuis des années, vous pourrez également tirer de nombreux enseignements de cette série d'articles et découvrir où en est actuellement le secteur de l'intégration et de l'automatisation et quelle direction il prend.

Qu'est-ce que c'est au juste ?
Tout d'abord, qu'est-ce que DevOps ? Vous pouvez googler des définitions et parcourir toute cette verbiage, mais sachez que la plupart des définitions ne sont qu'un ramassis de mots déguisés en une forme élaborée. Donc, voici une synthèse de toutes ces définitions : DevOps est une méthode de livraison de logiciels où la douleur et la responsabilité sont partagées entre toutes les parties concernées. Voilà tout.
D'accord, mais que signifie réellement cet acronyme ? Cela signifie que traditionnellement, les développeurs (les personnes qui créent des logiciels) étaient motivés par des incitations qui différaient considérablement de celles des Operations (les personnes qui gèrent les logiciels). Par exemple, en tant que développeur, je veux créer le plus rapidement possible le plus grand nombre de nouvelles fonctionnalités. Après tout, c'est mon travail, et c'est ce que les clients demandent ! Cependant, si je suis dans Ops, je préfère avoir le moins de nouvelles fonctionnalités possible, car chaque nouvelle fonctionnalité est un changement, et tout changement est susceptible de causer des problèmes. En conséquence, c'est de ce désalignement des incitations que DevOps est né.
DevOps cherche à réunir le développement et les opérations (intégration et automatisation) en un seul groupe. L'idée est qu'un même groupe partagera à la fois la douleur et la responsabilité (et probablement la récompense) de la création, du déploiement et de la monétisation de logiciels orientés vers le client.
Les puristes vous diront qu'il n'existe pas de métier appelé "ingénieur DevOps". «DevOps est une culture, pas un rôle», vous diront-ils. Bien sûr, techniquement, ils ont raison, mais comme c'est souvent le cas, ce terme a dépassé sa signification d'origine. Ainsi, un ingénieur DevOps est quelque chose comme un «ingénieur système 2.0». En d'autres termes, c'est quelqu'un qui comprend le cycle de vie du développement logiciel et crée des outils et des processus de développement logiciel pour résoudre des problèmes opérationnels classiques.

DevOps signifie en fin de compte créer des pipelines numériques qui prennent le code du portable d'un développeur et le transforment en revenus provenant de l'utilisation du produit final, c'est là tout le sujet. Notez que la carrière DevOps est assez bien rémunérée, et presque chaque entreprise soit «fait du DevOps», soit prétend le faire. Peu importe où se trouvent ces entreprises, les opportunités d'emploi en DevOps sont assez élevées et impliquent un emploi «amusant» et significatif pour de nombreuses années à venir.
Cependant, soyez prudent avec les entreprises qui embauchent une «équipe DevOps» ou un «département DevOps». En vérité, de telles choses ne devraient pas exister, car au final, DevOps reste une culture et une méthode de livraison de logiciels, et non une simple constitution d'une nouvelle équipe ou la création d'un département avec un nom à la mode.
Avertissement
Et maintenant, mettons de côté notre verre de «Cool-Aid» pendant une minute et réfléchissons à ceci. Avez-vous entendu le vieux dicton «il n'y a pas de jeunes ingénieurs DevOps» ? Si ce n'est pas le cas, sachez que c'est un trope populaire sur Reddit et StackOverflow. Mais que signifie-t-il ?
En termes simples, cette phrase signifie qu'il faut de nombreuses années d'expérience couplées à une compréhension approfondie des outils pour devenir réellement un praticien efficace en tant que Senior DevOps. Et, malheureusement, il n'y a pas de chemin plus court pour atteindre cet objectif. Ainsi, il ne s'agit pas d'une tentative de tromper le système — je ne pense pas qu'il soit possible de prétendre être un ingénieur DevOps senior avec seulement quelques mois d'expérience dans ce domaine. Acquérir une compréhension claire des outils et méthodologies en constante évolution nécessite des années d'expérience, et il n'y a pas d'échappatoire à cela. Cependant, il existe un menu presque consensuel (tendance, si vous voulez) d'outils et de concepts utilisés par la plupart des entreprises, et c'est de cela dont il s'agit.
Encore une fois, les outils sont différents des compétences, donc, tant que vous étudiez les outils, assurez-vous de ne pas négliger vos compétences (sondages, création de réseaux, communication écrite, dépannage, etc.). L'essentiel est de ne pas perdre de vue ce que nous voulons trouver – un moyen de créer un pipeline numérique entièrement automatisé, qui prend des idées et les transforme en extraits de code générant des revenus. C'est la seule et la plus importante conclusion de tout cet article !
Assez de bavardages, quand vais-je pouvoir commencer ?
Voici la feuille de route "Connaissances fondamentales DevOps". Une fois que vous aurez maîtrisé tout ce qui y est représenté, vous pourrez vous appeler avec fierté et honnêteté ingénieur DevOps ! Ou ingénieur cloud, si le terme “DevOps” ne vous convient pas.

Cette carte reflète ma vision (et probablement celle de la plupart des personnes travaillant dans cet espace) de ce qu'un ingénieur DevOps compétent doit savoir. Cela dit, ce n'est qu'un avis, et bien sûr, il y aura des désaccords. C'est tout à fait normal ! Nous ne cherchons pas la perfection ici, nous visons une base solide sur laquelle il est réellement possible de construire.
Vous devez suivre ce chemin progressivement, couche par couche. Vous devez commencer (et continuer !) par les fondamentaux, en vous familiarisant d'abord avec les éléments en bleu — Linux, Python et AWS. Puis, si le temps le permet ou si la demande sur le marché du travail le justifie, intéressez-vous aux éléments en violet — Golang et Google Cloud.
Honnêtement, la couche de base est quelque chose que vous devrez étudier sans relâche. Le système d'exploitation Linux est très complexe, et sa maîtrise prend des années. Python nécessite une pratique continue pour rester à jour. AWS évolue si rapidement que ce que vous savez aujourd'hui ne sera qu'une fraction de votre portefeuille de connaissances dans un an. Une fois que vous maîtrisez les bases, passez à un ensemble de compétences pratiques. Notez qu'il existe six colonnes bleues (Configuration, Version, Packaging, Déploiement, Lancement, Surveillance), une pour chaque mois d'apprentissage.

Vous avez certainement remarqué l'absence d'une étape importante dans notre pipeline de six mois – le test. Je ne l'ai pas inclus dans la feuille de route car la rédaction du module, l'intégration et les tests d'acceptation sont des tâches difficiles qui incombent traditionnellement aux développeurs. De plus, l'absence de l'étape « test » s'explique par le fait que l'objectif de cette feuille de route est de maîtriser le plus rapidement possible les compétences et les outils de base. Le manque d'expérience en test, selon l'auteur, ne représente qu'un obstacle mineur à l'utilisation correcte de DevOps.
De plus, rappelez-vous que nous n'étudions pas ici un tas de jargon technique sans lien, mais nous visons à comprendre les outils qui, ensemble, créent une histoire cohérente. Cette histoire représente une automatisation end-to-end du processus – un pipeline numérique qui déplace les bits comme une chaîne de montage. Vous ne souhaitez pas étudier une multitude d'outils et vous arrêter constamment ! L'arsenal DevOps évolue rapidement, tandis que les concepts changent beaucoup moins souvent. C'est pourquoi vous devez vous efforcer d'utiliser les outils comme des proxies d'apprentissage pour des concepts de niveau supérieur.
D'accord, creusons un peu plus profond !
Connaissances fondamentales
Sous l'escalier supérieur portant l'inscription Foundation, vous voyez les compétences que chaque ingénieur DevOps doit maîtriser. Ces compétences incluent une solide maîtrise des trois « piliers » de l'industrie : le système d'exploitation, le langage de programmation et le cloud public. Ces éléments ne sont pas des choses que l'on peut rapidement assimiler pour passer à autre chose. Ces compétences doivent être constamment perfectionnées et taillées afin de rester à la pointe de l'industrie et de mettre à jour votre environnement professionnel. Passons en revue chacun d'eux.
Linux est l'endroit où tout fonctionne. Pouvez-vous être un praticien DevOps exceptionnel tout en restant complètement dans l'écosystème Microsoft ? Bien sûr ! Il n'existe pas de loi obligeant à n'utiliser que Linux. Cependant, gardez à l'esprit que, bien que toutes les choses liées à Linux puissent être faites sous Windows, cela se fait de manière beaucoup plus difficile et avec moins de fonctionnalités. Actuellement, on peut raisonnablement supposer qu'il est impossible de devenir un véritable professionnel DevOps sans connaître Linux, donc Linux est quelque chose que vous devez étudier et maîtriser.
Honnêtement, la meilleure façon de le faire est simplement d'installer Linux (Fedora ou Ubuntu) chez vous et de l'utiliser autant que possible. Bien sûr, vous allez casser pas mal de choses, vous bloquer dans des workflows, vous devrez tout réparer, mais vous apprendrez Linux !

À propos, en Amérique du Nord, les options RedHat sont plus répandues, donc il est logique de commencer par Fedora ou CentOS. Si vous vous demandez s'il faut choisir l'édition KDE ou Gnome, optez pour KDE. C'est ce que Linus Torvalds lui-même utilise.
Python est aujourd'hui le langage back-end dominant. Il est facile à prendre en main et largement utilisé. Python est très répandu dans le domaine de l'intelligence artificielle et de l'apprentissage automatique, donc si un jour vous souhaitez passer à un autre secteur d'activité en plein essor, vous serez complètement prêt.

Amazon Web Services : encore une fois, il est impossible de devenir un professionnel DevOps expérimenté sans une solide compréhension du fonctionnement du cloud public. Et si vous souhaitez en apprendre le plus possible, explorez Amazon Web Services. C'est le leader dans ce domaine de services, offrant l'ensemble d'outils de travail le plus riche.
Peut-on commencer plutôt par Google Cloud ou Azure ? Bien sûr ! Mais en gardant à l'esprit la dernière crise financière, il convient de noter qu'AWS est l'option la plus sûre, du moins en 2018, car il permet de s'inscrire gratuitement et de commencer à explorer les possibilités des services cloud. De plus, la console AWS offre à l'utilisateur un menu simple et intuitif. La bonne nouvelle est que vous n'avez pas besoin de connaître toutes les technologies d'Amazon pour cela.

Commencez par les éléments suivants : VPC, EC2, IAM, S3, CloudWatch, ELB (Elastic Load Balancing sous EC2) et Security Group. Ces éléments sont suffisants pour démarrer et chaque entreprise moderne dans le cloud les utilise activement. Le site d'apprentissage dédié à AWS est un bon point de départ.
Je vous recommande de consacrer 20 à 30 minutes par jour à l'apprentissage et à la pratique du langage Python, du système d'exploitation Linux et du service cloud AWS, en plus des autres choses que vous devrez apprendre. Dans l'ensemble, je considère qu'une heure par jour, cinq fois par semaine, est suffisante pour comprendre les processus en cours dans le secteur DevOps en six mois ou même moins. Il y a au total six composants principaux, chacun correspondant à un mois d'apprentissage. C'est tout ce dont vous aurez besoin pour acquérir des connaissances de base.
Dans les prochains articles, nous examinerons le niveau suivant de complexité : comment automatiser complètement la configuration, la version, le packaging, le déploiement, le démarrage et la surveillance des logiciels.
La suite arrivera très bientôt…
Un peu de publicité 🙂
Merci de rester avec nous. Aimez-vous nos articles ? Voulez-vous voir plus de contenu intéressant ? Soutenez-nous en passants une commande ou en nous recommandant à des amis, , un équivalent unique des serveurs d'entrée de gamme, conçu pour vous : (options disponibles avec RAID1 et RAID10, jusqu'à 24 cœurs et jusqu'à 40 Go DDR4).
Dell R730xd deux fois moins cher dans le data center Equinix Tier IV à Amsterdam ? Uniquement chez nous aux Pays-Bas ! Dell R420 — 2x E5-2430 2.2GHz 6C 128Go DDR3 2x960Go SSD 1Gbps 100To — à partir de 99 $ ! Lisez sur
Source : habr.com
