Стоимость сервера для приложения для смартфона с веб-сервисом
Я работаю над приложением для смартфона, которое потребует бэкэнд-веб-службы, но я абсолютно не знаю, сколько это будет стоить.
Веб-сервис будет обрабатывать:
- логин пользователей
- каталогизация нашей базы пользователей
- хранение минимальной информации профиля для пользователей (единственные двоичные данные - это изображение на экране, которое будет < 20k каждый)
- выполнение очень незначительных вычислений / алгоритма до возврата результатов
- Все вышеперечисленное будет передано на сервер со смартфона (iPhone/BlackBerry/Android)
Требования к пропускной способности:
- Мы хотим обрабатывать до 10 тысяч пользователей в течение дня.
- Я предсказываю, 10 000 * 50 запросов HTTP в день = 500 000 запросов в день * 30 = 15 миллионов запросов в месяц
Требования к пространству: - Данные будут в базе данных SQL.
- Я предсказываю 1 МБ / пользователь * 10k = 10 ГБ + накладные расходы. Другими словами - космос не является большой проблемой.
Требования к программному обеспечению: (если кто-то не знает альтернативу)
- Windows Server 2008 + IIS
- MSFT SQL Server
Примечание: это на 100% ново для меня, поэтому, пожалуйста, ударь меня всем, что у тебя есть. Нужен ли Windows Server или есть альтернатива? Лучше ли получить несколько дешевых серверов для распределения нагрузки? Будет ли у меня работать Amazon S3? Как насчет Windows Azure?
РЕДАКТИРОВАТЬ примечание: на данный момент - я больше обеспокоен COST и как эта стоимость будет масштабироваться. Так что, если вы предоставите сервисную рекомендацию, не могли бы вы помочь приблизить стоимость этих требований?
Спасибо!!
3 ответа
Лазурь справится с этим. См. Windows Azure для получения подробной информации и бесплатной пробной версии. У меня нет версии для Iphone, но вот статья о том, как создать подобное приложение для Windows Phone 7
Это действительно открытый вопрос.;-)
Это зависит от многих вещей. Вот мое мнение о том, как подходить к таким проблемам:
1) Архитектура. Многие проблемы масштабирования, с которыми вы столкнетесь, будут определяться тем, как вы сейчас разрабатываете приложение. Знание сильных и слабых сторон языка, на котором вы пишете, очень важно для используемой вами среды и базовых ОС / серверов, на которых вы размещаете.
2) Сколько времени занимает выполнение среднего запроса без нагрузки? Каков ваш SLA на сколько времени должны занимать запросы?
3) Как приложение обрабатывает загрузку? В какой момент (запрос в секунду на сервер) вы видите ухудшение?
4) Вы сегментировали свое приложение на слои, которые могут масштабироваться отдельно друг от друга? (т.е. есть ли у вас слой БД, слой сервера приложений и слой хранения?)
5) Какой у тебя бюджет?
Исходя из того, что вы опубликовали, вы просматриваете около 6 запросов в секунду. Я бы начал с одного блока приложения, одного блока БД и одного блока хранения, если вам нужно хранилище. Кидай груз на него, смотри что ломается. Медленно увеличивайте количество пользователей, и вы увидите части кода, которые вы хотите оптимизировать, или вы можете добавить дополнительные поля, когда приложение испытывает проблемы.
Поскольку это ваш первый набег, я бы почти предложил использовать полностью управляемый хостинг - они смогут помочь с масштабированием бэкенда.
Удачи!
Вы можете попробовать виртуальный сервер с Amazon (или любым другим облачным провайдером). Вы можете начать с небольшого экземпляра, а затем масштабировать по мере необходимости. Стоимость основана на размере экземпляра и пропускной способности, поэтому ее относительно легко оценить. Стоимость лицензии Windows включена. Я не уверен насчет MSSQL, но с ним тоже могут быть встроенные виртуальные устройства, в этом случае вам не нужно приобретать полную лицензию, а просто платить за использование. Надеюсь это поможет.