Поставщик бэкэнд-сервера для мобильных приложений [закрыт]

Мне нужен бэкэнд-сервер для моего мобильного приложения - мне нужно иметь возможность писать логику на стороне сервера, поэтому мне не нужно загружать всю базу данных. Я использую JavaScript + HTML5 для мобильных приложений.

Может ли Amazon EC2 или Google App Engine сделать это? Есть ли другие варианты?

Ответы на вопрос(8)

Решение Вопроса

I work for Google on AppEngine, but I'm trying to be impartial.  Я также должен отметить (как всегда), что я высказываю свое собственное мнение, а не компанию.

Теоретически, нет причин, по которым вы действительноneed использовать любого поставщика услуг бэкэнда. Вы можете подключить сервер со статическим IP-адресом и доменным именем где угодно. На практике никто не хочет иметь дело с хлопотами делать все это самостоятельно.

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

Итак, вопрос, на который нужно ответить: какой контроль вам нужен и с какими трудностями вы готовы иметь дело?

Если вам нужен высокий уровень контроля и вы хотите иметь дело с большим количеством хлопот, вам, вероятно, понадобится «окно со статическим IP-адресом». вариант.

AWS уменьшает некоторые хлопоты по настройке boxen, но снижает контроль над оборудованием, на котором работает ваше программное обеспечение. Это почти наверняка приемлемо для вас, если у вас нет очень странных требований к оборудованию.

Google App Engine устраняет необходимость в настройке программного обеспечения, но уменьшает ваш контроль над программным стеком, с которым будет работать ваше программное обеспечение. У вас есть особые требования к программному обеспечению? Например, вам конкретно нужно работать на определенной версии Linux? Вам нужно специальное требование, чтобы использовать, скажем, Redis, а не просто комбинацию memcache / database? Если нет, то это, вероятно, приемлемо и для вас.

Большинство провайдеров Backend as a Service полностью устраняют необходимость написания backend, но за счет снятия контроля над backend. Являются ли поддерживаемые методы аутентификации достаточно хорошими для вас? Позволяет ли бэкэнд получить доступ к вашим данным именно так, как вам нужно? Если это так, это, вероятно, приемлемо для вас.

Теперь здесьwhere my impartiality ends, Лично я чувствую, что App Engine находится в приятном месте. Это дает вам достаточный контроль, не заставляя вас управлять каждой деталью вашего приложения. Если тебе надоmore контроль, я предлагаю посмотреть на AWS. Если вы хотите, чтобы ваш бэкэнд был написан для вас автоматически и мог справиться с меньшим контролем, я предлагаю взглянуть на BaaS.

и есть несколько дополнительных преимуществ использования платформы «бэкэнд-как-услуга» (BaaS), помимо простого решения вопросов инфраструктуры / DevOps. (Полное раскрытие: я инженер вKinvey, бэкэнд-как-провайдер).

Many of these services provide RESTful APIs to access your data directly. Rather than spending time to roll your own (and reinvent the wheel yet again), you typically get your own data API baked in and ready to go.

BaaS providers typically offer code libraries to simplify connecting to your API.

It's often more than just application data. For example, at Kinvey, we provide large file (blob) storage as well. If you have any images, videos, etc, you can store them with zero setup.

Some providers also offer analytics on your API usage - another wheel that you don't need to reinvent

Partnerships with other providers: for example, Kinvey provides push notifications via Urban Airship

Все вместе, вероятно, имеет смысл взглянуть на BaaS, чтобы увидеть, может ли он соответствовать вашим потребностям.

один из поставщиков услуг «Бэкенд как сервис» может оказаться в вашем распоряжении. Большинство, если не все, этих платформ имеют достаточно надежные системы запросов, поэтому вам не нужно беспокоиться о просеивании посторонней информации из БД. Я думаю, что Parse специально рассматривает вариант использования точно такой же, как вы упомянули о получении только х числа лучших результатов из БД.

Если вам абсолютно необходим серверный код, StackMob разрешает хостинг нестандартного кода, и я считаю, что Kinvey находится в бета-версии для того же. Я думаю, что StackMob поддерживает только Java и Clojure для серверного кода, хотя, если это имеет значение.

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

