Top 80 des questions et réponses d'entretien sur les microservices

30 octobre 2021

Les microservices peuvent être définis comme une conception architecturale permettant de créer l'application distribuée à l'aide de conteneurs. Les microservices tirent leur nom du fait que chaque fonction de l'application fonctionnera comme un service indépendant. Ce type d'architecture permettra à chaque service de se mettre à jour ou d'évoluer sans perturber les autres services d'une application.

Si vous recherchez les questions et réponses d'entretien les plus fréquemment posées sur les microservices, vous êtes sur la bonne page. Nous avons noté les questions fréquemment posées Microservices Questions d'entrevue. Veuillez parcourir l'intégralité du message.

Table des matières



Principales questions d'entretien sur les microservices

1. Pouvez-vous expliquer l'architecture des microservices ?

Questions d'entretien sur les microservices - Architecture

Microservices, également appelés architecture de microservices - Peut être défini comme un style architectural qui structurera une application comme un groupe de services qui le sont. Hautement testable et maintenable.

  1. Ils sont faiblement couplés.
  2. Ils peuvent également être déployables indépendamment.
  3. Organisé autour des capacités métiers
  4. Tenu par une petite équipe

2. Définir Spring Cloud ?

Spring Cloud peut être défini comme un framework utilisé pour créer des applications cloud robustes. Les applications qui s'exécuteront avec l'architecture de microservices visent à simplifier le déploiement, le développement et la maintenance. La nature décomposée d'une application permettra aux développeurs de se concentrer sur un seul problème à la fois.

3. Lister les principales fonctionnalités des Microservices ?

  1. Conteneurs légers.
  2. Environnement de programmation polyglotte.
  3. Capacités prêtes à l'emploi
  4. Sécurité
  5. Médiation et routage intelligent
  6. Capacité d'échange à chaud : la prise en charge de l'échange à chaud est essentielle pour obtenir un conteneur provisionné au moment de l'exécution ou pour remplacer, déprécier ou ajouter les nouveaux microservices.
  7. Surveillance et gérabilité

Quatre. Pouvez-vous énumérer les outils couramment utilisés pour les microservices ?

  1. MongoDB : Il peut être défini comme une base de données distribuée open source basée sur des documents. Ici, les données sont généralement stockées dans un format JSON avec une structure différente pour divers documents. Il peut également prendre en charge de nombreux autres langages de programmation tels que C, Python, Java, C++, C# , PERL, PHP, Ruby, Scala, etc.
  2. Docker: L'environnement de développement d'applications et l'environnement de déploiement d'applications varient à bien des égards. Cela entraînera des problèmes de déploiement. Docker fournira un arrière-plan statique pour l'exécution d'une application ; par conséquent, cela évite les problèmes de déploiement.JAEGER :Il peut également être défini comme un outil de traçage distribué de bout en bout open source. Jaeger surveillera les transactions distribuées, et cela aidera à l'optimisation des performances, et il trouvera les dépendances b/w services. Il donne la cause première pour l'analyse.
  3. JENKINS : C'est un outil d'automatisation qui permettra l'intégration continue et le développement continu. Il prendra en charge divers plugins et pourra facilement s'intégrer à presque tous les outils.
  4. Recherche élastique :Il peut être défini comme un moteur de recherche en texte intégral.Grafana :Grafana vise à fournir des analyses et une surveillance dans divers formats de visualisation tels que des graphiques, des tableaux, des tableaux, etc.

5. Définir Spring Boot ?

Botte de printemps permettra de créer rapidement des applications prêtes pour la production et fournit des fonctionnalités non fonctionnelles : des serveurs intégrés faciles à déployer avec les conteneurs. Cela aidera à surveiller les multiples composants. Il aide également à configurer les composants en externe.

6. Lister les principaux composants des Microservices ?

  1. Conteneurs, clustering et orchestration
  2. IaC [Infrastructure as Code Conception]
  3. Infrastructure infonuagique
  4. API de passerelle
  5. Bus de services d'entreprise
  6. Service de livraison

sept. Définir l'architecture monolithique ?

L'architecture monolithique est généralement construit comme un grand système et est une base de code. Une application monolithique sera étroitement couplée et enchevêtrée à mesure qu'une application évolue, ce qui rend très difficile l'isolation de services à des fins telles que la mise à l'échelle indépendante ou la maintenabilité du code.

8. Comment remplacer les propriétés par défaut d'un projet Spring Boot ?

Elle peut être effectuée en spécifiant les propriétés dans un fichier application.properties

Par exemple, dans les applications Spring MVC, vous devez spécifier le suffixe et le préfixe. Cela se fait généralement en entrant les propriétés mentionnées ci-dessous dans un fichier application.properties

Pour le suffixe - spring.mvc.view.suffix : .jsp

Pour le préfixe - spring.mvc.view.prefix : /WEB-INF/

9. Expliquez-vous comment fonctionne l'architecture Microservice ?

