31
HL-Строительсво. Заметки прораба. Дмитрий Молчанов, НГС

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

Embed Size (px)

DESCRIPTION

 

Citation preview

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

HL-Строительсво. Заметки прораба.

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

НГС

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

Вступление

• Революции не будет. Доклад – собственный опыт и мысли.

• О чём я говорю - только о веб-проектах, не о биллингах, процессингах или банковских приложениях.

• Что есть Хайлоад.

• Что есть веб проект

• Что же я называю HL-проектом

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

Веб-проект.

Слои. У веб-проектов есть слои… то есть базовая архитектура:

• HTTP

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

Веб-проект.

Слои. У веб-проектов есть слои… то есть базовая архитектура:

• HTTP

• APPLICATION (PHP)

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

Веб-проект.

Слои. У веб-проектов есть слои… то есть базовая архитектура:

• HTTP

• APPLICATION (PHP)

• DATABASE

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

Веб-проект.Эволюция

Слои. У веб-проектов есть слои… то есть базовая архитектура:

• HTTP

• APPLICATION (PHP)

• DATABASE

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

Веб-проект.Эволюция

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

Веб-проект.Эволюция

Первый шаг к масштабированию.

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

Веб-проект.Эволюция

Web перестал справляться с нагрузкой. Вот теперь уже HL.

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

Веб-проект.Эволюция

Web не справляется с нагрузкой, теперь и DB перестал. Вот теперь уже совсем HL. Время думать.

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

Веб-проект.Эволюция

ЧТО ДЕЛАТЬ?!© Чернышевский

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

Веб-проект.Эволюция

ЧТО ДЕЛАТЬ?!• Оптимизировать

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

Веб-проект.Эволюция

ЧТО ДЕЛАТЬ?!• Оптимизировать• Масштабировать

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

Масштабирование

Вертикально

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

Масштабирование

Вертикально

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

Масштабирование

Вертикально

Но не вечно, крутое оборудование стоит крутых денег.

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

Масштабирование

Горизонтально

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

Масштабирование

Горизонтально

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

Масштабирование

Горизонтально

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

Масштабирование

Горизонтально

И так может продолжаться вечно…

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

HL.Цели и задачи.

Целью строительства системы является система которая предоставляет возможность работать с постоянно растущей нагрузкой. Быть надежной и масштабируемой.

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

HL.Архитектура

• инфраструктура (сеть/балансировка нагрузки)

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

HL.Архитектура

• аппаратная платформа (группы серверов)

• инфраструктура (сеть/балансировка нагрузки)

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

HL.Архитектура

• программная архитектура (php/mysql/nginx/memcached)

• аппаратная платформа (группы серверов)

• инфраструктура (сеть/балансировка нагрузки)

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

HL.Архитектура

• приложение (НГС)

• программная архитектура (php/mysql/nginx/memcached)

• аппаратная платформа (группы серверов)

• инфраструктура (сеть/балансировка нагрузки)

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

HL.Архитектура

• Варианты расширения аппаратной платформы:

• Установка «независимых серверов»

• Установка аппаратных ячеек платформы

• Конфигурация серверов

• Диски

• RAID

• LVM

• Сеть

• Буффера

• rp_filter

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

HL.Архитектура

• Программная платформа

• Приложение

• Общение с нижележащими слоями архитектуры

• Прозрачное

• Открытое

• DNS

• php-prepend

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

HL.Архитектура

• Потенциально проблемные места

• Диск

• файловый кэш

• дисковые операции

• Кэш

• Локальный

• Политика кэширования

•Сеть

•Длинные пути

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

Диагностика• Базовые средства

• top

• iostat

• vmstat

• ping

• Метрики

• Система

• LoadAvg

• Swap/mem

• CPU Times

• Сеть

• Потери

• Время

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

Жизненный опыт• Просчеты в расчетах

• Обстоятельства как двигатель прогресса

• Кто все эти люди?!

• о пользе понимания raid’ов

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

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

Вопросы?

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

НГС

[email protected]

8-800-2000-383