Кошик
37 відгуків
+380 (99) 199-18-81
VYLYK - Преміальна японська канцелярія для мислення та розвитку
Кошик

Designing Distributed Systems - Brendan Burns (англ.мова)

800 ₴

  • В наявності
  • Код: 45345
Designing Distributed Systems - Brendan Burns (англ.мова)
Designing Distributed Systems - Brendan Burns (англ.мова)В наявності
800 ₴
+380 (99) 199-18-81
+380 (99) 199-18-81
повернення товару протягом 14 днів за домовленістю
У компанії підключені електронні платежі. Тепер ви можете купити будь-який товар не покидаючи сайту.

Designing Distributed Systems Брендана Бернса - практичний посібник з проєктування масштабованих і надійних розподілених систем у сучасному хмарному середовищі. Автор, один із співзасновників Kubernetes, узагальнює ключові патерни та парадигми, які лежать в основі cloud-native архітектури.

Книга пояснює, як використовувати контейнери та оркестратори для побудови відмовостійких сервісів, демонструє повторно використовувані шаблони, такі як sidecar, ambassador та adapter, і показує, як вони спрощують масштабування, комунікацію та керування компонентами системи. Особлива увага приділена асинхронній обробці, чергам завдань, event-driven підходам та розподіленим workflow.

Видання стане незамінним ресурсом для backend-розробників, DevOps-інженерів, системних архітекторів та всіх, хто працює з Kubernetes, мікросервісами та хмарною інфраструктурою. Книга формує спільну мову для команд і допомагає уникати типових помилок при створенні складних розподілених систем.

Designing Distributed Systems - Table of Contents 

Preface


1. Introduction

  • A Brief History of Systems Development

  • A Brief History of Patterns in Software Development

  • Formalization of Algorithmic Programming

  • Patterns for Object-Oriented Programming

  • The Rise of Open Source Software

  • The Value of Patterns, Practices, and Components

  • Standing on the Shoulders of Giants

  • A Shared Language for Discussing Our Practice

  • Shared Components for Easy Reuse

  • Summary


Part I. Single-Node Patterns

2. The Sidecar Pattern

  • An Example Sidecar: Adding HTTPS to a Legacy Service

  • Dynamic Configuration with Sidecars

  • Modular Application Containers

  • Hands On: Deploying the topz Container

  • Building a Simple PaaS with Sidecars

  • Designing Sidecars for Modularity and Reusability

  • Parameterized Containers

  • Define Each Container’s API

  • Documenting Your Containers

  • Summary

3. Ambassadors

  • Using an Ambassador to Shard a Service

  • Hands On: Implementing a Sharded Redis

  • Using an Ambassador for Service Brokering

  • Using an Ambassador to Do Experimentation or Request Splitting

  • Hands On: Implementing 10% Experiments

4. Adapters

  • Monitoring

  • Hands On: Using Prometheus for Monitoring

  • Logging

  • Hands On: Normalizing Different Logging Formats with Fluentd

  • Adding a Health Monitor

  • Hands On: Adding Rich Health Monitoring for MySQL


Part II. Serving Patterns

5. Replicated Load-Balanced Services

  • Stateless Services

  • Readiness Probes for Load Balancing

  • Hands On: Creating a Replicated Service in Kubernetes

  • Session Tracked Services

  • Application-Layer Replicated Services

  • Introducing a Caching Layer

  • Deploying Your Cache

  • Hands On: Deploying the Caching Layer

  • Expanding the Caching Layer

  • Rate Limiting and Denial-of-Service Defense

  • SSL Termination

  • Hands On: Deploying nginx and SSL Termination

  • Summary

6. Sharded Services

  • Sharded Caching

  • Why You Might Need a Sharded Cache

  • The Role of the Cache in System Performance

  • Replicated, Sharded Caches

  • Hands On: Deploying an Ambassador and Memcache for a Sharded Cache

  • An Examination of Sharding Functions

  • Selecting a Key

  • Consistent Hashing Functions

  • Hands On: Building a Consistent HTTP Sharding Proxy

  • Sharded, Replicated Serving

  • Hot Sharding Systems

7. Scatter/Gather

  • Scatter/Gather with Root Distribution

  • Hands On: Distributed Document Search

  • Scatter/Gather with Leaf Sharding

  • Hands On: Sharded Document Search

  • Choosing the Right Number of Leaves

  • Scaling Scatter/Gather for Reliability and Scale

8. Functions and Event-Driven Processing

  • Determining When FaaS Makes Sense

  • The Benefits of FaaS

  • The Challenges of FaaS

  • The Need for Background Processing

  • The Need to Hold Data in Memory

  • The Costs of Sustained Request-Based Processing

  • Patterns for FaaS

  • The Decorator Pattern: Request or Response Transformation

  • Hands On: Adding Request Defaulting Prior to Request Processing

  • Handling Events

  • Hands On: Implementing Two-Factor Authentication

  • Event-Based Pipelines

  • Hands On: Implementing a Pipeline for New-User Signup

9. Ownership Election

  • Determining If You Even Need Master Election

  • The Basics of Master Election

  • Hands On: Deploying etcd

  • Implementing Locks

  • Hands On: Implementing Locks in etcd

  • Implementing Ownership

  • Hands On: Implementing Leases in etcd

  • Handling Concurrent Data Manipulation


Part III. Batch Computational Patterns

10. Work Queue Systems

  • A Generic Work Queue System

  • The Source Container Interface

  • The Worker Container Interface

  • The Shared Work Queue Infrastructure

  • Hands On: Implementing a Video Thumbnailer

  • Dynamic Scaling of the Workers

  • The Multi-Worker Pattern

11. Event-Driven Batch Processing

  • Patterns of Event-Driven Processing

    • Copier

    • Filter

    • Splitter

    • Sharder

    • Merger

  • Hands On: Building an Event-Driven Flow for New User Sign-Up

  • Publisher/Subscriber Infrastructure

  • Hands On: Deploying Kafka

12. Coordinated Batch Processing

  • Join (or Barrier Synchronization)

  • Reduce

    • Hands On: Count

    • Sum

    • Histogram

  • Hands On: An Image Tagging and Processing Pipeline

13. Conclusion: A New Beginning?

Характеристики
Основні
ВиробникScale
Інформація для замовлення
  • Ціна: 800 ₴