L'idée principale derrière l'architecture de microservice est que les applications sont simples à créer et à entretenir lorsqu'elles sont généralement divisées en éléments plus petits qui fonctionneront ensemble de manière transparente. Lors de l'utilisation de microservices, nous isolons les fonctionnalités logicielles dans divers modules indépendants qui seront individuellement responsables de l'exécution de tâches autonomes définies avec précision. Ces modules communiquent désormais entre eux via des interfaces de programmation d'application simples et universellement accessibles (API).

Les applications construites à l'aide de microservices présentent certaines caractéristiques, à savoir :

  1. Ils ont des fonctions individuelles conçues pour s'aligner sur les capacités de l'entreprise.
  2. Ils sont fragmentés en divers composants modulaires, faiblement couplés, chacun d'eux remplissant une fonction discrète.
  3. Ils peuvent être facilement distribués dans les clouds et les centres de données.
  4. Ils traiteront chaque fonction comme un service indépendant qui peut être mis à jour, modifié ou supprimé sans perturber l'autre application.

10. Lister les avantages des Microservices ?

Avantages :

  1. Plus facile à créer et à maintenir des applications.
  2. Organisé autour des capacités de l'entreprise
  3. Productivité et vitesse améliorées
  4. Flexibilité dans l'utilisation des technologies et évolutivité
  5. Des équipes autonomes et transverses.
Voir également Top 100 des questions et réponses d'entrevue Ansible

Questions d'entretien sur les microservices et réponses

11. Nommez les conteneurs intégrés pris en charge par Spring Boot ?

Lorsque nous créons une application Java, le déploiement peut se faire via deux méthodes :

  1. En utilisant un conteneur d'application qui sera externe
  2. En incorporant le conteneur dans le fichier jar

Les conteneurs intégrés pris en charge par Spring boot sont indiqués ci-dessous :

Matou – Apache Tomcat peut être défini comme une implémentation JavaServer Pages open source qui fonctionnera bien avec les systèmes embarqués.

Jetée – Il est généralement utilisé dans un grand nombre de projets ; nous pouvons intégrer Eclipse Jetty dans le framework, les serveurs d'applications, les outils et les clusters.

Reflux - C'est l'un des serveurs Web flexibles et importants qui utilisera de petits gestionnaires uniques pour développer un serveur Web.

12. Pouvez-vous lister les usages des rapports et tableaux de bord dans l'environnement des Microservices ?

Les rapports et les tableaux de bord sont généralement utilisés pour surveiller et entretenir les microservices. Les rapports et tableaux de bord sont utilisés pour :

  1. Découvrez quels microservices exposent quelles ressources.
  2. Découvrez les services qui sont impactés chaque fois que des modifications se produisent dans le composant.

13. Énumérez les principaux défis du déploiement de microservices ?

Quelques défis sont listés ci-dessous :

  1. Les formes traditionnelles de surveillance ne fonctionneront pas pour une application basée sur des microservices.
  2. L'évolutivité est un autre défi opérationnel associé à l'architecture des microservices.
  3. L'optimisation et la mise à l'échelle nécessiteront une coordination plus complexe.
  4. La tolérance aux pannes est nécessaire pour chaque service.

14. Faire la différence entre les microservices et l'architecture monolithique ?

Microservices Architecture monolithique
Les microservices sont une architecture faiblement couplée.L'architecture monolithique peut être considérée comme la plus étroitement couplée.
Il se concentre sur les produits, pas sur les projets.Il met l'accent sur l'ensemble du projet.
Ici, le démarrage du service est rapideIci, le démarrage du service prend du temps.

Principales questions d'entretien sur les microservices

15. Définissez le terme Test de bout en bout des microservices ?

Les tests de bout en bout dans les microservices peuvent être définis comme une technique de test utilisée pour tester le flux de l'application via une transaction commerciale. Dans une architecture de microservices, divers composants travailleront ensemble pour garantir une capacité métier ; par conséquent, les tester tous peut devenir délicat.

16. Inconvénients des microservices ?

Désavantages:

  1. Il peut y avoir plus de risques d'échec lors de la communication entre différents services.
  2. Tests complexes sur l'environnement distribué
  3. Les microservices ont toutes les complexités associées d'un système distribué.
  4. Le développeur doit résoudre le problème, comme la latence du réseau et l'équilibrage de charge.
  5. Il sera difficile de gérer un grand nombre de services.

17. Définir la surveillance sémantique ?

Dans les microservices, la surveillance sémantique, également connue sous le nom de surveillance synthétique, exécutera régulièrement un sous-ensemble de tests automatisés de l'application sur un système de production en direct. Ce processus combine généralement des tests automatisés avec une surveillance pour détecter les exigences commerciales défaillantes dans la production.

