Designing Data–Intensive Applications

Designing Data–Intensive Applications

Data is at the center of many challenges in system design today. Difficult issues need to be figured out, such as scalability, consistency, reliability, efficiency, and maintainability. In addition, we have an overwhelming variety of tools, including relational databases, NoSQL datastores, stream or batch processors, and message brokers. What are the right choices for your application? How do you make sense of all these buzzwords?

In this practical and comprehensive guide, author Martin Kleppmann helps you navigate this diverse landscape by examining the pros and cons of various technologies for processing and storing data. Software keeps changing, but the fundamental principles remain the same. With this book, software engineers and architects will learn how to apply those ideas in practice, and how to make full use of data in modern applications.

Peer under the hood of the systems you already use, and learn how to use and operate them more effectively Make informed decisions by identifying the strengths and weaknesses of different tools Navigate the trade-offs around consistency, scalability, fault tolerance, and complexity Understand the distributed systems research upon which modern databases are built Peek behind the scenes of major online services, and learn from their architectures

Description de l’éditeur

1

11

Qui devrait lire ce livre ?

Si vous développez des applications qui ont une sorte de serveur/backend pour stocker ou traiter des données et que vos applications utilisent Internet (par exemple, des applications Web, des applications mobiles ou des capteurs connectés à Internet), alors ce livre est fait pour vous.

Ce livre est destiné aux ingénieurs logiciels, aux architectes logiciels et aux responsables techniques qui aiment coder. Cela est particulièrement pertinent si vous devez prendre des décisions concernant l’architecture des systèmes sur lesquels vous travaillez, par exemple, si vous devez choisir des outils pour résoudre un problème donné et déterminer la meilleure façon de les appliquer. Mais même si vous n’avez pas le choix sur vos outils, ce livre vous aidera à mieux comprendre leurs forces et leurs faiblesses.

Vous devez avoir une certaine expérience dans la création d’applications Web ou de services réseau, et vous devez être familiarisé avec les bases de données relationnelles et SQL.

Si l’une des affirmations suivantes vous concerne, vous trouverez ce livre utile :

Vous souhaitez apprendre à rendre les systèmes de données évolutifs, par exemple, pour prendre en charge des applications Web ou mobiles avec des millions d’utilisateurs.Vous devez rendre les applications hautement disponibles (en minimisant les temps d’arrêt) et robustes sur le plan opérationnel.Vous cherchez des moyens de rendre les systèmes plus faciles à entretenir à long terme, même à mesure qu’ils grandissent et que les exigences et les technologies évoluent.Vous avez une curiosité naturelle pour la façon dont les choses fonctionnent et voulez savoir ce qui se passe à l’intérieur des principaux sites Web et services en ligne. Ce livre décrit les éléments internes de diverses bases de données et systèmes de traitement de données, et c’est très amusant d’explorer la réflexion brillante qui a présidé à leur conception.

11

Parfois, lorsqu’ils discutent de systèmes de données évolutifs, les gens font des commentaires du type « Vous n’êtes pas Google ou Amazon. Arrêtez de vous soucier de l’échelle et utilisez simplement une base de données relationnelle ». Il y a du vrai dans cette affirmation : construire pour une échelle dont vous n’avez pas besoin est un effort inutile et peut vous enfermer dans une conception inflexible. En effet, il s’agit d’une forme d’optimisation prématurée. Cependant, il est également important de choisir le bon outil pour le travail, et les différentes technologies ont chacune leurs propres forces et faiblesses. Comme nous le verrons, les bases de données relationnelles sont importantes mais pas le dernier mot sur le traitement des données.

Portée de ce livre

Ce livre n’essaie pas de donner des instructions détaillées sur la façon d’installer ou d’utiliser des packages logiciels ou des API spécifiques, car il existe déjà beaucoup de documentation pour ces choses. Au lieu de cela, nous discutons des divers principes et compromis qui sont fondamentaux pour les systèmes de données, et nous explorons les différentes décisions de conception prises par différents produits.

Nous examinons principalement l’architecture des systèmes de données et la manière dont ils sont intégrés dans des applications gourmandes en données. Ce livre n’a pas d’espace pour couvrir le déploiement, les opérations, la sécurité, la gestion et d’autres domaines – ce sont des sujets complexes et importants, et nous ne leur rendrions pas justice en leur faisant des notes secondaires superficielles dans ce livre. Ils méritent leurs propres livres.

La plupart des technologies décrites dans ce livre relèvent du mot à la mode Big Data. Cependant, le terme « Big Data » est tellement galvaudé et sous-défini qu’il n’est pas utile dans une discussion d’ingénierie sérieuse. Ce livre utilise des termes moins ambigus, tels que systèmes à nœud unique par rapport aux systèmes distribués, ou systèmes de traitement en ligne/interactifs contre hors ligne/par lots.

Ce livre a un penchant pour les logiciels libres et open source (FOSS), car lire, modifier et exécuter le code source est un excellent moyen de comprendre comment quelque chose fonctionne en détail. Les plates-formes ouvertes réduisent également le risque de blocage du fournisseur. Cependant, le cas échéant, nous discutons également des logiciels propriétaires (logiciels à source fermée, logiciels en tant que service ou logiciels internes des entreprises qui ne sont décrits que dans la littérature mais non publiés).

Éditeur ‏ : ‎ O′Reilly; Illustrated édition (1 janvier 2016)
Langue ‏ : ‎ Anglais
Broché ‏ : ‎ 400 pages
ISBN-10 ‏ : ‎ 1449373321
ISBN-13 ‏ : ‎ 978-1449373320
Poids de l’article ‏ : ‎ 966 g
Dimensions ‏ : ‎ 17.8 x 3.15 x 23.3 cm


Prix : 35,41 €
(à partir de Apr 06, 2025 03:21:00 UTC – Details)

AJOUTER AU PANIER