Les ingénieurs DevOps sont des spécialistes polyvalents capables d'automatiser les processus et comprenant le fonctionnement des développeurs, des QA et des managers. Ils savent programmer, s'approprient rapidement des outils complexes et ne se laissent pas décontenancer par des tâches inconnues. Les ingénieurs DevOps sont rares — ils sont prêts à être payés entre 200 000 et 300 000 roubles, mais il y a néanmoins beaucoup d'offres d'emploi.
Dmitry Kouzmin explique en détail ce que fait un DevOps et ce qu'il est nécessaire d'étudier pour prétendre à ce poste. En bonus : des liens importants vers des livres, des vidéos, des chaînes et des communautés professionnelles.
Quelle est la fonction d'un ingénieur DevOps
Dans le contexte DevOps, il est important de ne pas confondre les termes. En effet, DevOps n'est pas un domaine d'activité spécifique, mais une philosophie professionnelle. C'est une méthodologie qui aide les développeurs, les testeurs et les administrateurs système à travailler plus rapidement et efficacement grâce à l'automatisation et à la fluidité.
Ainsi, un ingénieur DevOps est un spécialiste qui intègre cette méthodologie dans le processus de travail :
- Au stade de la planification, l'ingénieur DevOps aide à déterminer quelle architecture sera utilisée par l'application, comment elle sera mise à l'échelle, et à choisir le système d'orchestration.
- Ensuite, il configure les serveurs, met en place les vérifications automatisées et les déploiements de code, ainsi que les vérifications d'environnement.
- Puis, il automatise les tests et traite les problèmes liés au déploiement.
- Après la sortie, il est essentiel de recueillir des retours d'expérience des utilisateurs et d'apporter des améliorations. DevOps fait en sorte que les utilisateurs ne remarquent même pas ces améliorations et que le processus de mise à jour soit continu.
- Il résout également des dizaines de problèmes qui aident à organiser le système de travail des développeurs, QA, administrateurs système et managers.
Tout ce qui est écrit ci-dessus se produit dans des projets proches de l'idéal. Dans le monde réel, il faut généralement commencer dans un projet où la planification a été négligée, où l'architecture est erronée et où l'on a pensé à l'automatisation seulement lorsque tous les projets ont échoué. Résoudre tous ces problèmes et faire en sorte que tout fonctionne est la compétence clé d'un spécialiste DevOps.
Le marché de l'emploi est déroutant. Parfois, les entreprises recherchent des ingénieurs DevOps pour des postes d'ingénieurs systèmes, d'ingénieurs de construction ou d'autres rôles. Les responsabilités varient également en fonction de la taille de l'entreprise et de son secteur — parfois, on recherche une personne pour du conseil, parfois on demande d'automatiser, et parfois on exige des fonctions étendues d'administrateur système capable de programmer.
Que faut-il pour commencer dans la profession
Entrer dans la profession nécessite une préparation préalable. Il ne suffit pas de venir à des cours depuis zéro, sans rien comprendre à l'IT, et d'apprendre jusqu'au niveau junior. Un arrière-plan technique est nécessaire :
- Idéalement, il serait préférable de travailler depuis six mois ou plus comme administrateur système, spécialiste en exploitation ou en test. Ou au moins avoir une idée de la manière dont les applications démarrent, dans quel environnement elles peuvent évoluer et que faire en cas d'erreur. Si vous n'avez pas d'expérience, suivez un cours d'administration Linux, en répétant tout ce qui se passe sur votre machine personnelle.
- Comprenez comment fonctionnent les technologies réseau — apprenez à installer, configurer et gérer des réseaux locaux et globaux.
- Découvrez comment fonctionne la programmation — écrivez quelques scripts en Python ou Go, essayez de comprendre les principes de la POO (Programmation Orientée Objet), lisez sur le cycle général de développement d'un produit.
- La connaissance de l'anglais technique sera utile — il n'est pas nécessaire de discuter librement, il suffit de savoir lire de la documentation et des interfaces.
Il n'est pas nécessaire de savoir tout cela à la perfection, pour commencer à étudier DevOps, un niveau de préparation minimal suffit. Si vous avez cet arrière-plan technique, n'hésitez pas à vous inscrire à des cours.
Que doit savoir un DevOps
Un bon ingénieur DevOps est un spécialiste polyvalent avec une très grande culture générale. Pour réussir, vous devrez maîtriser plusieurs domaines de l'IT.
Développement
Le DevOps écrira un script qui aidera les développeurs à déployer du code sur le serveur. Il créera un programme qui teste à la volée la réactivité des bases de données. Il écrira une application pour contrôler la version. Enfin, il remarquera simplement un problème potentiel dans le développement qui pourrait apparaître sur le serveur.
Un bon spécialiste DevOps maîtrise plusieurs langages adaptés à l'automatisation. Il ne les connaît pas en profondeur, mais peut rapidement écrire un petit programme ou lire du code d'autrui. Si vous n'avez jamais travaillé avec le développement auparavant, commencez par Python : sa syntaxe est simple, il est facile de travailler avec les technologies cloud, et il existe de nombreuses documentations et bibliothèques.
Systèmes d'exploitation
Il est impossible de connaître toutes les fonctionnalités de chaque version de chaque système : cela nécessiterait des milliers d'heures de formation sans réel bénéfice. À la place, un bon DevOps comprend les principes généraux de fonctionnement de tout OS. Cependant, d'après les annonces d'emploi, la plupart des gens travaillent actuellement sous Linux.
Un bon ingénieur sait dans quel système il est préférable de déployer un projet, quels outils utiliser et quels problèmes potentiels peuvent survenir lors de l'implémentation ou de l'exploitation.
Clouds
Le marché des technologies cloud en moyenne de 20 à 25 % par an - cette infrastructure permet d'automatiser les opérations de test de code, l'assemblage d'applications à partir de composants et la livraison de mises à jour aux utilisateurs. Un bon DevOps comprend à la fois les solutions entièrement cloud et hybrides.
Les exigences standard pour les ingénieurs incluent généralement GCP, AWS et Azure.
Cela inclut également la maîtrise des outils CI/CD. Pour l'intégration continue, Jenkins est souvent utilisé, mais il vaut la peine d'essayer des alternatives. Il y en a beaucoup, comme Buddy, TeamCity et Gitlab CI. Il est également utile d'apprendre Terraform - c'est un outil déclaratif qui permet de créer et de configurer des infrastructures cloud à distance. Et Packer, qui est nécessaire pour créer automatiquement des images OS..
Systèmes d'orchestration et microservices
L'architecture microservices présente de nombreux avantages : stabilité, possibilité de mise à l'échelle rapide, simplification et réutilisation. Un DevOps comprend le fonctionnement des microservices et peut anticiper d'éventuels problèmes.
Il maîtrise parfaitement Docker et Kubernetes. Il comprend comment fonctionnent les conteneurs, comment construire un système de sorte à pouvoir déconnecter certaines parties sans conséquences pour le système dans son ensemble. Par exemple, il sait comment construire un cluster Kubernetes à l'aide d'Ansible.
Quoi d'autre essayer pour un futur DevOps ?
Il est possible d'énumérer sans fin les outils qui peuvent être utiles au travail d'un ingénieur DevOps. Certains travaillent sur l'orchestration de projets, d'autres passent la majeure partie de leur temps à automatiser le déploiement et les tests, tandis que d'autres améliorent l'efficacité de la gestion des configurations. Au cours du processus, il deviendra clair où se pencher et quels projets seront utiles.
Voici un autre minimum qui peut aider au départ :
- Familiarisez-vous avec le fonctionnement de Git et Github, si vous ne les avez pas encore rencontrés. Installez GitLab sur votre serveur.
- Faites connaissance avec les langages de balisage JSON et YAML.
- Installez et essayez de travailler avec des bases de données — pas seulement MySQL, mais aussi NoSQL. Essayez MongoDB.
- Comprenez comment gérer la configuration de plusieurs serveurs simultanément. Par exemple, avec Ansible.
- Configurez immédiatement le monitoring de la charge et les journaux. Essayez l'association Prometheus, Grafana, Alertmanager.
- Recherchez les meilleures solutions de déploiement pour différents langages — il suffit de s'y familiariser, vous vous familiariserez durant un projet d'entraînement ou de travail.
Pourquoi il est judicieux de commencer à étudier DevOps maintenant
Il y a une pénurie de main-d'œuvre sur le marché des ingénieurs DevOps. Cela est relativement confirmé par le nombre et la qualité des offres d'emploi :
- En Russie, plus de 2 000 postes sont constamment disponibles sur HeadHunter pour ce mot-clé.
- Et seulement 1 900 personnes ont publié leur CV.
Étant donné que le simple dépôt d'un CV ne signifie pas une recherche active d'emploi, cela signifie qu'il y a deux, voire trois offres d'emploi pour chaque spécialiste — une situation qui n'existe même pas sur le marché populaire du développement web. Ajoutez y aussi des offres d'Habra et de canaux Telegram — le manque de spécialistes est énorme.

