Высоко нагруженный проект. На чем делать?

Темы, не касающиеся фреймворка, но относящиеся к программированию в целом.
Аватара пользователя
mitaichik
Сообщения: 512
Зарегистрирован: 2010.09.24, 21:18
Откуда: Россия, Санкт-Петербург

Высоко нагруженный проект. На чем делать?

Сообщение mitaichik »

Магазин автозапчастей. 20млн. запчастей, 69млн кроссов (взимозаменямость запчастей), 400 марок авто, более 56тыс моделей, таблица применямости к марка/моделям, несколько цен для каждой запчасти, обновление позиций по веб-сервисам от поставщиков и пр.

Признаюсь честно, с высоко-нагруженными проектами не работал. А здесь, похоже, именно это. Как думаете, имеет смысл делать на MySQL, потянет? Люди пишут что для таких вещей лучше использовать Oracle. И стоит ли использовать Yii и php вообще? Опять таки почитал - говорят что лучше юзать asp net, или coldFusion?

Просто проект мне нравиться, по сути - просто большой каталог, но нравиться. И я в сомнениях, ибо пишут что лучше использовать другие платформы, а если реально целесообразней делать не на Yii, то лучше отказаться, ибо нравиться мне он и лучше я потрачу время на его более подробное изучение, чем пытаться что-то сделать на других платформах.

Что думаете? Заранее спасибо.

mrix
Сообщения: 125
Зарегистрирован: 2010.08.30, 11:48
Откуда: Россия, Новосибирск

Re: Высоко нагруженный проект. На чем делать?

Сообщение mrix »

Самое главное - посещаемость. 69 млн - не такая большая цифра.

Аватара пользователя
because
Сообщения: 689
Зарегистрирован: 2010.09.30, 22:01

Re: Высоко нагруженный проект. На чем делать?

Сообщение because »

можете попробовать использовать nosql хранилища. например mongodb или redis. mongodb вроде даже адаптирован под yii уже в виде расширения. насколько это будет быстро работать не ручаюсь )
RTFM !

Аватара пользователя
mitaichik
Сообщения: 512
Зарегистрирован: 2010.09.24, 21:18
Откуда: Россия, Санкт-Петербург

Re: Высоко нагруженный проект. На чем делать?

Сообщение mitaichik »

because писал(а):можете попробовать использовать nosql хранилища. например mongodb или redis. mongodb вроде даже адаптирован под yii уже в виде расширения. насколько это будет быстро работать не ручаюсь )
Не, релиационные таблицы - для этого самое то. Держу сейчас в руках книжку "MySQL - Оптимизация производительности" - там довольно много способов описанно как что затюнить.

Интересно, что в ней есть глава "Совместное использование MySQL и Sphinx", и говориться что Sphinx гораздо круче MySQL на полнотекстовых поисках + имеет много возможностей по крутой оптимизации WHERE, ORDER, GROUP. Надо почитать поподробнее ))

Ekstazi
Сообщения: 1428
Зарегистрирован: 2009.08.20, 22:54
Откуда: Молдова, Бельцы
Контактная информация:

Re: Высоко нагруженный проект. На чем делать?

Сообщение Ekstazi »

на компьютере :-D
Выше все верно написали, yii, кеширование, mysql + sphinx и все будет ок.

3Dinterface
Сообщения: 47
Зарегистрирован: 2011.03.02, 19:16

Re: Высоко нагруженный проект. На чем делать?

Сообщение 3Dinterface »

Если напрягает обращение к базе то храни основные данные в памяти, тогда всё будет ок. Все высоконагруженные проекты именно так и живут, кстатии на PHP большинство их и написано. Главные претензии к PHP в том что сложно управлять большими проектами, и модифицировать код. Но фрэйм ворк в плане повышения скорости работы и упращения модификации приложения, тебе как раз очень поможет.

Johnatan
Сообщения: 167
Зарегистрирован: 2010.10.27, 13:06
Откуда: Reino de España

