2008-10-12

Highload++ 2008: Erlang — лекарство при высоких нагрузках

Опять позабавила фамилия докладчика. «Дyбoвиков из компании Дремучий лес».

Хорошая реклама Erlang. Яркие цитаты:

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

Мощные цифры:

80000 конкурентных запросов у Yaws против 4000 у Apache. Коммутатор AXD301 — надежность девять девяток. Не больше 2 часов сбоев за 40 лет.

Но без введения в сам язык — т.е. графики и схемы, супер-саксес-стори, но ни одного куска кода. И не мудрено, репутация у языка сложилась такая, что это такой уродец-brainfuck, что даже родная мать — компания Ericsson — отказалась его поддерживать.

Известно, что в России есть несколько программистов на Erlang, лично я хорошо запомнил тред-флейм на тему выбора веб-фреймворка, где апологет Erlanga, вроде как убедив противную сторону в преимуществах, на вопрос «где набрать команду Erlangистов», просто недоумевал «А зачем больше одного программиста?».

И тут вроде как публике показали живого Эрлангиста, все благоговейно внимали. Но потом, потыкав с разных сторон, вдруг поняли, что их обманули — «это не настоящий сварщик, маску на стройке нашел» — это только начинающий. Впрочем, когда начался шум, замаскированные эрлангисты вроде обнаружились в зале.

Публика, уяснив, что это штука страшная, долбилась с одним вопросом — «а даст ли Erlang линейное масштабирование?», т.е. стоит ли игра свеч. На что докладчик излишне честно отвечал, что нет. Надо было отвечать — «да!». Хорошая была бы шутка над людьми. Единственное, пришлось бы прятатся через год, когда злые парни «искали того мужика, что продал им хомячка».

Вообще попробовать надо (облака там уже в эрланге, и вообще, можно гордится как знанием латыни или эсперанто), но лучше не в чистом виде. Например, посмотреть на попытки приручить Erlang, например DISCO (Erlang+Python).

4 комментария:

ad-null комментирует...

Да ладно вам, я вроде честно сказал в самом начале, что не являюсь Erlang-гиком. Вся цель сего действа была организовать интригу. Судя по разговорам после - интрига удалась. Как минимум десяток решило посмотреть, что это за зверь. Я считаю, что это позитивно. Что касается кода, то в формате доклада это было бы неинтересно без рассказа что это за зверь. А время ограничено. Поиграйтесь, вам понравится :)

schors комментирует...

> «а даст ли Erlang линейное масштабирование?»

Так вопрос такой был. Я не зря вылез с коментарием. Erlang это инструмент - ожидания зала от инструмента чуда - это как раз беда горе-разработчиков. Любые чудеса - это руки разработчика. Всё остальное - только облегчающий инструмент. Строго линейного масштабирования не даст ничто. Интерконнект всегда будет кушать свою часть.

Stas Fomin комментирует...

Всем спасибо за комментарии!
я вроде честно сказал в самом начале, что не являюсь Erlang-гиком
Ну вроде не в начале только.
А так да, позитивный доклад.
Я заинтересован, вот разгребусь — попробую.
«Если только жив я буду, Чудный остров навещу, У Гвидона погощу»


зала от инструмента чуда - это как раз беда горе-разработчиков

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

ad-null комментирует...

«раздал данные, посчитали, собрать результаты» — такие должны масштабироваться линейно.
Такие - да. Собственно map/reduce линейное ускорение дает. Ну я там же и говорил, что все зависит от дизайна приложения. Просто на общих задачах erl позволяет не думать о масштабировании. Ну а если скорость не устраивает, можно уже тюнить, благо все средства есть.