18. Énumérez les différentes stratégies de déploiement de microservices ?

    Instance de service par hôte :Il exécutera une instance de service par hôte.Déploiement sans serveur :Je vais emballer le service sous forme de fichier ZIP et le charger dans la fonction Lambda. Ici, la fonction Lambda peut être définie comme un service sans état qui exécutera automatiquement suffisamment de micro-services pour gérer toutes les requêtes.Instance de service par conteneur :Il exécutera chaque instance de service dans son conteneur spécifié.Plusieurs instances de service par hôte :Il exécutera une ou plusieurs instances de service d'une application sur un ou plusieurs hôtes physiques ou virtuels.

19. Énumérez les défis rencontrés lors de l'utilisation des microservices ?

Défis rencontrés :

  1. Automatisation des composants
  2. Maintenance des applications
  3. Communication entre différents services dans une application
  4. Gestion de la configuration
  5. Frais généraux d'opérations lourdes
  6. Défis de déploiement
  7. Défis de test et de débogage

vingt. Lister les cas où l'architecture microservice est la mieux adaptée ?

L'architecture de microservice est la mieux adaptée pour

  1. Bureau
  2. la toile
  3. Appareils mobiles
  4. Téléviseurs intelligents
  5. Portable, etc...

Questions d'entretien sur les microservices

21. Pourquoi devrions-nous opter pour l'architecture de microservices ?

Les raisons:

  1. Résilience accrue
  2. Évolutivité améliorée
  3. La capacité d'utiliser le bon outil pour une bonne tâche
  4. Délai de mise sur le marché plus rapide
  5. Débogage et maintenance plus faciles
  6. Meilleur retour sur investissement avec un coût total de possession réduit
  7. Livraison continue

22. Définir la conception axée sur le domaine ?

La conception pilotée par le domaine (DDD) préconise généralement une modélisation basée sur la réalité de l'entreprise comme pertinente pour les cas d'utilisation. Dans le cadre de la construction des applications, DDD parlera des problèmes comme des domaines. De plus, les approches DDD sont appliquées si nous implémentons des microservices complexes avec une règle métier importante.

23. Pouvez-vous énumérer certaines entreprises qui utilisent l'architecture Microservice ?

La plupart des sites Web à grande échelle tels que

  1. Twitter
  2. Netflix,
  3. Amazon est passé d'une architecture monolithique à une architecture de microservices.

24. Pourquoi les gens hésitent-ils à utiliser l'architecture Microservices ?

  1. Ils nécessitent de lourds investissements.
  2. Ils ont besoin d'une architecture lourde mise en place.
  3. Ils ont besoin d'une planification excessive pour gérer les frais généraux des opérations.
  4. Ils ont une sélection autonome du personnel.

25. Différencier Cohésion et Couplage ?

Cohésion Couplage
La cohésion parle généralement de la façon dont nous organisons le code.Le couplage parle généralement de la façon dont une chose a besoin d'un changement dans une autre.
La cohésion est une relation entre 2 ou plusieurs parties au sein d'un module.Le couplage est la relation entre le module A et le module B.

Principales questions d'entretien sur les microservices

26. Lister les caractéristiques des Microservices ?

Caractéristiques:

  1. Composantisation via les services.
  2. Organisé autour des Capacités Métiers.
  3. Des produits, pas des projets.
  4. Terminaux intelligents et canaux muets
  5. Gouvernance décentralisée.
  6. Gestion décentralisée des données.
  7. Automatisation des infrastructures.
  8. Conception pour l'échec.

27. Comment PACT fonctionnera-t-il ?

Le cadre du pacte peut être défini comme une mise en œuvre de contrats axés sur les consommateurs. Ce ne sont que de simples fichiers JSON qui définiront la structure de requête et de réponse attendue entre les deux microservices. Docker permettra aux microservices d'être indépendants de la plate-forme.

28. Définir la pyramide des tests de Mike Cohn ?

La pyramide des tests de Mike Cohn

Cette pyramide nous aide à maximiser l'automatisation à tous les niveaux de test, c'est-à-dire les tests unitaires, les tests de niveau de service, les tests d'interface utilisateur. Cette pyramide indiquera que si les tests unitaires sont plus rapides et isolés, les tests d'interface utilisateur, qui sont au plus haut niveau, prennent du temps et se concentrent sur l'intégration.

29. Qu'est-ce que RESTful ?

Les termes tels que API RESTful et microservices vont de pair lors de la création d'une application basée sur des microservices. Les API RESTful peuvent être définies comme les règles, les routines, les protocoles et les commandes ou le ciment qui intégrera les microservices individuels afin qu'ils puissent fonctionner comme une seule application.

30. Comment configurer la connexion à l'application Spring Boot ?

La connexion à l'application Spring Boot est généralement configurée en spécifiant le niveau de journalisation dans une application. Fichier de propriétés. Il est préconfiguré comme sortie de la console.

Questions d'entretien sur les microservices

31. Pouvez-vous expliquer trois types de tests pour les microservices ?

Les tests d'architecture de microservice sont généralement divisés en trois grandes catégories :

Le test de niveau inférieur : ici, nous pouvons faire des tests généraux comme les tests de performance et les tests unitaires. Ces tests sont entièrement automatisés.

