Алгоритм проектирования высоконагруженной системы очень прост :) Выясняете всё о данных, которые циркулируют внутри вашего проекта. Их объём, характеристики, требования к хранению, скорости доступа и обработки. Из этих требований естественным образом вытекает схема хранения и архитектура.
Первая часть доклада будет посвящена архитектурным паттернам — инструментам, которые используются при проектировании: масштабирование, шардирование, партиционирование, очереди, конвейерная обработка, репликация, кеширование, денормализация, концепция толстого клиента и другие технологии.
Вторая часть — анализ схемы движения данных и принятие решения о том, какие именно паттерны подходят нам для построения высоконагруженной отказоустойчивой архитектуры.
Приходите! Мы не будем говорить о настройках конкретных баз данных и веб-серверов, мы будем говорить о принципах. А знание нескольких принципов, как известно, заменяет знание множества фактов.
Если вы на этой странице, значит вы слушали мой доклад на конференции Стачка! 10 апреля в Ульяновске. Отлично, спасибо! Но мы не закончили :) Продолжение доклада состоится в виде БЕСПЛАТНОГО вебинара во вторник, 14 апреля, с 19:00 и до глубокого вечера.
Оставьте свой электронный адрес, чтобы получить личную ссылку на комнату для вебинара:
Знание нескольких принципов заменяет знание множества фактов. Мы не будем говорить о конкретном программном обеспечении, о конкретных утилитах, о конкретных базах данных или веб-серверах. Мы будем говорить о принципах, применяемых в проектировании высоконагруженных проектов.
- Сервисно-ориентированная архитектура;
- Вертикальное масштабирование;
- Горизонтальное масштабирование;
- Отложенные вычисления;
- Асинхронная обработка;
- Конвейерная обработка;
- Использование толстого клиента;
- Кеширование;
- Функциональное разделение;
- Шардинг;
- Виртуальные шарды;
- Центральный диспетчер;
- Репликация;
- Партиционирование;
- Кластеризация;
- Денормализация;
- Введение избыточности;
- Нереляционные СУБД;
- Параллельное выполнение и многое другое...
- Опишем бизнес-логику будущей системы, включая потенциальные пути развития;
- Подсчитаем объёмы хранимых данных и скорость их приращения. Выбираем критический путь — хранение, запись или чтение данных?
- Определим допустимую деградацию системы;
- Построим схему движения данных и примем решение, какие из особенностей проектируемой системы мы будем использовать;
- Проектируем систему :)
- Ищем и устраняем узкие места.
и ещё раз примеры!
Оставьте свой электронный адрес, чтобы получить личную ссылку на комнату для вебинара: