Backend, распределённые системы, большие данные
1. Клеппман Мартин — Высоконагруженные приложения, 2024
-
Что изучаем:
- Архитектура высоконагруженных систем, масштабирование и отказоустойчивость.
- Балансировка нагрузки, кеширование, очереди сообщений, репликация данных.
- Проблемы распределённых систем: согласованность, задержки, шардирование.
-
Что получаем:
- Понимание как строить системы, которые выдерживают миллионы пользователей.
- Навыки проектирования архитектуры с учётом нагрузки и отказов.
2. Петров Алекс — Распределенные данные. Алгоритмы работы современных систем хранения информации, 2021
-
Что изучаем:
- Принципы хранения и обработки распределённых данных.
- Алгоритмы репликации, консенсуса (например, Raft, Paxos), шардирование, CAP-теорема.
- Практические аспекты современных NoSQL и распределённых баз данных.
-
Что получаем:
- Способность понимать внутреннюю работу распределённых хранилищ.
- Умение проектировать системы с учётом надёжности и масштабируемости хранения данных.
3. Стренгхольт Питхейн — Масштабируемые данные, 2022
-
Что изучаем:
- Подходы к обработке больших данных (Big Data).
- Распределённая обработка, MapReduce, потоковые вычисления.
- Проблемы согласованности, отказоустойчивости и масштабирования при больших объёмах данных.
-
Что получаем:
- Навыки проектирования систем для анализа и обработки больших объёмов информации.
- Понимание trade-off между скоростью, консистентностью и надёжностью.
4. Пол Батчер — Семь моделей конкуренции и параллелизма за семь недель
-
Что изучаем:
- Различные модели параллельного и конкурентного программирования.
- Потоки, асинхронные задачи, блокировки, события, CSP, Actor-модель.
- Когда и какую модель использовать для эффективной многопоточной и распределённой работы.
-
Что получаем:
- Понимание, как строить эффективные многопоточные и распределённые приложения.
- Навыки выбора подходящей модели параллелизма для конкретной задачи.
Итог по разделу “Backend, распределённые системы, большие данные”:
| Книга | Что изучаем | Практическая польза |
|---|---|---|
| Клеппман — Высоконагруженные приложения | Масштабируемость, отказоустойчивость, балансировка нагрузки | Проектирование серверных систем под миллионы пользователей |
| Петров — Распределённые данные | Алгоритмы репликации, консенсуса, шардирование | Понимание работы распределённых баз данных и хранилищ |
| Стренгхольт — Масштабируемые данные | Big Data, потоковая и пакетная обработка, MapReduce | Обработка больших объёмов данных, выбор архитектуры для аналитики |
| Батчер — Семь моделей конкуренции | Модели параллелизма, многопоточность, Actor, CSP | Эффективное использование параллельного и асинхронного кода |
Главный эффект: После прочтения этого раздела у тебя будет:
- Понимание как проектировать масштабируемые серверные системы и распределённые приложения.
- Навыки работы с распределёнными базами данных и обработкой больших данных.
- Способность правильно применять параллелизм и конкуренцию в backend-системах.