Re: Высоко нагруженный проект. На чем делать?

Сообщение Johnatan »

Самое главное - правильно организовать индексы и кеширование. Придётся забыть про AR и пользоваться DAO напрямую. И сразу организовывать полный дебаг запросов к базе для выявления узких мест. Какие сроки даны на реализацию проекта?
Конференция: yii@conference.jabber.ru

TM123
Сообщения: 608
Зарегистрирован: 2011.06.09, 11:18

Re: Высоко нагруженный проект. На чем делать?

Сообщение TM123 »

1. А это что большая база
2. Главное посещаемость
3. А чем плох MySQL и хорош Oracle, 10 лет назад да, 5 лет назад сомнительно, сейчас - ну есть у Oracle несколько фенечек, но это уже из области тонкого тюнинга для очень небольшого количества очень специфичных приложений, в любом случае у вас не то приложение, на котором вы заметите разницу.
4. А чем плох PHP, на сколько я понимаю другая альтернатива .NET - полная помойка, хотите испортить себя как программиста, тогда .NET ваш выбор

Ну и так до кучи, в мире нет ни одного высоконагруженного приложения работающего не на PHP + MySQL. Ваши альтернативы .NET и Oracle, сюда можно еще причислить несколько не упомянутых технологий - это все корпоративный сектор, софт который продается не потому что он хорош, а потому что большие дяди из одной корпорации за ланчем продали другим большим дядям из другой корпорации отстягнув откат, при этом все они оперировали общими бизнес-терминами графиками кривых и не понимали ничего в программировании, сексом то не они будут заниматься. В общем всем им стало хорошо, одни получили прибыль, другие освоили бюджет.

Аватара пользователя
timlar
Сообщения: 1382
Зарегистрирован: 2009.09.19, 17:49
Откуда: Украина, Днепропетровск
Контактная информация:

Re: Высоко нагруженный проект. На чем делать?

Сообщение timlar »

TM123 писал(а):Ну и так до кучи, в мире нет ни одного высоконагруженного приложения работающего не на PHP + MySQL.
А как на счет того же Твиттера, который написан на Руби? На Питоне тоже пишут высоконагруженные проекты. Не стоит забывать об Erlang'е и Node.js. Писать можно практически на чем угодно, главное знать как правильно это делать.
Twitter: @timlar_ua

TM123
Сообщения: 608
Зарегистрирован: 2011.06.09, 11:18

Re: Высоко нагруженный проект. На чем делать?

Сообщение TM123 »

Хорошо я имел в виду .NET и Oracle, хотя если смотреть на остальные варианты и сравнивать их количество с PHP+MySQL проектами, то их долю можно принять равной 0. Это тоже самое что в начале 2000-х постоянно проскальзывали новости типа продажи LINUX выросли на 300%, а потом смотришь цифры, продавали 30 копий, стали продавать 90, относительный рост конечно высок, а абсолютный не стоит и упоминать.

Согласен что писать можно на чем угодно, вопрос только в затратах на разработку и стоимости владения, у меня на глазах масса примеров в том числе и в которых я участвовал лично. Были проекты (финансовые системы) написанные на PHP мной лично, база данных весила 2-3GB, после того как умное начальство наслушавшись и начитавшись best practix решало перевести их на .NET, на в 20 раз более мощных серверах они не могли работать с той же скоростью что и на PHP и это на базе 50-100MB. Функционал у проектов был полностью одинаковым, даже база данных была одна и та же по структуре, просто данных в таблицах меньше. После некоторого тюнинга кода, они почти приближались к своей PHP версии, но только на базе 50-100MB, при базе 500MB просто опять падали в аут и никакими силами кроме как увеличением железа уже не поднимались и это на фоне того, что .NET разработчики дороже PHP и толковых найти на много труднее, быстрый старт и очень долгое набирание опыта.

