46 Questions et réponses fréquemment posées lors des entretiens DevOps [2023]

Vous voulez savoir quelles questions poser lors de votre prochain entretien DevOps ? Commencez avec notre guide pratique.

Le terme DevOps a été inventé en 2007-2008 mais est maintenant devenu l’une des carrières les plus populaires en génie logiciel. DevOps est un changement culturel qui touche tous les aspects du développement et des opérations.

Les deux équipes (développement et opérations) travaillent ensemble depuis la planification et la construction jusqu’à la surveillance et l’itération. Ce sont les questions les plus courantes que vous êtes susceptible de rencontrer si vous recherchez un rôle d’ingénieur DevOps.

Table des matières

Qu’est-ce que DevOps ?

DevOps est la forme abrégée du développement et des opérations. Cette pratique de génie logiciel rassemble les équipes de développement et d’exploitation pour automatiser chaque étape d’un projet. Une équipe DevOps se concentre sur la gestion des ressources, la communication et le travail d’équipe.

Quelles sont les différentes phases de la méthodologie DevOps

  • Développement continu. C’est la phase de planification et de codage.
  • Intégration continue. C’est la phase où l’équipe de développement intègre différents composants et s’assure que le code ne casse pas.
  • Essais continus. Il s’agit de la phase de test préprogrammée et automatisée.
  • Déploiement continu. Cette phase garantit un développement sans tracas, qui n’affecte pas les performances de l’ensemble de l’application.
  • Contrôle continu. Cette phase garantit l’efficacité globale de l’application.
  • Rétroaction continue. Les problèmes et les performances, tels que signalés par les utilisateurs finaux, sont analysés.
  • Opérations continues. Permet aux développeurs de créer de meilleures versions du produit et de détecter rapidement les problèmes.

Quels sont les avantages du DevOps ?

  • Livraison de produits plus rapide et de meilleure qualité
  • Plus grande évolutivité
  • Résolution rapide des problèmes
  • Meilleure utilisation des ressources

Nommez quelques KPI DevOps

  • Fréquence de déploiement
  • Modifier le volume
  • Temps de déploiement
  • Taux d’échec de déploiement
  • Détection du temps
  • Taux d’échappement des défauts

Différence entre DevOps et agile

DevOps est une culture qui favorise la collaboration entre tous les membres de l’équipe impliqués dans le développement et la maintenance de logiciels.

Agile est une méthodologie de développement conçue pour rendre les équipes productives et piloter les versions en fonction de l’évolution des besoins.

Quel est le rôle d’AWS dans DevOps

AWS propose un ensemble de services flexibles qui aident les entreprises à développer rapidement et de manière fiable des applications. Les services AWS simplifient le déploiement du code, le provisionnement et la simplification de l’infrastructure, l’automatisation des processus de publication de logiciels et la surveillance des performances de l’infrastructure.

A quoi sert SSH ?

SSH (Secure Shell) est un protocole qui permet une connexion sécurisée entre différents ordinateurs. SSH sert à différentes fins, telles que l’offre ; authentification forte, cryptage fort, maintien de l’intégrité de la connexion, connexion forte et sécurité.

Qu’est-ce que l’intégration continue ?

L’intégration continue permet aux développeurs de logiciels de fusionner leur code dans un référentiel central. Le code est ensuite soumis à des versions et à des tests automatisés.

Qu’est-ce que la gestion de configuration ?

Il s’agit d’un processus d’ingénierie d’un système visant à établir et à maintenir la cohérence des performances et des attributs fonctionnels et physiques d’un système/produit tout au long de son cycle de vie.

Qu’est-ce que le test continu ?

Il s’agit de tests préprogrammés et automatisés d’une application au fur et à mesure du développement.

Qu’est-ce que Git ?

Il s’agit d’un outil open-source et gratuit pour la gestion du code source. Cet outil est conçu pour gérer de petits et grands projets.

Mentionnez quelques commandes Git de base

git clone <https://name-of-the-repository-link>
git branch <branch-name>
git checkout <name-of-your-branch>
git add <file>
git commit -m "commit message"
git push <remote> <branch-name>
git pull <remote>

Expliquer la différence entre Git merge et Git rebase

La commande Git merge permet aux développeurs de fusionner différentes branches Git tandis que les journaux des commits des branches respectives restent intacts.

La commande Git rebase permet aux développeurs d’intégrer les modifications d’une branche à l’autre, et les journaux sont modifiés une fois le processus terminé.

Expliquer la différence entre Git fetch et Git pull

Git fetch indique à git de récupérer/vérifier les dernières métadonnées de l’original. Cependant, il ne fait aucun transfert de fichiers mais seulement des vérifications.

Git pull vérifie et apporte les modifications du référentiel distant au projet local.

Qu’est-ce qu’un conflit de fusion ?

Les conflits de fusion se produisent lorsque vous fusionnez deux branches avec des commits concurrents. Les conflits de fusion se produisent généralement lorsque différents développeurs modifient la même ligne de code ou le même fichier.

Qu’est-ce que le contrôle de version et quels sont les différents types ?

