DevOps devient de plus en plus un moyen populaire de créer et de déployer des applications, ce qui s'est traduit par une demande croissante de professionnels DevOps.
Cet article couvrira certaines des questions d'entretien DevOps les plus fréquemment posées et leurs réponses. L'utilisation de ces questions comme base d'étude peut augmenter vos chances d'être embauché, ou si vous êtes un recruteur, elles peuvent vous aider dans le processus d'embauche.

Foire aux questions et réponses des entretiens DevOps
What is DevOps?
DevOps est la forme abrégée de développement et 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, communication et travail d'équipe.
DevOps est une approche visant à améliorer le travail tout au long du cycle de vie du développement logiciel. Le processus DevOps est décrit comme une boucle infinie, comprenant les étapes de planification, de codage, de construction, de test, de publication, de déploiement, d'exploitation et de optimiser.
DevOps influence le cycle de vie de l'application tout au long de ses phases de planification, de développement, de livraison et d'exploitation. Chaque phase dépend des autres, et les phases ne sont pas spécifiques à un rôle. Dans une véritable culture DevOps, chaque rôle est impliqué dans chaque phase à un certain degré.
What are the different phases in DevOps methodology
- 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.
- Test continu. 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.
What are the benefits of DevOps?
Les équipes qui adoptent une approche DevOps ont tendance à réaliser leurs projets plus rapidement. De cette façon, les erreurs de communication sont évitées, facilitant la mise en œuvre rapide des améliorations et autres changements nécessaires. L'approche DevOps encourage une plus grande collaboration entre les équipes de développement et d'exploitation, où les objectifs de chacun sont plus alignés. Vous pouvez résumer certains des avantages comme suit :
- Communication améliorée
- Travail d'équipe et cohésion
- Collaboration améliorée
- Livraison plus rapide de produits de qualité
- Complexité réduite et résolution rapide des problèmes
- Plus grande évolutivité et flexibilité pour ajouter du nouveau code
- Environnements d'exploitation plus stables
- Une plus grande automatisation
- Réduction des coûts et utilisation des ressources
- d'Azure AD grâce à des outils intégrés et automatisés
Name some DevOps tools
- Outils d'intégration continue tels que Jenkins
- Contrôle de version comme Git
- Construire des outils tels que Maven
- Outils de gestion de configuration comme Chef
- Plateformes de conteneurs telles que Docker
Name some DevOps KPI
- Fréquence de déploiement
- Changer le volume
- Temps de déploiement
- Taux d'échec de déploiement
- Détection du temps
- Taux d'échappement des défauts
What is CI/CD, and what are its benefits?
Intégration continue (CI)
CI combine des outils et des pratiques qui facilitent la livraison rapide de logiciels de haute qualité. De cette façon, les goulots d'étranglement sont éliminés et les problèmes techniques sont évités dans les phases de lancement.
Livraison continue (CD)
Cette pratique automatise la livraison des modifications de code, garantissant que le code peut être rapidement complété en production et que les applications fonctionnent correctement.
Déploiement continu (CD)
Contrairement à la livraison continue, l'objectif de cette pratique est qu'il n'y ait aucune intervention humaine lors du déploiement du logiciel en production. La publication de code nouveau ou modifié en production est automatisée.
CI / CD implémente DevOps tout au long du cycle de vie de l'application. Ces pratiques contribuent à améliorer la productivité dans les différentes phases du processus de développement logiciel en les rationalisant et en les automatisant.
What is microservices architecture, and how is it different from traditional architecture?
La méthode traditionnelle d'écriture de logiciels est monolithique. Cela signifie que toutes les fonctions d'une application sont regroupées dans un seul bloc. En cas d'erreur ou de nécessité de mise à jour, le code qui régit l'ensemble du produit est analysé.
Il génère des arrêts voire des plantages et représente un grand danger pour la conservation du code. Pour les clients, cela signifie des pertes et des maux de tête.
Dans une architecture de microservices, les fonctions d'une application représentent un service développé et intégré indépendamment. Les composants sont séparés mais fonctionnent ensemble pour effectuer les tâches corrélées.
De cette façon, chaque service indépendant fonctionne sans interférer avec les autres, ce qui s'applique également en cas de panne. Si une fonction échoue, il est possible de l'ajuster sans compromettre le fonctionnement de l'ensemble de l'application.
Les microservices arrivent pour rendre DevOps encore plus agile et efficace, accélérant le développement de bout en bout et rendant les applications encore plus évolutives.
Difference between DevOps and 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.
What is Infrastructure as code?
L'infrastructure en tant que code est l'approche de définition de l'infrastructure informatique et réseau, qui utilise des techniques de gestion de code source et est traitée comme n'importe quel système logiciel.
Ce code peut être conservé dans le contrôle de source pour permettre l'audibilité et la construction reproductible, sous réserve de pratiques de test et de la discipline complète de la livraison continue.
L'infrastructure comme code repose sur quelques pratiques :
- Utiliser les fichiers de définition
- Systèmes et processus auto-documentés
- Version tous les éléments
- Tester en permanence les systèmes et les processus
- De petits changements au lieu de lots
- Maintenir les services disponibles en permanence
What is the Role of AWS in 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.
What is the use of 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é.
What is a DevOps Pipeline?
Le pipeline DevOps est un processus qui comprend plusieurs étapes avant de publier un nouveau logiciel. Il peut être appliqué à toutes les phases du projet, de l'intégration et des tests à la livraison et au déploiement. En général, il passe par les étapes et équipes suivantes :
- Product Vision : définit les fonctionnalités du produit ;
- Dev Team : développe de manière itérative et incrémentielle ;
- Domaine d'intervention : met en place et maintient des environnements stables ;
- Veille et retour d'expérience : chercher à générer de la valeur et de l'utilisation par le client.
What is configuration management?
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.
What is continuous testing?
Il s'agit de tests préprogrammés et automatisés d'une application au fur et à mesure du développement.
What is 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.
Mention some basic Git commands
- Git cloner
git clone <https://name-of-the-repository-link>
- Branche Git
git branch <branch-name>
- Paiement Git
git checkout <name-of-your-branch>
- Git ajouter
git add <file>
- Commettre Git
git commit -m "commit message"
- Git pousser
git push <remote> <branch-name>
- Git tirer
git pull <remote>
Explain the difference between Git merge and 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é.
Explain the difference between Git fetch and 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.
What is a merge conflict?
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.
What is version control, and What are the different 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ée– 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)-ne pas avoir de serveur central pour stocker tous les fichiers du projet. Git et Mercurial sont des exemples de DVCS.
What are the benefits of using version control?
- 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
What is branching?
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.
What are Branching strategies?
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.
Explain a few types of tests used in DevOps?
Tests unitaires
Ils testent un morceau de code spécifique de manière isolée. Les tests unitaires ne doivent pas être connectés à la base de données, utiliser le système de fichiers, communiquer avec des systèmes externes ou interagir avec les composants du système. Cela leur permet de s'exécuter rapidement et vous obtenez un retour rapide si les modifications ont interrompu les fonctionnalités existantes.
Tests de composants
Ils testent de grands groupes de fonctionnalités afin de pouvoir identifier des problèmes comme ceux-ci. Ils sont généralement plus lents, nécessitant une configuration plus complexe et davantage d'E/S se connectant à une base de données, un système de fichiers ou d'autres systèmes.
Essais de déploiement
Ces tests vérifient que le déploiement a fonctionné, en d'autres termes, que votre application est correctement installée, configurée, peut accéder à tous les services dont elle a besoin et répond.
En dehors de ceux-ci, il existe également des tests d'exploitation et d'utilisabilité. Pour en savoir plus sur les tests, consultez l'article sur types de tests d'applications.
What is automation testing, and how to automate testing in 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.
What is Build Automation, and what are some build automation tools?
Les outils d'automatisation de construction spécifient comment le logiciel doit être construit (quelles étapes doivent être effectuées et dans quel ordre) et quelles dépendances sont requises (quels autres logiciels doivent être présents pour que la construction réussisse).
Certains outils sont mieux adaptés aux projets dans des langages de programmation spécifiques, tels que Maven et Apache's Ant, qui, bien que la technologie puisse être utilisée avec d'autres langages, sont principalement utilisés dans les projets Java. D'autres, comme Hudson ou Jenkins, peuvent être utilisés plus largement avec divers projets.
What is Jenkinsfile?
Jenkinsfile est un fichier texte contenant la définition d'un Gazoduc 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.
Explain the architecture in 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.
What are the top Jenkins plugins?
- Plugin Blue Ocean pour Jenkins
- Plugin de messagerie pour Jenkins
- Plugin Git pour Jenkins
- Jira greffon 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
What is 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.
What are the different Selenium components?
- Sélénium IDE
- Sélénium RC
- Pilote Web Selenium
- Grille de sélénium
What are the different types of testing in Selenium?
- Tests de bout en bout
- Les tests de régression
- Test du système
- Test de performance
- Test de compatibilité
What are the different exceptions in Selenium?
- ElementNotSelectableException
- NoAlertPresentExceptionNoAlertPresentException
- InvalidSelectorException
- NoSuchSessionExceptionNoSuchSessionException
- StaleElementReferenceExceptionStaleElementReferenceException
- NoSuchWindowExceptionNoSuchWindowException
- NoSuchFrameException
- NoSuchElementException
- TimeoutException
- ElementNotVisibleException
What are driver.close() and driver.quit() in WebDriver?
La solution driver.close()
La commande ferme la fenêtre du navigateur sur le focus. Si un seul navigateur est ouvert, il ferme toute la session du navigateur.
La solution driver.quit()
La commande ferme toute la session du navigateur avec les fenêtres contextuelles, les onglets et les fenêtres du navigateur.
What is a Dockerfile?
Dockerfile est un document texte avec toutes les commandes qu'un utilisateur peut utiliser sur une ligne de commande pour assembler une image.
Differences between docker images and docker container
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.
Explain the architecture of Docker
Docker suit une architecture client-serveur et comprend Docker Client, Docker Host et Docker Registry.
Client Docker utilise les API REST et les commandes pour communiquer avec le serveur (Docker Daemon).
Docker Client utilise CLI pour exécuter ces commandes
docker build
docker pull
docker run
- Hôte Docker 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.
- Registre Docker gère et stocke les images Docker.
Cloud platforms that support docker
Les plates-formes qui prennent en charge hébergement docker sont;
- Kamatera
- Google Cloud Run
- Hébergement A2
- StackPath
- Sloppy.io
- Amazon ECS
- Microsoft Azure
- Hôte Presto
- Vultr
What is the difference between containers and virtual machines?
Le conteneur et la machine virtuelle fonctionnent avec la virtualisation et l'isolation des environnements pour favoriser le traitement indépendamment des applications. Toujours, Conteneurs créer des environnements isolés où différentes applications peuvent s'exécuter simultanément car la division se fait au niveau des ressources disponibles, telles que la mémoire et le traitement. D'autre part, la machine virtuelle permet à une machine physique d'en héberger d'autres avec différents systèmes d'exploitation, disques durs et matériels indépendants de ceux d'origine.
What is the main difference between Docker and Kubernetes?
Docker est l'un des outils de conteneur DevOps les plus utilisés. Il se concentre sur la portabilité des applications, en les plaçant dans des conteneurs technologiques et des systèmes d'emballage et en les déplaçant sur différentes plates-formes.
Dans le même temps, Kubernetes est un outil d'orchestration de conteneurs qui peut regrouper des conteneurs par catégorisation logique. Il peut être déployé sur plusieurs ordinateurs via une distribution automatisée.
Découvrez notre article sur Kubernetes contre. Docker.
What does platform virtualization mean, and what are its benefits?
La virtualisation de plate-forme consiste à simuler un système informatique complet pour exécuter plusieurs instances de systèmes d'exploitation simultanément sur une seule machine physique.
Dans cette configuration, un moniteur de machine virtuelle (VMM), ou hyperviseur, a le contrôle total des ressources matérielles de la machine physique. Les systèmes d'exploitation invités s'exécutent sur des machines virtuelles, gérées par VMM. La virtualisation d'environnement consiste à simuler une ou plusieurs machines virtuelles et les connexions réseau entre elles.
La virtualisation peut aider à réduire le temps consacré au déploiement et les risques qui y sont associés de plusieurs manières. L'utilisation de machines virtuelles dans le déploiement est d'une grande aide pour parvenir à une gestion efficace de la configuration verticalement et horizontalement sur l'ensemble de vos systèmes.
En particulier, l'utilisation de la virtualisation apporte les avantages suivants :
- Réponse rapide aux exigences changeantes
- Consolidation
- Standardisation
- Facilité de maintenance des lignes de base
What is 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.
How does Nagios work?
- de la fraude. 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.
- Alertes. 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.
Mention some Plugins in Nagios
- Plugins Nagios officiels-développé et maintenu par l'équipe officielle
- Plugins personnalisés-écrit par des particuliers/entreprises pour répondre aux besoins individuels
- Plugins communautaires-développé par les membres de la communauté Nagios
Explain virtualization with 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.
How does Nagios help with monitoring?
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.
What port numbers does Nagios use for monitoring purposes?
SNMP, ports 161 et 162
What is a Nagios network analyzer?
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 that affect inheritance and recursion in Nagios
- Nom-un 'nom' de modèle qui peut hériter des variables/propriétés de l'objet.
- Utilisation- spécifier le nom de l'objet du modèle dont vous souhaitez hériter les variables/propriétés.
- Inscription indique si le nom de l'objet modèle doit être 'enregistré' avec Nagios.
What is Puppet?
Puppet est un outil open-source pour les logiciels gestion de la configuration et déploiement.
What is a Puppet manifest?
Le manifeste Puppet est un fichier qui contient le langage de configuration Puppet qui décrit comment les ressources doivent être configurées.
What is the Puppet code?
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.
What is 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.
How does Chef work?
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 Cuisine d'essai, ChefSpec et Critique gastronomique.
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.
Tell us about your experience managing DevOps projects
Les compétences DevOps ne se limitent pas à un savoir-faire technique et nécessitent des compétences humaines et managériales que l'on retrouve souvent chez les managers, les directeurs de programme et les chefs de projet.
Il est essentiel de savoir gérer et accompagner le changement, fournir une passerelle pour faciliter le transfert des nouvelles versions de code vers les opérations, évaluer et suivre les différentes plateformes et outils pour mesurer la performance, analyser et partager les résultats pour améliorer les livraisons futures. , etc.
Abordez cette question avec méthodologie et expliquez votre parcours dans la résolution de problèmes complexes. Comment comptez-vous procéder pour améliorer le fonctionnement des infrastructures ? Comment comptez-vous collaborer avec les développeurs front, middle et back-office ? Quels outils de monitoring maîtrisez-vous ? Pensez également à partager vos expériences de résolution de conflits au sein de votre équipe.
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 quelques bons cours en ligne pour apprendre DevOps.
Avec des entrées de Titus Kamunya.