Ежедневные обзоры стартапов, интересных
интернет-проектов и сервисов рунета
Популярное:
Все фильмы онлайн:
Следите за нами:
TwitterОдноклассники.ру | Моя страница catalogrFacebook/catalogrВ Контакте / CatalogrПодписки
dev

Итоги DEV {web} — конференция о высоконагруженной веб-разработке

13 октября на конференции DEV {web}, организованной компанией IT-Portfolio, успешные разработчики, системные архитекторы и руководители известных интернет-проектов поделились своим опытом с коллегами, рассказав о тонкостях веб-разработки высоконагруженных проектов. На ней были не только профессионалы из Санкт-Петербурга, но и других городов – Москвы, Самары, Екатеринбурга, Омска. А также стран – Украины и Белоруссии.

Среди выступающих, были представители таких компаний как Topface, WapStart, Cezurity и Фотострана. Все спикеры были открыты для вопросов и дискуссий, которые возникали в огромном количестве.

С фотографиями и можно ознакомиться по ссылкам: ВКонтакте, Facebook.

Дмитрий Бородин, CTO Topface, рассказал, что «настоящий» highload нужен проектам с 2-4 серверами, а в крупных он на втором плане. Имея честное горизонтальное масштабирование можно относительно эффективно работать даже с лапшекодом и неоптимизированным SQL, используя дешевые сервера и провайдера.

Надо сказать, что, по мнению IT-Portfolio (в частности, Александра Красса) и некоторых спикеров, позиция несколько неоднозначная. Если у проекта есть деньги и пользователи, чтобы использовать 2—4 сервера, причем, хотя бы с относительной эффективностью, то он уже явно достаточно успешен, а значит можно выделить деньги на апгрейд старых и вообще развитие проекта. Так итеративно развивались многие успешные проекты. Ведь чтобы сразу думать о правильном горизонтальном масштабировании, нужно иметь огромный опыт, знания и иметь возможность потратить много дополнительных усилий. Однако, полностью пренебрегать им тоже не следует, если есть хоть малейшая возможность сразу сделать все более-менее правильно. Ведь переписать будет намного дороже.

В рамках доклада Дмитрий задал несколько «невозможных» задач по разработке крупных web 2.0 проектов. Некоторые из них были решены с помощью общих усилий зала и спикеров на панельной дискуссии чуть позже, а некоторые стали «домашним заданием» участникам. По словам Дмитрия, при правильном решении четырех поставленных задач можно закрыть 85% проблем веб-разработки высоконагруженных проектов:

  • Понимание проблем атомарности и многопоточности ~ 25%
  • Тщательное освоение какой-то no-sql базы (Memcache) ~ 25%
  • Паттерны оперирования данными в sql и no-sql (честное горизонтальное масштабирование, шардинг и т.д.) ~ 25%
  • Отложенное исполнение нагрузки ~ 10%

Дмитрий Смирнов, ведущий разработчик компании «Фотострана», поделился секретами успеха проекта  и рассказал как правильно использовать PHP, MySQL, демонов на С++, memcache и другие технологии в проекте с 30 млн. посещаемостью.

Например, у Фотостраны более 200 серверов, но они не особо задумываются о «честной» горизонтальной масштабируемости. Многие их потенциально узкие места могут держать нагрузки в 2-3 раза выше уже сейчас (посещаемость проекта более 1,5 млн. в день). Плюс можно установить более мощные сервера.

Коллеги из Фотостраны, когда видят сложности с производительностью, которые сложно решить с помощью сущестующих технологий, просто пишут свои решения, например, демонов на C++. Пример работы с одним из них есть в презентации.

Кроме того, у них свое собственное NoSQL-хранилище Lemon. Они не смогли эффективно настроить Redis и не стали мучиться. Пообщавшись с другими спикерами и участниками, можно сделать вывод, что практически никому не удается эффективно использовать Redis или MondoDB — слишком тонкая настройка нужна, а людей которые это умеют катастрофически мало. Для больших проектов проще написать свое с нуля, а для средних – вообще подобные решения не использовать.

Отдельно стоит отменить слова Дмитрия о том, что при работе с PHP-кодом (130 серверов) только 30% занимают временные затраты на базы данных. Он отдельно отметил, что это, видимо, говорит о неэффективном использовании PHP. Отсюда можно сделать вывод, что в больших проектах не так уж много проблем с MySQL. У Фотостраны таких серверов всего 14, причем только 7 обрабатывают запросы пользователей, а остальные для надежности и обновлений. Презентация.

Как реагирует компания Cezurity на случайные сбои и предсказывает неслучайные, поведал ведущий разработчик Александр Чистяков. Во время доклада было очень много обсуждений технологий, которые используют различные проекты. Автор поделился личной «болью» по настройке всего что только может пригодиться. В докладе было очень много полезных деталей, подробнее смотрите в презентации. Презентация.

Филипп Дельгядо, CTO Goodwix, ex-teamlead Яндекс.Деньги, в своем выступлении рассказал о том, как правильно использовать Java в веб-проекте. Тема «Java в вебе, в поисках проблем…» была раскрыта очень подробно. Он показал различные сложности, которые встречаются, например, при PHP-разработке, но легко решаются в рамках стека технологий и специалистов из Java-мира.

В итоге, Филипп дал рецепт построения своего фреймворка на Java, рекомендовав использовать сторонние только при условии наличия отличного специалиста, который знает именно в нем все тонкости. Сам фреймворк получился крайне простой, производительный и использующий некоторые популярные технологии. Его может создать средний разработчик где-то за 2 недели.

Отдельно стоит отметить, что в рамках работы с этим фреймворком достаточно расширять штат только Java Junior Developers – более высококвалифицированные и дорогие специалисты практически не требуются. Плюс решается проблема с верстальщиками – им фактически ничего не нужно знать о Java-окружении, только немного JavaScript, а интеграция frontend и backend делается крайне просто. Это все очень сильно экономит деньги работодателя – ведь не нужно держать штат высокооплачиваемых специалистов с огромным опытом, которых и найти-то крайне сложно. Презентация.

Евгений Коковихинсистемный архитектор WapStart, рассказал, что важно знать и помнить при проектировании приложений, способных масштабироваться. Это был последний доклад, но, тем не менее, было много полезной информации о граблях, на которые запросто может наступить большой проект, что можно ожидать от memcache и как его можно использовать. Это переросло в небольшую и полезную дискуссию, к которой подключились другие спикеры и участники. Плюс Евгений остановился на очень полезном сервисе для мониторинга производительности, pinba, который несколько раз упоминали другие спикеры. Презентация.

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

В середине конференции была организована панельная дискуссия, которую вел Александр Красс (генеральный директор IT-Portfolio), в ней участвовали все спикеры. Дискуссия была посвящена проблеме выбора технологий и архитектуры для высоконагруженных проектов и построена так, что вопрос от ведущего чередовался с вопросами из зала. После интенсивного обсуждения некоторые участники определили эффективную стратегию развития своих проектов, а другие разобрались с текущими сложностями.

Благодаря DEV {web} профессиональные веб-разработчики смогли обменяться опытом. Мероприятия, проводимые компанией IT-Portfolio, служат отличной возможностью познакомиться и пообщаться с высококвалифицированными профессионалами, а также получить необходимые знания для развития и создания своих проектов.

Когда будет следующее мероприятие, организаторы не уточняют, но сообщается, что уже скоро.

Фри-ланс.ру -- Поиск фриланс контактов
ДаримВместе - Создание совместного подарка