Similar presentations:
Архитектура веб‑приложений: построение высоконагруженных распределённых систем на ресурсах КСиТ
1. Построение распределенных информационных систем на базе ресурсов КСиТ (Архитектура веб приложений) Лекция №3
Проф. каф. ИВТ СамГТУ д.т.н. С.Л.ГавлиевскийСАМАРА
Февраль 2026
2.
3.
Сюй АлексSystem Design. Подготовка к сложному интервью. — СПб.: Питер,
2022. 304 с.: ил. — (Серия «Библиотека программиста»).
ISBN 978-5-4461-1816-8
Интервью по System Design (проектированию ИТ-систем) очень
популярны у работодателей, на них легко проверить ваши навыки
общения и оценить умение решать реальные задачи.
Пройти такое собеседование непросто, поскольку в проектировании
ИТ-систем не существует единственно правильных решений. Речь
идет о самых разнообразных реальных системах, обладающих
множеством особенностей. Вам могут предложить выбрать общую
архитектуру, а потом пройтись по всем компонентам или, наоборот,
сосредоточиться на каком-то одном аспекте. Но в любом случае вы
должны продемонстрировать понимание и знание системных
требований, ограничений и узких мест.
Правильная стратегия и знания являются ключевыми факторами
успешного прохождения интервью!
4.
Глава 1 Масштабирование от нуля до миллионов пользователей . . . . . . 9Глава 2 Приблизительные оценки . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Глава 3 Общие принципы прохождения интервью
по проектированию ИТ-систем . . . . . . . . . . . . . . . . . . . . . . . 46
Глава 4 Проектирование ограничителя трафика . . . . . . . . . . . . . . . . 58
Глава 5 Согласованное хеширование . . . . . . . . . . . . . . . . . . . . . . . . 83
Глава 6 Проектирование хранилища типа «ключ–значение» . . . . . . . . 96
Глава 7 Проектирование генератора уникальных
идентификаторов в распределенных системах . . . . . . . . . . . . 122
Глава 8 Проектирование системы для сокращения URL-адресов . . . . . 131
Глава 9 Проектирование поискового робота . . . . . . . . . . . . . . . . . . 144
Глава 10 Проектирование системы уведомлений . . . . . . . . . . . . . . . . 166
Глава 11 Проектирование ленты новостей . . . . . . . . . . . . . . . . . . . . . 183
Глава 12 Проектирование системы мгновенного обмена
сообщениями . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
Глава 13 Проектирование системы автозаполнения
поисковых запросов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Глава 14 Проектирование YouTube . . . . . . . . . . . . . . . . . . . . . . . . . . 244
Глава 15 Проектирование Google Drive . . . . . . . . . . . . . . . . . . . . . . . 273
Глава 16 Век живи — век учись . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
Послесловие . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
5.
HIGH LOAD WEB SERVERЗАДАНИЕ: ОПИШИТЕ ПРОЦЕСС ПРОХОЖДЕНИЕ
(ВЫП1ОЛНЕНИЯ) ЗАЯВКИ ОТ КЛИЕНТА И ОБРАТНО
6. КОНФИГУРАЦИЯ ИЗ ОДНОГО СЕРВЕРА На рис. 1.2 показана конфигурация одного сервера, на котором запускаются все компоненты:
веб-приложение, база данных,кэш и т. д.
7.
БАЗА ДАННЫХРазделение системы на веб-уровень и уровень данных позволяет
масштабировать эти компоненты независимо друг от друга.
8.
БАЛАНСИРОВЩИК НАГРУЗКИ9.
РЕПЛИКАЦИЯБАЗЫ ДАННЫХ
На рис. 1.5
показана ведущая
база данных с
несколькими
ведомыми.
10.
На рис. 1.6 показанаархитектура
системы после
добавления
балансировщика
нагрузки и
репликации базы
данных.
11.
На рис. 1.7 показан пример конфигурации сервера кэширования.12.
Наличие лишь одного сервера кэширования может оказатьсяпотенциальной единой точкой отказа (single point
of failure, SPOF)
13.
СЕТЬ ДОСТАВКИ СОДЕРЖИМОГО(CDN)
14.
Принцип работы CDN продемонстрирован на рис. 1.10.15.
На рис. 1.11 показана конфигурация после добавления CDN и кэша.16.
ЦЕНТРЫ ОБРАБОТКИ ДАННЫХНа рис. 1.15 показана демонстрационная конфигурация с двумя центрами обработки данных (ЦОД).
17.
На рис. 1.16 ЦОД2 (US-West) недоступен, поэтому 100 % трафика направляется к ЦОД1 (US-East).18.
19.
20.
21.
22.
23.
24.
25.
ПОКАЗАТЕЛИ ЛАТЕНТНОСТИ, КОТОРЫЕ ДОЛЖЕН ЗНАТЬЛЮБОЙ ПРОГРАММИСТ
programming