Architecture Microservices et Scalabilité

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

Quel est un des principaux avantages des microservices en matière de scalabilité ?

  • Augmente la complexité sans raison.
  • Réduit le gaspillage de ressources en ne faisant évoluer que ce qui est nécessaire. (correct)
  • Permet de déployer plusieurs instances de l'application monolithique.
  • Évite tout type d'instance supplémentaire.

Comment les microservices améliorent-ils la vitesse de développement ?

  • En permettant à chaque équipe de travailler sur des services indépendants. (correct)
  • En imposant une architecture monolithique stricte.
  • En utilisant un seul langage de programmation pour tous les services.
  • En ralentissant le processus d'intégration continue.

Quel défi majeur est associé à l'architecture microservices ?

  • Facilité de gestion de toutes les transactions.
  • Absence de besoin de catalogage.
  • Simplicité de mise en œuvre des mises à jour.
  • Complexité accrue par rapport aux systèmes monolithiques. (correct)

Quelle assertion est vraie concernant la gouvernance dans une architecture microservices ?

<p>Chaque équipe suit son propre calendrier et feuille de route. (C)</p> Signup and view all the answers

Quel est un risque associé aux transactions distribuées dans les microservices ?

<p>Elles nécessitent une synchronisation et séquençage rigoureux. (B)</p> Signup and view all the answers

Quelle caractéristique distingue les projets non-cloud des projets cloud?

<p>Les projets non-cloud sont uniques et soigneusement entretenus. (B)</p> Signup and view all the answers

Comment les projets cloud traitent-ils les erreurs par rapport aux projets non-cloud?

<p>Ils remplacent immédiatement l'entité défaillante par une autre. (A)</p> Signup and view all the answers

Quelle assertion est vraie concernant la dépendance à l'environnement pour les projets cloud?

<p>Les projets cloud ont peu ou pas de dépendance à l'environnement. (C)</p> Signup and view all the answers

Comment les projets sont-ils symboliquement comparés dans le contenu?

<p>Les projets non-cloud sont symbolisés par des animaux de compagnie, tandis que les projets cloud sont comparés au bétail. (B)</p> Signup and view all the answers

Quel terme décrit le niveau d'importance affective des projets non-cloud?

<p>Élevé et personnel (A)</p> Signup and view all the answers

Quel est le rôle de Hystrix dans le contexte des microservices ?

<p>Éviter les défaillances en cascade (A)</p> Signup and view all the answers

Quel est un inconvénient potentiel lié à l'utilisation de nombreuses modifications simultanées dans le code ?

<p>Difficulté à diagnostiquer des problèmes tels que des fuites de mémoire (D)</p> Signup and view all the answers

Quelle est la fonction principale de Zuul dans l'architecture des microservices ?

<p>Servir d'API Gateway pour centraliser les catalogues d'API (D)</p> Signup and view all the answers

Quel est l'objectif principal du développement piloté par le domaine (DDD) ?

<p>Aligner la conception du logiciel avec le domaine commercial central (C)</p> Signup and view all the answers

Quel problème peut survenir sans un point de terminaison centralisé comme Zuul ?

<p>Difficulté de gestion des API (C)</p> Signup and view all the answers

Quel type d'erreur le système Hystrix cherche-t-il à éviter dans l'architecture des microservices ?

<p>Les défaillances uniques de point (SPOF) (B)</p> Signup and view all the answers

Quelle conséquence peut avoir une latence réseau dans un système de microservices ?

<p>Congestion et échecs logiques (D)</p> Signup and view all the answers

Quel est l’un des aspects importants de l’architecture microservices selon le contenu ?

<p>Éviter les couplages entre les services (A)</p> Signup and view all the answers

Quelle est la première étape pour construire un microservice à partir d'une application monolithique?

<p>Analyser le monolithe (D)</p> Signup and view all the answers

Quelles méthodes sont couramment utilisées pour la communication entre microservices?

<p>RESTful APIs et gRPC (D)</p> Signup and view all the answers

Pourquoi le découplage des données est-il important lors de la création de microservices?

<p>Pour faciliter la synchronisation des données (A)</p> Signup and view all the answers

Qu'est-ce qui doit être établi lors de la définition des limites de service?

<p>Les responsabilités de chaque microservice (A)</p> Signup and view all the answers

Quelle option représente une méthode de décomposition de la base de données dans un environnement de microservices?

<p>Créer des bases de données séparées pour chaque microservice (A)</p> Signup and view all the answers

Quel est un des avantages de créer des bases de code séparées pour chaque microservice?

