1. Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems (2017)
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
Author(s): Martin Kleppmann
2. Redis in Action (2013)
Redis in Action introduces Redis and walks you through examples that demonstrate how to use it effectively. You’ll begin by getting Redis set up properly and then exploring the key-value model. Then, you’ll dive into real use cases including simple caching, distributed ad targeting, and more. You’ll learn how to scale Redis from small jobs to massive datasets. Experienced developers will appreciate chapters on clustering and internal scripting to make Redis easier to use.
About the Technology
When you need near-real-time access to a fast-moving data stream, key-value stores like Redis are the way to go. Redis expands on the key-value pattern by accepting a wide variety of data types, including hashes, strings, lists, and other structures. It provides lightning-fast operations on in-memory datasets, and also makes it easy to persist to disk on the fly. Plus, it’s free and open source.
About this book
Redis in Action introduces Redis and the key-value model. You’ll quickly dive into real use cases including simple caching, distributed ad targeting, and more. You’ll learn how to scale Redis from small jobs to massive datasets and discover how to integrate with traditional RDBMS or other NoSQL stores. Experienced developers will appreciate the in-depth chapters on clustering and internal scripting.
Written for developers familiar with database concepts. No prior exposure to NoSQL database concepts nor to Redis itself is required. Appropriate for systems administrators comfortable with programming.
Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.
- Redis from the ground up
- Preprocessing real-time data
- Managing in-memory datasets
- Pub/sub and configuration
- Persisting to disk
About the Author
Dr. Josiah L. Carlson is a seasoned database professional and an active contributor to the Redis community.
Table of Contents
- Getting to know Redis
- Anatomy of a Redis web application
- Commands in Redis
- Keeping data safe and ensuring performance
- Using Redis for application support
- Application components in Redis
- Search-based applications
- Building a simple social network
- Reducing memory use
- Scaling Redis
- Scripting Redis with Lua
PART 1 GETTING STARTED
PART 2 CORE CONCEPTS
PART 3 NEXT STEPS
Author(s): Josiah L. Carlson
What You Need:
Author(s): Jim Wilson
If you’re a student studying computer science or a software developer preparing for technical interviews, this practical book will help you learn and review some of the most important ideas in software engineering—data structures and algorithms—in a way that’s clearer, more concise, and more engaging than other materials.
By emphasizing practical knowledge and skills over theory, author Allen Downey shows you how to use data structures to implement efficient algorithms, and then analyze and measure their performance. You’ll explore the important classes in the Java collections framework (JCF), how they’re implemented, and how they’re expected to perform. Each chapter presents hands-on exercises supported by test code online.
- Use data structures such as lists and maps, and understand how they work
- Build an application that reads Wikipedia pages, parses the contents, and navigates the resulting data tree
- Analyze code to predict how fast it will run and how much memory it will require
- Write classes that implement the Map interface, using a hash table and binary search tree
- Build a simple web search engine with a crawler, an indexer that stores web page contents, and a retriever that returns user query results
Other books by Allen Downey include Think Java, Think Python, Think Stats, and Think Bayes.
Author(s): Allen B. Downey
5. NoSQL for Mere Mortals (2015)
The Easy, Common-Sense Guide to Solving Real Problems with NoSQL
The Mere Mortals ® tutorials have earned worldwide praise as the clearest, simplest way to master essential database technologies. Now, there’s one for today’s exciting new NoSQL databases. NoSQL for Mere Mortals guides you through solving real problems with NoSQL and achieving unprecedented scalability, cost efficiency, flexibility, and availability.
Drawing on 20+ years of cutting-edge database experience, Dan Sullivan explains the advantages, use cases, and terminology associated with all four main categories of NoSQL databases: key-value, document, column family, and graph databases. For each, he introduces pragmatic best practices for building high-value applications. Through step-by-step examples, you’ll discover how to choose the right database for each task, and use it the right way.
–Getting started: What NoSQL databases are, how they differ from relational databases, when to use them, and when not to Data management principles and design criteria: Essential knowledge for creating any database solution, NoSQL or relational
–Key-value databases: Gaining more utility from data structures
–Document databases: Schemaless databases, normalization and denormalization, mutable documents, indexing, and design patterns
–Column family databases: Google’s BigTable design, table design, indexing, partitioning, and Big Data
Graph databases: Graph/network modeling, design tips, query methods, and traps to avoid
Whether you’re a database developer, data modeler, database user, or student, learning NoSQL can open up immense new opportunities. As thousands of database professionals already know, For Mere Mortals is the fastest, easiest route to mastery.
Author(s): Dan Sullivan
Data is getting bigger and more complex by the day, and so are your choices in handling it. Explore some of the most cutting-edge databases available – from traditional relational databases to newer NoSQL approaches – and make informed decisions about challenging data storage problems. This is the only comprehensive guide to the world of NoSQL databases, with in-depth practical and conceptual introductions to seven different technologies: Redis, Neo4J, CouchDB, MongoDB, HBase, Postgres, and DynamoDB. This second edition includes a new chapter on DynamoDB and updated content for each chapter.
While relational databases such as MySQL remain as relevant as ever, the alternative, NoSQL paradigm has opened up new horizons in performance and scalability and changed the way we approach data-centric problems. This book presents the essential concepts behind each database alongside hands-on examples that make each technology come alive.
With each database, tackle a real-world problem that highlights the concepts and features that make it shine. Along the way, explore five database models – relational, key/value, columnar, document, and graph – from the perspective of challenges faced by real applications. Learn how MongoDB and CouchDB are strikingly different, make your applications faster with Redis and more connected with Neo4J, build a cluster of HBase servers using cloud services such as Amazon’s Elastic MapReduce, and more. This new edition brings a brand new chapter on DynamoDB, updated code samples and exercises, and a more up-to-date account of each database’s feature set.
Whether you’re a programmer building the next big thing, a data scientist seeking solutions to thorny problems, or a technology enthusiast venturing into new territory, you will find something to inspire you in this book.
What You Need:
You’ll need a *nix shell (Mac OS or Linux preferred, Windows users will need Cygwin), Java 6 (or greater), and Ruby 1.8.7 (or greater). Each chapter will list the downloads required for that database.
Author(s): Luc Perkins, Eric Redmond
7. Redis Essentials (2015)
Harness the power of Redis to integrate and manage your projects efficiently
About This Book
- Learn how to use Redis’s data types efficiently to manage large data sets
- Scale Redis to multiple servers with Twemproxy, Redis Sentinel, and Redis Cluster
- A fast-paced guide, full of real-world examples to help you get the best out of the features offered by Redis
Who This Book Is For
If you are a competent developer with experience of working with data structure servers and want to boost your project’s performance by learning about features of Redis, then this book is for you.
What You Will Learn
- Build analytics applications using Bitmaps and Hyperloglogs
- Enhance scalability with Twemproxy, Redis Sentinel, and Redis Cluster
- Build a Time Series implementation in Node.js and Redis
- Create your own Redis commands by extending Redis with Lua
- Get to know security techniques to protect your data (SSL encryption, firewall rules, basic authorization)
- Persist data to disk and learn the trade-offs of AOF and RDB
- Understand how to use Node.js, PHP, Python, and Ruby clients for Redis
- Avoid common pitfalls when designing your next solution
Redis is the most popular in-memory key-value data store. It’s very lightweight and its data types give it an edge over the other competitors. If you need an in-memory database or a high-performance cache system that is simple to use and highly scalable, Redis is what you need.
Redis Essentials is a fast-paced guide that teaches the fundamentals on data types, explains how to manage data through commands, and shares experiences from big players in the industry.
We start off by explaining the basics of Redis followed by the various data types such as Strings, hashes, lists, and more. Next, Common pitfalls for various scenarios are described, followed by solutions to ensure you do not fall into common traps.
After this, major differences between client implementations in PHP, Python, and Ruby are presented. Next, you will learn how to extend Redis with Lua, get to know security techniques such as basic authorization, firewall rules, and SSL encryption, and discover how to use Twemproxy, Redis Sentinel, and Redis Cluster to scale infrastructures horizontally. At the end of this book, you will be able to utilize all the essential features of Redis to optimize your project’s performance.
Style and approach
A practical guide that offers the foundation upon which you can begin to understand the capabilities of Redis using a step-by-step approach. This book is full of real-world problems and in-depth knowledge of the concepts and features of Redis, with plenty of examples.
Author(s): Maxwell Dayvson Da Silva, Hugo Lopes Tavares
8. Microservices, IoT and Azure: Leveraging DevOps and Microservice Architecture to deliver SaaS Solutions (2015)
This book provides practical guidance for adopting a high velocity, continuous delivery process to create reliable, scalable, Software-as-a-Service (SaaS) solutions that are designed and built using a microservice architecture, deployed to the Azure cloud, and managed through automation. Microservices, IoT, and Azure offers software developers, architects, and operations engineers’ step-by-step directions for building SaaS applications―applications that are available 24×7, work on any device, scale elastically, and are resilient to change–through code, script, exercises, and a working reference implementation.
The book provides a working definition of microservices and contrasts this approach with traditional monolithic Layered Architecture. A fictitious, homebiomedical startup is used to demonstrate microservice architecture and automation capabilities for cross-cutting and business services as well as connected device scenarios for Internet of Things (IoT). Several Azure PaaS services are detailed including Storage, SQL Database, DocumentDb, Redis Cache, Cloud Services, Web API’s, API Management, IoT Hub, IoT Suite, Event Hub, and Stream Analytics. Finally the book looks to the future and examines Service Fabric to see how microservices are becoming the de facto approach to building reliable software in the cloud.
In this book, you’ll learn:
- What microservices are and why are they’re a compelling architecture pattern for SaaS applications
- How to design, develop, and deploy microservices using Visual Studio, PowerShell, and Azure
- Microservice patterns for cross-cutting concerns and business capabilities
- Microservice patterns for Internet of Things and big data analytics solutions using IoT Hub, Event Hub, and Stream Analytics
- Techniques for automating microservice provisioning, building, and deployment
- What Service Fabric is and how it’s the future direction for microservices on Microsoft Azure
Author(s): Bob Familiar
9. Pro Java Clustering and Scalability: Building Real-Time Apps with Spring, Cassandra, Redis, WebSocket and RabbitMQ (2017)
- Handle clustering and scalability using various open source Java, microservices, and web services tools and technologies
- Use Spring Framework, Boot, and other Spring technologies
- Integrate with Redis, RabbitMQ, Cassandra, NoSQL, and much more
- Test the case study code under various scenarios and stresses
Author(s): Jorge Acetozi
10. Node.js in Action (2013)
Node.js in Action is an example-driven tutorial that starts at square one and guides you through all the features, techniques, and concepts you’ll need to build production-quality Node applications. You’ll start by learning how to set up your Node development environment, including loading the community-created extensions. Next, you’ll run several simple demonstration programs where you’ll learn the basics of a few common types of Node applications. Then you’ll dive into asynchronous programming, a model Node leverages to lessen application bottlenecks.
About this Book
Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.
- Set up Node and extensions
- Grok asynchronous programming and the event loop
- Examples including microblogging, IM, games, and more
About the Authors
As skilled practitioners, expert teachers and trainers, and contributors to the core framework, authors Mike Cantelon, Marc Harter, T.J. Holowaychuk, and Nathan Rajlich represent the best of the Node.js development community.
Table of Contents
- Welcome to Node.js
- Building a multiroom chat application
- Node programming fundamentals
- Building Node web applications
- Storing Node application data
- Connect’s built-in middleware
- Advanced Express
- Testing Node applications
- Web application templating
- Deploying Node applications and maintaining uptime
- Beyond web servers
- The Node ecosystem
PART 1 NODE FUNDAMENTALS
PART 2 WEB APPLICATION DEVELOPMENT WITH NODE
PART 3 GOING FURTHER WITH NODE
Author(s): Mike Cantelon, Marc Harter
- Exploit the various real-time processing functionalities offered by Apache Storm such as parallelism, data partitioning, and more
- Integrate Storm with other Big Data technologies like Hadoop, HBase, and Apache Kafka
- An easy-to-understand guide to effortlessly create distributed applications with Storm
Apache Storm is a real-time Big Data processing framework that processes large amounts of data reliably, guaranteeing that every message will be processed. Storm allows you to scale your data as it grows, making it an excellent platform to solve your big data problems. This extensive guide will help you understand right from the basics to the advanced topics of Storm.
The book begins with a detailed introduction to real-time processing and where Storm fits in to solve these problems. You’ll get an understanding of deploying Storm on clusters by writing a basic Storm Hello World example. Next we’ll introduce you to Trident and you’ll get a clear understanding of how you can develop and deploy a trident topology. We cover topics such as monitoring, Storm Parallelism, scheduler and log processing, in a very easy to understand manner. You will also learn how to integrate Storm with other well-known Big Data technologies such as HBase, Redis, Kafka, and Hadoop to realize the full potential of Storm.
With real-world examples and clear explanations, this book will ensure you will have a thorough mastery of Apache Storm. You will be able to use this knowledge to develop efficient, distributed real-time applications to cater to your business needs.
What you will learn
- Understand the core concepts of Apache Storm and real-time processing
- Follow the steps
Author(s): Ankit Jain