Аватара пользователя
BuCeFaL
Сообщения: 447
Зарегистрирован: 2010.03.17, 21:22
Откуда: Kiev
Контактная информация:

Re: Высоко нагруженный проект. На чем делать?

Сообщение BuCeFaL »

TM123 писал(а): ...
Это тоже самое что в начале 2000-х постоянно проскальзывали новости типа продажи LINUX выросли на 300%, а потом смотришь цифры, продавали 30 копий, стали продавать 90, относительный рост конечно высок, а абсолютный не стоит и упоминать.
...
Может все же акции Red Hat, а не копий ?

Аватара пользователя
timlar
Сообщения: 1382
Зарегистрирован: 2009.09.19, 17:49
Откуда: Украина, Днепропетровск
Контактная информация:

Re: Высоко нагруженный проект. На чем делать?

Сообщение timlar »

TM123 писал(а):Хорошо я имел в виду .NET и Oracle, хотя если смотреть на остальные варианты и сравнивать их количество с PHP+MySQL проектами, то их долю можно принять равной 0.
Ну это не значит, что "в мире нет ни одного высоконагруженного приложения работающего не на PHP + MySQL" :) Я об этом...
Twitter: @timlar_ua

troublegum
Сообщения: 27
Зарегистрирован: 2010.12.17, 11:33
Контактная информация:

Re: Высоко нагруженный проект. На чем делать?

Сообщение troublegum »

Я использовал бы чистый PHP, без фреймворкоВ + MySQL или PostgreeSQL + кеширование всего что только можно. Cкажу даже ужасную вещь... даже ООП и ORM бы не использовал бы...

Аватара пользователя
Svyatov
Сообщения: 459
Зарегистрирован: 2010.08.12, 14:50
Откуда: Санкт-Петербург
Контактная информация:

Re: Высоко нагруженный проект. На чем делать?

Сообщение Svyatov »

troublegum писал(а):Я использовал бы чистый PHP, без фреймворкоВ + MySQL или PostgreeSQL + кеширование всего что только можно. Cкажу даже ужасную вещь... даже ООП и ORM бы не использовал бы...
И писал бы все это год, а потом бы никто не смог это поддерживать. Отличный совет :)

Кэширование не спасает от всех бед. А что если основная нагрузка - это запись в базу? Тогда что кэшировать?

troublegum
Сообщения: 27
Зарегистрирован: 2010.12.17, 11:33
Контактная информация:

Re: Высоко нагруженный проект. На чем делать?

Сообщение troublegum »

Svyatov писал(а):
troublegum писал(а):Я использовал бы чистый PHP, без фреймворкоВ + MySQL или PostgreeSQL + кеширование всего что только можно. Cкажу даже ужасную вещь... даже ООП и ORM бы не использовал бы...
И писал бы все это год, а потом бы никто не смог это поддерживать. Отличный совет :)

Кэширование не спасает от всех бед. А что если основная нагрузка - это запись в базу? Тогда что кэшировать?
Ну а как раньше люди писали большие проекты на PHP 4!? В пхп4 не было толковой поддержки ООП. Например: такой замечательный форум был PhpBB (старый) он был полностью процедурный, да возмите Вордпресс там большинство кода процедурного, и ничего живет и поддерживается.

Судя по задаче, на сайте будет преобладать чтение, а не запись.

Аватара пользователя
Troy
Сообщения: 235
Зарегистрирован: 2011.02.03, 21:04

Re: Высоко нагруженный проект. На чем делать?

Сообщение Troy »

troublegum писал(а):
Svyatov писал(а):
troublegum писал(а):Я использовал бы чистый PHP, без фреймворкоВ + MySQL или PostgreeSQL + кеширование всего что только можно. Cкажу даже ужасную вещь... даже ООП и ORM бы не использовал бы...
И писал бы все это год, а потом бы никто не смог это поддерживать. Отличный совет :)