Le niveau intermédiaire : ici, nous pouvons effectuer des tests exploratoires tels que les tests de résistance et les tests d'utilisabilité.

Le niveau supérieur : ici, on peut faire des tests de recette moins nombreux. Il aide les parties prenantes à connaître les différentes fonctionnalités du logiciel.

32. Qu'est-ce qu'un actionneur ?

L'actionneur est généralement utilisé pour exposer les informations opérationnelles sur une application en cours d'exécution telles que la santé, les informations, les métriques, le vidage, l'environnement, etc. Il utilisera les points de terminaison HTTP ou les beans JMX pour nous permettre d'interagir avec elle. Une fois que cette dépendance est sur un chemin de classe, plusieurs points de terminaison sont alors mis à notre disposition immédiatement.

33. Que sont les certificats client ?

Les certificats client sont principalement utilisés pour authentifier l'identité du client auprès du serveur. Il n'y a pas de cryptage des données dans le cas des certificats Client. Les certificats de serveur sont généralement basés sur PKI. Les certificats Client sont également basés sur PKI.

34. Définir conteneur ?

Récipient

Les conteneurs des microservices sont faciles à emballer, légers et conçus pour fonctionner n'importe où. Nous pouvons également déployer plusieurs conteneurs dans une seule machine virtuelle. Un microservice est généralement une application avec une seule fonction, comme le routage du trafic réseau, l'analyse d'un résultat médical ou le paiement en ligne.

35. Définir OAuth ?

OAuth 2 dans les microservices peut être défini comme un cadre d'autorisation, un concept de sécurité pour le reste de l'API, et tout dépend de la façon dont vous autorisez l'utilisateur à accéder à une ressource à partir du serveur de ressources à l'aide d'un jeton.

36. Définir CDC?

CDC peut être défini comme un contrat axé sur le consommateur. Il est généralement courant de développer des microservices afin que des systèmes externes puissent les utiliser.

37. Qu'est-ce que les tests contractuels ?

Le test de contrat garantira que les contrats explicites et implicites de l'architecture de microservice fonctionneront comme prévu. Il existe généralement deux perspectives de contrat pour tester, à savoir, le consommateur et le fournisseur.

  1. Ici, le consommateur est l'entité [application] qui utilise le microservice.
  2. Ici, le fournisseur est l'entité [application] qui fournit le service.
  3. Ces types de services fonctionnent selon certaines spécifications prédéfinies, et les tests contractuels le garantissent.
Voir également Top 100 des questions et réponses d'entrevue JavaScript

38. Pourquoi utilisons-nous Docker ?

Dans les microservices, avec Docker, on peut rendre l'application indépendante d'un environnement hôte. Puisque nous avons une architecture de microservices, nous pouvons encapsuler chacun d'eux dans des conteneurs Docker. Les conteneurs Docker sont généralement des environnements légers et isolés des ressources à travers lesquels on peut créer, expédier, maintenir et déployer l'application.

39. Pouvez-vous énumérer les moyens d'accéder aux microservices RESTful ?

Nous pouvons le faire par deux méthodes :

  1. En utilisant un modèle REST dont la charge sera équilibrée
  2. En utilisant plusieurs microservices

40. Définir les extensions réactives dans les microservices ?

La programmation réactive dans les microservices est essentiellement un mécanisme de programmation asynchrone qui mettra l'accent sur le non-blocage lors de l'exécution du programme. Il suit généralement une technique de flux de données où l'exécution sera avancée, et lorsque les données sont disponibles, l'exécution n'est jamais bloquée sur les ressources.

Questions d'entretien sur les microservices

41. Définir la loi de Conway ?

La loi de Conway dans les microservices stipule que toute organisation qui concevra un système doit produire une conception dont la structure sera une copie de la structure de communication de l'organisation. Cela a un impact très important sur la manière dont le logiciel sera construit, en particulier si les microservices et la conception pilotée par le domaine sont adoptés.

42. Pouvez-vous énumérer quelques obstacles majeurs pour les tests de microservices ?

  1. Avec l'augmentation du nombre de microservices, la complexité du système augmentera également.
  2. Les testeurs doivent avoir une compréhension approfondie de tous les processus entrants et sortants avant de commencer à écrire des scénarios de test pour les tests d'intégration.
  3. Lors de la transition d'une architecture monolithique, les testeurs doivent s'assurer qu'il n'y a pas d'interruption de la communication interne au sein des composants.
  4. Lorsque des équipes indépendantes travaillent sur diverses fonctionnalités, la collaboration peut être une tâche assez difficile. Il sera difficile de trouver une fenêtre de temps d'inactivité afin d'effectuer une série complète de tests de régression.

43. Énumérez les étapes d'un test de microservices de bout en bout ?

Pas:

  1. Vous devez définir ce que vous attendez des tests de bout en bout.
  2. Vous devez également définir la portée du système à tester.
  3. Vous devez effectuer l'authentification dans un environnement de test.
  4. Choisissez un cadre de test qui résoudra la plupart des problèmes.
  5. Tester les flux asynchrones
  6. Automatiser les tests

