Как сделать рентабельный, но масштабируемый сайт? - PullRequest
3 голосов
/ 20 июня 2010

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

Какую технологию мне использовать?PHP с CakePHP в качестве основы, Ruby on Rails, ASP.NET, Python или я должен выбрать облачные вычисления?Какие из них являются наиболее экономически выгодными?

Ответы [ 2 ]

2 голосов
/ 20 июня 2010

Любой из них подойдет, это действительно зависит от того, что вы знаете . Если вам удобно с Python, используйте Django. Если тебе нравится Ruby, иди с ROR. Эти современные фреймворки построены в масштабе, если вы не собираетесь разрабатывать что-либо в масштабах Facebook, тогда их должно быть достаточно.

Я лично рекомендую nginx в качестве основного сервера для размещения статического контента и, возможно, обратного прокси-сервера для Django / mod_wsgi / Apache2.

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

1 голос
/ 20 июня 2010

Выбор языка важен, так как вы должны выбрать язык, который вам и вашей команде удобнее всего, так как вы должны разработать приложение среднего размера.Конечно, используйте фреймворк с Python, это должен быть Django, с ASP.NET .NET или MVC.NET, что бы вы ни чувствовали себя лучше с Ruby ROR, а с PHP слишком много фреймворков.

1000 одновременных пользователейне так много, особенно это зависит от того, что будут делать пользователи.Места, где пользователи будут получать большие объемы данных, лучше кэшировать с помощью любого механизма кэширования.Вам необходимо спроектировать приложение таким образом, чтобы вы могли легко переключаться между реальными вызовами БД и вызовами в кэш.Для этого используйте объекты данных, такие как логины, конечно, если вам это нужно, создайте массив объектов.Сохраните некоторую информацию в cookie-файлах, когда пользователь входит в систему, например, его последний логин, пароль на случай, если он захочет его изменить, адрес электронной почты и т. Д., Чтобы вы могли меньше звонить в БД в режиме чтения (выберите запросы).

использовать cookieменьше домена для статического контента, такого как изображения, файлы js и css.Настройте в этом домене самую быструю систему, какую вы можете использовать, используя самый простой сервер, возможно, на базе Linux.

Для серверов лучший совет - либо приобрести большой компьютер, либо установить на нем виртуальные ящики с помощью vmware или другой системы на базе Linux.решение или получить несколько серверов, что лучше, потому что если на большом сервере вы потеряли все, если один из 1 не работает, вы все равно можете сделать некоторые вещи.Особенно, если вы установили режим железной дороги.Железнодорожный режим прост, вы устанавливаете сервер приложений (IIS или Apache) на одном сервере и делаете его основным, пока вы настраиваете SQL на том же сервере и делаете его подчиненным.На другом сервере вы устанавливаете SQL как главный, а сервер приложений как подчиненный.Таким образом, сервер один обслуживает IIS / Apache, а другой - SQL, если один не нужен, вам просто нужно изменить строку в host.etc, чтобы установить что-то еще (я не знаю, как это сделать в Linux).последний сервер для статического контента.

Облачные вычисления, вы будете использовать, если хотите или нет.Например, вы будете делиться ресурсами с некоторыми приложениями, такими как Google API для jquery и jqueryUI, но вы создаете уникальное приложение, и я не верю, что создание ядра приложения на основе облачных вычислений принесет пользу.Используйте CDN большого сайта навсегда.

...