В настоящее время я разрабатываю веб-приложение и пытаюсь найти лучший способ разместить его. Я осмотрелся, использовал десятки разных фраз, прочитал сотни сообщений и комментариев. но никто из них, похоже, не отвечает на этот конкретный аспект вопроса. они объясняют, как рассчитать количество текущих пользователей, с которыми может справиться конкретный экземпляр приложения. но не как определить, куда идти, чтобы достичь своей цели. Я посмотрел на облако, я посмотрел на VPS, и я, конечно, подумал, что все выделенные имеют разные цены, но в конце концов я понял, что все сводится к тому, в каком направлении вам нужно масштабироваться (по вертикали, добавьте больше мощности к любому экземпляра приложения за счет большей мощности процессора и большей оперативной памяти; или по горизонтали, добавьте новый экземпляр приложения и загрузите масштабирование их)
Часть 1
А пока давайте рассмотрим небольшой сценарий. Допустим, у вас есть приложение API. он принимает HTTP-запросы и отвечает JSON, независимо от того, построен ли он на Node, Rails, PHP или чем-то еще, это непочтительно. Предполагая, что вы можете оценить все эти факторы в часы просмотра: Количество одновременных пользователей: 100 -> 1000 -> N запросов в минуту на пользователя: 1? 10? 50? размер данных, передаваемых в среднем за запрос: 1Кб? 2 КБ? 5 КБ? 10?
Как определить, в каком направлении лучше всего масштабироваться? это соотношение этих факторов? Есть ли какая-то точка, в которой один из этих факторов может достичь, когда вам придется масштабироваться в другом направлении, чтобы справиться с этим?
Часть 2
На этот раз допустим другой тип приложения. На этот раз это приложение для веб-сокета, которое обрабатывает обмен данными в реальном времени, например чат или уведомление о событиях (события, отправленные из сообщения Q, например Redis или RabbitMQ). Это приложение (из того, что я собираю) будет масштабироваться совершенно по-другому в зависимости от тех же факторов. как часть 1, как вы определяете, в каком направлении двигаться?
В общем и целом
Я задаю этот вопрос, чтобы выяснить, какой тип хостинга лучше всего подходит для какого приложения. что даст мне больше стабильности? что позволит мне держать больше денег в кармане для того же количества пользователей?
На этот вопрос почти невозможно ответить в его нынешней форме, потому что это слишком широкая тема. Чтобы ответить на этот вопрос, требуется целая область инженерии, в которой люди зарабатывают на жизнь полным рабочим днем (включая меня). ИМХО, это частично наука, а частично искусство, и вы найдете множество книг (на каждого моего коллеги), которые посвящены этой теме.
Поэтому я могу дать лишь несколько кратких и общих указаний.
С учетом сказанного, если бы мне пришлось сделать все это и мне нужно было выбрать одно решение для хостинга, то с наибольшей гибкостью и возможностями, как с точки зрения предложения продуктов, так и с точки зрения возможности контролировать расходы, были бы Amazon Web Services (AWS). Это единственный хостинг-провайдер, которого я использовал, который приближается к крупным корпоративным центрам обработки данных и предоставляет большинство функций, которые я искал. Ключевые особенности:
У меня нет опыта работы с другими поставщиками IaaS (Rackspace, Microsoft Azure и т. Д.), Поэтому я не могу сравнивать или сравнивать их. Возможно, это поможет вам начать свое исследование.
Раскрытие информации: на момент написания этого ответа я не владею акциями Amazon и не работаю на них =)