44. Définir le terme Contrôle continu?

Le déploiement continu dans les microservices est défini comme l'acte de déployer réellement les résultats d'un cycle CI/CD. Le but du déploiement continu est d'accélérer la sortie de nouvelles fonctionnalités sur le marché en les publiant dès qu'elles passent le test CI/CD.

45. Quelles sont les erreurs courantes commises lors de la transition vers les microservices ?

  1. Souvent, le développeur ne parvient pas à décrire les défis actuels.
  2. Les programmeurs vont réécrire les programmes qui existent déjà.
  3. Les responsabilités, le calendrier et les limites ne seront pas définis.
  4. Ils ne parviennent pas à mettre en œuvre et à déterminer une portée d'automatisation dès le début.

46. Différencier Mock & Stub ?

Moquer Bout
Une maquette peut être définie comme un objet factice dans lequel certaines fonctionnalités sont généralement définies initialement.Un Stub peut être défini comme un objet qui aidera à exécuter le test. Il fonctionnera de manière fixe dans des conditions spécifiques.
Son comportement dépend de ces fonctionnalités, qui sont ensuite testées.Ce comportement codé en dur aidera le stub à exécuter le test.

47. Comment les micro-services indépendants vont-ils communiquer entre eux ?

Cela dépend généralement des exigences de votre projet. Dans la plupart des cas, les développeurs utiliseront HTTP/REST avec le protocole JSON ou binaire. Mais, ils peuvent utiliser n'importe quel protocole de communication.

48. Pouvez-vous énumérer les principes fondamentaux de la conception des microservices ?

  1. Tout d'abord, vous devez définir une portée.
  2. Combinez le couplage lâche avec une cohésion élevée.
  3. Créez un service unique qui servira de source d'identification, comme une clé unique dans la table de la base de données.
  4. Créez une API correcte et faites particulièrement attention lors de l'intégration.
  5. Restreindre l'accès aux données et le limiter à un niveau requis.
  6. Maintenir un flux fluide entre les demandes et les réponses.
  7. Automatisez les processus pour réduire la complexité temporelle.
  8. Gardez le nombre de tables à un niveau minimum afin de réduire la complexité de l'espace.
  9. Surveillez l'architecture en permanence et corrigez si des défauts sont détectés.
  10. Les magasins de données doivent être séparés pour chaque microservice.
  11. Pour chaque microservice, il doit y avoir une version isolée.
  12. Déployez des microservices dans les conteneurs.
  13. Les serveurs doivent être traités comme sans état.

49. Que pouvez-vous déduire de la pyramide des tests de Mike Cohn ?

La pyramide des tests de Mike Cohn spécifie le type de tests automatisés requis pour tout développement logiciel. La pyramide des tests peut être définie comme une métaphore qui impliquera un regroupement de tests basés sur leur granularité. Cette pyramide indiquera quels types de tests doivent être appliqués aux différents niveaux de la pyramide.

La pyramide de test de Mike Cohn contient trois couches :

  1. Tests unitaires
  2. Tests de services
  3. Test de l'interface utilisateur.

Les points à déduire de la pyramide de Cohn sont :

  1. Plus le niveau que vous obtenez est élevé, moins vous devez passer de tests.
  2. Il faut définir des tests avec différentes granularités.

50. Qu'est-ce qu'un contexte délimité ?

Dans les microservices, chacun des contextes délimités consiste en un modèle de domaine qui représentera un sous-domaine spécifique d'une application plus vaste. Dans le contexte délimité, appliquez des modèles DDD tactiques pour définir les entités, les services de domaine et les agrégats. Nous utilisons les résultats de l'étape précédente pour identifier les microservices dans l'application.

Questions d'entretien sur les microservices

51. Définir Canary Release ?

Le déploiement Canary est également connu sous le nom de version Canary, peut être défini comme un modèle de microservices qui doit faire partie de chaque stratégie de livraison continue. Ce modèle aidera les organisations à déployer de nouvelles versions en production, d'abord pour un sous-ensemble d'utilisateurs, avant de mettre les modifications à la disposition de tous.

52. Énumérez les différents types d'informations d'identification d'une authentification à deux facteurs ?

(2FA) L'authentification à deux facteurs peut être définie comme une méthode d'établissement de l'accès au compte en ligne ou à un système informatique qui obligera l'utilisateur à fournir deux types d'informations différents. Avec l'authentification à deux facteurs, vous devrez fournir un mot de passe et également prouver votre identité d'une autre manière pour pouvoir y accéder.

Les types:

  1. Une chose que vous connaissez, comme un mot de passe ou un code PIN ou un schéma de verrouillage de l'écran.
  2. Un identifiant physique que vous pourriez avoir, comme un OTP ou un téléphone ou une carte ATM, en termes simples, tout type d'identifiant que vous pourriez avoir dans l'appareil externe ou tiers.
  3. Vos identités physiques, telles que votre authentification vocale ou votre sécurité biométrique, telles que les empreintes digitales ou le scanner oculaire