<p>Faciliter le déploiement et la mise à l'échelle (C)</p> Signup and view all the answers

Quel est le rôle principal des API dans la création de microservices?

<p>Faciliter la communication entre les microservices (B)</p> Signup and view all the answers

Quel aspect doit être examiné lors de l'analyse d'une application monolithique?

<p>L'architecture existante (B)</p> Signup and view all the answers

Quel est le rôle principal d'un orchestrateur dans ce processus de gestion de projet agile ?

<p>Déployer l'application (B)</p> Signup and view all the answers

Quel environnement est généralement destinéaux tests avant la production ?

<p>QA (B)</p> Signup and view all the answers

Quel est l'étape qui suit le commit du code dans le cycle de développement ?

<p>Déploiement d'environnement (C)</p> Signup and view all the answers

Quelle étape implique le stockage des artefacts de l'application ?

<p>Référentiel des binaires (A)</p> Signup and view all the answers

Quel environnement n'est pas mentionné comme étape dans le graphique ?

<p>DEV (B)</p> Signup and view all the answers

Qui sont les utilisateurs finaux dans ce contexte de déploiement ?

<p>Les clients utilisant l'application (B)</p> Signup and view all the answers

Quel est l'objectif principal de l'automatisation du déploiement ?

<p>Réduire les erreurs humaines (B)</p> Signup and view all the answers

Quelle étape a lieu après la construction de l'application ?

<p>Lancer des tests (D)</p> Signup and view all the answers

Quel environnement est orienté vers le préproduction dans ce cycle ?

<p>PREPROD (B)</p> Signup and view all the answers

Quelle est la première étape du cycle mentionné dans le processus de déploiement ?

<p>Commit de code (D)</p> Signup and view all the answers

Quel énoncé décrit correctement le cloud privé ?

<p>Une solution cloud dans un centre de données privé avec son propre catalogue de services. (B)</p> Signup and view all the answers

Quelles sont les caractéristiques d'une région dans le cloud ?

<p>Plusieurs centres de données isolés les uns des autres. (A)</p> Signup and view all the answers

Quel terme décrit le modèle qui combine des centres de données sur site avec le cloud privé et/ou public ?

<p>Cloud hybride (B)</p> Signup and view all the answers

Quel est l'objectif principal de la surveillance dans un environnement de microservices ?

<p>Assurer le suivi des performances et détecter les anomalies. (C)</p> Signup and view all the answers

Quels sont les avertissements et les métriques utilisés pour surveiller un système ?

<p>Des indicateurs et notifications qui aident à la gestion des performances. (B)</p> Signup and view all the answers

Quelle est la définition d'une solution cloud dans un centre de données privé ?

<p>Une infrastructure cloud qui appartient uniquement à une seule organisation. (A)</p> Signup and view all the answers

Pourquoi est-il important de choisir une région dans le cloud ?

<p>Pour s'assurer que les données ne quittent pas leur région sans autorisation. (A)</p> Signup and view all the answers

Quel est le rôle principal du suivi des performances en cloud ?

<p>Surveiller et optimiser l'utilisation des ressources. (C)</p> Signup and view all the answers

Flashcards

Évolutivité (Scalabilité)

La capacité d'adapter les ressources uniquement aux besoins, réduisant ainsi le gaspillage.

Vitesse de développement

Des services plus petits et indépendants permettent aux équipes de déployer plus rapidement des mises à jour.

Optimisation & Compatibilité

La possibilité d'utiliser plusieurs langages de programmation simultanément pour optimiser les performances et la fiabilité.

Isolement des pannes (Fault Isolation)

Les pannes d'un service n'impactent pas l'ensemble de l'application.

Signup and view all the flashcards

Architecture décentralisée

La gestion des microservices est décentralisée, chaque équipe gérant ses propres services.

Signup and view all the flashcards

Projets Non-Cloud : "Animaux de compagnie"

Dans les projets non-cloud, les infrastructures sont uniques, configurées manuellement et nécessitent une attention particulière. C'est comme avoir un animal de compagnie, que vous nourrissez et soignez avec attention.

Signup and view all the flashcards

Projets Cloud : "Bétail"

Dans les projets cloud, les infrastructures sont standardisées et remplaçables. Elles sont considérées comme des "bétails" car elles sont interchangeables et facilement gérables.

Signup and view all the flashcards

Modèle de responsabilisation partagé

