Il n'est pas étonnant que les spécialistes DevOps soient aujourd'hui très demandés. En effet, ces derniers sont chargés de l'intégration et de la livraison continues du code, mais aussi de la surveillance et de la gestion des serveurs, des réseaux et autres composants d'infrastructure du réseau des entreprises.
L'approche DevOps optimise le fonctionnement des logiciels d'entreprise. Par conséquent, lorsque vous recrutez un spécialiste DevOps, vous recherchez sans doute une personne capable de faire fonctionner vos logiciels de manière fluide, voire une personne qui peut apporter des améliorations.
Le secteur DevOps (Development Operations, opérations de développement) est en plein essor depuis quelques années. Si les ordinateurs ont commencé à envahir les grandes entreprises dans les années 1970, DevOps a réellement émergé dans les années 2000. À présent, les entreprises embauchent des spécialistes DevOps pour gérer le développement et le déploiement de leurs logiciels.
Pourquoi les métiers DevOps sont-ils si convoités ? Il suffit de repenser au buzz créé autour de cette nouvelle approche au cours des dernières années. Face à la déferlante digitale, les entreprises réalisent peu à peu qu'elles ont besoin d'une solide culture DevOps pour prospérer. Le savoir-faire technologique et la bonne connaissance des activités qu'un ingénieur DevOps peut apporter rendent votre entreprise bien plus flexible que ses concurrentes. Pour rester compétitif, le recrutement d'un ingénieur DevOps devrait être votre priorité n° 1.
La popularité de DevOps est en grande partie due à son impact sur les performances des entreprises. Imaginez qu'une entreprise ait besoin d'accélérer la mise en œuvre de certaines applications dans ses systèmes en raison de la demande. Elle risque de perdre des clients – ou au minimum de vivre une période plus difficile que ses concurrentes. L'ingénieur DevOps se tient au courant de l'évolution rapide des logiciels et met ainsi tout en œuvre pour que les besoins des clients soient satisfaits.
Les entreprises choisissent de plus en plus les techniques DevOps pour affronter le développement exponentiel des applications et des systèmes, et s'adapter à un paysage très changeant. Qu'en est-il pour les ingénieurs DevOps ? Le marché du travail est-il vraiment en plein essor ? Ou devrait-on plutôt parler de battage médiatique sans grand fondement ? Que devez-vous rechercher chez un candidat DevOps ? Quelles compétences doit-il posséder ? Nous allons répondre à ces quelques questions et à bien d'autres.
Nous vous expliquerons aussi comment mener un entretien approfondi afin de recruter le meilleur candidat possible. Mais commençons par nous intéresser de plus près à ce rôle si important pour votre entreprise.
Mieux comprendre DevOps
Le terme « DevOps » existe depuis plusieurs années, mais il reste encore flou pour bon nombre de personnes. DevOps est souvent associé à un poste particulier, comme celui d'ingénieur. En vérité, il désigne la gestion des technologies de l'information [induisant une collaboration entre les métiers des affaires et ceux de l'informatique](induisant une collaboration entre les métiers des affaires et ceux de l'informatique) qui s'occupent des aspects technologiques impliqués.
Le rôle d'ingénieur DevOps apparaît de plus en plus fréquemment dans les offres d'emploi. Imaginons que vous ne connaissiez pas ce terme. L'ingénieur DevOps (spécialisé ou non dans le développement) est une personne qui maîtrise à la fois le développement logiciel et les opérations informatiques. En d'autres termes, il sait coder et déployer du code, créer des tests unitaires et gérer des systèmes de production. Il joue avec le feu (au sens figuré) et éteint les incendies (au sens propre).
Avez-vous besoin d'un développeur ou d'un ingénieur DevOps ? Quelle est la différence ?
En fait, vous avez sans doute besoin des deux.
Les développeurs logiciels créent des applications qui s'exécutent sur des serveurs, tandis que les ingénieurs DevOps gèrent ces serveurs. Les deux rôles sont interdépendants, mais aussi très différents. Le développeur travaille sur le code et crée des logiciels, tandis que l'ingénieur DevOps travaille sur les serveurs, les outils de gestion de la configuration et d'autres infrastructures.
Lors du recrutement, vous ressentirez le besoin de bien comprendre ce que vous apportera un ingénieur DevOps. Vous voudrez savoir en quoi ce rôle diffère de celui de vos développeurs habituels et pourquoi il est si important de privilégier cette voie.
Comme nous le verrons, il existe plusieurs postes dans l'univers DevOps. Le fait de comprendre ce que ces métiers englobent, mais aussi en quoi ils diffèrent des autres rôles, vous aidera à identifier le poste le plus approprié.
Le marché du travail pour les ingénieurs DevOps
Les ingénieurs DevOps sont très sollicités, car leur expertise peut révolutionner les entreprises. Ils occupent aujourd'hui un poste clé dans le secteur informatique, et cela ne fait que commencer. Selon gminsights, le marché DevOps a dépassé les 7 milliards de dollars en 2021, et ses gains augmenteront de plus de 20 % d'ici à 2028. En outre, le nombre de postes DevOps devrait augmenter de plus de 20 % par an entre 2020 et 2026.
Beaucoup d'entreprises se rendent compte de l'impact de DevOps. Qu'il s'agisse de travailler avec des développeurs ou des équipes opérationnelles, les entreprises ont besoin d'une personne capable de créer une passerelle entre les deux mondes et de s'assurer que tout se déroule bien.
Dans le secteur DevOps, le marché du travail est aujourd'hui extrêmement compétitif, et ce n'est pas près de s'arrêter. Bien au contraire… Le personnel représente le budget le plus élevé d'une entreprise. Si vos moyens financiers sont limités, il peut être tentant d'embaucher un ingénieur DevOps moins cher. Mais en fin de compte, recruter la mauvaise personne risque de vous coûter votre entreprise. Il faut du temps pour former de nouvelles personnes, et encore plus de temps pour former un employé non technique au poste d'ingénieur DevOps. C'est pourquoi il est essentiel de choisir la bonne personne dès le départ.
Les entreprises qui embauchent des ingénieurs DevOps sont très diverses :
- sociétés de logiciels ;
- fournisseurs SaaS ;
- cabinets de conseil en gestion ;
- fournisseurs de stockage cloud ;
entreprises qui utilisent DevOps.
DevOps est aujourd'hui utilisé par de nombreuses entreprises dans le secteur technologique. En voici quelques-unes :
- Amazon
- HP
- Netflix
- Walmart
- Etsy
- Target
- Meta
- Adobe
- Sony Pictures Entertainment
La réponse est simple : parce qu'ils leur facilitent la vie.
Les ingénieurs DevOps sont souvent responsables de l'automatisation des processus humains. Ils imaginent des moyens d'automatiser des tâches répétitives sur le back-end afin que les autres employés n'aient plus à s'en soucier. Ainsi, les développeurs sont libres de se concentrer sur leurs principaux objectifs (création et amélioration des fonctionnalités) au lieu de passer du temps à configurer des serveurs ou à veiller au bon déroulement des sauvegardes.
Credit: OnGraph.com : pourquoi les investissements DevOps en valent la peine (article en anglais)
Si vous envisagez de recruter un ingénieur DevOps, vous possédez sans doute déjà un service ou une application web. Vous souhaitez multiplier les nouvelles fonctionnalités tout en évitant au maximum les temps d'arrêt. Vous voulez faciliter la tâche des développeurs consistant à déployer rapidement du code, et celle des administrateurs systèmes consistant à remédier rapidement à tout problème au travers d'une mise à jour. C'est là que les ingénieurs DevOps entrent en scène : ils assurent le relais entre les deux services et favorisent une culture de la confiance entre les équipes en coordonnant leurs efforts afin de ne pas gaspiller du temps ou de l'argent qui auraient aidé à prévenir ou corriger d'éventuels problèmes.
Anmol Nagpal, expert DevOps, nous a expliqué l'importance de recruter des spécialistes DevOps.
« Les spécialistes DevOps jouent un rôle clé en s'occupant du cloud et de l'infrastructure. Aucune entreprise ne peut prospérer sans une infrastructure stable et évolutive, et donc des applications stables. Même lorsque vous avez le meilleur code au monde, si votre architecture manque d'efficacité, les applications ne seront pas stables, ce qui peut entraîner des temps d'arrêt, et donc une perte d'argent et d'activité. »
Anmol Nagpal
Plusieurs candidats peuvent présenter des compétences DevOps. Mais en tant que responsable du recrutement, il est de votre intérêt de savoir faire la distinction entre un bon candidat et un excellent candidat. Anmol Nagpal nous dresse le portrait du candidat idéal. Selon lui, un spécialiste DevOps doit :
-
être perfectionniste ;
-
savoir faire des mises à jour pertinentes sur les outils DevOps les plus récents ;
-
suivre les meilleures pratiques de sécurité à chaque étape de conception ;
-
avoir l'esprit d'équipe, mener à bien ses missions en collaboration avec les autres équipes et soutenir ces dernières ;
-
être prêt à relever de nouveaux challenges ;
-
être capable de travailler de manière autonome et sans supervision.
Les différents postes DevOps
Dans ce secteur, on trouve généralement les ingénieurs systèmes qui conçoivent des systèmes logiciels (comme des bases de données). Ils travaillent en étroite coopération avec les développeurs et d'autres membres du personnel technique afin de s'assurer que ces derniers aient tout ce dont ils ont besoin pour que leurs missions se déroulent sans accroc.
On trouve aussi souvent les ingénieurs infrastructures. Ces professionnels conçoivent et gèrent des réseaux et des systèmes de stockage d'entreprise afin de faciliter la gestion simultanée de gros volumes de données. Ils se servent des technologies actuelles pour construire, maintenir, déployer et coordonner l'infrastructure informatique.
Il existe d'autres types de postes :
- Site Reliability Engineer (SRE)
Ses tâches principales consistent à tester et évaluer les produits lors de leur fabrication. Il doit aussi analyser les données et gérer les risques de fiabilité des actifs tout en s'efforçant de réduire ces risques.
- Responsable de la configuration
Les responsables de la configuration sont chargés de la coordination et de la direction des configurations de tous types de produits. Généralement, ils supervisent le cycle de production logicielle ou matérielle, comme le développement d'une application ou d'un serveur.
Un ingénieur DevOps est un généraliste de l'informatique qui possède des connaissances étendues sur le développement et les opérations, notamment la programmation, la gestion des infrastructures, l'administration des systèmes et les chaînes de compilation DevOps.
- Ingénieur cloud (Azure/AWS/GCP)
Un ingénieur cloud est un professionnel de l'informatique qui conçoit et maintient des infrastructures cloud. Il est responsable de toutes les tâches techniques en lien avec le cloud computing, y compris la conception, la planification, la gestion, la maintenance et le support.
Un architecte de solutions conçoit la vision technique globale d'une solution spécifique à un problème rencontré par l'entreprise. Il comble principalement le fossé entre un problème de l'entreprise et la solution technologique, en décrivant toutes les phases et les exigences requises pour mettre en œuvre cette solution.
Un Release Engineer gère le développement et la fabrication des produits logiciels. Un Release Engineering Manager supervise les builds et les versions logicielles. Il est surtout responsable de la planification et du contrôle du processus de développement et de livraison des logiciels.
Le DevSecOps intègre de manière transparente la sécurité des applications et des infrastructures avec les outils et les processus agile et DevOps.
Quelles sont les responsabilités d'un ingénieur DevOps ?
Pour simplifier les choses, tenons-nous-en à un seul rôle, celui d'ingénieur DevOps.
Les ingénieurs DevOps travaillent avec d'autres professionnels de l'informatique, comme les développeurs, les testeurs et les ingénieurs assurance qualité. Ils aident les équipes à mettre en œuvre les fonctionnalités qui leur sont nécessaires en se servant d'outils tels que Puppet, Chef ou Ansible dans le but d'automatiser des tâches répétitives.
Leurs principaux rôles et responsabilités sont les suivants :
-
mise en œuvre de développements, de tests, d'outils d'automatisation et d'infrastructures informatiques ;
-
conception de fonctionnalités dans les applications ;
-
définition et configuration de phases de développement, de test, de lancement, de mise à jour et de support des processus pour les opérations DevOps ;
-
dépannage et correction de bugs ;
-
suivi des processus pendant tout le cycle de vie pour garantir leur adhésion, et mise à jour ou création de stratégies dans l'optique d'améliorer les processus et de limiter les pertes ;
-
conception de processus automatisés dans la mesure du possible ;
-
identification et déploiement de mesures de cybersécurité ;
-
gestion des incidents et analyse des causes profondes ;
-
communication fréquente avec les membres d'équipe et les clients ;
-
sélection et déploiement des outils CI/CD appropriés ;
-
gestion de la création de rapports périodiques.
DevOps est un secteur en pleine expansion. Savoir bien recruter peut être la clé de votre réussite.
Vous aurez envie de recruter une personne qui sait concevoir et livrer des produits de A à Z, et pas seulement gérer des infrastructures.
Il peut être difficile de trouver une personne expérimentée qui s'intégrera bien dans vos équipes. Avec un peu de préparation, vous pouvez vous démarquer des entreprises qui souhaitent elles aussi recruter le candidat qui vous a tapé dans l'œil, accroître vos chances d'intéresser cette personne et l'embaucher au final.
Voici quelques questions à vous poser lors d'un recrutement :
- De quoi votre entreprise a-t-elle besoin ?
Vous faut-il une personne capable de gérer des serveurs ou de gérer le développement de logiciels ? Certaines compétences spécifiques vous seraient-elles utiles ?
- Quel doit être le bagage du candidat ?
A-t-il déjà une expérience professionnelle dans ce domaine ? Quel est son parcours de formation ? Son travail dans d'autres entreprises a-t-il été couronné de succès ? Son CV démontre-t-il sa capacité à bien travailler en équipe ? De telles questions vous aideront à évaluer si un candidat potentiel a ce qu'il faut pour réussir dans votre entreprise.
- Comment cette personne interagit-elle avec les autres ?
Certaines personnes sont de nature extravertie et se font vite des amis, tandis que d'autres sont plus réservées. Il est important de recruter quelqu'un qui s'intègre bien auprès de vos équipes.
- Que peut-on lire entre les lignes de ce CV ?
A-t-il une bonne compréhension de DevOps ? Il doit bien cerner DevOps et son lien avec votre entreprise. Dans le cas contraire ou en l'absence d'expérience significative, il ne constitue sans doute pas le choix idéal pour ce poste ou tout autre poste au sein de votre entreprise.
- Est-il capable de résoudre les problèmes qui se présentent à lui ?
Pour ce faire, il doit communiquer efficacement et savoir poser des questions sur différents concepts, processus, outils, etc., susceptibles d'apparaître dans le cadre de son travail.
- Sait-il bien communiquer ?
Il doit être capable d'expliquer son travail en détail, de sorte que les autres le comprennent, par exemple au travers de présentations orales ou de documentations écrites reposant sur ce qu'il a appris lors de ses missions. Il doit aussi être en mesure de répondre aux clients qui se pose des questions sur certains fonctionnements ou dysfonctionnements.
Quel parcours scolaire ou professionnel devriez-vous rechercher chez un ingénieur DevOps ?
Les ingénieurs DevOps ont généralement un diplôme d'études supérieures en informatique ou dans un domaine connexe, associé à une expérience dans le secteur. Pour travailler dans le secteur DevOps, il faut être titulaire d'une licence en informatique ou d'un diplôme connexe en rapport avec le développement logiciel.
Vous souhaiterez recruter un ingénieur DevOps qui maîtrise plusieurs langages et plusieurs frameworks. Il est essentiel d'avoir une base de connaissances étendue. Cependant, un ingénieur DevOps très compétent dans un langage de programmation spécifique peut aussi apporter beaucoup à votre entreprise. La hausse de la popularité de DevOps (qui combine développement et opérations informatiques) et les impressionnantes données statistiques ont généré des opportunités d'emploi pour une large palette de postes, mais le poste d'ingénieur DevOps sera souvent défini par les résultats escomptés.
Tout repose sur les besoins de votre entreprise à l'instant T. Si vous en êtes aux prémices, il est préférable de recruter une personne expérimentée dans la programmation et les processus opérationnels. De nombreuses entreprises peuvent viser l'embauche d'une personne capable d'effectuer un travail plus fonctionnel, comme la mise en œuvre d'outils de suivi ou d'automatisation, avant d'embaucher un ingénieur logiciel à temps plein. Cela permet de faire grandir les équipes tout en dépensant moins d'argent au départ pour l'embauche des développeurs.
Maîtrise de plusieurs langages et plusieurs frameworks
Comme vous le savez déjà, les ingénieurs DevOps représentent un type hybride d'ingénieur logiciel qui doit avoir une solide compréhension des principes d'ingénierie logicielle, mais aussi des processus opérationnels et de l'infrastructure des applications web. Cela nécessite une bonne expérience dans plusieurs domaines :
Il est essentiel de rechercher un ingénieur DevOps qui sache utiliser Java et, dans l'idéal, Apache Tomcat. Les autres facteurs les plus importants sont SQL et MySQL, mais vous devriez aussi rechercher la maîtrise d'outils DevOps tels que Puppet, Chef et Ansible.
Anmol Nagpal suggère d'autres compétences fondamentales pour les spécialistes DevOps :
- Débogage et analyse – Cela permet de bien cerner les problèmes éventuels.
- Documentation – Ce n'est pas une compétence commune à tous. Or, il est crucial de disposer d'une documentation correcte pour éviter toute perte d'informations.
- Sens des priorités – Dans le secteur DevOps, les gens vous demanderont mille et une choses, mais vous devez être capable de bien comprendre et de définir les priorités pour chaque tâche.
- Proaction – Dans le secteur DevOps, c'est essentiel : vous devez surveiller activement l'infrastructure/application et vous assurer que nous suivons les meilleures pratiques. Il faut savoir tout identifier et classer en fonction des priorités.
- Bonne compréhension de l'activité/du produit de l'entreprise, ce qui aide à concevoir et livrer une infrastructure adaptée.
L'essor du mouvement DevOps s'accompagne de la hausse des opportunités d'évolution de carrière. Un bon ingénieur DevOps est un touche-à-tout qui peut gérer l'intégralité du cycle de développement logiciel. Il doit être capable de résoudre rapidement les problèmes, communiquer ces solutions aux équipes et posséder des connaissances techniques étendues.
Des entretiens de recrutement efficaces
Il est indispensable de mener un entretien efficace dans l'optique de recruter la personne qui sera parfaite pour vos équipes, mais il n'est pas toujours facile d'identifier le candidat qui disposera de compétences aussi variées. Pour faciliter le processus, il faut avant tout déterminer les compétences générales requises.
Compétences générales requises
Les compétences générales sont aussi importantes que les compétences techniques chez un ingénieur DevOps. Elles englobent souvent la communication, la résolution des problèmes et l'aisance relationnelle. Ces compétences sont essentielles pour aider les équipes à coordonner leur travail et collaborer efficacement, nouer des liens avec les parties prenantes et résoudre rapidement les problèmes. Voici la liste des compétences générales que chaque ingénieur DevOps devrait posséder :
-
Vous devez être un bon communicant. Un ingénieur DevOps doit être capable d'écouter efficacement, de parler de manière claire et rigoureuse, et d'exprimer ses idées avec précision. Cette personne est susceptible d'endosser de nombreuses responsabilités. Elle devrait donc être en mesure d'expliquer simplement son raisonnement derrière chaque décision. Le meilleur moyen consiste à poser les bonnes questions et écouter avec attention les réponses données. Il est par ailleurs crucial de signaler les erreurs des autres sans pour autant paraître grossier ou condescendant.
-
Il doit porter une grande attention au détail et vouloir se surpasser dans son travail.
-
Il doit aussi rester à l'affût de ce qui doit être fait et quand cela doit être fait. Cette personne sera responsable de la création de processus facilitant la communication entre les membres de vos équipes. Elle devra être capable de démêler les informations requises et celles qui peuvent attendre.
-
La résolution des problèmes est une autre facette vitale du métier. Si un problème survient dans l'infrastructure informatique, cela aura sans doute des répercussions sur l'ensemble de l'entreprise. L'ingénieur DevOps trouvera le moyen d'empêcher de telles déconvenues.
-
Un comportement agréable et respectueux vis-à-vis des autres contribuera grandement au bon déroulement des diverses missions et à une bonne collaboration entre les équipes.
Compétences techniques requises
Dans un environnement DevOps, les compétences requises diffèrent de celles d'un employé informatique classique. Les équipes DevOps comptent souvent des personnes issues de milieux variés et affichant des compétences diverses. Il est donc important que leurs membres soient capables de travailler en étroite coopération et possèdent les compétences ci-après :
-
maîtrise de plusieurs systèmes d'exploitation – les connaissances sur Linux sont particulièrement utiles ;
-
langages de script tels que bash, Perl, Python et Ruby (grâce à « gem » et à d'autres gestionnaires de packages) ;
-
maîtrise de langages de programmation tels que Ruby, Python ou Java ;
-
bonne connaissance des systèmes de contrôle de versions tels que Git ;
-
bonne compréhension de l'administration des systèmes Linux pour déployer de nouvelles applications ;
-
frameworks d'applications web et schémas de conception modernes ;
-
connaissances réseau de base.
Anmol Nagpal dresse la liste des compétences techniques clés dans le secteur DevOps :
« Il est préférable de maîtriser plusieurs systèmes cloud (Azure/AWS/GCP), mais on peut accepter un candidat qui possède des connaissances très pointues sur un système spécifique. »
Anmol Nagpal
-
IaC (Terraform/CloudFormation/Pulumi/CDK)
-
Docker
-
Kubernetes
-
CI/CD (Jenkins/GitHub Actions/GitLab/Azure DevOps)
-
Les services dédiés à la sécurité doivent savoir que les produits développés sont sécurisés.
Questions en entretien + réponses attendues
Voici une liste de questions à poser en entretien, accompagnées des réponses escomptées, pour que les CTO sachent à quoi s'attendre et que les ingénieurs DevOps puissent préparer leur entrevue.
Niveau débutant
- Quelles sont les différences entre DevOps et Agile ?
Réponse attendue : Voici les principales différences :
- DevOps réunit toutes les équipes impliquées dans le développement et la maintenance des logiciels. Cependant, Agile crée généralement des silos pour des tâches spécifiques afin de les attribuer à différentes équipes.
- DevOps met l'accent sur la cohérence, la stabilité et l'automatisation. Avec Agile, l'accent porte plutôt sur l'adaptabilité et le développement itératif.
- Avec DevOps, l'ensemble du workflow logiciel est pris en considération, de la première idée jusqu'à la livraison du produit et la maintenance. Mais avec Agile, le processus se termine le plus souvent une fois que le code est complet.
- À quoi les tests continus servent-ils ?
Réponse attendue : Les tests continus désignent les tests de débogage effectués à chaque étape du cycle de développement d'un logiciel. Pendant ce processus, il y a un feedback constant entre les différents acteurs, et les développeurs en profitent pour évaluer la qualité du logiciel.
- À quoi les tests d'automatisation servent-ils ?
Réponse attendue : Lors des tests d'automatisation, les scripts sont automatiquement examinés et validés pour garantir la vérification du programme utilisé. Aucune intervention humaine n'est requise, ce qui rend la rapidité d'automatisation très intéressante.
- Qu'entend-on par « création d'embranchements » ?
Réponse attendue : La création d'embranchements est une technique utilisée par les développeurs dans les systèmes de contrôle de versions pour créer deux versions distinctes à partir de la copie d'un même code source. Ces embranchements peuvent ensuite être développés de manière indépendante sans affecter le code de base, ce qui encourage la collaboration.
- Que savez-vous de Jenkins ?
Réponse attendue : Jenkins est l'outil d'intégration et de livraison continues (CI/CD) le plus populaire sur le marché actuel. Beaucoup d'équipes DevOps (voire toutes) utilisent Jenkins pour automatiser certaines parties du développement logiciel liées à la conception, au test et au déploiement des applications.
- Quels sont les avantages du contrôle de versions ?
Réponse attendue : Les systèmes de contrôle de versions améliorent l'efficacité du codage, qui passe par :
- la traçabilité : il faut suivre les changements que tous les développeurs ont apportés au code, ce qui permet d'obtenir un historique clair et favorisant l'amélioration des fonctionnalités du logiciel.
- la création d'embranchements : les développeurs travaillent sur le code de manière autonome, sans affecter les contributions des autres collaborateurs.
- la diminution des erreurs : il est possible de détecter la cause profonde des bugs logiciels et de relever les doublons.
Niveau intermédiaire et niveau expert
- Quels problèmes la création de pipelines DevOps peut-elle poser ?
Réponse attendue :
Les indicateurs de fonctionnalités aident le plus souvent à gérer les lancements de produits au sein d'environnements CI.
Si la migration planifiée d'une base de données échoue, le système peut devenir inutilisable.
- Comment les conteneurs communiquent-ils dans Kubernetes ?
Réponse attendue : Un pod relie les conteneurs dans Kubernetes et il peut généralement regrouper plusieurs conteneurs. Les pods présentent une hiérarchie de réseau plat dans un réseau superposé et c'est à plat qu'ils communiquent entre eux. En théorie, tout pod de ce réseau superposé peut communiquer avec un autre pod.
- Comment limitez-vous la communication entre les pods Kubernetes ?
Réponse attendue : Si le plug-in réseau CNI que vous utilisez prend en charge l'API de politique réseau Kubernetes, Kubernetes vous permet de spécifier des politiques réseau limitant l'accès réseau.
Ces politiques peuvent limiter les adresses IP, les ports et/ou les sélecteurs.
- Quels sont les deux principales stratégies de création d'embranchements ?
Réponse attendue :
Création d'embranchements de version, ce qui permet de créer un embranchement pour une nouvelle version potentielle.
Création d'embranchements de fonctionnalité, ce qui permet de créer un embranchement pour des fonctionnalités ou des tâches spécifiques.
- Comment concevez-vous un cloud hybride ?
Réponse d'Anmol Nagpal :
Pour concevoir un cloud hybride, il faut d'abord s'assurer du type des données exécutées dans le datacenter et de leur niveau de criticité. Imaginons que nous souhaitions le connecter avec AWS. Nous avons deux solutions : nous pouvons tout d'abord utiliser un VPN site à site, qui sera moins onéreux et plus simple à configurer. Sinon, Direct Connection est plus stable, mais ce protocole coûte cher et s'avère chronophage.
Anmol Nagpal
- Quelles sont les principales différences entre la gestion des actifs et la gestion de la configuration ?
Réponse attendue : La gestion de la configuration fait référence à la gestion des actifs en tant qu'entités dans le pipeline de développement logiciel. Cela sous-entend de vérifier l'exactitude et la fiabilité des divers éléments de configuration, ainsi que leurs liens.
Pour éprouver les compétences de tous les candidats, posez des questions sur la manière dont ils géreraient des situations nécessitant de communiquer avec des personnes issues de différents départements. Vous pouvez aussi leur demander leurs tâches préférées en tant qu'ingénieur DevOps ou les défis qu'ils rencontrent régulièrement à leur poste actuel. Ce type de questions fournira des informations sur la manière dont les candidats appréhendent le travail d'équipe, ce qui constitue une compétence essentielle pour tout ingénieur DevOps.
Selon Anmol Nagpal, outre le fait de vérifier les compétences techniques et générales, il y a quelques questions à poser aux autres développeurs qu'il pourrait bien recruter dans son équipe.
« Je leur demanderais le meilleur côté ou le pire côté d'un poste DevOps. Est-ce qu'ils aiment travailler tard le soir ? Sont-ils disponibles le week-end ? Je souhaiterais aussi savoir ce qu'ils font pendant leur temps libre : est-ce qu'ils lisent des blogs tech ou réalisent des POC ? »
Anmol Nagpal
Il suggère encore d'autres questions :
-
Quelle est votre plus grande fierté concernant votre dernière mission ?
-
Quelle est votre plus grosse erreur professionnelle dans le secteur DevOps ?
-
Souhaitez-vous découvrir de nouveaux outils et de nouvelles technologies ?
Le recrutement, une affaire complexe dans le secteur DevOps
Le recrutement d'un ingénieur DevOps est une décision importante. D'un côté, vous ne pouvez pas ignorer la puissance du processus DevOps : c'est sans conteste un excellent moyen de gérer le développement et le déploiement de logiciels. Mais d'un autre côté, ce type de recrutement s'avère plus complexe que le recrutement d'un développeur logiciel ou d'un administrateur systèmes.
Comment savoir si vos équipes sont prêtes à accueillir ce poste ? Comment avoir la certitude d'engager la bonne personne ? Voici quelques éléments à prendre en considération lorsque vous recrutez un ingénieur DevOps, ainsi que des conseils pour vous assurer que les équipes sont prêtes à collaborer.
-
Le premier challenge réside dans le temps nécessaire à la recherche et à l'évaluation des candidats. Sur d'autres canaux, il vous faudrait sans doute des semaines voire des mois pour trouver une personne présentant les compétences, l'expérience et la personnalité requises.
-
Il peut aussi être difficile de gérer les attentes de l'entreprise et des candidats. Vous aurez à cœur de satisfaire les besoins de l'entreprise, sans pour autant perdre un temps précieux à échanger avec des candidats qui ne feront pas l'affaire.
-
Il vous faut la bonne personne. De nombreuses entreprises n'ont pas les ressources nécessaires pour mener à bien des recherches approfondies ou proposer des salaires compétitifs aux ingénieurs DevOps (surtout les plus jeunes). En d'autres termes, cela peut prendre plus de temps que prévu pour trouver la personne idéale – ou pire, vous pouvez finir par embaucher une personne qui ne correspondra pas du tout à vos besoins.
-
Vous devez aussi recruter une personne capable de s'entendre avec ses collaborateurs. Cette personne devra être en mesure de s'intégrer facilement, sans créer de problèmes avec les autres employés ni causer de drames au bureau.
-
Il peut s'avérer délicat de fixer un salaire. Si vous faites appel à des recruteurs ou à des chasseurs de têtes, ces derniers auront peut-être leur propre idée du coût d'un ingénieur DevOps, et tenteront de le surévaluer.
-
Si vous recrutez un ingénieur DevOps auprès d'une autre entreprise, vous devez vérifier que les compétences de cette personne correspondent bien à vos besoins. Certaines entreprises peuvent avoir développé leurs propres outils à diverses fins.
-
Le dernier challenge survient après le recrutement et la mise en place d'un ingénieur DevOps : il faut alors maintenir sa motivation et sa productivité tout au long de son parcours au sein de l'entreprise. Ce n'est pas forcément une sinécure, car il faut gérer plusieurs services dans une même entreprise, mais aussi travailler avec des personnes issues de divers milieux et ayant des niveaux de compétences inégaux.
Le processus de recrutement d'un ingénieur DevOps peut se révéler complexe, mais il est nécessaire pour réussir à l'heure actuelle. La bonne personne peut aider votre entreprise à se développer, augmenter ses profits et économiser de l'argent sur le long terme en s'assurant que tout se passe sans encombre.
Pour conclure
Les ingénieurs DevOps sont des personnes brillantes qui détiennent des connaissances étendues dans les domaines de la programmation, du développement et des infrastructures. Leurs tâches varient en fonction des besoins des équipes, mais ils gardent un œil sur tout ce qui se passe dans le secteur DevOps. Leur recrutement peut donc être ardu, mais il en vaut la peine : leur expertise pose les jalons de nouvelles technologies permettant aux entreprises de rencontrer le succès.
À l'évidence, le marché du travail est concurrentiel dans le secteur DevOps. Et la situation ne fera que s'accentuer. En outre, avec un paysage technologique si versatile, il n'est pas facile de prédire les compétences qui seront les plus recherchées dans les années à venir. Pour garder une longueur d'avance sur la concurrence, mieux vaut vous atteler dès maintenant à l'embauche d'un spécialiste.
Recrutez un petit génie de DevOps aujourd'hui et tous vos vœux se réaliseront !