Architecture Logicielle et Monolithes

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

Pourquoi les monolithes ne sont-ils pas adaptés à l'évolutivité?

  • Ils ne permettent pas la séparation des modules. (correct)
  • Ils créent des dépendances entre les équipes de développement.
  • Ils nécessitent trop de ressources pour fonctionner.
  • Ils sont trop complexes à gérer.

Quel est l'avantage principal de passer à une architecture orientée services?

  • Elle réduit les coûts d'infrastructure.
  • Elle élimine complètement les erreurs.
  • Elle facilite la maintenance du code. (correct)
  • Elle regroupe toutes les fonctionnalités en un seul endroit.

Quels modules seraient séparés dans une architecture service après avoir rompu un monolithe?

  • Module de livraison et module d'achats. (correct)
  • Module d'achats et module de comptabilité. (correct)
  • Module de comptabilité et module de stock.
  • Module de livraison et module de stock. (correct)

Quel est l'inconvénient principal d'une instance unique sans redondance ?

<p>Pas de capacité de récupération en cas d'échec (B)</p> Signup and view all the answers

Qu'est-ce qui caractérise une architecture monolithique?

<p>Tous les composants sont interconnectés. (C)</p> Signup and view all the answers

Qu'est-ce qui restreint les choix technologiques pour les composants individuels ?

<p>Le modèle d'instance unique (A)</p> Signup and view all the answers

Quel service permet de gérer des bases de données de manière entièrement gérée ?

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

Quelle approche est souvent prise pour améliorer l'évolutivité d'une application?

<p>Implémenter une architecture de microservices. (D)</p> Signup and view all the answers

Quel service d'Amazon est mentionné comme une option de base de données auto-gérée ?

<p>Amazon EC2 (C)</p> Signup and view all the answers

Quelle caractéristique est associée à l'incapacité à réduire la taille des composants de manière indépendante ?

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

Quel aspect représente un risque dans un scénario où toutes les ressources sont concentrées dans une seule instance ?

<p>Échec potentiel du système entier (C)</p> Signup and view all the answers

Quelle serait une conséquence d'un modèle d'architecture sans échec ?

<p>Perte de données en cas de panne (C)</p> Signup and view all the answers

Qu'est-ce qu'un équilibre de charge d'application permet de faire?

<p>Garantir la haute disponibilité des instances (B)</p> Signup and view all the answers

Quel est l'une des avantages des vérifications de santé dans un équilibre de charge d'application?

<p>S'assurer que seules les instances saines reçoivent le trafic (C)</p> Signup and view all the answers

Qu'est-ce que la persistance de session permet dans une architecture d'équilibre de charge?

<p>Conserver la connexion à un serveur pour un utilisateur spécifique (B)</p> Signup and view all the answers

Quel protocole est pris en charge par l'équilibrage de charge d'application pour améliorer la performance?

<p>HTTP/2 (C)</p> Signup and view all the answers

Quel rôle joue Amazon Route 53 dans une architecture de répartition de charge?

<p>Il gère le routage du trafic vers les ressources appropriées (A)</p> Signup and view all the answers

Pourquoi est-il important d'avoir des zones de disponibilité dans une architecture cloud?

<p>Pour assurer la résilience et la disponibilité des services (B)</p> Signup and view all the answers

Quelle fonctionnalité permet l'équilibre de charge d'application de gérer le trafic basé sur le contenu?

<p>Routage basé sur le contenu (A)</p> Signup and view all the answers

Quelle est l'importance du monitoring et logging dans un équilibre de charge d'application?

<p>Améliorer la qualité de l'expérience utilisateur (D)</p> Signup and view all the answers

Quel type d'application est particulièrement adapté à l'utilisation d'un équilibre de charge d'application?

<p>Applications basées sur des conteneurs (C)</p> Signup and view all the answers

Quelle option décrit le service Amazon DynamoDB?

<p>Base de données NoSQL entièrement gérée avec des options de tarification à la demande. (C)</p> Signup and view all the answers

Quelle fonction n'est pas associée à Amazon DynamoDB?

<p>Transactions complexes. (B)</p> Signup and view all the answers

Comment Amazon DynamoDB garantit-il sa tolérance aux pannes?

<p>Par une architecture entièrement distribuée. (C)</p> Signup and view all the answers

Que signifie 'tarification provisionnée' dans le contexte d'Amazon DynamoDB?

<p>L'utilisateur doit prédire et payer pour les ressources nécessaires à l'avance. (A)</p> Signup and view all the answers

