25-26 октября прошла конференция HighLoad++ 2010, посвященная разработке высоконагруженных систем. После конференции у меня сразу родились планы на два поста: типичный отчет и описание архитектуры Вконтакте. С порядком написания я, видимо, не прогадал - получился один из самых успешных постов на Insight IT. Остальные доклады на мероприятии были, пожалуй, существенно менее животрепещущими для общественности, но все же не менее интересными. Приступим.
Организационные моменты
Прежде чем переходить собственно к рассказу о докладах, хочется сразу высказаться по организационным вопросам, чтобы далее не отвлекаться. Возможно организаторы учтут при проведении последующих мероприятий.
Во-первых, участие в конференции: цены конечно не самые высокие для двухдневных конференций, но все равно слегка зашкаливают - лично я бы не пошел на данное мероприятие за такие деньги, даже не смотря на то что тематика полностью совпадает со сферой моих профессиональных интересов. За кого-то заплатил работодатель, а мне вот пришлось доставать бесплатное участие через знакомых знакомых... (спасибо добрым людям, если вдруг читают :) )
Во-вторых, удивила ситуация со связью со внешним миром: интернет был на очень хорошем для конференций уровне - тупил местами, но в целом стабильно работал, а вот мобильная связь не работала практически совсем - уезжал домой с почти севшим телефоном.
Политика организовывать не ставить два потенциально интересных доклада параллельно меня очень порадовал - послушал в живую все, что хотел. А небольшая давка в первом зале в начале первого дня мне кажется была очень даже справедливой платой за отсутствие необходимости разрываться на части.
С едой все было в порядке, очереди конечно великоваты не смотря на два обеда в разное время, но всегда можно было обойти данное неудобство (перейти в другой "раздаточный пункт" или залезть на сцену, хоть и не разрешали).
Еще очень порадовало, что презентации первого дня конференции были уже доступны участникам еще за пару часов до окончания первого дня. Но вот с оставшимися презентациями и видео с мероприятия видимо произошла какая-то заминка и я так и не получил ссылку на них до сих пор, судя по всему они так и не доступны.
День первый
Основной особенностью первого дня было выделение целого зала под англоязычные доклады зарубежных коллег. Как я уже писал, желающих послушать иностранцев, было очень много - и в первой половине дня люди толпились чуть ли не в коридоре, но ближе к вечеру ситуация стабилизировалась.
После приветственного слова Олега Бунина (одного из основных организаторов конференции) слово взял Joe Damato, которого позиционировали как известного хакера, активно работающего над развитием Ruby. Темой выступления был обзор различных инструментов и приемов для анализа ситуации в серверном Linux-окружении. Некоторые моменты были мне известны и ранее, но в целом больше половины доклада было для меня очень интересно и ново. Перечислять упомянутые им приемы я, честно говоря, не вижу смысла - будет просто дублирование презентации. Если ранжировать доклады первого дня по интересу лично для меня, то это выступление заняло бы, пожалуй, второе место.
Вторым докладчиком был также приверженец секты Рубистов, James Golick, один из основателей социальной сети для фетишистов (простите за отсутствие ссылки). Основной фишкой доклада было "разоблачение мифов", в частности об облачных вычислениях и NoSQL. Количество пользователей этой социальной сети, но они очень активны и генерируют достаточно много контента (особенно по Российским меркам). Проект изначально располагался в компании, которая предоставляла услуги managed hosting (хостинг на арендуемых серверах + за тебя администрируют), но они посчитали, что слишком много переплачивают за этот самый "managed", и решили поддаться тренду и переехать в облако (AmazonEC2). По деньгам получилось не сильно дешевле, но больше всего из расстроила производительность виртуальных машин (кажется, был слайд со скоростью доступа к дисковой подсистеме, выставляющий облако не в лучшем свете). Второй эпопеей в их проекте были попытки оптимизировать подсистему хранения данных путем перенесения ее части в NoSQL хранилище: пробовали MongoDB (выкинули из-за блокировок на операциях удаления) и Cassandra (выкинули из-за медленного случайного чтения). Финальным решением стал Redis + MySQL, просто и со вкусом - их всецело устраивает на данный момент, как я понял.
Третьим выступал Robert Johnson из Facebook, доклад был практически таким же, как и в ГУ-ВШЭ за несколько дней до этого - о нем я уже писал, так что подробно останавливаться не буду. Основным отличием были дополнительные технические детали, но подавляющее большинство из них и так уже были описаны в статье "Архитектура Facebook".
После обеда выступал Patrice Pelland из Microsoft, доклад был о том, как работают их облачные сервисы (видимо live, skydrive и прочие). Естественно все на их же продуктах, большинство названий я даже не слышал. Единственное, что запомнил из выступления - у мелкомягких есть даже клон memcached, но с какими-то дополнительными плюшками. Это был единственный доклад, после которого никто не захотел задать даже одного вопроса, что в целом наглядно продемонстрировало незаинтересованность аудитории в платных решениях. В твиттере после этого выступления проскользнула обиженная фраза докладчика, что-то в духе: "До них просто не дошло, о чем я говорил".
После этого недоразумения от MS началась длинная серия докладов от людей, причастных к созданию PostgreSQL:
- Simon Riggs из 2nd Quadrant
- Robert Treat из Omni TI
- Bruce Momjian из EnterpriseDB
Было 5 выступлений о PostgreSQL подряд:
- Повышение производительности
- Управление репликацией
- Масштабирование
- Быстрая смена версии средствами pg_update
- Потоковая репликация
В целом очень актуальные доклады, если Вы плотно работаете с PostgreSQL в своем проекте или на своей работе. Я вообще тоже когда стоит выбор между доступными реляционными СУБД чаще всего склоняюсь к PostgreSQL, но доклады были детализированными не там, где нужно, и было скучновато. В этой секции порадовали три вещи:
- очень качественный английский у докладчиков
- забавная манера выступления Роберта, особенно про красные кроки (что-то типа галош)
- активная реклама новых вкусностей PostgreSQL 9.0, релиз которой я по каким-то причинам проворонил - надо будет обязательно попробовать ее в деле
После кофе-брейка я пошел на больше всего понравившийся мне доклад (за первый день) - выступал Stoyan Stefanov из Yahoo! Темой доклада была заявлена неочевидная формулировка "Progressive Downloads and Rendering", хотя на самом деле все свелось к грамотно построенному докладу о клиентской оптимизации: несколько вводных картинок, один слайд с базовыми приемами и много-много примеров очевидных и не очень случаев, когда с точки зрения пользователя сайт начинает тупить, даже если серверная часть проекта написано грамотно и работает достаточно быстро. По некоторым аспектам, в частности про кроссбраузерному использованию data:URL+MHTML, он ссылался на русские источники, а также очень позитивно отзывался о Николае Мациевском.
Последним, что я посетил в первый день, была "открытая встреча" c James Golick и Joe Damato про сам Ruby. Ожидал большего: в итоге Joe вообще не выступил, а большая часть времени ушла на разжёвывание базовых возможностей языка и несколько мелких холиваров.
День второй
На второй день я немного проспал и приехал ближе к концу первого доклада: оказалось, что я не один такой - людей было раза в три меньше, чем за день до этого. Выбор потока куда пойти был легок: в первом зале все утро было посвящено Python, с которым я последнее время довольно плотненько работал.
После докладов на английском "отечественные" выступления смотрелись совсем блекло. Конец выступления Андрея Смирнова про Twisted не принес мне хоть какой-либо полезной информации, тем более мне все равно больше по душе Tornado. Вопрос про их сравнение от одного из слушателей вызвал у докладчика рассказать историю о том, как будущий автор Tornado тусовался в сообществе Twisted, а потом взял и сделал свой продукт.
Следующий доклад был про профилирование памяти в Python от Антона Грицая - начал он историю очень издалека, с того что такое утечки памяти, какие бывают "сборщики мусора", какие есть варианты искать утечки в Python и чем они плохи, собственно до "дела" он дошел лишь к концу доклада. Было предложено пользоваться продуктом под названием heapy, который обладает широким спектром возможности, но при этом документация сильно хромает.
Последним докладом в секции про Python было выступление трех бравых ребят из HeadHunter, которые рассказывали про их внутренний продукт под названием Frontik, представляющий собой надстройку над Tornado, аггрегирующую данные с нескольких HTTP-сервисов. В целом идея мне понравилась, но ввиду исторических причин реализация у них накручена очень муторно:
- основной формат передачи данных - XML по HTTP
- генерация HTML посредством XSLT
- регулярные выражения где надо и где не надо (для повышения производительности)
Основным событием оставшейся части второго дня, как Вы уже наверное поняли, был аншлаг с участием Вконтакте и лично Павлом Дуровым в главной роли. Результаты подробно расписаны в статье "Архитектура Вконтакте", повторяться не буду, с Вашего позволения.
Остальные доклады я застал лишь частями, так как блуждал по залам без особого энтузиазма, да и в толпе вокруг Павла чуток потусовался. Расскажу вкратце запомнившиеся моменты:
- Юрий Востриков из Mail.ru рассказывал про Tarantool/Silverbox - еще после их технологического форума подумываю попробовать этот продукт в деле, но после этого выступления понял, что пока рановато: не известно ни об одном успешном применении вне компании-разработчика, да и библиотеки с реализацией полноценного протокола есть далеко не под все языки программирования.
- На доклад про реализацию одного из топовых приложений Вконтакте на Rails я попал почти к самой сессии вопросов-ответов, запомнился только тот факт, что после того как компания, в которой работал докладчик, передала приложение заказчику - они почти сразу же переписали его на PHP. Заставляет задуматься.
- В третьем, дополнительном, зале во второй половине дня расположился тренинг Start in Garage для людей, планирующих сделать свой стартап; ребята рассказывали весело и непринужденно, но по сути все было очень примитивно - ушел минут через 20 после начала на аншлаг вконтакте.
- Про Scalaxy было бы интересно написать отдельную статью, больно часто они всплывают на конференциях и в онлайн-сообществах. На этот раз рассказывали о том, как они выделяют избыточные дисковые массивы для виртуальных машин (которые они собственно в аренду сдают). Технология называется Vast Sky, родом откуда-то из Азии, позволяет легко выделять заданное количество блоковых устройств на разных дисковых системах и подключать их к виртуальной машине в виде софтверного RAID. В сочетании с их QDR Infiniband от Voltaire работает очень даже шустро (по крайней мере если верить их бенчмаркам по сравнению с альтернативными технологиями).
- Scalaxy же запускает сервис ddosme, предназначенный для нагрузочного тестирования интернет-проектов. Попал опять только на вопросы-ответы, из них понял, что они предлагают через прокси походить по своему ресурсу, затем на основе логов составляются маршруты движения ботов по сайту и тестирование запускается на нужных мощностях. Сколько стоит не понял.
- Последним докладом, который я застал краем глаза, было обсуждение основных косяков, мешающих 1С-Битрикс обслуживать пристойное количество пользователей - для меня совершенно не актуальный вопрос, так что после этого я начал собираться в сторону выхода и отправился смотреть "Социальная сеть".
Заключение
Впечатления от конференции очень положительные: большинство докладов хотя бы немного полезны, рекламы вообще минимум, организация на уровне. По-прежнему не знаю стоит ли она своих денег, но потраченного времени точно стоит. Надеюсь в следующем году будет по-проще попасть.
Хотелось бы видеть больше докладов не о конкретных инструментах и технологиях, а о их применении в рамках построения общей архитектуры проекта или решения конкретных нетривиальных задач. Доклады в духе "у нас вот такая классная штука есть, но стоит денег" и "приходите к нам работать, чтобы попробовать в деле эту технологию" как обычно скучны, но вроде их было довольно мало (надеюсь докладчики хотябы платят организатором за возможность порекламироваться?). Приглашенные иностранные гости - ход очень классный, мне кажется основной ключ успеха прошедшего мероприятия, в этом направлении определенно стоит двигаться - хотелось бы увидеть представителей известных проектов (Google, Ebay, Amazon, Flickr, Twitter, Baidu, QQ и.т.д.) и людей, решающих реально нетривиальные задачи, вроде Joe Damato.
В любом случае спасибо организаторам за два с толком проведенных дня :)
Да, думаю Вы уже заметили, что блог Insight IT снова потихоньку возвращается к жизни, так что подписываться на RSS никогда не поздно.