Chapter 1 - Reliable, Scalable and Maintainable - Designing Data Intensive applications book review

Kunal Cholera
10 Aug 201909:59

Takeaways

  • 🔍 **Reconnaissance de cas d'utilisation** : Déterminez si votre application est intensive en données, en utilisant beaucoup ou en générant des quantités importantes de données dont la complexité évolue rapidement.
  • 🌐 **Exemples de sites web intensives en données** : Les grandes plateformes comme LinkedIn, Facebook et Google sont des exemples de sites web intensives en données qui gèrent des millions d'utilisateurs quotidiennement.
  • 🏗️ **Architecture d'une application intensive en données** : Les applications intensives en données ont une architecture composée de serveurs d'API, de couches de trafic pour l'équilibrage de charge, de serveurs applicatifs, de mémoires cache, d'index de texte intégral et de files de messages.
  • 📈 **Traitement asynchrone des données** : L'application code gère la logique applicative, l'écriture dans la base de données, la mise à jour de la cache et de l'index, ainsi que l'envoi de messages asynchrones pour des tâches comme l'envoi d'emails.
  • 🔧 **Rôle du développeur applicatif** : Le développeur doit concevoir des systèmes de données pour une fiabilité, une évolutivité et une maintenabilité optimales.
  • 🛡️ **Fiabilité** : La fiabilité implique la tolérance aux pannes, l'accès autorisé et des performances suffisantes pour une utilisation efficace. La mise en place de tests de chaos et la surveillance en temps réel sont essentielles.
  • 📈 **Évolutivité** : L'application doit pouvoir s'adapter à un trafic et une complexité croissants. La planification de la capacité et la surveillance de la performance utilisateur sont clés pour assurer une bonne évolutivité.
  • 🔄 **Techniques d'échelle** : L'échelle peut être verticale (scalability up) en utilisant des machines plus puissantes ou horizontale (scalability out) en distribuant la charge sur plusieurs machines moins lourdes.
  • 🔧 **Maintenabilité** : Un système maintenable est facile à opérer, à comprendre, à tester et à évoluer. L'utilisation de bons patrons de conception, de documentation claire et de techniques de codage propres facilite la maintenance et l'ajout de nouvelles fonctionnalités.
  • 🎯 **Customisation de la solution** : Aucune solution universelle n'existe pour construire des systèmes à haute évolutivité. La solution doit être adaptée aux besoins spécifiques du cas d'utilisation.
  • 🏆 **Maîtrise de l'application intensive en données** : Cette série de vidéos vous aidera à devenir un expert en la matière, en vous apprenant à construire des applications à haute évolutivité capables de gérer des millions d'utilisateurs.

Outlines

plate

Cette section est réservée aux utilisateurs payants. Améliorez votre compte pour accéder à cette section.

Améliorer maintenant

Mindmap

plate

Cette section est réservée aux utilisateurs payants. Améliorez votre compte pour accéder à cette section.

Améliorer maintenant

Keywords

plate

Cette section est réservée aux utilisateurs payants. Améliorez votre compte pour accéder à cette section.

Améliorer maintenant

Highlights

plate

Cette section est réservée aux utilisateurs payants. Améliorez votre compte pour accéder à cette section.

Améliorer maintenant

Transcripts

plate

Cette section est réservée aux utilisateurs payants. Améliorez votre compte pour accéder à cette section.

Améliorer maintenant