codefest 2010. Молчанов Д. — Разработка высоконагруженных...
DESCRIPTION
TRANSCRIPT
HL-Строительсво. Заметки прораба.
Дмитрий Молчанов,
НГС
Вступление
• Революции не будет. Доклад – собственный опыт и мысли.
• О чём я говорю - только о веб-проектах, не о биллингах, процессингах или банковских приложениях.
• Что есть Хайлоад.
• Что есть веб проект
• Что же я называю HL-проектом
Веб-проект.
Слои. У веб-проектов есть слои… то есть базовая архитектура:
• HTTP
Веб-проект.
Слои. У веб-проектов есть слои… то есть базовая архитектура:
• HTTP
• APPLICATION (PHP)
Веб-проект.
Слои. У веб-проектов есть слои… то есть базовая архитектура:
• HTTP
• APPLICATION (PHP)
• DATABASE
Веб-проект.Эволюция
Слои. У веб-проектов есть слои… то есть базовая архитектура:
• HTTP
• APPLICATION (PHP)
• DATABASE
Веб-проект.Эволюция
Веб-проект.Эволюция
Первый шаг к масштабированию.
Веб-проект.Эволюция
Web перестал справляться с нагрузкой. Вот теперь уже HL.
Веб-проект.Эволюция
Web не справляется с нагрузкой, теперь и DB перестал. Вот теперь уже совсем HL. Время думать.
Веб-проект.Эволюция
ЧТО ДЕЛАТЬ?!© Чернышевский
Веб-проект.Эволюция
ЧТО ДЕЛАТЬ?!• Оптимизировать
Веб-проект.Эволюция
ЧТО ДЕЛАТЬ?!• Оптимизировать• Масштабировать
Масштабирование
Вертикально
Масштабирование
Вертикально
Масштабирование
Вертикально
Но не вечно, крутое оборудование стоит крутых денег.
Масштабирование
Горизонтально
Масштабирование
Горизонтально
Масштабирование
Горизонтально
Масштабирование
Горизонтально
И так может продолжаться вечно…
HL.Цели и задачи.
Целью строительства системы является система которая предоставляет возможность работать с постоянно растущей нагрузкой. Быть надежной и масштабируемой.
HL.Архитектура
• инфраструктура (сеть/балансировка нагрузки)
HL.Архитектура
• аппаратная платформа (группы серверов)
• инфраструктура (сеть/балансировка нагрузки)
HL.Архитектура
• программная архитектура (php/mysql/nginx/memcached)
• аппаратная платформа (группы серверов)
• инфраструктура (сеть/балансировка нагрузки)
HL.Архитектура
• приложение (НГС)
• программная архитектура (php/mysql/nginx/memcached)
• аппаратная платформа (группы серверов)
• инфраструктура (сеть/балансировка нагрузки)
HL.Архитектура
• Варианты расширения аппаратной платформы:
• Установка «независимых серверов»
• Установка аппаратных ячеек платформы
• Конфигурация серверов
• Диски
• RAID
• LVM
• Сеть
• Буффера
• rp_filter
HL.Архитектура
• Программная платформа
• Приложение
• Общение с нижележащими слоями архитектуры
• Прозрачное
• Открытое
• DNS
• php-prepend
HL.Архитектура
• Потенциально проблемные места
• Диск
• файловый кэш
• дисковые операции
• Кэш
• Локальный
• Политика кэширования
•Сеть
•Длинные пути
Диагностика• Базовые средства
• top
• iostat
• vmstat
• ping
• Метрики
• Система
• LoadAvg
• Swap/mem
• CPU Times
• Сеть
• Потери
• Время
Жизненный опыт• Просчеты в расчетах
• Обстоятельства как двигатель прогресса
• Кто все эти люди?!
• о пользе понимания raid’ов
• о вреде бездумного использования БД