Un modèle de responsabilisation partagé signifie que les responsabilités sont partagées entre le fournisseur de services cloud et le client. Le fournisseur est responsable de la sécurité du cloud, tandis que le client est responsable de la sécurité des données et des applications.

Signup and view all the flashcards

Sécurité du cloud

La sécurité du cloud est la responsabilité du fournisseur de services cloud.

Signup and view all the flashcards

Sécurité des données et applications

La sécurité des données et des applications est la responsabilité du client.

Signup and view all the flashcards

Cloud public

Un environnement informatique partagé où les ressources sont fournies par un fournisseur tiers et accessibles via Internet.

Signup and view all the flashcards

Cloud privé

Un environnement informatique géré et contrôlé par une organisation, généralement au sein de son propre centre de données.

Signup and view all the flashcards

Cloud hybride

Une combinaison de clouds publics et privés, permettant aux organisations d'exploiter les avantages des deux.

Signup and view all the flashcards

Région cloud

Une région géographique où les fournisseurs de cloud concentrent leurs infrastructures.

Signup and view all the flashcards

Zones de disponibilité

Des centres de données distincts situés à proximité géographique, offrant une redondance et un faible temps de latence.

Signup and view all the flashcards

Cloud Computing

Une configuration d'infrastructure informatique où les services sont fournis via Internet. Les utilisateurs accèdent aux ressources via des interfaces web ou des API.

Signup and view all the flashcards

Observabilité

La capacité des systèmes à collecter, analyser et agir sur des données opérationnelles afin de comprendre le comportement et l'état du système.

Signup and view all the flashcards

Métriques, alertes et suivi des performances

Des outils utilisés pour surveiller l'état du système et détecter les anomalies.

Signup and view all the flashcards

Système de gestion des applications

Un système de gestion d'applications qui gère le cycle de vie complet de l'application, de la construction à la mise en production.

Signup and view all the flashcards

Référentiel de code source

Un référentiel unique pour stocker et partager le code source des applications.

Signup and view all the flashcards

Orchestrateur

Un outil qui orchestre le processus de build et de mise en production de l'application.

Signup and view all the flashcards

Tests unitaires

Un ensemble de tests automatisés pour vérifier le bon fonctionnement du code source.

Signup and view all the flashcards

Tests de qualité

Un ensemble de tests automatisés pour valider la qualité de l'application.

Signup and view all the flashcards

Build

Le processus de création d'un fichier exécutable ou installable à partir du code source.

Signup and view all the flashcards

Déploiement d'application

Le processus de déploiement de l'application sur un environnement cible.

Signup and view all the flashcards

Environnement d'intégration

Un environnement où les tests d'intégration sont exécutés.

Signup and view all the flashcards

Automatisation du déploiement

Un système de gestion des environnements de test qui permet d'automatiser les tests.

Signup and view all the flashcards

Environnements G2S

Un ensemble d'environnements de test qui permettent de tester l'application dans différentes conditions.

Signup and view all the flashcards

Développement piloté par le domaine (DDD)

Une approche de développement logiciel qui s'aligne sur le domaine métier principal. Elle implique une collaboration étroite avec les experts du domaine pour créer un langage et un modèle partagés représentant les concepts et règles métier.

Signup and view all the flashcards

Microservices

Un ensemble de services distincts et indépendants qui communiquent entre eux via des API. Chaque service représente une partie distincte de l'application et peut être développé, déployé et mis à l'échelle indépendamment des autres.

Signup and view all the flashcards

Résilience

Une approche qui vise à empêcher les erreurs dans un service d'affecter d'autres services en isolant les dépendances entre eux.

Signup and view all the flashcards

Passerelle API

Une couche de proxy qui centralise l'accès aux API des microservices. Elle permet de gérer le trafic, la sécurité, l'authentification et d'autres aspects de l'API.

Signup and view all the flashcards

Hystrix

Un moyen de garantir la disponibilité et les performances des microservices en cas de panne.

Signup and view all the flashcards

Gestion des erreurs

Un mécanisme pour gérer les erreurs et les exceptions dans les microservices. Il fournit des outils pour détecter, diagnostiquer et corriger les problèmes.

Signup and view all the flashcards

Surveillance

Un processus pour surveiller l'état et les performances des microservices. Il comprend la collecte, l'analyse et l'affichage de données relatives à l'utilisation, la performance et les erreurs.

Signup and view all the flashcards

Journalisation

Un processus pour enregistrer les événements et les actions qui se produisent dans les microservices. Il permet de déboguer, de diagnostiquer et d'audit des événements.

Signup and view all the flashcards

Analyser le monolithe

