Erlang – лекарство при высоких нагрузках

27
Erlang – лекарство при высоких нагрузках Александр Дубовиков

Transcript of Erlang – лекарство при высоких нагрузках

Page 1: Erlang – лекарство при высоких нагрузках

Erlang – лекарство при высоких нагрузках

Александр Дубовиков

Page 2: Erlang – лекарство при высоких нагрузках

Агнер Краруп Эрланг 1878 - 1929 г.г.

датский математик, статистик и инженер, основатель научного направления по изучению трафика в телекоммуникационных системах и теории массового обслуживания.

Page 3: Erlang – лекарство при высоких нагрузках

На самом деле системы на Erlang вовсе не масштабируемые и не надежные. Это системы на Java такие. Системы на Erlang просто непробиваемы как скалы.

Вячеслав Ахмечет

Page 4: Erlang – лекарство при высоких нагрузках

Yaws против Apache (Кб/cек. / нагрузка)

Аpache - локальная FS

Apache – NFS

Yaws – NFS

Apache умирает на 4000 конкурентных запросах

Yaws функционирует даже на 80000 конкурентных запросах

Page 5: Erlang – лекарство при высоких нагрузках

Erlang: Язык функционального программирования

Все вычисления – изолированные функции

Page 6: Erlang – лекарство при высоких нагрузках

Требования Конкурентные процессыSoft-RealtimeРаспределенная системаБольшие объемы кодаКомплексная функциональностьБеспрерывная работаHot UpdateОтказоустойчивость

Page 7: Erlang – лекарство при высоких нагрузках

КОНКУРЕНЦИЯ

Водить автомобиль просто, не правда ли?

Только если на трассе ты один!

Page 8: Erlang – лекарство при высоких нагрузках

Конкурентное программирование

Тяжеловесные процессыНеизолированные нити

Традиционные технологии

Erlang

Изолированные легкие процессы

Page 9: Erlang – лекарство при высоких нагрузках

Конкурентный подход Erlang

Большое количество процессовПолная изоляция процессовНикаких общих данныхПрозрачность места исполненияОбмен сообщениями

Page 10: Erlang – лекарство при высоких нагрузках

Легковесные процессы Erlang

Page 11: Erlang – лекарство при высоких нагрузках

Структура процесса

Page 12: Erlang – лекарство при высоких нагрузках

Обработка ошибок

Page 13: Erlang – лекарство при высоких нагрузках

Многоуровневая обработка ошибок

Page 14: Erlang – лекарство при высоких нагрузках

Пример: Интернет-мессенджер

Page 15: Erlang – лекарство при высоких нагрузках

Open Teleсom Platform – дизайн приложений

Page 16: Erlang – лекарство при высоких нагрузках

Линейная схема организации

Page 17: Erlang – лекарство при высоких нагрузках

Главное правило

First make it right,

then (if necessary) make it fast.

Page 18: Erlang – лекарство при высоких нагрузках

AND/OR Схема организации

Page 19: Erlang – лекарство при высоких нагрузках

MNESIA

Распределенная система управления базами данных для телекоммуникационных приложений и приложений с требованиями по близким к реальному времени скоростям получения информации.

Page 20: Erlang – лекарство при высоких нагрузках

MNESIA

Возможность переконфигурирования на лету.Таблицы могут быть перемещены или реплицированы на другой узел.Местоположение таблиц прозрачно для разработчика. Транзакции исполняются конкурентно.Транзакции могут выполняться как на одной машине, так и на всех сразу.

Page 21: Erlang – лекарство при высоких нагрузках

DISCO – MAP/REDUCE

Open Source Map/Reduce фрэймворк для распределенных вычислений.

Вычислительные функции пишутся на Python

Web-приложение мониторинга

Разработан в NOKIA Research Center!

Page 22: Erlang – лекарство при высоких нагрузках

DISCO – MAP/REDUCE

Page 23: Erlang – лекарство при высоких нагрузках

Инструментарий

Web-Серверы: Yaws, MochiWeb, Pico

Фрэймворки: erlyWeb, Eblog, ErlHive

Приложения: efcgi, Cacherl и множество других

http://cean.process-one.net

Comprehensive Erlang Archive Network

Page 24: Erlang – лекарство при высоких нагрузках

Success story

eJabberd

Page 25: Erlang – лекарство при высоких нагрузках

Что почитать

http://erlang.orghttp://forum.trapexit.org/http://www.reddit.com/search?q=erlanghttp://defun.ruhttp://erlang.dmitriid.com/

Google Erlang

Page 26: Erlang – лекарство при высоких нагрузках
Page 27: Erlang – лекарство при высоких нагрузках

Спасибо за внимание :)

Дубовиков Александр[email protected]

ООО “Дремучий лес”http://diphost.ru

ВОПРОСЫ?