Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Мастер-класс по Highload: Разработка крупного масштабируемого web 2.0 проекта с нуля (https://javascript.ru/forum/server/13134-master-klass-po-highload-razrabotka-krupnogo-masshtabiruemogo-web-2-0-proekta-s-nulya.html)

[DiMA] 16.11.2010 22:57

Мастер-класс по Highload: Разработка крупного масштабируемого web 2.0 проекта с нуля
 
Запись на мастер-класс (8 часов) по Highload, 14 декабря 2010 года, Санкт-Петербург

---------------------------------------------------------------------
Разработка крупного масштабируемого web 2.0 проекта с нуля
/соц. сеть на 100 млн пользователей/

---------------------------------------------------------------------

О докладчике:
Дмитрий Бородин, ИТ-директор компании Сонетика.
Архитектор ПО и программист по разработке крупных масштабируемых высоконагруженных web 2.0 проектов. Работы: в 2010г - приложение Лице-Мер, 5-е место в рунете по посещаемости, около 1 млн "уников" ежедневно.
Целевая аудитория:
Программисты (PHP, Java, Ruby, Python), администраторы и архитекторы ПО, которые планируют построить крупный масштабируемый проект: соц.сеть или web 2.0 функционал, крупный блог, СМИ, веб-магазин и т.д. Любой проект, где будут десятки миллионов сущностей (пользователей, товаров, статей, веток обсуждения, других объектов). Если вы уже разрабатываете проект, то сможете обсудить его архитектуру и пути ее доработки до масштабируемой модели. Не важно, на каком языке программирования и базе данных (MySQL/PostgreSQL) вы создаете ваш проект - технологии масштабирования и highload практически одинаковы.
Цели обучения:
  • Разъяснить о значительных различиях разработки обычных проектов и честно горизонтально масштабируемых, которые не имеют проблем внезапного роста посещаемости (в день до +500.000 пользователей, 'хабраэффект' - это мелочи);
  • Познакомить с практическими приемами и характеристиками создания любого крупного проекта, которые вы сможете повторить у себя (больше практики, чем теории);
  • Освоить пошаговую упрощенную инструкцию по созданию соц.сети на 100.000.000 пользователей (или иных сущностей). Она подойдет как для web 2.0, так и для просто крупных проектов.


Запись на мастер-класс:
http://sonetica.ru/highload.html
14 декабря 2010 года, Санкт-Петербург.

Бонус: дополнительная статья об архитектуре ВКонтакте по итогам прошедшей конференции Highload++:
http://spb-borodin.livejournal.com/596.html

***

Народ, большая просьба ко всем запостить себе в твиттер (от себя), статус контакта/фейсбука или блог:
Мастер-класс по #Highload, 14 декабря, Питер: "Построение крупного масштабируемого web 2.0 проекта на 100млн юзеров" - http://sonetica.ru/HL


***

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

Gozar 17.11.2010 13:06

удалено.

[DiMA] 17.11.2010 13:20

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

> срубить бабла.

Не смешите... Вряд ли я получу с этого мероприятия доход больше 20% от месячной зп.

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

> Ведь получается что у большинства просто не будет возможности применить то, что вы расскажите.

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

Gozar 17.11.2010 13:51

удалено.

Gozar 17.11.2010 14:00

удалено.

[DiMA] 17.11.2010 14:05

1. Есть ряд неправильных вопросов, проблема оплаты хостинга одна из них. Дискутировать не буду.

См http://spb-borodin.livejournal.com/596.html 1ю часть.

2. Ничто не мешает заниматься оптимизацией, чтобы снизить затраты на хостинг. Для мелкого и бесплатно проекта это актуально. Для всех крупных - нет. Любая реклама от проекта сразу окупает хостинг.

3. Обучение нужно всем, кто хочет научится программировать. Хайлод, хостинг и т.д. здесь вообще не причем. Я учу, как освободить свой разум и проектировать задачи кардинально по другому. Например, никто с мемкешем не умеет работать. А то, что все называют работой - это где-то 1% того, что можно и нужно уметь с ним сделать. В инете статьи про мемкеш - поверхностны и ни о чем.

[DiMA] 17.11.2010 14:13

Более обосновано напишу в следующей статье, собрав отзывы и массовые сомнения - я нафига мне этот мастер-класс :)