Comprendre l'architecture, les dépendances et les fonctionnalités de l'application monolithique existante.

Signup and view all the flashcards

Identifier les capacités métier

Identifier les fonctionnalités distinctes de l'application monolithique. Elles peuvent être des fonctionnalités, modules ou services qui peuvent être séparés logiquement.

Signup and view all the flashcards

Définir les frontières des services

Définir des frontières claires pour chaque microservice. Identifier les responsabilités de chaque microservice et s'assurer qu'elles sont cohésives et bien définies.

Signup and view all the flashcards

Découplage des données

Examiner les dépendances de données et décider comment les données seront partagées entre les microservices. Cela peut nécessiter des réplications de données, des synchronisations de données et des bases de données séparées pour chaque microservice.

Signup and view all the flashcards

Protocoles de communication

Définir les protocoles de communication et les API entre les microservices. RESTful APIs, gRPC ou les files d'attente de messages sont couramment utilisés pour la communication inter-services.

Signup and view all the flashcards

Séparer les référentiels de code

Créer différents référentiels pour chaque microservice. Cela peut impliquer d'extraire le code et les fonctionnalités pertinents du monolithe dans des référentiels individuels ou en tant que packages dans une stratégie de monoréférentiel.

Signup and view all the flashcards

Décomposer la base de données

Si l'application monolithique s'appuie sur une seule base de données, il peut être nécessaire de diviser la base de données en bases de données plus petites ou en schémas au sein d'une base de données pour chaque microservice.

Signup and view all the flashcards

Implémenter la logique des services

Développer la logique métier pour chaque microservice.

Signup and view all the flashcards

Study Notes

Microservices & Cloud Computing - Course Notes

  • Course: Microservices & Cloud Computing
  • Dates: 20/11/2024 - 21/11/2024
  • Institution: ESIEA - 4a
  • Presenters: Kevin Navarri, Thomas Desrut, Julien Trouillet
  • Topic Overview: The course covers various cloud concepts, including microservices architecture, essential patterns, security, deployment, maintenance, logging, monitoring, and cloud computing introductions.

Agenda

  • Presentation 1: Introduction to Information Systems (SI)
  • Presentation 2: Microservices & Cloud Computing (this session)
  • Presentation 3: Cloud Architectures
  • Presentation 4: Cloud Scalability

Agenda - Microservices & Cloud Computing

  • About Us: Introduction to the presenters and Capgemini
  • Introduction to Microservices: (Details of this section)
  • Essential Microservices Patterns: (Details of this section)
  • Securing Microservices: (Details of this section)
  • Deploying and Maintaining Microservices: (Details of this section)
  • Logging: (Details of this section)
  • Monitoring: (Details of this section)
  • Introduction to Cloud Computing: (Details of this section)

Monoliths and Their Limitations

  • Definition: A monolithic application combines all modules into one program.
  • Benefits: Easy deployment, managed complexity, centralized testing.
  • Limitations: Costly scalability, difficulty in updating specific components, inability to scale individual parts of the application, and more.

Definition and Properties of a Microservice

  • Definition: A microservice implements distinct features or functionality as a small, self-contained application.
  • Key Properties:
    • Modularity: Each microservice represents a specific business function.
    • Autonomy: Independent development and deployment of each service.
    • Data Decentralization: Each service can have its own database for data isolation.

Benefits of Microservices

  • Scalability: Only the necessary services are scaled, reducing resource waste.
  • Development Speed: Independent services enable faster deployment cycles.
  • Optimization/Compatibility: Allows use of different languages/technologies.
  • Fault Isolation: Failures in one service do not affect the entire application.

"Decentralized" Architecture: Governance & Catalog

  • Shift: From centralized to decentralized governance in microservices.
  • Monoliths: Centralized governance for a single application.
  • Micro Services: Governance per service, allowing each team to have its own schedule.
  • Service Catalog: A repository of available services.
  • Pitfalls: Increased complexity and issues with distributed transactions for rollback.

Notable Example: Netflix with AWS

  • Challenges addressed: Scalability, data management in a massive distributed system, and resolving memory leaks due to the complexity of the codebase.
  • Components: Explanation of (Zuul - Proxy Layer, Platform zone, API).

Business-Driven Orientation: What is DDD

  • Domain-Driven Development (DDD): Aligning software design with the core business domain, ensuring that business needs are incorporated during development.
  • Ubiquitous Language: Shared, precise language between developers and domain experts.
  • Bounded Contexts: Dividing complex systems into sub-domains to avoid complexity issues.

