CodeFest 2010. Молчанов Д. — Разработка высоконагруженных...

Preview:

DESCRIPTION

 

Citation preview

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’ов

• о вреде бездумного использования БД

Вопросы?

Дмитрий Молчанов,

НГС

mdv@office.ngs.ru

8-800-2000-383

Recommended