Quel est le principal avantage d'utiliser des tables globales dans DynamoDB?

<p>Accès à des données à faible latence dans plusieurs régions. (D)</p> Signup and view all the answers

À quoi sert principalement le service de migration de base de données AWS DMS?

<p>Faciliter la migration des bases de données vers le cloud. (D)</p> Signup and view all the answers

Quel rôle le Load Balancer joue-t-il dans l'architecture mentionnée?

<p>Il gère la distribution des requêtes réseau entre plusieurs instances. (C)</p> Signup and view all the answers

Quelle affirmation sur Amazon RDS est correcte?

<p>Il offre une gestion entièrement automatique des bases de données. (A)</p> Signup and view all the answers

Dans cette architecture, quel service est principalement conçu pour la mise en cache?

<p>Cache nodes. (D)</p> Signup and view all the answers

Quelle composante de l'architecture est responsable du stockage d'objets?

<p>S3 bucket. (C)</p> Signup and view all the answers

Quel est le rôle principal d'une passerelle Internet dans une architecture VPC?

<p>Fournir un accès à Internet aux ressources dans des sous-réseaux publics (A)</p> Signup and view all the answers

Quel service AWS est principalement utilisé pour orchestrer des déploiements ?

<p>AWS CodePipeline (D)</p> Signup and view all the answers

Quelle fonctionnalité est associée aux groupes d'auto-scaling?

<p>Ajustement automatique du nombre d'instances en fonction de la charge (C)</p> Signup and view all the answers

Quel rôle joue un groupe d'instances dans une architecture de mise à l'échelle automatique?

<p>Héberger des instances d'application pour gérer la charge (C)</p> Signup and view all the answers

À quoi sert principalement CloudFormation?

<p>Automatiser la création et le déploiement d'infrastructures (B)</p> Signup and view all the answers

Quelle méthode de déploiement permet de réduire les temps d'arrêt en basculant entre deux environnements identiques?

<p>Déploiement bleu/vert (C)</p> Signup and view all the answers

Quel service permet de compiler et de tester le code dans le flux de CI/CD?

<p>AWS CodeBuild (A)</p> Signup and view all the answers

Quelle composante est essentielle pour distribuer le trafic entre plusieurs instances dans AWS?

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

Quel service est utilisé dans AWS pour le contrôle de version du code?

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

Quel avantage les sous-réseaux privés offrent-ils dans une VPC?

<p>Isolation des ressources d'application (C)</p> Signup and view all the answers

Flashcards

Instance unique

Un seul point de défaillance pour toute l'infrastructure. Le site Web est arrêté si cet instance se plante.

Pas de redondance

Un seul instance signifie qu'il n'y a pas de sauvegarde en cas de panne.

Impossible d'évoluer les composants indépendamment

Impossible de changer facilement les composants de l'infrastructure.

Choix technologiques limités

Choix limités pour les logiciels et les technologies utilisés.

Signup and view all the flashcards

Adresse IP élastique

Un seul point de contact pour accéder à l'infrastructure.

Signup and view all the flashcards

Instance unique

Un seul serveur gère tous les aspects de l'infrastructure.

Signup and view all the flashcards

Bases de données autogérées

Gérer les bases de données peut être complexe et coûteux.

Signup and view all the flashcards

Équilibreur de charge d'applications

Un équilibreur de charge d'applications gère le trafic entre plusieurs instances d'applications, permettant une haute disponibilité et une évolutivité.

Signup and view all the flashcards

Haute disponibilité

L'équilibrage de charge d'applications garantit que votre application reste opérationnelle même si une instance d'application rencontre des problèmes.

Signup and view all the flashcards

Évolutivité

Un équilibreur de charge d'applications peut gérer un nombre important d'instances d'applications, allant de 1 à 65 535.

Signup and view all the flashcards

Vérifications de santé

Les vérifications de santé vérifient régulièrement l'état des instances d'applications et éliminent celles qui ne répondent pas.

Signup and view all the flashcards

Persistance de session

La persistance de session garantit que les requêtes d'un utilisateur sont toujours routées vers la même instance d'application.

Signup and view all the flashcards

Routage basé sur le contenu

L'équilibrage de charge d'applications peut router les requêtes en fonction du contenu de la requête.

Signup and view all the flashcards

Applications basées sur des conteneurs

L'équilibrage de charge d'applications peut être intégré aux applications conteneurisées, permettant une gestion flexible et scalable.

Signup and view all the flashcards

WebSockets

