Выбор платформы для написания веб-сервисов (главные критерии: надежность, масштабируемость, скорость) – помогите определиться с выбором платформы Из кандидатов: 1. Perl 2. PHP 3. ASP (ASP .NET) 4. Ruby, Python (другие?)... Для написания небольших задач - наверное что лучше знаешь и что больше нравится - то и выбирай. По крайней мере для небольшой задачи я бы так и сделал А что лучше выбрать при больших нагрузках (исходим из того, что сервер свой и поставить туда можно что угодно)? Если составить базовый список критериев, то получится: 1. Надежность (99,999%) и безопасность. 2. Масштабируемость. 3. Скорость. 4. Работа с большими нагрузками – большие объемы трафика, большое количество одновременно работающих пользователей. По результатам поиска в интернете получается: 1. Самый надежный и безопасный - Perl. Следом - ASP, потом PHP (с безопасностью для него ситуация вроде довольно быстро меняется в лучшую сторону – благодаря PHP Security Consortium). 2. По масштабируемости - неясно. PHP активно используют крупные компании – к примеру Yahoo и JupiterMedia (http://www.citnews.ru/news/341/), про ASP встречал упоминания eBay.com. Идеальный вариант - чтобы в случае большой нагрузки можно было просто добавить новый сервер с минимальным переконфигурированием. Что в этом случае лучше? 3. По скорости - получается что Perl и PHP приблизительно одинаковы при использовании mod_perl и mod_php. А как в случае использования ASP .NET? Если разделить задачи на расчетные (скажем формирование контента) и выборки/занесения данных из базы? 4. Что здесь предпочтительней? Платформа на основе PHP/Perl или на основе ASP? Конечно есть и другие не менее важные критерии: 1. Скорость написания кода. 2. Удобство отладки. 3. Сопровождение кода (тем-же или другим человеком). 4. Расширение функциональности действующей системы. 5. Наличие готовых стандартных библиотек "на все случаи жизни" (обработка XML, юникод и т.д.). ... вообщем полный цикл поддержки системы. Как здесь обстоит дело? Если исходить из того, что это будет не пара скриптов, а система, которую будет разрабатывать команда (около 5-10 человек) в течении минимум полугода и потом она будет активно развиваться - что в этом случае предпочтительней? Понятно, что в целом ответы зависят от того что нужно сделать. Если более конкретизировать задачу - то это будет что-то типа мета-поисковика (сбор информации из разных сайтов, парсинг и занесение в базу, отображение результатов пользователю по поисковому запросу). Поделитесь пожалуйста вашим личным опытом - он самый ценный! Если был опыт в разработке крупных систем (пусть они совсем не похожи на мета-поиск) - какие возникали проблемы, насколько они хорошо решались на разных платформах? В пользу чего в итоге был сделан выбор? По каким соображениям и критериям? Спасибо за помощь! P.S. Буду также благодарен за ссылки на статьи, обсуждения в форумах, проясняющие вопрос - возможно я что-то упустил при поиске информации. Мой e-mail для приватных сообщений - rss354_собака_rambler_точка_ru
Главное за что не люблю ASP, это то, что оно работает только под виндой. Так по п.1(безопастность) оно в глубокой ... Perl имхо не лучший язык для web-программирования. А для поисковиков имхо главное не выбор языка, а выбор БД и проработка ее структуры.
Нет, но вот аргументированнй ответ почему PHP будет в данном случае предпочтительней был бы неплохим вариантом
FreeBSD, Apache 1.3.xx, Oracle компилируемый язык (С, C++) оперативочки побольше да процессор помощнее, а лучше два! и харды - SCSI в рэйде! А на самом деле я думаю, что вам надо вот это: FreeBSD, Apache 1.3.xx, PHP 5.1.5, PostgreeSQL и надёжно, и быстро
Я думал о связке PHP и С++. PHP - паук, веб-интерфейс. C++ - ядро (морфология, индексирование, ранжирование). Насчет дальнейшей поддержки - в начале систему разработает классная команда. Потом неизбежно возникнет вопрос поддержки - ею скорее всего будут заниматься совсем другие люди (уровнем пониже). Нужно будет также добавлять новую функциональность. Идея такая - ядро сделано, меняется минимально. Все остальное (расширение функционала) - дописывается на PHP другими людьми. Вот такие вот мысли Насчет масштабируемости - тут весь нюанс в том, что одного серверва может и не хватить - нужно будет несколько, работа которых должны координироваться... Как это лучше сделать - тоже хороший вопрос... Насколько надежен PostgreeSQL? Есть опыт его использования в реальных проектах при больших нагрузках? Насколько он хорошо справляется в таких случаях? Спасибо за ответы!
Вопрос команды открыт - то есть её ещё нет. Хотелось вначале определиться в вопросе "что использовать", а потом исходя из этого формировать команду.
сравните их преимущества и недостатки php5: достоинства - очень быстр (быстрее Perl) - прост - кроссплатформен - изначально веб-ориентированный - C-подобный синтаксис - ООП - XML - поддержка громадного числа баз данных - много готовых решений - много инструментов легенды о небезопасном php пошли от дырявых приложений написанных на нем (проблема программеров, а не языка)
Как же тут поделишься, это же не кусок хлеба А вообще: -компиллируемый язык -кроссплатформенный -по скорости немного уступает C, но более удобен для интернет приложений, а также во много раз быстрее PHP,PERL,ASP. -работает с огромным количеством баз данных -ООП -Даже плохому разработчику будет трудно создать уязвимый код я бы мог перечислять еще, но боюсь клаву пробить
могу сказать, что за два года работы сервера статистики (биллинг) ни одного сбоя не было... Поищи в инете,,, сравнительный анализ различных сереверов баз данных для определённых задач... Информации полно.
Документ "Выбор платформы для веб" Возникла мысль сделать некий сборник мнений разных авторов - и выложить его в свободный доступ. Думаю не я первый и не я последний интересуюсь этой темой - а так уже будет готов небольшой сборник мнений на эту тему. Я думаю это будет очень полезная вещь - поскольку здесь будет показан опыт нескольких авторов, который высказывает именно свои соображения исходя из своего опыта, а не понаслышке. Ну а мне в свою очередь хочется сделать полезное сетевому сообществу. Что для этого нужно - просто высказать свое мнение. Приблизительная табличка (это мое мнение) - во вложении. Лучше все содержание стереть, и заполнить своим - в произвольной форме. Это не обязательно будет табличка. Вообще пишете то, что считаете нужным (с чем вы сталкивались). Я очень надеюсь что инициатива найдет поддержку с вашей стороны - с моей стороны - я буду "склеивать" ваши мнения, потом всю информацию оформлю и выложу в открытый доступ. Кто уже публиковал свои мнения - я включу ваши мнения в документ. Если есть уточнения или возражения - высказывайте, я их обязательно учту. Ключевые моменты: 1. Тема "Выбор платформы для веб на основе С++, Java, PHP, Perl, ASP" (возможны другие языки). 2. Каждый пишет только то, что считает нужным (т.е. нет задачи описать все). Это может быть просто пару абзацев о вашем инструменте и о опыте использования. 3. Это ваше субъективное мнение. Задача читателя - сформировать свое объективное мнение. 4. Напишите также кратко кто вы и чем занимаетесь и откуда. Cвоеобразная реклама авторам в благодарность за потраченное время Очень надеюсь что инициатива не заглохнет и документ появится и будет полезен всем. В своем роде это будет уникальный документ - _практическое_ мнение _разных_ участников. Можно отвечать в форуме, или если удобней - то на мою почту (rss354_собака_rambler_точка_ru) - я обязательно пришлю подверждение о получении письма. Сам файл-вложение можно взять с http://www.rsdn.ru/File/57981/Comparison.doc
rss354 Опыта с подобными крупными проектами у меня нет, поэтому сказать какие были или могут быть проблемы не могу... но могу выделить perl, php, asp/asp.net и python, которые успешно используются при создании ооочень крупных проектов (смотри на гугл, мсн и яху)... На всех этих языках возможно реализовать мета-поисковик, если захотеть... а выбирать нужно тот, с которым ты имеешь больше опыта работы... имхо
поисковичОк пишем? у меня есть готовый продукт (поиск по ФТП серверам), успешно работающий уже 10 месяцев, написан полностью на PHP 4.3.x
rss354 ну вообще для создания мега-поисковика задача стоит не только в выборе на чем писать...... а ещё и стартовых технических мощностей...... БД для таких вещей я бы посоветовал Оракл..... быстро, надежно, масштабируемо, безопастно...... но это коммерческий вариант..... Посгрес думаю будет не быстрее того же mysql 5..... и по функциональности не сильно опередит......а вот вакуум при частых апдейтах придется делать часто...... а это простой БД на несколько часов при больших объемах данных..... фрагментация...... для больших нагрузок думаю скриптовый язык не подойдет вообще...... самое оптимальное что приходит в голову - связка nginx + apache в котором будет модулем (подчеркиваю модулем!!!) крутится реализация клиентской части поисковой системы..... это пожалуй один из самых быстрых способов....... заисключением написания своего небольшого быстренького хттп-сервера..... ну можно ещё модулем nginx написать........ nginx в данном случае будет служить для масштабирования нагрузки на www сервера..... прокся типа такая хитрая.... так что язык на взгляд С++.... некритичные куски кода можно всегда реализовать на перле и использовать интерфейс между С и Перл..... Операционная система...... думаю даже не ФриБСД..... ОпенБСД побыстрее и побезопастнее будет.... и отказоустойчивость повыше..... ну на совсем худой конец - Linux..... если написать свою реализацию БД и пропатчить ядро, чтоб работать с ней через вызов ф-й ядра - это даст значительный прирост производительности...... короче расписывать можно много...... в итоге ИМХО язык - С++ ОС - юнекс-совместимая БД - Оракл или написанная самим в идеале ну или на худой конец - mysql или интербейз или еще что на Ваш выбор.....
а, и ещё....... советую начать с исследования уже готовых систем и их плюсов и минусов..... такие как ASPseek, mnogosearch и т.д.
Документ, который получился в итоге. http://www.rsdn.ru/File/57981/PlatformChoose.zip Получилось не так обширно как хотелось, но тем не менее есть информация к размышлению. Комментарии и исправления приветствуются! Спасибо всем участникам! Романча Сергей. Мой e-mail для приватных сообщений - rss354_собака_rambler_точка_ru
http://www.rsdn.ru/File/57981/PlatformChoose.zip Не согласен с очень многим в этой документации! Причем в основном это касается PHP и Java! Почему такая неточность? Нельзя ли было уточнить данную информацию из официальных источников? Лично мне было оскорбительно читать ЭТО!
Davil, давайте дополним документ - я только за. Если быть точнее - то не документ, а мнения разных авторов. Я не могу корректировать мнения разных авторов - они изначально субъективны - в принципе я этого и хотел - чтобы каждый желающий, мог высказать свое личное мнение. Но я могу обновить ваше - оно есть в PHP_RU.htm - можно ещё дополнить (или добавить вашу таблицу сравнения). Ещё как вариант - добавить новые ссылки на интересные статьи/обзоры и т.д. - то что находится в файлы links.txt. Я понимаю, что мнения авторов без указания источников - часто не аргумент, но требовать от всех чтобы так делали - не реально - иначе никто бы не захотел тратить время на документ (оно то и понятно). Если будут дополнения с указанием источников - я обновлю документ. Спасибо за ваш комментарий!