ÐаÑÐ¸Ñ Mudrykh - stock.adobe
Site Reliability Engineer : bien préparer son entretien d’embauche
Pour réussir leur entretien, les candidats à un poste de SRE doivent être prêts à discuter de tout, depuis les langages de programmation jusqu’au dépannage d’un réseau de manière plus ou moins détaillée.
La fonction d’ingénieur de fiabilité de sites (Site Reliability Engineer ou SRE) est à la fois difficile et gratifiante. Pour se démarquer, les candidats au poste de SRE doivent avoir une idée très précise de ce que les entreprises recherchent.
La fonction de SRE est relativement nouvelle et implique l’automatisation des tâches opérationnelles. Elle peut convenir aux ingénieurs système désireux de renforcer leurs compétences en programmation, ainsi qu’aux développeurs qui cherchent à gérer de grandes infrastructures. Les candidats qui ont démontré leurs compétences en matière de systèmes IT, de logiciels et d’automatisation auront un avantage certain.
Lors des entretiens pour un poste de SRE, les candidats doivent généralement répondre à une série de questions et effectuer des exercices pratiques destinés à évaluer leurs connaissances. Même si ces questions et ces tests sont très variables en fonction des besoins spécifiques du recruteur, les candidats seront probablement évalués dans quatre grands domaines : développement logiciel, supervision et dépannage, réseau, et infrastructures et opérations.
Voici quelques-unes des questions que l’on vous posera certainement.
Développement logiciel
En général, les premières questions dans ce domaine portent sur les langages que l’entreprise utilise (Perl, Java, etc.), ainsi que sur les structures de données (files d’attente, stacks, heaps) et les algorithmes. On peut vous demander de revoir un extrait de code mal écrit pour en identifier les erreurs, les inefficacités et les endroits où le code plante ou donne des résultats faux. Les autres questions peuvent porter sur les applications et la manière dont elles s’interfacent avec les bases de données.
Il est rare qu’un recruteur demande à un candidat de coder, mais il peut l’interroger sur les architectures et l’utilisation du code pour résoudre certains problèmes.
Monitoring et dépannage
Dans ce domaine, les questions visent généralement à évaluer la compréhension des principes de supervision et les connaissances pratiques du candidat sur des outils spécifiques et de bonnes pratiques. Par exemple, le recruteur peut vous demander d’expliquer comment évaluer les délais d’exécution des requêtes lancées sur une base de données – un élément central du monitoring des performances – ou comment parser correctement un log pour créer un fichier CSV d’événements ou de processus spécifiques.
Dans certains cas, le recruteur vous présentera une liste d’alertes générée par un outil et vous demandera de les classer en fonction de leur priorité ou de leur gravité. Ces questions permettent d’évaluer votre capacité à hiérarchiser et à gérer correctement le temps.
Les questions sur le dépannage peuvent venir des scénarios réels issus du terrain. Elles permettent de voir comment un candidat résoudrait des problèmes qui vont du plantage d’une VM à une interruption complète pouvant aller jusqu’à l’activation d’un PRA.
Le recruteur peut vous demander de parler des problèmes les plus sérieux que vous ayez eus à traiter concernant des serveurs, des réseaux et des services, et comment vous les avez résolus.
Gestion de réseau
Dans ce domaine, les questions peuvent aussi bien être faciles que très difficiles. Le recruteur peut vous demandant de définir ou de décrire les concepts de base du réseau (DNS, DHCP TCP, etc.). Mais les questions peuvent rapidement devenir plus pointues. Par exemple, on peut vous demander comment calculer le nombre d’adresses IP utilisables sur un réseau /23 ou vous interroger sur les nuances d’une configuration TCP particulière.
Le recruteur peut aussi aborder des questions d’architecture et vous demander comment identifier les SPOF (Single Points Of Failure) sur une cartographie d’un réseau et comment localiser les goulets d’étranglement potentiels.
Infrastructures et opérations
Les candidats à un poste de SRE doivent aussi généralement répondre à une série de questions sur les infrastructures et les opérations. Les plus courantes portent sur les OS et la sécurité.
Par exemple, le recruteur peut vous demander ce qu’il se passe lorsqu’on tape la commande ps à l’invite UNIX. Vous devrez peut-être expliquer comment sécuriser un conteneur, ou la différence entre RAID 0 et RAID 5 (et dans quels cas utiliser l’un ou l’autre).
Le recruteur peut vous poser d’autres questions simples sur ce qui différencie un accord de niveau de service (SLA) d’un indicateur de niveau de service, ou la différence entre virtualisation et conteneurs, et entre Docker et Kubernetes.
Les questions sur l’infrastructure peuvent aller crescendo. Par exemple, le recruteur peut vous demander d’expliquer comment vous dimensionneriez des éléments de l’infrastructure IT pour un service vital. La manière dont vous répondrez donnera beaucoup d’indications sur votre expertise et votre assurance de futur SRE.
Il peut aussi vous poser une question complexe sur la manière de répartir 1 To de données entre 5 000 nœuds tout en vous assurant que ces nœuds sont constamment mis à jour. Si copier les données sur un serveur prend deux heures, le recruteur peut demander comment procéder pour que la mise à jour de tous les serveurs ne dure pas 10 000 heures, et que le transfert des données ne soit pas corrompu.
Conclusion
Logiquement, les questions d’entretien pour le poste de SRE portent souvent sur les workflows et l’automatisation des processus. Elles peuvent être aussi simples que « comment faites-vous pour créer et réviser un script d’automatisation ? ». Mais elles peuvent également exiger que le candidat prouve ses compétences sur des outils comme Ansible, Puppet, Datadog et Vagrant.
Heureusement, ce type d’exigences sur des compétences précises est généralement indiqué dans les offres d’emploi pour des SRE. Mais même lorsque aucun outil n’est mentionné, les candidats doivent être prêts à répondre à des questions sur les approches et les pratiques d’automatisation.