L'équilibrage de charge d'applications prend en charge WebSockets, permettant des communications bidirectionnelles en temps réel.

Signup and view all the flashcards

HTTP/2

L'équilibrage de charge d'applications prend en charge HTTP/2, offrant des performances accrues et une réduction de la latence.

Signup and view all the flashcards

Architecture orientée services (SOA)

Une architecture où les différentes parties d'une application sont divisées en services indépendants qui communiquent entre eux.

Signup and view all the flashcards

Indépendance des services

Dans une SOA, chaque service est responsable d'une tâche spécifique et peut être mis à jour ou déployé indépendamment des autres services.

Signup and view all the flashcards

Évolutivité de la SOA

La SOA permet d'évoluer l'application en ajoutant ou en supprimant des services sans affecter les autres.

Signup and view all the flashcards

Flexibilité technologique de la SOA

La SOA permet d'utiliser différentes technologies et plateformes pour les différents services.

Signup and view all the flashcards

Interfaces bien définies dans la SOA

Les services dans une SOA communiquent via des interfaces clairement définies.

Signup and view all the flashcards

Qu'est-ce qu'un VPN ?

Un réseau privé virtuel (VPN) est un réseau privé construit sur un réseau public, généralement Internet. Il permet aux utilisateurs sur un réseau privé d'accéder à des ressources comme s'ils étaient directement connectés au réseau privé. Les VPNs utilisent des techniques de cryptage pour sécuriser les communications et améliorer la confidentialité.

Signup and view all the flashcards

Passerelle Internet

Une passerelle Internet est un dispositif qui permet aux instances de l'AWS VPC d'accéder à Internet.

Signup and view all the flashcards

Zone de disponibilité

Une zone de disponibilité est une zone géographique isolée dans une région AWS. Chaque zone de disponibilité dispose d'un centre de données distinct et fournit une redondance et une tolérance aux pannes.

Signup and view all the flashcards

Sous-réseau public

Une sous-réseau public est un sous-réseau au sein d'un VPC qui peut atteindre Internet directement.

Signup and view all the flashcards

Passerelle NAT

Une passerelle NAT est un dispositif qui sert de proxy pour les instances dans un sous-réseau privé. Les instances peuvent accéder à Internet via la passerelle NAT sans avoir besoin d'une adresse IP publique.

Signup and view all the flashcards

Sous-réseau privé

Une sous-réseau privé est un sous-réseau au sein d'un VPC qui n'a pas d'accès direct à Internet.

Signup and view all the flashcards

Qu'est-ce qu'AWS CodePipeline ?

AWS CodePipeline est un service qui automatise le processus de livraison continue (CD), en orchestrant les différentes étapes de développement, de construction, de test et de déploiement.

Signup and view all the flashcards

Groupe d'autoscaling

Un groupe d'autoscaling est un groupe d'instances qui peut être automatiquement redimensionné en fonction de la demande. Il assure la disponibilité et la scalabilité de votre application.

Signup and view all the flashcards

Qu'est-ce que le déploiement bleu/vert ?

Le déploiement bleu/vert est une stratégie de déploiement qui consiste à mettre en place une nouvelle version de votre application sur un environnement distinct avant de le basculez vers l'environnement de production.

Signup and view all the flashcards

Qu'est-ce qu'un équilibreur de charge ?

Un équilibreur de charge est un service qui distribue le trafic entre plusieurs instances. Il assure la haute disponibilité et la tolérance aux pannes.

Signup and view all the flashcards

Amazon Route 53 : Qu'est-ce que c'est?

Amazon Route 53 est un service DNS (Domain Name System) d'Amazon Web Services (AWS). Il permet de traduire les noms de domaine en adresses IP, ce qui permet aux utilisateurs d'accéder aux sites web, aux applications et aux services hébergés sur AWS.

Signup and view all the flashcards

Amazon CloudFront : Quel est son rôle?

Amazon CloudFront est un service de diffusion de contenu (CDN) d'Amazon Web Services (AWS). Il permet de distribuer du contenu statique, tel que des images, des vidéos et des scripts, à partir de serveurs situés dans le monde entier, ce qui améliore la vitesse de chargement des sites Web et des applications pour les utilisateurs.

Signup and view all the flashcards

Qu'est-ce qu'un Réseau Virtuel (VPC) ?

Un réseau virtuel (VPC) dans AWS est un réseau isolé et privé qui vous permet de créer un environnement de réseau semblable à un réseau physique dans votre propre centre de données. Vous pouvez créer des sous-réseaux, des routes et des groupes de sécurité pour gérer le trafic réseau au sein de votre VPC.