StackMob имеет бесплатный пакет, который вы можете попробовать. Вы можете использовать JS SDK, чтобы написать свое приложение HTML5 и сохранить материал на сервере StackMob. Между тем, вы можете написать серверную логику бэкенда, загрузив фрагменты кода (java / scala / clojure) в StackMob. Он разработан таким образом, что этот код автоматически становится REST API, так что вы можете нажать его из любого места, чтобы выполнить сторону логического сервера и получить взамен JSON. Вы можете бесплатно разместить свой HTML5 на StackMob и указать на него собственный домен.

JS SDK JS SDK Tutorial Server Side Custom Code Hosting your HTML5 Custom Domains

Эрик - инженер StackMob

так и Google App Engine (GAE) могут изначально использоваться бесплатно, AWS черезУровень бесплатного пользования AWS и GAE просто по умолчанию. Какой бы ни была ваша бэкэнд-служба, просто держите ее как можно более легкой на начальном этапе, чем у облачных провайдеров, чем больше ваши вычисления, тем выше стоимость (или быстрее переходить на лимиты бесплатного использования). Я бы тоже рассмотрел RackSpace cloud (RS).Вот RS сравнивает свои услуги с AWS.

Одинimportant distinction, В AWS и RS вы управляете своим экземпляром, поскольку вы & quot; владеете & quot; (оплатить) и контролировать полный экземпляр. С другой стороны, GAE являетсяcloud application platform и, следовательно, как и в случаеHerokuВы должны написать свой код для работы с такой платформой приложения. Есть несколько плюсов & amp; минусы кcloud application platform.

Например, в качестве преимущества GAE вы получаете больше всегоDevOps бесплатно. Например. обновить ваше приложение в GAEочень легкотогда как в AWS вам придется написать собственный сценарий развертывания. С другой стороны (как проблема, с которой я столкнулся), в GAE вы не можете иметь свой собственный сервер БД в том же экземпляре, поскольку у вас нет полного контроля; вам придется пойти на частное решение, как GoogleОблачный SQL или GAE 'sХранилище данных с высокой репликацией.

Ответ Даана верно в отношении двух провайдеров, названных явно (+1).

Если вы хотите избавить себя от хлопот и / или получить некоторые рекомендации по пути, вы можете взглянуть на один из выделенныхПлатформа как услуга (PaaS) провайдеры, ориентированные на бэкэнд-сегмент мобильного приложения. В то же время их, вероятно, больше дюжины, но я сейчас вспоминаю эти три (все коммерческие, но обычно это какой-то бесплатный уровень, чтобы вы могли начать и / или вечно даже в целях развития) - ни в коем случае определенный порядок:

StackMob Parse Appcelerator

Основное преимущество, которое вы получите благодаря этому подходу, - это работа с платформой, а не с самой инфраструктурой, которая абстрагирует многие (если не все) темы, требующие специальных навыков системного администрирования (как правило, не мешает иметь эти знания в команде независимо, посмотриDevOps).

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

Большинство из них будут использовать некоторыеИнфраструктура как услуга (IaaS) как провайдерAWS или жеJoyent как их бэкэнд в свою очередь, кстати.

Удачи!

 Ethan Long17 апр. 2012 г., 02:09
Спасибо! Я пробовал Parse, но, похоже, он не позволяет мне писать логику на стороне сервера, не так ли? Например, мне нужно получить идентификатор 3 лучших игроков из базы данных, но мне не нужно загружать всю сумму очков игрока в базе данных.

если только вы не ссылаетесь на медиасервер Adobe, который вы можете настроить на EC2. Но я предполагаю, что вы просто ссылаетесь на сервис облачных вычислений Amazon Web Services EC2. В этом случае: да, вы можете запустить внутренний сервер для своего мобильного приложения в EC2 (и Google App Engine тоже). Все, что вам нужно сделать, - это написать веб-сервис, который принимает запросы от вашего мобильного приложения, запрашивает базу данных и применяет любую логику, которая вам нужна, и отправляет данные обратно в ваше мобильное приложение. Но звучит так, что вы, возможно, захотите сначала прочитать о веб-сервисах и облачных вычислениях, или это будет довольно сложной задачей :)

Если вы не ожидаете слишком большого количества пользователей, просто поместите сценарий PHP или что-то вроде «традиционного». Общий сервер с вашим провайдером веб-хостинга может оказаться гораздо более полезным, чем запуск выделенного экземпляра EC2 для вашего приложения.

я предлагаю вамDeployd на сервисе Amazon EC2 или Deployd.com или любом другом провайдере node.js. Это такжеDeploydKit или жеRestKit как нативная клиентская библиотека iOS, которая работает с ним.

Ваш ответ на вопрос