Высокопроизводительный сайт - PullRequest
6 голосов
/ 03 марта 2010

Какие технологии я должен использовать при разработке для большого социального сайта (с большим количеством транзакций, таких как твиттер)? используя решения с открытым исходным кодом - база данных - веб сервер - os

Ответы [ 9 ]

10 голосов
/ 03 марта 2010

Как видите, на самом деле не имеет значения, что вы выберете; На всех этих сайтах много трафика, но они основаны на совершенно разных технологиях.

6 голосов
/ 03 марта 2010

На сайтах социальных сетей больше всего важен бэкэнд, так как большая часть узкого места будет оттуда. Возможно, вы захотите рассмотреть базы данных без SQL.

Есть еще несколько таких, как:

Что касается языка программирования, как уже говорили другие, это не имеет большого значения. Но если вы действительно не можете решить, вы можете рассмотреть неблокирующий веб-сервер, такой как Tornado .

2 голосов
/ 03 марта 2010

Хорошей книгой по оптимизации для высокопроизводительных веб-сайтов от инженеров Yahoo является Высокопроизводительные веб-сайты: необходимые знания для разработчиков переднего плана . Это хорошее и короткое руководство, в основном маркированное руководство о том, как сделать сайты быстрее, оптимизируя менее изученный интерфейс.

2 голосов
/ 03 марта 2010

В конце концов, это вопрос личных предпочтений.Твиттер использует Ruby on Rails.Википедия работает на PHP.Reddit использует библиотеку Python с именем web.py, но изначально она была написана на Лиспе.Я бы сказал, выберите технологии, с которыми вы наиболее знакомы.

2 голосов
/ 03 марта 2010

Не имеет значения, какой язык сценариев вы выберете, если вы будете интенсивно использовать memcached .Наличие правильной иерархии кэширования является обязательным.

1 голос
/ 03 марта 2010

Как говорит Джоэл

Люди во всем мире постоянно создают веб-приложения с использованием .NET, Java и все время используют PHP.Ни один из них не терпит неудачу из-за выбора технологии.

Выберите любую из «большой тройки» (.Net, Java или PHP), которую вы знаете лучше всего - эти технологии известны масштабируемостью,реальный вопрос о том, будет ли ваш сайт масштабироваться, заключается в том, как его сайт структурирован и качество кода - использование того фреймворка, с которым вы наиболее знакомы, дает вам наилучшие шансы для достижения этого.

0 голосов
/ 03 марта 2010

Если вы создаете что-то вроде Facebook, то ваш выбор немного ограничен, Facebook создал собственную среду выполнения PHP, отметьте HipHop For PHP

0 голосов
/ 03 марта 2010

Технологии, техники,

  • исследуйте, какие другие масштабные сайты использовали и делали, и какие проблемы у них были меньше, чем успехи, есть подкасты в iTunes, разговоры и интервью на Youtube
  • посмотрите на лучшие отраслевые практики и следуйте им до степени
  • не верьте людям на слово, убедитесь, что вы видите проблему или успех, а не прлиц о ней
  • избегайте очевидных вещей, которые не масштабируются по вертикали или горизонтали, подключения к базе данных, сеансов - файлов cookie и т. П.
  • взгляд на хранилище nosql как на альтернативу sql с меньшими издержками, но с меньшими функциональными возможностями
  • Будьте внимательны при взгляде на язык / рамки. фреймворки поставляются с большим количеством багажа, который вам не нужен, они изначально ускоряют и замедляют в конечном итоге, т. е. вы тратите больше времени на взлом фреймворка, чем на создание сайта. То же самое с языками делает то, что вам нужно, а не модно, круто программировать в т. д.
0 голосов
/ 03 марта 2010

Любые технологии на ваш вкус. В вашей ситуации, я думаю, алгоритмы важнее.

...