Signup and view all the flashcards

Zones de disponibilité : À quoi servent-elles?

Les zones de disponibilité (AZ) sont des emplacements physiques distincts dans une région AWS, qui contiennent plusieurs centres de données distincts. Chaque zone de disponibilités est physiquement isolée des autres zones de disponibilité, ce qui assure une redondance et une tolérance aux pannes.

Signup and view all the flashcards

Amazon S3 : Quel est son rôle?

Amazon S3 est un service de stockage d'objets d'Amazon Web Services (AWS). Il permet de stocker des données numériques, telles que des images, des vidéos, des fichiers de sauvegarde et des données d'application. S3 est un service hautement disponible, durable et évolutif.

Signup and view all the flashcards

DynamoDB : De quoi s'agit-il ?

DynamoDB est un service NoSQL de base de données entièrement géré d'Amazon Web Services (AWS) qui permet de stocker et de récupérer des données avec une faible latence et une haute disponibilité. Il convient parfaitement aux applications qui nécessitent une performance élevée et des opérations de lecture-écriture intensives.

Signup and view all the flashcards

Qu'est-ce que Amazon RDS ?

Amazon RDS est un service de base de données relationnelle entièrement géré d'Amazon Web Services (AWS). Il offre une large gamme de bases de données relationnelles populaires, telles que MySQL, PostgreSQL, Oracle et SQL Server, et vous permet de gérer facilement vos bases de données, de les mettre à l'échelle et de les protéger.

Signup and view all the flashcards

Qu'est-ce qu'une instance ?

Un instance est une machine virtuelle (VM) dans AWS qui fonctionne comme un serveur physique et peut exécuter des applications et des services. Les instances sont disponibles dans différentes tailles et configurations, vous permettant de choisir la meilleure option pour vos besoins en matière de performance et de coût.

Signup and view all the flashcards

AWS DMS : A quoi sert-il?

Le service AWS Database Migration Service (AWS DMS) est un service entièrement géré qui vous permet de migrer facilement vos bases de données vers AWS. Il prend en charge la migration de bases de données relationnelles, de bases de données NoSQL et de bases de données sur site vers AWS.

Signup and view all the flashcards

Study Notes

Introduction to Scaling on AWS

  • The presentation is about scaling up to 10 million users on Amazon Web Services (AWS).
  • The presenter is Giulio Lennazzo, a Solution Architect at Amazon Web Services.

AWS Global Infrastructure

  • AWS has 34 regions and 108 availability zones (AZs).
  • It has over 600+ points of presence.
  • Private backbone network connects these regions.
  • Regions are used to define data location and comply with legal risks (e.g., GDPR) enabling disaster recovery.

Availability Zones (AZs)

  • AZs are clusters of data centers.
  • Each region has at least 3 AZs.
  • The AZs provide protection against technical failures.

Points of Presence

  • Used to host content delivery services (e.g. Amazon CloudFront).
  • These are not directly usable to users.

AWS Local Zones

  • Provide region extension, located in major urban and industrial centers.

AWS Wavelength

  • 5G infrastructure in stadiums or other high-traffic areas enables fast data access
  • Features data analytics, processing and streaming.

AWS Outposts

  • Extends AWS infrastructure to on-premises data centers.
  • Enables ultra-low latency application, local data processing, and local data storage.

Breadth and Depth of AWS Services

  • Over 200 fully featured services are available.
  • Services span across several categories (Analytics, Business Applications, Blockchain, Security, Identity...)
  • AWS provides comprehensive tools, such as Database, Development, Compute and Media services.

Considerations for Scale

  • Decisions are often reversible, enabling flexibility.
  • Essential tools for monitoring and managing scale include: Build, Measure, and Learn.
  • Important to identify and avoid undifferentiated heavy lifting, choose appropriate solutions (serverless versus managed versus run yourself), and define control vs. responsibility well.

User Scaling Considerations

  • Single instance deployment has no failover, redundancy or independent component scaling.
  • Deployment options for different user counts (1, >1, >1000) exist.
  • Consider managed relational and NoSQL database options to adjust to user scaling needs.
  • Amazon RDS offers a managed relational database solution, capable of handling daily maintenance, security patches, and software updates for various database engines (MySQL/MariaDB, PostgreSQL, Oracle, SQLServer, Amazon Aurora).
  • Amazon Aurora stands out with MySQL or PostgreSQL compatibility, automatic storage scaling, numerous read replicas and continuous backups.
  • Serverless v2 database for adaptable workloads. Deploy on-demand, scaling automatically when needed.

