• Complain

Martin Kleppmann - Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems

Here you can read online Martin Kleppmann - Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems full text of the book (entire story) in english for free. Download pdf and epub, get meaning, cover and reviews about this ebook. year: 2017, publisher: O’Reilly Media, genre: Computer. Description of the work, (preface) as well as reviews are available. Best literature library LitArk.com created for fans of good reading and offers a wide selection of genres:

Romance novel Science fiction Adventure Detective Science History Home and family Prose Art Politics Computer Non-fiction Religion Business Children Humor

Choose a favorite category and find really read worthwhile books. Enjoy immersion in the world of imagination, feel the emotions of the characters or learn something new for yourself, make an fascinating discovery.

Martin Kleppmann Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems
  • Book:
    Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems
  • Author:
  • Publisher:
    O’Reilly Media
  • Genre:
  • Year:
    2017
  • Rating:
    3 / 5
  • Favourites:
    Add to favourites
  • Your mark:
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5

Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems: summary, description and annotation

We offer to read an annotation, description, summary or preface (depends on what the author of the book "Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems" wrote himself). If you haven't found the necessary information about the book — write in the comments, we will try to find it.

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

Martin Kleppmann: author's other books


Who wrote Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems? Find out the surname, the name of the author of the book and a list of all author's works by series.

Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems — read online for free the complete book (whole text) full work

Below is the text of the book, divided by pages. System saving the place of the last page read, allows you to conveniently read the book "Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems" online for free, without having to search again every time where you left off. Put a bookmark, and you can go to the page where you finished reading at any time.

Light

Font size:

Reset

Interval:

Bookmark:

Make
Designing Data-Intensive Applications

by Martin Kleppmann

Copyright 2017 Martin Kleppmann. All rights reserved.

Printed in the United States of America.

Published by OReilly Media, Inc. , 1005 Gravenstein Highway North, Sebastopol, CA 95472.

OReilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (http://oreilly.com/safari). For more information, contact our corporate/institutional sales department: 800-998-9938 or corporate@oreilly.com .

Editors: Ann Spencer and Marie Beaugureau

Indexer: Ellen Troutman-Zaig

Production Editor: Kristen Brown

Interior Designer: David Futato

Copyeditor: Rachel Head

Cover Designer: Karen Montgomery

Proofreader: Amanda Kersey

Illustrator: Rebecca Demarest

  • March 2017: First Edition
Revision History for the First Edition
  • 2017-03-01: First Release

See http://oreilly.com/catalog/errata.csp?isbn=9781449373320 for release details.

The OReilly logo is a registered trademark of OReilly Media, Inc. Designing Data-Intensive Applications, the cover image, and related trade dress are trademarks of OReilly Media, Inc.

While the publisher and the author have used good faith efforts to ensure that the information and instructions contained in this work are accurate, the publisher and the author disclaim all responsibility for errors or omissions, including without limitation responsibility for damages resulting from the use of or reliance on this work. Use of the information and instructions contained in this work is at your own risk. If any code samples or other technology this work contains or describes is subject to open source licenses or the intellectual property rights of others, it is your responsibility to ensure that your use thereof complies with such licenses and/or rights.

978-1-449-37332-0

[LSI]

Dedication

Technology is a powerful force in our society. Data, software, and communication can be used for bad:to entrench unfair power structures, to undermine human rights, and to protect vested interests. Butthey can also be used for good: to make underrepresented peoples voices heard, to createopportunities for everyone, and to avert disasters. This book is dedicated to everyone workingtoward the good.

Computing is pop culture. [] Pop culture holds a disdain for history. Pop culture is all aboutidentity and feeling like youre participating. It has nothing to do with cooperation, the past orthe futureits living in the present. I think the same is true of most people who write code formoney. They have no idea where [their culture came from].

Alan Kay,in interview with Dr Dobbs Journal (2012)

Preface

If you have worked in software engineering in recent years, especially in server-side and backendsystems, you have probably been bombarded with a plethora of buzzwords relating to storage andprocessing of data. NoSQL! Big Data! Web-scale! Sharding! Eventual consistency! ACID! CAP theorem!Cloud services! MapReduce! Real-time!

In the last decade we have seen many interesting developments in databases, in distributed systems,and in the ways we build applications on top of them. There are various driving forces for thesedevelopments:

  • Internet companies such as Google, Yahoo!, Amazon, Facebook, LinkedIn, Microsoft, and Twitter are handlinghuge volumes of data and traffic, forcing them to create new tools that enable them to efficientlyhandle such scale.

  • Businesses need to be agile, test hypotheses cheaply, and respond quickly to new market insightsby keeping development cycles short and data models flexible.

  • Free and open source software has become very successful and is now preferred to commercial orbespoke in-house software in many environments.

  • CPU clock speeds are barely increasing, but multi-core processors are standard, and networks aregetting faster. This means parallelism is only going to increase.

  • Even if you work on a small team, you can now build systems that are distributed across manymachines and even multiple geographic regions, thanks to infrastructure as a service (IaaS) suchas Amazon Web Services.

  • Many services are now expected to be highly available; extended downtime due to outages ormaintenance is becoming increasingly unacceptable.

Data-intensive applications are pushing the boundaries of what is possible by making use of thesetechnological developments. We call an application data-intensive if data is its primarychallengethe quantity of data, the complexity of data, or the speed at which it is changingasopposed to compute-intensive, where CPU cycles are the bottleneck.

The tools and technologies that help data-intensive applications store and process data have beenrapidly adapting to these changes. New types of database systems (NoSQL) have been getting lots ofattention, but message queues, caches, search indexes, frameworks for batch and stream processing,and related technologies are very important too. Many applications use some combination of these.

The buzzwords that fill this space are a sign of enthusiasm for the new possibilities, which is agreat thing. However, as software engineers and architects, we also need to have a technicallyaccurate and precise understanding of the various technologies and their trade-offs if we want tobuild good applications. For that understanding, we have to dig deeper than buzzwords.

Fortunately, behind the rapid changes in technology, there are enduring principles that remain true,no matter which version of a particular tool you are using. If you understand those principles,youre in a position to see where each tool fits in, how to make good use of it, and how to avoidits pitfalls. Thats where this book comes in.

The goal of this book is to help you navigate the diverse and fast-changing landscape oftechnologies for processing and storing data. This book is not a tutorial for one particular tool,nor is it a textbook full of dry theory. Instead, we will look at examples of successful datasystems: technologies that form the foundation of many popular applications and that have to meetscalability, performance, and reliability requirements in production every day.

We will dig into the internals of those systems, tease apart their key algorithms, discuss theirprinciples and the trade-offs they have to make. On this journey, we will try to find useful ways ofthinking about data systemsnot just how they work, but also why they work that way, andwhat questions we need to ask.

After reading this book, you will be in a great position to decide which kind of technology isappropriate for which purpose, and understand how tools can be combined to form the foundation of agood application architecture. You wont be ready to build your own database storage engine fromscratch, but fortunately that is rarely necessary. You will, however, develop a good intuition forwhat your systems are doing under the hood so that you can reason about their behavior, make gooddesign decisions, and track down any problems that may arise.

Who Should Read This Book?

If you develop applications that have some kind of server/backend for storing or processing data,and your applications use the internet (e.g., web applications, mobile apps, or internet-connectedsensors), then this book is for you.

This book is for software engineers, software architects, and technical managers who love to code.It is especially relevant if you need to make decisions about the architecture of the systems youwork onfor example, if you need to choose tools for solving a given problem and figure out howbest to apply them. But even if you have no choice over your tools, this book will help you betterunderstand their strengths and weaknesses.

Next page
Light

Font size:

Reset

Interval:

Bookmark:

Make

Similar books «Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems»

Look at similar books to Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems. We have selected literature similar in name and meaning in the hope of providing readers with more options to find new, interesting, not yet read works.


Reviews about «Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems»

Discussion, reviews of the book Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems and just readers' own opinions. Leave your comments, write what you think about the work, its meaning or the main characters. Specify what exactly you liked and what you didn't like, and why you think so.