Faites attention aux exigences salariales des candidats
DevOps est également très demandé dans le monde — si vous envisagez une relocalisation aux États-Unis ou en Europe, alors seulement sur le portail plus de 34 000 entreprises cherchent de tels spécialistes. Parmi les exigences fréquentes figurent 1 à 3 ans d'expérience, la capacité à travailler avec des « clouds » et à ne pas avoir peur des fonctions de conseil.
Sur les plateformes de freelance, les offres sont de plusieurs fois moins nombreuses — les ingénieurs DevOps sont principalement recherchés en CDI à temps plein.

Trouver un projet approprié en freelance est difficile, mais possible
Un parcours de carrière typique pour un ingénieur DevOps pourrait ressembler à ceci :
- Il travaille en tant qu'administrateur système depuis six mois à un an dans une petite entreprise informatique. Parallèlement, il apprend un langage adapté à l'automatisation.
- Il suit intensivement des cours depuis environ six mois.
- Il change de travail — vers une entreprise qui vend des solutions cloud, filiale d'une grande corporation, en développement de grands projets. En d'autres termes, il va là où il y a un besoin constant d'automatisation et d'intégration. À la position initiale, cela fait environ 100 000 roubles.
- Après quelques années de travail actif et d'apprentissage, il augmente ses revenus plusieurs fois.
- Il devient expert dans la communauté professionnelle et passe au conseil. Ou il évolue vers un architecte système ou un directeur informatique.
Le DevOps est complexe. Il faut allier les compétences de plusieurs professions. Devenir quelqu'un qui est prêt à proposer des améliorations là où d'autres spécialistes IT ne pensent même pas à autre chose. Cela paie bien, mais cela nécessite une grande quantité de connaissances.
Combien gagnent les DevOps
Le salaire médian des DevOps, selon les données du deuxième trimestre 2019, se situe entre 90 000 et 160 000 roubles. Il existe des offres moins chères, principalement entre 60 et 70 000.
Il y a constamment des offres jusqu'à 200 000, et on rencontre des postes avec des salaires allant jusqu'à 330 000 roubles.