Le contrôle de version (contrôle de source) est le processus de suivi et de gestion des modifications apportées au code logiciel.

Ce sont les différents types de contrôles de version ;

  • Centralisé – avoir une seule copie « centrale » du code source sur un serveur et toutes les modifications sont validées sur la copie « centrale ». Subversion (SVN) et Perforce sont des exemples de contrôles de version centralisés.
  • Distribué (DVCS) – n’ont pas de serveur central pour stocker tous les fichiers du projet. Git et Mercurial sont des exemples de DVCS.

Quels sont les avantages d’utiliser le contrôle de version ?

  • Aide les développeurs à préserver l’efficacité et l’agilité
  • Fournit un journal complet de chaque modification apportée à un projet/fichier
  • Améliorer la traçabilité
  • Aide à gérer la fusion et la création de branches
  • Permet la collaboration

Qu’est-ce que la ramification ?

La création de branches fait référence à la création d’une nouvelle version/séparée du référentiel principal. Les branches vous permettent de travailler sur différentes parties du projet sans impact sur la branche principale.

Que sont les stratégies de branchement ?

Les stratégies de fusion sont les méthodologies que les équipes de développement logiciel adoptent lors de l’écriture, de la fusion et du déploiement de code. Une telle approche garantit que les bogues et les erreurs sont corrigés au stade de la branche avant qu’ils ne soient fusionnés avec le projet principal.

Qu’est-ce que les tests d’automatisation et comment automatiser les tests dans DevOps ?

Les tests d’automatisation sont une technique de révision et de validation automatiques du code. Des tests d’automatisation sont effectués pour vérifier si les normes de qualité pour la fonctionnalité (logique métier), le style de code et l’expérience utilisateur ont été respectées.

Les tests d’automatisation sont effectués à l’aide d’outils tels que Selenium et Katalon.

Qu’est-ce que Jenkinsfile ?

Jenkinsfile est un fichier texte contenant la définition d’un pipeline Jenkins. Jenkinsfile est archivé dans le référentiel de contrôle de code source. Certaines de ses utilisations sont; il permet une piste d’audit pour le pipeline, permet la révision du code et l’itération sur le pipeline, et donne une source unique de vérité dans le pipeline.

Expliquer l’architecture dans Jenkins

Jenkins a une architecture maître-esclave. Cela signifie qu’il y a plusieurs « esclaves » travaillant pour un seul « maître ». Le Jenkins Distributed Build peut ainsi exécuter des tests identiques sur différents environnements, avec des résultats collectés et combinés sur le nœud maître pour la surveillance.

Quels sont les meilleurs plugins Jenkins ?

  • Plugin Blue Ocean pour Jenkins
  • Plugin de messagerie pour Jenkins
  • Plugin Git pour Jenkins
  • Plugin Jira pour Jenkins
  • Plugin Docker pour Jenkins
  • Plugin d’intégration Maven pour Jenkins
  • Plug-in Kubernetes pour Jenkins
  • Plugin SonarQube pour Jenkins
  • Plug-in Amazon EC2 pour Jenkins

Qu’est-ce que Selenium IDE ?

Selenium IDE est un outil qui enregistre les interactions du navigateur pour les cas de test. Vous pouvez définir des points d’arrêt et vérifier et suspendre les variables lorsque des erreurs se produisent avec Selenium Integrated Development Environment.

Quels sont les différents composants de Selenium ?

Quels sont les différents types de tests dans Selenium ?

  • Test de bout en bout
  • Les tests de régression
  • Test du système
  • Test de performance
  • Test de compatibilité

Quelles sont les différentes exceptions dans Selenium ?

  • ElementNotSelectableException
  • NoAlertPresentExceptionNoAlertPresentException
  • InvalidSelectorException
  • NoSuchSessionExceptionNoSuchSessionException
  • StaleElementReferenceExceptionStaleElementReferenceException
  • NoSuchWindowExceptionNoSuchWindowException
  • NoSuchFrameException
  • NoSuchElementException
  • TimeoutException
  • ElementNotVisibleException

Que sont driver.close() et driver.quit() dans WebDriver ?

La commande driver.close() ferme la fenêtre du navigateur sur le focus. Si un seul navigateur est ouvert, il ferme toute la session du navigateur.

La commande driver.quit() ferme toute la session du navigateur avec les fenêtres contextuelles, les onglets et les fenêtres du navigateur.

Qu’est-ce qu’un Dockerfile ?

Dockerfile est un document texte avec toutes les commandes qu’un utilisateur peut utiliser sur une ligne de commande pour assembler une image.

Différences entre les images Docker et le conteneur Docker

Les images Docker sont des modèles en lecture seule conçus avec des codes sources, des outils, des bibliothèques, des dépendances externes et d’autres fichiers nécessaires au bon fonctionnement de toute application sur n’importe quel système d’exploitation ou plate-forme.

Un conteneur Docker est une boîte qui exécute des modèles d’image Docker.

Expliquer l’architecture de Docker

Docker suit une architecture client-serveur et comprend Docker Client, Docker Host et Docker Registry.