53. Définir Idempotence et comment est-elle utilisée ?

L'idempotence est généralement désignée comme un scénario dans lequel nous pouvons effectuer une tâche de manière répétitive, mais le résultat final restera constant ou similaire.

L'idempotence est le plus souvent utilisée comme source de données ou service distant de telle sorte que lorsqu'elle reçoit plusieurs ensembles d'instructions, elle ne traite qu'un seul ensemble d'instructions.

54. Définir les tests non déterministes et comment les éliminer ?

Non-Deterministic*NDT) peut être défini comme un test non fiable. Ces tests peuvent parfois réussir et parfois échouer. Lorsque ces tests échouent, ils sont réexécutés pour donner. Nous pouvons éliminer le non-déterminisme des tests de la manière suivante :

  1. Services à distance
  2. Isolement
  3. Quarantaine
  4. Asynchrone
  5. Temps
  6. Fuites de ressources

55. Définir Eureka dans les microservices ?

Eureka Server peut être défini comme une application qui contiendra les informations sur toutes les applications de service client. Chaque microservice doit s'enregistrer sur le serveur Eureka, et le serveur Eureka connaîtra toutes les applications clientes qui s'exécutent sur chaque port et adresse IP. Eureka Server est également appelé Discovery Server.

56. Définir Zuul ?

Zuul Server peut être défini comme une application API Gateway qui gérera toutes les requêtes et effectuera le routage dynamique des applications de microservice. Il fonctionnera comme une porte d'entrée pour toutes les demandes. Il est également appelé serveur Edge. Zuul est conçu pour permettre le routage dynamique, la résilience, la surveillance et la sécurité.

57. Comment équilibrer la charge côté serveur en utilisant Spring Cloud ?

L'équilibrage de charge côté serveur est effectué à l'aide de Netflix Zuul. Il est également appelé routeur basé sur JVM.

58. Définir Spring Batch Framework ?

Un Spring Batch peut être défini comme un cadre minimaliste utilisé pour exécuter des applications de traitement par lots. Spring Cloud Task peut également être défini comme un wrapper qui vous permet d'exécuter des microservices de courte durée en utilisant Spring Cloud avec Spring Boot. Spring Cloud Data Flow nous permettra de créer des tâches composées orchestrant des tâches Spring Batch en tant que Spring Cloud Tasks.

59. Comment déployer la gestion des exceptions dans les microservices ?

La gestion des exceptions n'est rien d'autre que répondre aux exceptions chaque fois qu'un programme informatique s'exécute. Une exception se produit lorsqu'un événement inattendu se produit et peut nécessiter un traitement spécial. La gestion des exceptions tente de gérer ce genre de situations afin qu'un programme ne plante pas.

Voir également Top 100 des questions et réponses d'entrevue Ansible

Pour déployer, suivez les étapes :

  1. Mettons en place un micro-service printanier de base.
  2. Ajoutons un point de terminaison de contrôleur avec un modèle de requête.
  3. Ajoutez un gestionnaire d'exceptions global. …
  4. Ajoutez une exception personnalisée ou une énumération de messages d'erreur.
  5. Remplir les messages de validation des champs.
  6. Lancez toutes les exceptions de service et de contrôleur.
  7. Test unitaire pour les validations.

60. Qu'est-ce que Tasklet ?

Dans le lot Spring, le Tasklet peut être défini comme une interface appelée pour effectuer une seule tâche, telle que le nettoyage ou la configuration des ressources avant ou après l'exécution de toute étape.

Questions d'entretien sur les microservices

61. Qu'est-ce qu'un bloc ?

Spring Batch utilisera un style de traitement « orienté vers les blocs » dans son implémentation la plus courante. Le traitement orienté bloc fait souvent référence à la lecture des données une à la fois et crée des blocs qui sont écrits dans les limites de la transaction.

62. Comment faire des tests de sécurité des Microservices ?

L'application Microservices peut être définie comme une collection de petits modules fonctionnels indépendants qui seront développés dans divers langages de programmation, auront diverses sources de données et s'exécuteront sur différents systèmes d'exploitation. Cela fera du test des microservices une tâche très difficile. Les différentes pièces ou modules doivent être testés indépendamment. Il existe généralement trois procédures courantes pour cela.

  1. Adaptabilité : Les protocoles de sécurité doivent être adaptables aux intrusions malveillantes.
  2. Numérisation de code : pour s'assurer que chaque ligne de code est exempte de bogues et est répliquée.
  3. Flexibilité : Les protocoles de sécurité doivent être flexibles selon les besoins du système.

Principales questions d'entretien sur les microservices

63. Comment créer des State Machines à partir de Microservices ?

Chaque microservice possède sa propre base de données et ce sont des programmes déployables indépendamment. Cela permet la création de State Machines où nous pouvons spécifier différents états et événements pour un microservice spécifique.

