Проблемы масштабирования интернет-проектов: когда, как и почему возникают, как с ними бороться 0 (предварительная оценка: 0)
Мастер-класс. 18 марта 2009, 13:40—14:35
Игорь Лобанов, ЦФТ (Центр Финансовых Технологий)
Тезисы
Часть 1: Что это такое и почему это важно?
- Масштабируемость как атрибут качества архитектуры: определение, существенные характеристики, разновидности масштабируемости
- Почему Интернет-ресурсы предъявляют более высокие требования по масштабируемости, чем корпоративные информационные системы: slashdot-эффект, вирусный маркетинг
- Цена ошибки: почему о масштабировании стоит задуматься сразу
Часть 2: Азбука масштабируемости [10 мин]
- No silver bullet: Существует ли программная платформа или язык программирования, который дает масштабируемость автоматически?
- Методология оптимизации: цикл Деминга. Постановка задачи. Отличия «масштабируемости» от «производительности» и «отказоустойчивости». Важность умения их различать и делать компромиссы
- Профилирование как ключевой шаг оптимизации. Закон Парето (80/20). Типовые тонкие места в различных звеньях: сеть, прикладная логика, доступ к данным
- Два подхода к масштабированию: вертикальный и горизонтальный. Преимущества и недостатки обоих подходов. «Святой грааль»: кривая масштабирования
Часть 3: Основные приемы обеспечения масштабируемости [25 мин]
- Практические аспекты профилирования. Профилирование звеньев архитектуры. Профилирование по времени, по CPU, по дисковому вводу-выводу
- Нагрузочное тестирование как критерий истины. Ошибки нагрузочного тестирования. Опасности нагрузочного тестирования
- Абсолютно универсальный способ масштабирования: избавление от лишней работы. Частный случай: перенос нагрузки на сторону клиента
- Масштабирование нагрузки на сеть и сетевое оборудование: избавление от лишних запросов, пограничное кэширование, content delivery networks, использование возможностей протокола
- Масштабирование прикладной логики: типовые узкие места, сервер приложений, балансировка нагрузки, проблема разделяемого состояние и архитектура share nothing, асинхронная обработка
- Масштабирование доступа к данным: типовые узкие места, кластеризация СУБД, партицирование и шардинг, кэширование данных, денормализация схемы, гонка блокировок
Заключение: Современные тенденции [5 мин]
- Cloud computing
- Infrastructure as a Service (IaaS)
Презентация
2305.5 Кб