Перейти к содержимому

Углубление: первоисточники, книги, лабораторные

Эта страница — ответ на честный вопрос: «можно ли выучиться только по этому учебнику?» Можно ускориться — но не для глубоких тем. Когда речь заходит о PostgreSQL, Kubernetes и System Design, этот учебник даёт карту, ментальные модели и практику — а дальше тебе нужны первоисточники, книги от практиков и собственные эксперименты. Здесь собрано, куда идти.

Учебник даёт моделирование, индексы, транзакции. Чтобы выйти на уровень «спроектировать схему, которая выдержит рост», нужно больше.

Официальная документация (postgresql.org/docs) — читай не целиком, а главы: Indexes (11), Concurrency Control (13), WAL (30), Routine Database Maintenance Tasks. Документация Postgres — одна из лучших в индустрии: точная и с примерами.

Книги:

  • Егор Рогов — «PostgreSQL Internals» (части I–II, бесплатные PDF от Postgres Professional). Устройство MVCC, буферного кэша, исполнителя запросов — то, что обычно «под капотом».
  • «The Art of PostgreSQL» (Dimitri Fontaine) — как думать декларативно и выжимать максимум из SQL вместо того, чтобы тащить логику в приложение.

Лабораторные:

  1. Сгенерируй 10 млн строк (generate_series), построй разные индексы и сравни планы EXPLAIN ANALYZE на одинаковых запросах.
  2. Подними streaming-реплику (primary → replica), убей primary — отработай promote реплики.
  3. Двумя сессиями поймай deadlock, прочитай его разбор в логе, исправь порядок захвата блокировок.
  4. Настрой pg_stat_statements, найди три самых дорогих запроса и оптимизируй их.

Учебник даёт манифесты, сервисы, RBAC. Настоящее понимание приходит от эксплуатации и чтения того, как устроен кластер.

Первоисточники:

  • kubernetes.io/docs/concepts — обязательный минимум: Pods, Workloads, Services, Storage, Configuration.
  • «Kubernetes The Hard Way» (Kelsey Hightower, github.com/kelseyhightower/kubernetes-the-hard-way) — легендарная бесплатная лаба: собираешь кластер из бинарников руками, без kubeadm. После неё kubeadm, сертификаты и сетевую модель ты понимаешь, а не заучиваешь.

Книги:

  • Marko Lukša — «Kubernetes in Action» — лучшее плавное введение.
  • Nigel Poulton — «The Kubernetes Book» — короткая сверка перед собеседованием.

Лабораторные:

  1. Подними k3s локально (одна команда) и разверни свой pet-проект из образа.
  2. Убей под и засеки время self-healing; потом убей ноду — и сравни.
  3. Напиши NetworkPolicy, запрещающий всё, кроме ingress → app → db, и проверь kubectl exec-ом.
  4. Пройди The Hard Way на двух VM.

Это область, где «посмотрел туториал» и «понимаешь» — разные вещи. База: DDIA, практика: проектирование вслух и на бумаге.

Книги:

  • Martin Kleppmann — «Designing Data-Intensive Applications» (DDIA) — библия: хранилища, индексы, репликация, партиционирование, консенсус. Читается месяцами — это нормально. После неё вопросы «что выберешь: Kafka или RabbitMQ» перестают быть угадайкой.
  • Alex Xu — «System Design Interview» (vol. 1–2) — тренажёр формата собеседования: пошаговое проектирование URL-shortener, чата, ленты.

Лекции:

  • MIT 6.824 Distributed Systems — лекции на YouTube бесплатно: MapReduce, Raft, консенсус. Уровень «почувствовать глубину».

Лабораторные:

  1. Спроектируй и напиши URL-shortener: Redis-кэш, идемпотентные ключи, агрегация статистики через очередь.
  2. Реализуй consistent hashing на TypeScript и проверь равномерность распределения ключей.
  3. Подними два инстанса приложения за балансировщиком и устрой гонку на уровне БД — затем почини её транзакцией или advisory lock’ом.

Вопросы «на собеседование» в главах — фундамент: замыкания, Event Loop, индексы, уровни изоляции. Но форматы собеседований меняются быстро: live-coding уступает место take-home заданиям, системный дизайн мутирует, везде проникают AI-инструменты и проверка на их умение.

Правило: главы дают базу знаний, а актуальный формат смотри у практиков:

  • YouTube — свежие mock-интервью по твоему стеку (ищи записи этого года, не пятилетней давности);
  • Telegram-каналы с разборами реальных собеседований и вакансиями — там видно, что реально спрашивают сейчас;
  • раз в полгода пересматривай свой ответ на классику: «расскажи, что происходит, когда вводишь URL в браузер» — твой ответ должен расти вместе с тобой.
Тема Первая остановка Книга Лабораторная
PostgreSQL Доки, гл. 11, 13, 30 «PostgreSQL Internals» Реплика + deadlock + 10M строк
Kubernetes Доки concepts + The Hard Way «Kubernetes in Action» k3s + убийство подов и нод
System Design Главы 13-го раздела DDIA → Alex Xu URL-shortener + consistent hashing
Собеседования Вопросы в главах Alex Xu vol. 1–2 Mock-интервью с записью себя на камеру

Последнее испытание любой темы — объясни её вслух за пять минут так, чтобы понял джун. Не получается — возвращайся к первоисточнику. Работает безотказно.