Docker Client utilise des API REST et des commandes pour communiquer avec le serveur (Docker Daemon).

Docker Client utilise CLI pour exécuter ces commandes

docker build

docker pull

docker run
  • Docker Host fournit un environnement pour exécuter et exécuter des applications. Composé d’un démon docker, d’un stockage, d’images, de conteneurs et de réseaux.
  • Docker Registry gère et stocke les images Docker.

Plates-formes cloud prenant en charge docker

Les plates-formes qui prennent en charge l’hébergement Docker sont;

Qu’est-ce que Nagios ?

Nagios est un outil qui surveille l’ensemble de l’infrastructure informatique pour s’assurer que les processus métier, les systèmes, les services et les applications fonctionnent correctement.

Comment fonctionne Nagios ?

  • Surveillance. Le personnel informatique configure Nagios pour surveiller les protocoles réseau, les métriques système, les applications, l’infrastructure réseau, les services et les serveurs.
  • Alerte. Nagios envoie des alertes lorsque des composants critiques échouent. Les alertes peuvent se faire par SMS, code personnalisé ou e-mails.
  • Réponse. L’équipe informatique reconnaît les alertes et agit.
  • Rapports. Des rapports qui fournissent un enregistrement historique des notifications, des pannes, des réponses aux alertes et des événements pour un examen ultérieur sont générés.
  • Entretien. Les temps d’arrêt planifiés empêchent l’envoi d’alertes pendant la maintenance.

Mentionner quelques plugins dans Nagios

  • Plugins Nagios officiels – développés et maintenus par l’équipe officielle
  • Plugins personnalisés écrits par des particuliers/entreprises pour répondre aux besoins individuels
  • Plugins communautaires – développés par les membres de la communauté Nagios

Expliquer la virtualisation avec Nagios

Nagios offre la possibilité de surveiller diverses métriques sur diverses plates-formes de virtualisation. Nagios peut fonctionner à partir de diverses plates-formes de virtualisation telles que Xen, Amazon EC2, VMware et Microsoft Virtual PC.

Comment Nagios aide-t-il à la surveillance ?

Nagios utilise des agents comme NRPE, check_mk ou SNMP pour collecter des statistiques sur votre serveur et envoyer une alerte si les métriques dépassent le seuil prédéfini.

Quels numéros de port Nagios utilise-t-il à des fins de surveillance ?

SNMP, ports 161 et 162

Qu’est-ce qu’un analyseur de réseau Nagios ?

L’analyseur de réseau Nagios est un logiciel d’analyse de données de flux qui permet aux utilisateurs de résoudre de manière proactive les comportements anormaux, les pannes et les menaces de sécurité avant d’interrompre les opérations commerciales. Cet outil de qualité commerciale offre un aperçu étendu du trafic réseau et de l’infrastructure informatique.

Variables affectant l’héritage et la récursivité dans Nagios

  • Nom-un modèle ‘nom’ qui peut hériter des variables/propriétés de l’objet.
  • Utiliser- spécifiez le nom de l’objet du modèle dont vous souhaitez hériter les variables/propriétés.
  • Register indique si le nom de l’objet modèle doit être « enregistré » auprès de Nagios.

C’est quoi Marionnette ?

Puppet est un outil open source pour la gestion et le déploiement de la configuration logicielle.

Qu’est-ce qu’un manifeste Puppet ?

Le manifeste Puppet est un fichier qui contient le langage de configuration Puppet qui décrit comment les ressources doivent être configurées.

Qu’est-ce que le code marionnette ?

Le code Puppet est un code déclaratif, ce qui signifie que vous le décrivez en utilisant l’état souhaité de votre système et non les étapes nécessaires pour y arriver.

C’est quoi Chef ?

Chef est un outil de gestion de configuration qui convertit l’infrastructure en code. Cet outil se concentre sur l’écriture de code au lieu du processus manuel.

Comment fonctionne Chef ?

Le travail du chef commence lorsque les administrateurs système ou les développeurs définissent les tâches à automatiser. Les livres de cuisine et les recettes (petits programmes écrits dans un langage spécifique à un domaine) sont ensuite capturés et testés à l’aide de divers outils tels que Test Kitchen, ChefSpec et Foodcritic.

Si les livres de cuisine et les recettes fonctionnent comme prévu, ils sont ensuite déployés sur le serveur Chef à l’aide des outils de ligne de commande knife et chef. Un processus de déploiement de chef comprend un serveur Chef, des postes de travail et des nœuds. Vous pouvez choisir parmi plus de 3000 modèles de livres de cuisine et les personnaliser selon vos besoins. Le Chef se chargera ensuite du reste du travail.

Résumé

Selon Glassdoor, le salaire moyen d’un ingénieur DevOps est de 104281 $ par an aux États-Unis. Même si DevOps est une nouvelle carrière, nous pouvons maintenant voir plus d’entreprises embaucher pour ce rôle et publier divers cours pour doter les professionnels des compétences essentielles. Vous trouverez ci-dessus quelques questions que vous rencontrerez probablement lors d’un entretien DevOps.

Vous pouvez également explorer de bons cours en ligne pour apprendre DevOps.