Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems
Price: $33.79
(as of Nov 22,2024 22:42:58 UTC – Details)
Data is on the heart of many challenges in system design right now. Difficult points should be discovered, similar to scalability, consistency, reliability, effectivity, and maintainability. In addition, now we have an amazing number of instruments, together with relational databases, NoSQL datastores, stream or batch processors, and message brokers. What are the fitting decisions in your software? How do you make sense of all these buzzwords?
In this sensible and complete information, writer Martin Kleppmann helps you navigate this numerous panorama by inspecting the professionals and cons of varied applied sciences for processing and storing knowledge. Software retains altering, however the elementary rules stay the identical. With this e book, software program engineers and architects will discover ways to apply these concepts in apply, and the best way to make full use of information in fashionable functions.
- Peer below the hood of the methods you already use, and discover ways to use and function them extra successfully
- Make knowledgeable choices by figuring out the strengths and weaknesses of various instruments
- Navigate the trade-offs round consistency, scalability, fault tolerance, and complexity
- Understand the distributed methods analysis upon which fashionable databases are constructed
- Peek behind the scenes of main on-line providers, and be taught from their architectures
From the Publisher
Who Should Read This Book?
If you develop functions which have some type of server/backend for storing or processing knowledge, and your functions use the web (e.g., net functions, cell apps, or internet-connected sensors), then this e book is for you.
This e book is for software program engineers, software program architects, and technical managers who like to code. It is particularly related if you’ll want to make choices in regards to the structure of the methods you’re employed on—for instance, if you’ll want to select instruments for fixing a given drawback and determine how finest to use them. But even you probably have no selection over your instruments, this e book will assist you to higher perceive their strengths and weaknesses.
You ought to have some expertise constructing web-based functions or community providers, and you have to be accustomed to relational databases and SQL. Any non-relational databases and different data-related instruments you already know are good, however not required.
A common understanding of frequent community protocols like TCP and HTTP is useful. Your selection of programming language or framework makes no distinction for this e book.
If any of the next are true for you, you’ll discover this e book helpful:
You wish to discover ways to make knowledge methods scalable, for instance, to assist net or cell apps with tens of millions of customers.You must make functions extremely out there (minimizing downtime) and operationally strong.You are in search of methods of creating methods simpler to keep up in the long term, at the same time as they develop and as necessities and applied sciences change.You have a pure curiosity for the best way issues work and wish to know what goes on inside main web sites and on-line providers. This e book breaks down the internals of varied databases and knowledge processing methods, and it’s nice enjoyable to discover the brilliant pondering that went into their design.
Sometimes, when discussing scalable knowledge methods, folks make feedback alongside the strains of, ‘You’re not Google or Amazon. Stop worrying about scale and simply use a relational database’. There is reality in that assertion: constructing for scale that you just don’t want is wasted effort and could lock you into an rigid design. In impact, it’s a type of untimely optimization. However, it’s additionally necessary to decide on the fitting software for the job, and totally different applied sciences every have their very own strengths and weaknesses. As we will see, relational databases are necessary however not the ultimate phrase on coping with knowledge.
Scope of This Book
This e book doesn’t try to offer detailed directions on the best way to set up or use particular software program packages or APIs, since there may be already loads of documentation for these issues. Instead we focus on the varied rules and trade-offs which can be elementary to knowledge methods, and we discover the totally different design choices taken by totally different merchandise.
We look primarily on the structure of information methods and the methods they’re built-in into data-intensive functions. This e book doesn’t have house to cowl deployment, operations, safety, administration, and different areas—these are advanced and necessary matters, and we wouldn’t do them justice by making them superficial aspect notes on this e book. They deserve books of their very own.
Many of the applied sciences described on this e book fall inside the realm of the Big Data buzzword. However, the time period ‘Big Data’ is so overused and underdefined that it isn’t helpful in a severe engineering dialogue. This e book makes use of much less ambiguous phrases, similar to single-node versus distributed methods, or on-line/interactive versus offline/batch processing methods.
This e book has a bias towards free and open supply software program (FOSS), as a result of studying, modifying, and executing supply code is an effective way to know how one thing works intimately. Open platforms additionally cut back the chance of vendor lock-in. However, the place applicable, we additionally focus on proprietary software program (closed-source software program, software program as a service, or corporations’ in-house software program that’s solely described in literature however not launched publicly).
Publisher:O’Reilly Media; 1st version (April 18, 2017)
Language:English
Paperback:616 pages
ISBN-10:1449373321
ISBN-13:978-1449373320
Item Weight:2.15 kilos
Dimensions:7.01 x 1.24 x 9.17 inches