Circuit Breaker

  • Definition: A design pattern used to prevent cascading failures in a system.
  • Mechanism: When a service fails repeatedly, the circuit "opens" and stops requests to that service.
  • Implementation: Commonly implemented with tools such as Hystrix, Resilience4j.

Retry Pattern

  • Strategies:
    • Fixed Delay: Using a constant delay between retry attempts.
    • Incremental Delay: Increasing the delay with each retry attempt.
    • Exponential Backoff: Exponentially increasing the delay for each attempt.

Event Broker Pattern

  • Intermediary: Event Broker manages events between producers and consumers.
  • Key Features:
    • Event Routing: Delivering events to appropriate consumers.
    • Scalability: Handling events in parallel efficiently.
    • Loose Coupling: Independent components that can be added, removed or changed without harming the system.

Authentication vs. Authorization

  • Authentication: Verifying user identity (e.g., password, token).
  • Authorization: Determining access permissions for an authenticated user.

SSO and JWT Patterns

  • Single Sign-On (SSO): Access multiple applications with a single login.
  • OAuth 2.0: Authorization protocol for granting limited access.
  • OpenID Connect (OIDC): Identity layer on top of OAuth, adds user identity and profile information and security.

OAuth Pattern

  • Flow: Explanation for how third-party applications can access user data on other platforms, without requiring users to provide credentials.

OIDC Pattern

  • Flow: Detailed steps and components involved in the OIDC flow for authentication and authorization.

Important Elements in CI/CD and DevOps

  • CI/CD (Continuous Integration/Continuous Delivery): Automates software integration, building, testing, and deployment processes.
  • DevOps: A set of practices that aims at integrating software development and operations teams to improve efficiency and collaboration.
  • Importance of tooling: The critical role of using DevOps tools during this process.

Simple CI/CD for Java Projects

  • Tools used: Illustration of common tools used in a simple CI/CD pipeline setup, explaining their roles and purposes during development.

Complex CI/CD for Bank Projects

  • Challenges: Explanation of the complexities in implementing a CI/CD pipeline for a bank project, including the different environments (development, testing, production).
  • Tools: Illustration of a more complex implementation of a CI/CD pipeline, including many of the services required.

Centralized Logging Tools (ELK Stack)

  • Component Breakdown: Explanation of Elasticsearch, Logstash, and Kibana, and their roles in centralized logging.
  • Use Case: How these tools help aggregate logs from multiple services.

Importance of Logs for Diagnostics and Issue Resolution

  • Benefits: Importance of logs as diagnostic tool for investigating issues and tracing events.
  • Example Logs: Demonstration examples of logs and their uses to troubleshoot problems in a software application.

Introduction to Monitoring Tools

  • Tools: Explanation of Grafana, Prometheus, and Splunk, their specializations in system monitoring and visualization.
  • Use Case: How these tools help visualize data and identify potential issues or problems.

Importance of Observability: Metrics, Alerts, Performance Tracking

  • Metrics: Collecting data (like CPU usage) in order to understand how a system behaves in production.
  • Alerts: Defining thresholds or parameters that need to be sent to a corresponding team when a problem is detected.
  • Performance Tracking: Monitoring to make sure the system is functioning and performing as expected.

I Heard About Public and Private Cloud, IaaS, PaaS & SaaS

  • Different Cloud Types: Public, Private, Hybrid explanation of these types.
  • IaaS: Infrastructure-as-a-service.
  • PaaS: Platform-as-a-service.
  • SaaS: Software-as-a-service.
  • Cloud Service Provider Examples: Explanation and illustration of major cloud service provider examples like AWS, Azure and Google Cloud.

Where is the Cloud?

  • Global Infrastructure: Explanation of how cloud providers spread their services around the world in different Regions.
  • Availability Zones: Explanation of how multiple geographically separated data centers give redundancy and low latency.

A Cloud Service Is...

  • Key characteristics:
    • On-demand IT services
    • Automated deployment
    • Elasticity of resources
    • Pay-per-use

Differences Between Non-Cloud and Cloud Projects

  • Project Management: Explanations on handling "pet" projects versus "cattle" projects in cloud environments.

Liabilities (Clouder vs. Client)

  • Shared Responsibility: Distinction of responsibilities from the service provider and the customer when using the cloud.

Additional Information

  • Contact Information: List of contact info for the instructors.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

More Like This

Microservices Architecture Fundamentals
16 questions
Microservices Architecture Overview
24 questions
Use Quizgecko on...
Browser
Browser