64. Où utilisons-nous habituellement l'annotation de test WebMVC ?

L'annotation WebMvcTest est principalement utilisée pour les tests unitaires des applications Spring MVC, où l'objectif du test se concentre principalement sur les composants Spring MVC.

65. Énumérez les principales différences entre l'architecture SOA et les microservices ?

SQA Architecture de microservices
Il accorde de l'importance à la réutilisation des fonctionnalités métier.Elle donne de l'importance à la notion de contexte délimité.
Il suivra l'approche de l'architecture de partage autant que possible.Il suit généralement l'approche de l'architecture de partage le plus petit possible.
Il prend en charge plusieurs protocoles de messagerie.Il utilise principalement des protocoles légers comme HTTP/REST, etc.
Il utilise Enterprise Service Bus (ESB) pour les communications.Il utilise un système de messagerie simple.

66. Qu'est-ce que le langage ubiquitaire ?

Le langage omniprésent peut être défini comme un langage commun utilisé par les développeurs et les utilisateurs d'un domaine particulier où le domaine peut être expliqué facilement.

Le langage omniprésent doit être limpide pour que nous puissions mettre tous les membres de l'équipe au même niveau et que nous puissions également traduire de manière à ce qu'une machine comprenne.

67. Quels sont les problèmes résolus par Spring Cloud ?

  1. La complexité associée aux systèmes distribués
  2. Capacité à gérer la découverte de services.
  3. Problèmes de redondance qui se produiront dans les systèmes distribués.
  4. Il améliore la répartition des charges de travail sur diverses ressources informatiques, comme un cluster d'ordinateurs, des unités centrales de traitement, des liaisons réseau.
  5. Cela réduira les problèmes de performances causés par divers frais généraux opérationnels.

68. Qu'est-ce qu'une transaction distribuée ?

La transaction distribuée peut être définie comme un événement unique entraînant la mutation de deux ou plusieurs sources de données distinctes qui ne peuvent pas être validées de manière atomique. En termes de microservices, c'est encore plus complexe car chaque service est une unité de travail et les multiples services doivent travailler ensemble pour assurer le succès de l'entreprise.

69. Définir DRY dans l'architecture Microservices ?

SEC dans les microservices signifie Ne vous répétez pas. Il promeut le concept de réutilisation du code. Cette volonté; aboutissent au développement et au partage des bibliothèques et aboutissent à un couplage étroit.

70. Comment faire des tests interfonctionnels ?

Les tests interfonctionnels sont généralement une vérification des exigences non fonctionnelles, c'est-à-dire les exigences qui ne peuvent pas être implémentées comme une fonctionnalité normale.

Questions d'entretien sur les microservices

71. Décrivez le rôle d'un architecte dans l'architecture Microservices ?

  1. Il / elle doit décider des grandes lignes de la disposition d'un système logiciel global.
  2. Ils aident à décider du zonage des composants afin de garantir que les composants sont mutuellement cohérents et ne sont pas étroitement couplés.
  3. Ils doivent coder avec les développeurs et apprendre les défis auxquels ils sont confrontés au quotidien.
  4. Ils devraient faire des recommandations pour certains outils et technologies aux équipes de développement de microservices.
  5. Ils doivent assurer la gouvernance technique afin que les équipes dans leur développement technique suivent les principes du Microservice.

72. Comment implémenter Spring Security dans une application Spring Boot ?

Vous devez ajouter un démarreur spring-boot-starter-security dans le fichier pom.xml. Vous devez également créer une classe de configuration Spring qui remplacera la méthode requise lors de l'extension d'un WebSecurityConfigurerAdapter afin d'assurer la sécurité dans une application.

73. Comment configurer Service Discovery ?

Eureka by Netflix est l'un de ces moyens de configurer la découverte de services. C'est un processus sans tracas, et il ne pèse pas beaucoup sur une application, et il prend également en charge les n-types d'applications Web.

La configuration d'Eureka implique généralement deux étapes : la configuration du client et la configuration du serveur.

  1. La configuration du client se fait facilement en utilisant les fichiers de propriétés. Dans le chemin de classe, Eureka recherchera eureka-client.properties., et il recherchera également les remplacements causés par l'environnement dans le fichier de propriétés, qui est spécifique à l'environnement.
  2. Pour la configuration du serveur, vous devez d'abord configurer le client. Une fois la configuration terminée, le serveur lancera un client qui sera utilisé pour trouver d'autres serveurs. Le serveur Eureka, par défaut, utilisera la configuration Client pour trouver un serveur homologue.

73.Pourquoi les gens hésitent-ils à utiliser les microservices ?

  1. Nécessite un investissement lourd
  2. Architecture lourde mise en place.
  3. Planification excessive pour la gestion des frais généraux des opérations
  4. Sélection autonome du personnel

74. Comment pouvons-nous configurer la journalisation de Spring Boot Application ?