Database Options and Strategies

  • Decide between self-managed (Amazon EC2) or fully-managed database options (Amazon RDS, Amazon Aurora, Amazon DynamoDB, etc.).
  • NoSQL solutions are favored for high throughput, latency-sensitive, or large volume applications.
  • Differentiate cases where NoSQL might be necessary; latency-sensitive applications with required sub-milliseconds response time; terabytes of data volumes and rapid data ingestion; and the use of highly non-relational data like graphs.

AWS Cognito

  • A managed user directory service, handling authorization and identity.
  • Provides hosted user interfaces for authentication.
  • Enables integration with various providers. (e.g., Facebook, Google)

Horizontal Scaling

  • Scalability by increasing the number of instances for application load balancing.
  • Using load balancers (Application Load Balancer and Network Load Balancer) to distribute the workload evenly across multiple instances in several availability zones (multi-AZ).

Data Consistency

  • Crucial to ensure data consistency when scaling (especially with read/write ratios).
  • Implementing data replication helps manage data consistency issues. Using multiple regions can address these issues.

Typical read/write ratio

  • The ratio of read to write operations, typically with a majority of reads.

Amazon S3

  • Object-based storage service, enabling high durability, scaling and storage sizes up to 5TB.

Amazon CloudFront

  • Content Delivery Network (CDN) for faster content delivery and handling static asset storage. (e.g., Images, videos, static content).

Caching

  • Caching strategies can optimize response times and reduce server load. Caching both inside and outside infrastructure for faster query response times.

Amazon ElastiCache

  • Managed caching service (Memcached or Redis) enables quick responses (often single-digit milliseconds).

Amazon DynamoDB

  • Managed NoSQL database, offering fast, predictable performance, fault tolerance, and global multi-region tables.

Application Modernization

  • Utilize containers and serverless to modernize web applications
  • Adopt serverless features (including APIs, queuing, transcoding, search capabilities from databases, monitoring, logging and machine learning) to optimize application performance.

Loose Coupling

  • This approach facilitates scalability and resilience by decoupling various components using Amazon SQS and Amazon SNS.

Event-Driven Compute (AWS Lambda)

  • Trigger functions automatically based on events within infrastructure.

Microservices Architecture

  • Breakdown of large monolithic applications into independent services, enhancing scalability and allowing for independent scaling of individual components.

AWS X-Ray

  • Application performance monitoring service for diagnosis of bottlenecks and issues.

Key Recommendations

  • Multi-AZ (multi-availability zone) is key for infrastructure resilience and redundancy
  • Leverage self-scaling services for optimization (Load Balancer, S3, Lambda, SNS, SQS, CloudFront, etc.)
  • Start by selecting appropriate database designs (e.g., relational versus NoSQL).
  • Favor automation tools and software development best practices, including the AWS Command Line Interface (CLI) and AWS Cloud Development Kit (CDK) for infrastructure automation.
  • Consider caching when necessary for performance improvements.
  • Use good metrics and logging for performance monitoring.
  • Employ SOA (service-oriented architecture), splitting tiered architectures into independent services, while selecting correct runtimes like Lambda or EC2 based on use cases.

Important Considerations for > 1 Million Users

  • Fine-tune existing solutions, especially performance-critical ones.
  • Database performance might become an issue.
  • Evaluate multi-region deployments for service availability.

Purpose-built Databases

  • Use database solutions where applicable (graph, ledger, geo tracking or key-value).
  • Leverage database solutions (e.g., NoSQL) when appropriate.

Database Issues & Solutions

  • Database issues (potential solutions) could arise and include federating, sharding or employing purpose-built databases or cross-region replication (multi-region).

AWS Amplify

  • AWS Amplify enables building apps quickly through UI, integration of backend and front end.

Student Resources

  • The presentation contains links to free resources, including AWS Amplify and SageMaker for developers and others interested in learning data science.

Conclusion

  • The presentation provides guidelines for scaling up to 10 million users using AWS services.

Studying That Suits You

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

Quiz Team

Related Documents

More Like This

Microservices Architecture Quiz
15 questions

Microservices Architecture Quiz

WarmheartedHeliotrope avatar
WarmheartedHeliotrope
Monolithic Architecture Challenges
5 questions
Monolithic vs Layered Architecture Quiz
37 questions
Use Quizgecko on...
Browser
Browser