четверг, 15 апреля 2010 г.

Впечатления от Ритконф 2010

Недавно проходила конференция Ритконф 2010 http://ritconf.ru/ в Москве. Конференция проходила 3 дня. Не имея возможности наблюдать это вживую, смотрел интернет-трансляцию. В интернет-трансляции показывали лишь 2 зала, а судя по программе конференции залов было 3. Теперь описания докладов, которые мне запомнились и которые я увидел.

Первый день
"NoSQL хранилища / Кирилл Коринский(Yota)" - половину доклада пропустил, из-за проблем интернет-вещания. Как раз в этой половине шла речь о том, как работают NoSQL Услышал в каком состоянии находятся open-source NoSQL решения.

"Реляционные СУБД и их нереляционные реализации / Олег Царев" - появился NoSQL, но следует ли из этого, что РСУБД уходят в тень и NoSQL - новый тренд? Конечно же нет. В противовес NoSQL РСУБД имеют разнообразные индексы, несколько стратегий join(в NoSQL это только nested loop join), встроенный мощный декларативный язык запросов SQL, декомпозицию запросов и многое-многое другое, чего не имеет NoSQL. Надо понимать область применения и ограничения NoSQL перед тем, как использовать именно его вместо РСУБД. Упор доклада не на NoSQL vs РСУБД, а про возможности современных РСУБД. Доклад хороший, но очень быстро прошел.

"Rakudo Perl 6 / Jonathan Worthington" - на самом деле докладывал не Jonathan Worthington, а его российский коллега, т.к. Джонатан по каким-то причинам не смогу приехать. Сам я с Perl сталкивался лишь косвенно, но интересно было послушать, что там творится. Общее впечатление осталось, что Perl наконец-то движется к "нормальному" языку. У них появилась первая спецификация языка, а раннее никакой спецификации не было. Появляется ООП, все становится объектом, синтаксис упрощается, появляются мультифункции. Но переходить на Perl конечно же не буду.

"Виртуализационный бум, о чем молчат вендоры / Денис Гундарев" - развеиваются маркетинговые мифы про виртуализацию. Как всегда, надо думать головой, а не слушать маркетологов. Суть доклада в том, что виртуализация сейчас сыровата, чтобы смело утверждать о "виртуализационном будущем" и тем более настоящем. У неё есть свои проблемы. Опять же: использовать, но думать головой.

"Связность в Рунете / «Филанко»" - понял примерно треть доклада, т.к. до доклада был совсем не в теме. Освещалось понятие "связности" интернета. Почему связность так важна и почему трафик в рунете иногда идет через зарубежные сервера(из-за отсутствия связности). Тут все не так просто и надо поковырять подробнее.

"Почему нужно использовать Скрам в вашем веб-проекте. Опыт «Моего Круга»Евгений Курышев (Яндекс)" - до доклада абсолютно ничего не слышал про Скрам. С виду Скрам - это некая IT-модификация старых-добрых каждодневных "планерок" и совещаний. Причем, это работает... не везде, но работает. Основные момента скрама:
  • Скрам-доска - доска текущих заданий, которая всегда у всех на виду. Докладчик рассказал, что судя по его практике такая доска сильно помогает. Если участники команды сидели в другой комнате или были удаленными, то их эффективности снижалась. У них сейчас  электронная доска.
  • Скрам-митинг - каждодневные "мини-планерки" строго на 15 минут. Начинается строго в одно время. Присутствуют все участники проекта. Каждый отвечает "что сделано", "что будет сделано" и "какие проблемы" с момента прошлого скрам-митинга
  • На каждой итерации или неделе(что может совпадать) - собираемся и обсуждаем результаты. Кто что сделал, какие проблемы возникли, какие у кого планы. Это нужно, чтобы разработчики не делали одно и тоже, делились проблемами(многие разработчики интроверты и пока не спросишь о проблемах - не скажут).
  • Скрам-покер, как метод оценки задач. Как это все выглядит я не понял, но разработчики вроде бы оценивают задачи совместно, путем вытягивания карт. Таким образом, уменьшается вероятность неверной оценки задачи и по каким-то причинам карточками оценивать проще. Грубо говоря Вася сделал фичу, которая позволяет решить задача в 3 раза быстрее, а Коля был не в курсе. Если задачи оцениваются таким образом, то Коля оценит задачу, как сложную, но Вася тут же подскажет ему, что новая фича позволяет сделать задачу быстрее. Либо обратная ситуация: Коля внес изменения, которые усложнят реализацию задачи. Если бы Коли не было на планировании, то Вася неверно оценил бы задачу. Это интересный момент, я сам сталкиваюсь с этим в работе. Ещё докладчик сказал, что они умножают кажущуюся оценку задачи на Пи и для них это работает :-)
В общем интересно, но опять же применять с умом. Стоит покапать поглубже. На конференции было несколько докладов на эту тему.