Кэширование не спасает от всех бед. А что если основная нагрузка - это запись в базу? Тогда что кэшировать?
Ну а как раньше люди писали большие проекты на PHP 4!? В пхп4 не было толковой поддержки ООП. Например: такой замечательный форум был PhpBB (старый) он был полностью процедурный, да возмите Вордпресс там большинство кода процедурного, и ничего живет и поддерживается.

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

Ekstazi
Сообщения: 1428
Зарегистрирован: 2009.08.20, 22:54
Откуда: Молдова, Бельцы
Контактная информация:

Re: Высоко нагруженный проект. На чем делать?

Сообщение Ekstazi »

Имхо, на чистом пхп очень сложно добиться той масштабируемости которую может дать вам фреймворк

piter-i
Сообщения: 19
Зарегистрирован: 2011.01.11, 17:47

Re: Высоко нагруженный проект. На чем делать?

Сообщение piter-i »

Вопрос на чём делать довольно спорный, если хорошо знаете пхп, то проще сделать на голом пхп + скажем, постгре, что б в базу не упереться. Если до этого 3-5 лет не работали на дотнете то браться за асп не советую - больше времени уйдёт на борьбу с асп, т.к. сама по себе платформа весьма кривая.
Юзать носкуль в качестве базы в вашем случае не советую, а в оракле не вижу смысла. Оракл если по честному используют у нас не потому что шибко удобно, а потому что шибко круто, продажи в ит-секторе вообще мало коррелируют с качеством продуктов.
А относительно фреймворка (любого) весьма спорная тема, сомнительно что возможность его масштабируемости превысит возможности самого пхп. И никакой активрекорд не обгонит по скорости составленные руками запросы (если, конечно вы хорошо знаете скуль).
Я бы, например, использовал жаву и какой-нибудь лайфрей, но опять таки я работаю на жаве уже несколько лет.
К тому же по указанным вами данным проект не столь высоко нагруженный.

MaratCrash
Сообщения: 200
Зарегистрирован: 2011.03.02, 21:11

Re: Высоко нагруженный проект. На чем делать?

Сообщение MaratCrash »

Я бы делал на YII. Если проект такой крутой, то найдутся и деньги на сервера =) За производительностью можно будет всегда гнаться =) YII - один из быстрых ведь считается фремйворков. Тут главное, ИМХО, все верно спроектировать. Вот тут нужно время потратить столько, сколько нужно, пока не будет четкая картинка проекта.

noize
Сообщения: 9
Зарегистрирован: 2011.07.22, 09:02

Re: Высоко нагруженный проект. На чем делать?

Сообщение noize »

Я бы вообще с другой стороны зашел. Любой успех зависит изначально зависит от профессионализма и навыков людей. Шедевры можно написать на любом языке. Вопрос в том, хватит ли у тебя/твоей команды навыков чтобы повторить подобное, и сколько это займет времени. Плюс фактор текучки, так как со временем программисты могут уходить неожиданно и в самое неподходящее время. Врочем, как и в любой другое сфере. PHP рынок наиболее гибкий, количество готовых серьезных высоконагруженных решений подтверждение тому. Плюс сказываются суммарные затраты на разработку по сравнению с тем же asp. ИМХО, доступ к качественным людским ресурсам - один из ключевых моментов. Что касается фреймворка, то это очень гибкое решение в плане маштабируемости, когда сложно предсказать, сколько людей будет работать над проектом, и размер кода начинает измеряться мегайбайтами. Конечо, при процедурном программировании в начале код будет и проще, и меньше. Но со возрастающей сложностью и размером кода, чистое процедурное программирование, ведет к тому, что каждый программист становится на вес золота. Слишком много индивидуального кода. Для командной разработки - это критично. Насчет субд: реляционные или нерялиционные, или их комбинация - это, имхо, вопрос индивидуальный, и зависит от задач, которые выполняет проект, а также его структуры.

Ответить