Parmi les spécialistes DevOps, les salaires sont les plus élevés. Source :
Les ingénieurs DevOps, y compris les débutants, sont actuellement demandés dans les grandes banques, les corporations, les services cloud, les systèmes commerciaux et d'autres organisations qui se soucient de la maintenance de leurs solutions IT.
Un excellent candidat pour un poste junior avec un salaire de 60 à 90 000 serait un administrateur système débutant avec environ un an d'expérience et un diplôme approprié.

Il n'y a pas de telles statistiques, mais d'après les impressions, les personnes ayant de l'expérience en Linux sont mieux rémunérées.
Que lire et regarder pour progresser dans la profession
Pour plonger dans le monde du DevOps, essayez plusieurs sources d'information :
- [YouTube, ENG] — beaucoup de vidéos des conférences et des webinaires éducatifs.
- [YouTube, RUS] — vidéos des présentations de la conférence professionnelle DevOps en Russie.
- [livre, RUS] — l'un des livres les plus populaires sur la philosophie DevOps. Le livre contient des principes généraux de la méthodologie et explique sur quoi se concentrer en premier lors de tout projet.
- [livre, RUS] — beaucoup de théories et de principes sur la façon dont l'administration des systèmes devrait être organisée.
- [livre, ENG] — revue hebdomadaire des nouvelles dans le monde du DevOps.
- [Telegram, RUS] — nouvelles de l'industrie, annonces de conférences, liens vers de nouveaux articles et livres intéressants.
- [Telegram, RUS] — chat en russe où l'on peut poser des questions et demander de l'aide sur les configurations.
- Devops.com — grand site international avec des articles, des webinaires, des podcasts et des colonnes des plus grandes entreprises de l'industrie.
- — communauté russophone d'ingénieurs DevOps et sympathisants.
- Meilleurs livres sur le langage que vous utiliserez pour le développement.
Où apprendre le DevOps
Acquérir des connaissances structurées peut se faire avec le cours «» chez Netology. Vous apprendrez le cycle complet de la méthodologie :
- Vous apprendrez à analyser le code et à utiliser rapidement les outils de contrôle de version.
- Vous découvrirez les meilleures pratiques d'intégration continue, de test et de construction.
- Vous apprendrez à gérer les modifications dans les applications et à les automatiser.
- En pratique, vous étudierez les outils de configuration et de gestion.
- Vous apprendrez à choisir et à configurer immédiatement les services nécessaires à la surveillance.
En prime, vous recevrez un cours de programmation en Python — vous résoudrez les problèmes encore plus rapidement et facilement. Tout est fait en pratique — nous utilisons AWS, GCP ou Azure.
Cela suffit pour passer d'un ingénieur débutant ou d'un administrateur système à un DevOps recherché et faire augmenter votre tarif sur le marché du travail.
Source : habr.com
