[karpov.courses] System Design проектирование систем как в BigTech компании Apple Netflix Google, 2022 [Евгений Нижибицкий, Валерий Бабушкин]

365

Расширяем круг компетенций или готовимся к интервью в BigTech.

Для кого этот курс:
1. Системный администратор
2. Разработчик
3. Аналитик
4. Архитектор
5. Продакт и проджект менеджер
6. Инженер

Модуль 1 — Сбор требований и оценка нагрузки

  • Начнём проектирование системы с выбора ограниченного круга функциональных и нефункциональных требований, которым она должна соответствовать.
  • Исходя из предположений о количестве пользователей и паттернах использования оценим трафик и требования к необходимому железу.

Модуль 2 — Высокоуровневые схемы и модульный дизайн

  • При создании системы будем придерживаться простого дизайна, покрывающего все базовые сценарии использования.
  • Обсудим выбор подходящих систем управления базами данных и рассмотрим модульный подход к проектированию, позволяющий расширять систему с повышением требований к функционалу, надёжности и скорости работы.

Модуль 3 — Масштабирование и повышение отзывчивости

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

Модуль 4 — Подсистема для хранения данных, поиска и аналитики

  • Обеспечим возможность текстового поиска в данных своими силами и с помощью готовых продуктов.
  • Настроим поиск по геоданным, мониторинг и сбор логов для аналитики и внешних команд.

Модуль 5 — Финальный проект

  • Спроектируем дизайн популярной системы, которой пользуются миллионы людей по всему миру.
  • Применим для этого все знания, полученные в рамках курса.