В частности, во время мастер-класса, одна из моих важных задач разъяснить, почему то, о чем я вещаю, касается каждого слушателя лично. А то многие на конференциях сидят с лицом "это меня не касается". И оно на 80% всех коснется, я гарантирую.

monolithed 17.11.2010 14:27

Цитата:

Сообщение от [DiMA
web 2.0

терпеть не могу эту слово-форму (лично мое мнение);)

Цитата:

Сообщение от [DiMA
приложение Лице-Мер, 5-е место в рунете по посещаемости, около 1 млн "уников" ежедневно.

Что это вообще такое? даже в поиске нет .....

Что конкретно вы предлагаете - теория или все действия работы с кодом будут как-то визуализиваться?

[DiMA] 17.11.2010 14:37

5-е место:

http://www.liveinternet.ru/rating/ru/meeting/

> Что конкретно вы предлагаете

Моя главная задача - научить вас думать. Чтобы остальное вы сами при необходимости додумали. Да, будет не легко - взрыв мозга.

Gozar 17.11.2010 14:49

удалено.

[DiMA] 17.11.2010 15:03

> Я пишу CMS

Смысл моего доклада объяснить, что ООП и конкретный функционал вашего проекта не играет никакой роли. В мире делают очень много фреймворков, где играются с ООП (программирование ради программирования). Я же пропагандирую мысль, что нужно думать о другом. А именно, как устроить архитектуру проекта. Как из обычных инструментов mysql+memcache+redis родить нечто новое, благодаря совершенно иным паттернам программирования/архитектуры (не путайте с ООП).

Если вам не интересно это, вы хотите делать CMS и прочие традиционные бизнес-задачи, то мой доклад вам в этих задачах не поможет.

На 10.000 юзеров заботится о масштабировании не нужно. Обычный программист без проблем все сделает. Порог роста, после которого все загнется, где-то от 50.000 до 250.000 пользователей.

Но все же, освоить масштабирование и применять его даже в мелких проекта - это не так сложно/накладно, как кажется. Хотя некоторые программисты, чуть ли не со слезами на глазах пытаются доказать, что это все туфта, когда я их учу работать по другому. А уж какой вой в хабре поднимится от хомячков, когда туда статью зальют... Боюсь даже подумать. Программисты меняются на глазах за 3-6 месяцев, как только масштабирование осваивают. Это типичный антипаттерн "боюсь освоить новое". И обратно в традиционному программированию уже никто не вернется, это как наркотик и темная сторона силы =)

Gozar 17.11.2010 15:09

удалено.

Gozar 17.11.2010 15:16

удалено.

[DiMA] 17.11.2010 15:24

Я упомянул ООП для сравнения. Сейчас в среде программистов считается очень крутым поговорить об особенностях известных фреймворках. Устроить дебаты академиков - какой из них лучше.

Это все - несущественные вопросы.

Лет 20 назад торжествовал процедурный подход в программировании. Его сменило объектно-ориентированное. Сейчас наступает новая эра. Не знаю, как ее назвать, но суть ее - как хранить данные, ибо их много и только от этого зависит успех проекта. Именно этому я и учу. Это даже не совсем программирование.

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

monolithed 17.11.2010 15:39

Честно не знаю что бы я делал если трафик на моем проекте превысил бы порог посещаемости в 50к :)
И мне на самом деле очень интересно что в этих случаях бывает, понятно что менять архитектуру, использовать кеширование, нормализировать базу, провести рефакторинг кода при не обходимости и отказаться от MySQL (причем в связи с последними событиями) но это только предположения основанные личном опыте и статьях хабра...

доп. а есть ли у вас в планах записать выступление, а то не все в СПб живут?

Gozar 17.11.2010 16:00

удалено.

monolithed 17.11.2010 16:27

Теперь в MySQL Classic Edition нет поддержки InnoDB (дополнительно $2000!)

А следовательно менее эффективное: использование CPU, автоматическое восстановление после сбоев, отсутствие построчных блокировок, внешних ключей, транзакций и пр.

Gozar 17.11.2010 17:34

удалено.

monolithed 17.11.2010 17:59

InnoDB более развита

Цитата:

Сообщение от Gozar
вы используете InnoDB и у вас будут проблемы если не будет InnoDB?

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

Но на серьезных проектах MyISAM я бы не рекомендовал использовать, потому что есть ряд существенных недостатков:
- отсутствие самовосстановления по журналу при сбоях
- отсутствие блокировок регионов, меньших, чем целые таблицы
- отсутствие средств резервного копирования (на пример mysqldump)
- для каждой таблицы создается один файл данных

[DiMA] 17.11.2010 19:18

Попробуйте ExtraDB. Это тот же бесплатный innodb, только от другой компании (Перкона и Гугл). Работает в разы быстрее. По слухам... мы еще не применяли, но думаем попробовать.

Gozar 17.11.2010 19:29

удалено.

monolithed 17.11.2010 20:11

Цитата:

Сообщение от Gozar
Начиная с этого предложения я с вами полностью не согласен

Я наверное не так выразился,:) имелось ввиду, что есть к примеру заказ на изготовление двух страничного промо-сайта, где не важно какая БД используется и какие у нее есть плагины и пр.

Цитата:

Сообщение от Gozar
А ваше определение простого и серьезного слишком размыто

На самом деле я очень трепетно отношусь ко всем проектам.

Цитата:

Сообщение от [DiMA
]Попробуйте ExtraDB

Ага слышал, тоже пока руки не доходят потестить

Gozar 17.11.2010 20:27

удалено.

e1f 17.11.2010 21:06

Цитата:

Сообщение от monolithed (Сообщение 79622)
отказаться от MySQL (причем в связи с последними событиями)

тынц. Где здесь написано, что Community Edition не поддерживает InnoDB?

monolithed 17.11.2010 21:13

Цитата:

Сообщение от Gozar
Для двух страничного вообще база не нужна т.к. эти страницы и есть база.

Да вы правы, но иногда все-таки нужна (к примеру если проходит к.л. интерактивное голосование и пр.)

Цитата:

Сообщение от Gozar
1 000 - 100 000 записях в таблицу, это как по вашему большая база или маленькая? сайт большой или маленький 1 000 - 1 000 000 страниц

Это по всей видимости риторический вопрос:)

Цитата:

Сообщение от Gozar
Проблем у меня нет, поэтому я не понимаю почему мне не рекомендуется использовать то, что дешево и работает?

Я не утверждаю, что MyISAM не нужно использовать, просто бывают моменты когда InnoDB предпочтительней. Скажу более, ~ 85% случаев я отдаю предпочтение MyISAM

monolithed 17.11.2010 21:23

Цитата:

Сообщение от e1f
тынц. Где здесь написано, что Community Edition не поддерживает InnoDB?

Я и не знал что в Community Edition тоже есть InnoDB. Как-то не приходилось даже сравнивать с Classic Edition))

Gozar 17.11.2010 21:23

удалено.

Gozar 17.11.2010 21:28

удалено.

monolithed 17.11.2010 21:53

Цитата:

Сообщение от Gozar
я от вас хочу услышать цифры.

Во-первых, 1 000 - 100 000 записей довольно большой размах, чтобы приводить конкретные цифры, к тому же еще и дискретные.

Во-вторых, количество записей в таблице не основной показатель т.к. есть еще как минимум зависимость от структуры и объема данных, кеширование пр.

В третьих, размер каждой из таблиц ограничивается лишь максимальным размером файла в ОС, и количество записей никак не лимитируется. Т.е. при нормальной оптимизации и разбиении записей в таблице (MyISAM) на несколько можно говорить что MyISAM с размером в 100 000 записей вполне пригодна для использования.


Цитата:

Сообщение от Gozar
Не нужно уходить от ответа, не хотите говорить не нужно уворачиваться, просто скажите не хочу и всё и я не буду больше задавать вопросы.

Ничуть, я к вам с достаточным уважением отношусь и вопросы вполне уместны.

monolithed 17.11.2010 21:54

Цитата:

Сообщение от Gozar
Можете мне не верить, но база не обязательна, даже если проходит десять голосований на десяти страницах. По крайней мере можно обойтись без mysql легко.

Почему же, верю. SQLite например. На худой конец делать записи в файлах

Gozar 17.11.2010 21:57

удалено.


Часовой пояс GMT +3, время: 22:54.