Назад | Перейти на главную страницу

Как я буду поддерживать 100 000 запросов в час?

Я знаю, что этот вопрос немного странный, но мне повезло с идеей, и мне нужно использовать несколько чисел, когда я пытаюсь заключить сделку с компанией. Мне интересно, сколько мне будет стоить запуск сайта, который использует PHP и получает от 70 000 до 100 000 запросов в час на чем-то вроде облачных серверов Rackspace. Я понятия не имею, сколько серверов мне нужно и сколько оперативной памяти у каждого из них должно быть. На сайте будет приличное количество изображений (вероятно, около 10 000 в первые пару недель), и сайт работает примерно на 2,500 строках кода PHP. Я полагаю, мне следует подписаться на какой-нибудь CDN, хотя CDN в коробке это все, о чем я слышал, и я не уверен, что это необходимо для сайта, который уже находится на облачной платформе. Я, очевидно, никогда не делал ничего подобного раньше, поэтому я просто хочу получить оценку того, что мне нужно для этого огромного сайта ... Кроме того, я использую базу данных, и мне было интересно, как это работает - я бы посвятил один из облачные серверы для запуска базы данных, или мне нужно будет разместить базу данных на каждом из облачных серверов? Заранее спасибо...

Во-первых 100к запросов в час - это ничего когда дело доходит до современных аппаратных и программных стеков, если предположить, что код в любом случае написан не так уж плохо. Оказывается, всего около 28 запросов в секунду, которые ваш телефон может обслуживать :)

Теперь, что касается вашей установки, вам понадобится как минимум две машины, либо настроенные в режиме реального времени с балансировкой нагрузки, либо в режиме реального времени / ожидания. Это позволит вам быстро справиться с аппаратными сбоями, повреждением данных, неправильной конфигурацией и т. Д.

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

Вдобавок ко всему, если вы собираетесь делать много раздаточных статических файлов, таких как изображения / видео и т. Д., Тогда CDN жестяная банка имеет смысл. Они, конечно, не бесплатны, поэтому вам нужно провести математику, чтобы выяснить, имеет ли смысл хранить вещи `` внутренними '' или отправлять их в CDN, есть из чего выбирать (акамай и центр внимания - это два, которые прыгают иметь в виду с хорошей репутацией), но только вы можете решить, основываясь на среднем количестве байтов на запрос, количестве запросов и стоимости за байт / МБ как для внутренней, так и для внешней доставки.

И последнее: создавайте резервные копии - правильные резервные копии, а не просто снимки, и храните некоторые из них за пределами площадки и периодически выполняйте тестовые восстановления автономного оборудования, чтобы проверить их работу. Серьезно, чувак, ты не поверишь, сколько пользователей мы видим на этом сайте, которые не выполняли резервное копирование должным образом, не выводили некоторых из них за пределы сайта или никогда не тестировали их - и мы никогда их больше не увидим, их бизнес рухнул или они уволен - так что отнеситесь к этому серьезно, пожалуйста :)

Возвращайтесь, если вам нужна дополнительная помощь, и если вы ищете людей, которые помогут вам расти, загляните на наш сайт «Карьера» (обычно есть ссылка внизу страницы), поскольку он заполнен людьми с этого сайта и наш дочерний сайт (stackoverflow - для программистов), которые могут быть в вашем районе и рады работать с вами.

Удачи.