"Методы оценки качества требований и работы аналитика / Александр Байкин" - отсюда я узнал, что оказывается есть аналитики ставящие постановки в UML. Для меня это было открытием. Ну для аналитиков имеет смысл посмотреть видео, а для остальных - нет. Помню в конце доклада задали хороший вопрос про то, что докладчик предлагал использовать простые и эффективные метрики качества работы аналитиков, а привел в качестве примера противоположные метрики.

"Top-20 глупых высказываний о QA и что на них ответить / Екатерина Рощина" - про тестировщиков. Вот это было интересно послушать. Рекомендую дождаться видео и посмотреть своими глазами. Тут кратенько обо всей кухне данной профессии. Как надо делать и как не надо. Короче, must-see, пересказывать бессмысленно.

Второй день
"Grails. Поиски закончены / Сергей Нековаль (Грамант)" - доклад не развеял моего мнения, что Grails - это "мертвяк" и никогда ему не быть популярным. Также усмехнулся про поддержку Groovy в IDE. Поддержка Groovy в Eclipse ужасна, там есть древний плагин версии около 0.1, который никак не развивается и ужасно глючит. Правда в списке Eclipse шел на последнем месте. Видимо, у NetBeans с этим дела намного лучше.

"Разработка через рефакторинг / Яков Сироткин (Яндекс)" - я этот доклад впервые видел. Можно сказать, что весь доклад в одной фразе "Делайте сразу хорошо, чтобы потом не было плохо". Ну а так, весело послушать, с примерами из жизни.

"Erlyvideo — создание видеостримингового сервера на erlang / Максим Лапшин" - один из самых сильных докладов на конфе. Я сам читаю блог Макса и по его статьям кое-чего начинал юзать, поэтому интересно было, как он будет выступать на конфе. Выступил он отлично, по-моему всем понравилось. Конечно же must-see. В общем Erlang быстро изучается, на нем можно быстро писать и он превосходно масштабируется. Erlang идеально подошел для задачи видеостриминга. Макс(с коллегами?) сделал сервер видео-стриминга erlyvideo, который по возможностям обгоняет текущие open-source решения. Причем этот сервер очень быстрый. 
Но опять же Erlang - это не волшебная таблетка, есть свои недостатки, однако для некоторых задач он является сейчас идеальным кандидатом, что и продемонстрировал Макс. Понравилось ещё название их конторы "Злые марсиане".

"Разработка эффективных и масштабируемых серверных приложений на C/C++ / Владимир Малашенко(Microsoft)" - о разработке серверов под новые версии Windows, где появился уже готовый ThreadPool и прочие вещи, незаменимые при разработке серверов. Из доклада узнал, что Microsoft тратит на одно обновление Windows 1 млн зелени. А так уныло.

"Ситуационное лидерство в Agile / Сурен Самарчян (Innova Group)" - интересно, особенно если вы руководитель и ваша команда неэффективна. Сурен поделился опытом, как он привел к успеху команду, потерпевшую два провала и не имевшую шанса провалится в третий раз. Опять же про Скрам и Agile. Был приведен пример MySpace, которая увеличила эффективности своих команд в среднем в 2,4 раза, применив Скрам. В общем, must-see.

"Облачная футурология по материалам западных конференций / Дмитрий Лоханский (Oversun Scalaxy)" - выступал директор Оверсан, рассказывал про облачные вычисления. В общем было интересно послушать, но чего-то конкретного в голове не отложилось. Облака это удобно и круто, к этому все якобы движется и т.д. Ну и разыграл 2 книги во время доклада. Стоит посмотреть для улучшения понимания облачных технологий.

"Реальный опыт использования облачного хостинга для высокопосещаемых сайтовЕвгений Потапов (Сумма АйТи)" - а вот это уже must-see про облака. У ребят есть такой интересный сайт http://makemybaby.com/, там можно залить свою фотку и фотку партнера и увидеть, какой у вас был бы ребенок. Так вот нагрузка на их сервис в определенные моменты бывает в десятки раз выше обычной. Например, когда про сайт рассказывают по ТВ. В такие моменты сайт у них обычно падал. Причем они предоставляют ещё некий API сторонним разработчикам, который не должен падать по условиям договора. Им приходилось закупать оборудование "впрок", которое фактически 90% времени простаивало и выручало лишь в моменты бума. Естественно, у ребят возникло желание перейти на облачную платформу и платить за используемые ресурсы. Но это оказалось не так-то просто. У облаков есть свои ограничения. Например, время ответа диска может различаться в десять раз, поэтому размещать в облаке БД крайне не рекомендуется(она так и остается на dedicated сервере). Ещё одна из проблем - это то, что instance в облаке может подниматься по одному часу. Соответственно, не может быть речи о мгновенном реагировании на увеличении нагрузки. Короче, оно не стабильно и нужно постоянно мониторить. В общем нужно пилить и пилить и не факт, что облако окупится. В их случае оно сэкономить не помогло, но сервис стал стабильным, перестал падать в моменты пиков.

"Ошибка. Осознание, анализ, извлечение пользы / Вадим Макишвили (Яндекс)" - к сожалению не посмотрел. Говорят, что отличный доклад был, один из самых сильных на конфе.

"Костыли — это кошерно! / Павел Кудинов(Точка Кипения)" - смотрел уже в записи вот здесь http://vimeo.com/10922497. Яркий доклад. Павел рассказывает о реалиях жизни и скорее не о настоящем, а о будущем разработке ПО. Всего сразу не учтешь и не нужно этого бояться, нужно быть гибче и не стремиться всегда превращать "какашку" в конфетку. Реальность такова, что "переписывать все" зачастую не нужно. Must-see.

Третий день

"Принципы балансировки / Алексей Бажин(Mail.ru)" - интересный доклад о том, какими путями можно организовать балансировку. Рассмотрены все самые популярные способы, их достоинства и недостатки, а также какими способами пользуется mail.ru. 

"Эволюция WEB балансировки — производительность / Григорий Гуревич(Crescendo)" - из интереса посмотрел про аппаратные решения веб-балансировки. По сути доклад был пиаром и маркетингом фирмы Crescendo, но смотреть все равно интересно. Приводились примеры из бизнеса, где время ответа сайта стоило им реальных денег.

"Мониторинг как высоконагруженный проектАлександр Быков (Mail.ru)" - о том, как надо мониторить сайты, какой путь прошла mail.ru для этого. После доклада многие высказали мнение, что mail.ru насобирало кучу костылей, которые вроде бы работают.

"Нагрузочное тестирование 1С-Битрикс / (Онтико)"  -  один из самых интересных докладов. Оно было скорее не про Битрикс, сколько про нагрузочное тестирование вообще. Было показано, как должен умирать сайт с ростом нагрузки. Нужно всегда понимать, что мы меряем и что это значит. Мерить нужно всю систему в целом. Надо иметь профиль нагрузки(куда юзеры заходят часто). Речь зашла об инструментах и все сошлись во мнении, что лучше чем jMeter ничего нет. Также Яндекс поделился секретом, что юзает легальный(якобы:)) ботнет для нагрузочного тестирования и свои инструменты. Must see.

"О [нагрузочном] тестировании и мониторинге производительности /Александр Шигин (Рамблер)" - довольно спонтанный технарский и практический доклад. Опять же всегда понимать, что мы меряем и что среднее время ни о чем не говорит.

"Проектирование физической структуры баз данных для SQL Server 2008 / Дмитрий Артемов (Microsoft)" - половину доклада рассказывалось про кластеризованные и некластеризованные индексы, потом про новые фильтрованные индексы, появлению новых инструментов для анализа индексов и системные представления в SQL Server 2008. В общем интересно, для тех, кто активно юзает SQL Server 2008 .

"Создание картографического сервиса на коленке (PostGIS/MapServer) / Андрей Костенко (Рамблер)" - ребята напили свой сайт http://visamap.net/ используя PostgreSQL и PostGIS, т.к. Google Maps и Яндекс.Карты не давал раскрашивать страны в разные цвета. По сути весь доклад показывал функции из доки и давал к ним комменты. В общем создание картографического сервиса - задача решаемая и не стоит её пугаться.

"Гигапиксели и пета-масштабы: астрономические вызовы технологиям баз данных / Иван Золотухин Олег Бартунов" - для меня был одним из самых интересных докладов. Речь шла о том, что в связи с развитием науки(а в частности датчиков) количество получаемой информации растет экспоненциально. Если речь раньше шла о терабайтах, то теперь о петабайтах. Возникает проблема анализа данных учеными из разных стран мира, но такие объемы данных невозможно переслать по сети. Необходимо некое хранилище, способное по запросу выдавать или что ещё лучше сразу анализировать необходимый кусок данных. Данные, как правило представлены в виде двумерных массивов, а массивы в реляционной СУБД обрабатываются очень тяжело, хоть и SQL позволяет весьма элегантно выбирать их. Эта и другие проблемы на данный момент не решены и не могут быть решена в существующих моделях РСУБД, никакие "заплатки" тут не помогут. Поэтому возникла необходимость начать разработку с чистого листа и она началась. Данная задача решается в рамках проекта SciDB. В данном проекте, кстати участвует живой классик СУБД Майкл Стоунбрейкер, ну и Олег Бартунов. В ближайшее время появятся первые бета-версии. Так что пожелаем удачи Олегу и команде SciDB.


Итоги
Отличная конференция. К сожалению, не было возможности пообщаться с участниками, т.к. смотрел через инет.