Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Создание высоконагруженного сайта на Perl


Автор: AlexanderI 8.4.2010, 10:27
Здравствуйте.

Возникла задача создания высоконагруженного сайта на Perl.  
Предполагается около 1.000.000 хитов в сутки. 

Т.к. опыта по созданию высоконагруженных сайтов у меня нет, возникло много вопросов.:

1. Какие технологии и модули Perl лучше всего использовать.
2. Какой синтаксис использовать при программировании. Обязательно ли использовать use strict.
и т.д.

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

Автор: gcc 8.4.2010, 10:46
youporn.com 100 млн хостов/сутки
Catalyst

Автор: odmink0 8.4.2010, 10:49
Для разработки серьёзных веб-приложений обычно используются фреймворки, наиболее популярны сейчас Catalyst и Mojo(licious). Catalyst - более мощный, имеет больше примочек, плагинов, довольно долгую историю разработки. К тому же по нему полно документации - есть пара книг (последняя вышла в прошлом году - изд-во Apress, "The Definitive Guide to Catalyst"). Также на CPAN имеется Catalyst::Manual::Tutorial, который также рекомендуется к прочтению.
Если же чтение документации - не твой метод, а ты любишь покопаться в коде - добро пожаловать в мир Mojolicious. Документации для него сейчас очень мало, для того, чтобы понять как что действует - придётся анализировать его код и код проектов, написанных на нём smile

Оба этих фреймворка позволяют использовать технологию, которая больше нравится тебе - cgi, fastcgi, имеют встроенный сервер. Для высоконагруженных сайтов, пожалуй, наиболее подходит fastcgi. Или встроенный сервер для динамических страниц + nginx для отдачи статики.

Обязательно ли использовать use strict? Да, обязательно, а также use warnings. Это давно следует взять за правило всем Perl-программистам, пишушим сколько-нибудь серьёзные программы.

Автор: ginnie 8.4.2010, 12:24
AlexanderI, если у Вас нет опыта разработки высоконагруженных проектов, то на что-то серьезное замахиваться сразу не стоит. Фраза "1.000.000 хитов в сутки" еще ни о чем не говорит, 12 запросов в секунду для несложных скриптов - не проблема даже без опыта в этой области.
Я работаю в проекте с посещаемостью 8-10 млн. хитов в сутки. 5 серверов для скриптов и 4 сервера для статики. Используется схема с легким фронтендом (nginx) и бэкендами (apache + mod_perl), разноуровневое кэширование с использованием memcached.
Самое главное при разработке высоконагруженной системы - сразу ориентироваться на использование нескольких серверов, даже если реально есть только один, иначе в будущем многое придется переделывать с нуля.
К использованию фреймворков надо относиться очень аккуратно, т.к. они хорошо подходят для быстрой разработки проекта, но потом возникнут большие проблемы при попытке увеличить производительность системы путем оптимизации кода.

Автор: mvsgt 8.4.2010, 16:57
Цитата(ginnie @  8.4.2010,  12:24 Найти цитируемый пост)
Я работаю в проекте с посещаемостью 8-10 млн. хитов в сутки.


ginnie, а не возникало сомнения в правильности использования perl в большом проекте?

Автор: ginnie 8.4.2010, 17:07
Нет, у меня сомнений не возникало. Конечно можно привести массу аргументов, почему нужно использовать что-то другое. Но в жизни нет ничего идеального. Поэтому любое решение - компромис. Проект работает и приносит деньги. Если сделать проект не на Perl, он денег будет приносить больше, меньше или столько-же?

Автор: mvsgt 8.4.2010, 18:27
У меня стоит задача делать проект с нуля - потому и интересуюсь. В своих перловых я столкнулся с проблемами некоторыми, типа SOAP, ORM и так далее. Приходится часть делать на яве.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)