Spring Boot a ajouté la prise en charge de Log4J2, Logback et Java Util Logging. Il est préconfiguré en tant que sortie console. Il est configuré en spécifiant uniquement le logging.level dans un fichier application.properties.

logging.level.spring.framework=Débogage

75. Comment faire évoluer un système basé sur des microservices ?

  1. Nous faisons évoluer le système en augmentant le nombre d'instances de service en apportant plus de conteneurs.
  2. Nous pouvons appliquer au cache au niveau de la couche microservice, ce qui est facile à gérer comme une invalidation du cache, et cela se fait très facilement car le microservice est une source unique de vérité.
  3. La mise en cache doit être introduite au niveau de la couche API Gateway, où nous définissons les règles de mise en cache, telles que le moment où invalider le cache.
  4. Nous fermons également quelques conteneurs lorsque les besoins sont moindres. C'est-à-dire, connu sous le nom de réduction.

76. Définir la persistance polyglotte ?

La persistance polyglotte consiste à utiliser diverses bases de données pour différents besoins commerciaux au sein d'un seul système distribué. Nous avons différents produits de base de données disponibles sur le marché, chacun pour un besoin commercial particulier, par exemple :

  1. SGBDR
  2. MongoDB
  3. Redis
  4. Néo4j
  5. Cassandre

77. Qu'est-ce qu'une application à 12 facteurs ?

L'application Twelve-Factor est une méthodologie récente pour écrire des applications Web qui s'exécutent en tant que service.

  1. Codebase : Une base de code, nous pouvons avoir plusieurs déploiements.
  2. Dépendances : le manifeste déconseille de s'appuyer sur des logiciels ou des bibliothèques sur une machine hôte. Chaque dépendance doit être placée dans le fichier pom.xml ou build.gradle.
  3. Config : stockez la configuration dans l'environnement.
  4. Services de support : traitez les services de support comme des ressources associées. Un microservice doit traiter les services externes de la même manière, que vous les gériez ou qu'une autre équipe soit gérée.
  5. Release & Run : il sépare strictement les étapes de construction et d'exécution.
  6. Processus : il exécutera l'application en tant qu'un ou plusieurs processus sans état.
  7. Liaison de port : exportez les services via la liaison de port. Il s'agit d'avoir l'application autonome au lieu de s'appuyer sur une instance en cours d'exécution d'un serveur d'applications.
  8. Concurrence : évolutivité horizontale via le modèle de processus ; dans l'application à douze facteurs, les processus sont toujours un citoyen de première classe.
  9. Disponibilité : Les processus de l'application à douze facteurs sont rendus jetables, ce qui signifie qu'ils peuvent être démarrés ou arrêtés à tout moment.
  10. Parité Dev/Prod : cela signifie que le développement, la mise en scène et la production sont aussi similaires que possible.
  11. Journaux : ici, nous traitons les journaux comme des flux d'événements en envoyant tous les journaux uniquement à stdout.
  12. Processus d'administration : ici, nous exécutons des tâches d'administration/de gestion en tant que processus ponctuels. Par exemple, une migration de base de données doit être exécutée à l'aide d'un processus distinct.

78. Doit-on préférer un style de communication synchrone ou asynchrone dans les Microservices ?

  1. Vous choisissez d'utiliser une communication asynchrone lors de la gestion des requêtes HTTP POST/PUT en utilisant des mécanismes de file d'attente fiables tels que RabbitMQ, AMQP, etc.
  2. Parfois, il est possible d'utiliser la communication synchrone pour le modèle d'agrégation au niveau de la passerelle API. Mais cette agrégation ne doit inclure aucune logique métier autre que l'agrégation.

79. À quelle fréquence un microservice doit-il être mis en production ?

Il n'y a pas de réponse parfaite à ce genre de question; il pourrait y avoir une libération toutes les 10 minutes, ou toutes les heures, ou une fois par semaine. Cela dépendra de l'étendue de l'automatisation dont nous disposons à différents niveaux du cycle de vie du développement logiciel - automatisation de la construction, automatisation du déploiement, automatisation des tests et surveillance. Et cela dépend également des besoins de l'entreprise, comme les modifications mineures et à faible risque que vous souhaitez apporter dans une seule version.

80. Comment éliminer le non-déterminisme dans les tests ?

Les tests non déterministes (NDT) ne sont pas des tests fiables. Par conséquent, il peut arriver qu'ils puissent réussir, et évidemment, ils peuvent également échouer. Lorsqu'ils échouent, ils doivent à nouveau courir pour passer.

Voici quelques façons de supprimer le non-déterminisme des tests :

  1. Quarantaine
  2. Asynchrone
  3. Services à distance
  4. Isolement
  5. Temps
  6. Fuites de ressources

Bonne chance avec votre entretien Microservice, et nous espérons que nos questions et réponses d'entretien Microservices vous ont été utiles. Vous pouvez également consulter notre Questions et réponses de l'entretien MongoDB et Questions d'entretiens chez Java qui pourraient vous être utiles.