Podcast
Questions and Answers
Pourquoi les monolithes ne sont-ils pas adaptés à l'évolutivité?
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?
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?
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 ?
Quel est l'inconvénient principal d'une instance unique sans redondance ?
Qu'est-ce qui caractérise une architecture monolithique?
Qu'est-ce qui caractérise une architecture monolithique?
Qu'est-ce qui restreint les choix technologiques pour les composants individuels ?
Qu'est-ce qui restreint les choix technologiques pour les composants individuels ?
Quel service permet de gérer des bases de données de manière entièrement gérée ?
Quel service permet de gérer des bases de données de manière entièrement gérée ?
Quelle approche est souvent prise pour améliorer l'évolutivité d'une application?
Quelle approche est souvent prise pour améliorer l'évolutivité d'une application?
Quel service d'Amazon est mentionné comme une option de base de données auto-gérée ?
Quel service d'Amazon est mentionné comme une option de base de données auto-gérée ?
Quelle caractéristique est associée à l'incapacité à réduire la taille des composants de manière indépendante ?
Quelle caractéristique est associée à l'incapacité à réduire la taille des composants de manière indépendante ?
Quel aspect représente un risque dans un scénario où toutes les ressources sont concentrées dans une seule instance ?
Quel aspect représente un risque dans un scénario où toutes les ressources sont concentrées dans une seule instance ?
Quelle serait une conséquence d'un modèle d'architecture sans échec ?
Quelle serait une conséquence d'un modèle d'architecture sans échec ?
Qu'est-ce qu'un équilibre de charge d'application permet de faire?
Qu'est-ce qu'un équilibre de charge d'application permet de faire?
Quel est l'une des avantages des vérifications de santé dans un équilibre de charge d'application?
Quel est l'une des avantages des vérifications de santé dans un équilibre de charge d'application?
Qu'est-ce que la persistance de session permet dans une architecture d'équilibre de charge?
Qu'est-ce que la persistance de session permet dans une architecture d'équilibre de charge?
Quel protocole est pris en charge par l'équilibrage de charge d'application pour améliorer la performance?
Quel protocole est pris en charge par l'équilibrage de charge d'application pour améliorer la performance?
Quel rôle joue Amazon Route 53 dans une architecture de répartition de charge?
Quel rôle joue Amazon Route 53 dans une architecture de répartition de charge?
Pourquoi est-il important d'avoir des zones de disponibilité dans une architecture cloud?
Pourquoi est-il important d'avoir des zones de disponibilité dans une architecture cloud?
Quelle fonctionnalité permet l'équilibre de charge d'application de gérer le trafic basé sur le contenu?
Quelle fonctionnalité permet l'équilibre de charge d'application de gérer le trafic basé sur le contenu?
Quelle est l'importance du monitoring et logging dans un équilibre de charge d'application?
Quelle est l'importance du monitoring et logging dans un équilibre de charge d'application?
Quel type d'application est particulièrement adapté à l'utilisation d'un équilibre de charge d'application?
Quel type d'application est particulièrement adapté à l'utilisation d'un équilibre de charge d'application?
Quelle option décrit le service Amazon DynamoDB?
Quelle option décrit le service Amazon DynamoDB?
Quelle fonction n'est pas associée à Amazon DynamoDB?
Quelle fonction n'est pas associée à Amazon DynamoDB?
Comment Amazon DynamoDB garantit-il sa tolérance aux pannes?
Comment Amazon DynamoDB garantit-il sa tolérance aux pannes?
Que signifie 'tarification provisionnée' dans le contexte d'Amazon DynamoDB?
Que signifie 'tarification provisionnée' dans le contexte d'Amazon DynamoDB?
Quel est le principal avantage d'utiliser des tables globales dans DynamoDB?
Quel est le principal avantage d'utiliser des tables globales dans DynamoDB?
À quoi sert principalement le service de migration de base de données AWS DMS?
À quoi sert principalement le service de migration de base de données AWS DMS?
Quel rôle le Load Balancer joue-t-il dans l'architecture mentionnée?
Quel rôle le Load Balancer joue-t-il dans l'architecture mentionnée?
Quelle affirmation sur Amazon RDS est correcte?
Quelle affirmation sur Amazon RDS est correcte?
Dans cette architecture, quel service est principalement conçu pour la mise en cache?
Dans cette architecture, quel service est principalement conçu pour la mise en cache?
Quelle composante de l'architecture est responsable du stockage d'objets?
Quelle composante de l'architecture est responsable du stockage d'objets?
Quel est le rôle principal d'une passerelle Internet dans une architecture VPC?
Quel est le rôle principal d'une passerelle Internet dans une architecture VPC?
Quel service AWS est principalement utilisé pour orchestrer des déploiements ?
Quel service AWS est principalement utilisé pour orchestrer des déploiements ?
Quelle fonctionnalité est associée aux groupes d'auto-scaling?
Quelle fonctionnalité est associée aux groupes d'auto-scaling?
Quel rôle joue un groupe d'instances dans une architecture de mise à l'échelle automatique?
Quel rôle joue un groupe d'instances dans une architecture de mise à l'échelle automatique?
À quoi sert principalement CloudFormation?
À quoi sert principalement CloudFormation?
Quelle méthode de déploiement permet de réduire les temps d'arrêt en basculant entre deux environnements identiques?
Quelle méthode de déploiement permet de réduire les temps d'arrêt en basculant entre deux environnements identiques?
Quel service permet de compiler et de tester le code dans le flux de CI/CD?
Quel service permet de compiler et de tester le code dans le flux de CI/CD?
Quelle composante est essentielle pour distribuer le trafic entre plusieurs instances dans AWS?
Quelle composante est essentielle pour distribuer le trafic entre plusieurs instances dans AWS?
Quel service est utilisé dans AWS pour le contrôle de version du code?
Quel service est utilisé dans AWS pour le contrôle de version du code?
Quel avantage les sous-réseaux privés offrent-ils dans une VPC?
Quel avantage les sous-réseaux privés offrent-ils dans une VPC?
Flashcards
Instance unique
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
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 d'évoluer les composants indépendamment
Impossible de changer facilement les composants de l'infrastructure.
Choix technologiques limités
Choix technologiques limités
Signup and view all the flashcards
Adresse IP élastique
Adresse IP élastique
Signup and view all the flashcards
Instance unique
Instance unique
Signup and view all the flashcards
Bases de données autogérées
Bases de données autogérées
Signup and view all the flashcards
Équilibreur de charge d'applications
Équilibreur de charge d'applications
Signup and view all the flashcards
Haute disponibilité
Haute disponibilité
Signup and view all the flashcards
Évolutivité
Évolutivité
Signup and view all the flashcards
Vérifications de santé
Vérifications de santé
Signup and view all the flashcards
Persistance de session
Persistance de session
Signup and view all the flashcards
Routage basé sur le contenu
Routage basé sur le contenu
Signup and view all the flashcards
Applications basées sur des conteneurs
Applications basées sur des conteneurs
Signup and view all the flashcards
WebSockets
WebSockets
Signup and view all the flashcards
HTTP/2
HTTP/2
Signup and view all the flashcards
Architecture orientée services (SOA)
Architecture orientée services (SOA)
Signup and view all the flashcards
Indépendance des services
Indépendance des services
Signup and view all the flashcards
Évolutivité de la SOA
Évolutivité de la SOA
Signup and view all the flashcards
Flexibilité technologique de la SOA
Flexibilité technologique de la SOA
Signup and view all the flashcards
Interfaces bien définies dans la SOA
Interfaces bien définies dans la SOA
Signup and view all the flashcards
Qu'est-ce qu'un VPN ?
Qu'est-ce qu'un VPN ?
Signup and view all the flashcards
Passerelle Internet
Passerelle Internet
Signup and view all the flashcards
Zone de disponibilité
Zone de disponibilité
Signup and view all the flashcards
Sous-réseau public
Sous-réseau public
Signup and view all the flashcards
Passerelle NAT
Passerelle NAT
Signup and view all the flashcards
Sous-réseau privé
Sous-réseau privé
Signup and view all the flashcards
Qu'est-ce qu'AWS CodePipeline ?
Qu'est-ce qu'AWS CodePipeline ?
Signup and view all the flashcards
Groupe d'autoscaling
Groupe d'autoscaling
Signup and view all the flashcards
Qu'est-ce que le déploiement bleu/vert ?
Qu'est-ce que le déploiement bleu/vert ?
Signup and view all the flashcards
Qu'est-ce qu'un équilibreur de charge ?
Qu'est-ce qu'un équilibreur de charge ?
Signup and view all the flashcards
Amazon Route 53 : Qu'est-ce que c'est?
Amazon Route 53 : Qu'est-ce que c'est?
Signup and view all the flashcards
Amazon CloudFront : Quel est son rôle?
Amazon CloudFront : Quel est son rôle?
Signup and view all the flashcards
Qu'est-ce qu'un Réseau Virtuel (VPC) ?
Qu'est-ce qu'un Réseau Virtuel (VPC) ?
Signup and view all the flashcards
Zones de disponibilité : À quoi servent-elles?
Zones de disponibilité : À quoi servent-elles?
Signup and view all the flashcards
Amazon S3 : Quel est son rôle?
Amazon S3 : Quel est son rôle?
Signup and view all the flashcards
DynamoDB : De quoi s'agit-il ?
DynamoDB : De quoi s'agit-il ?
Signup and view all the flashcards
Qu'est-ce que Amazon RDS ?
Qu'est-ce que Amazon RDS ?
Signup and view all the flashcards
Qu'est-ce qu'une instance ?
Qu'est-ce qu'une instance ?
Signup and view all the flashcards
AWS DMS : A quoi sert-il?
AWS DMS : A quoi sert-il?
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.