Подтвердить что ты не робот

Поставщик сервера backend для мобильных приложений

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

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

4b9b3361

Ответ 1

Полное раскрытие: Я работаю в Google на AppEngine, но я стараюсь быть беспристрастным. Я должен также отметить (как всегда), что я даю свои собственные мнения, а не компании.

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

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

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

Если вам нужен высокий уровень контроля и вы готовы справиться с большим количеством хлопот, вам, вероятно, понадобится опция "box with a static IP".

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

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

Большинство бэкэдов в качестве поставщиков услуг устраняют проблему написания бэкэнда вообще, но за счет устранения вашего контроля над бэкэнд. Являются ли поддерживаемые методы аутентификации достаточными для вас? Предоставляет ли бэкэнд доступ к вашим данным именно так, как вам нужно? Если это так, возможно, это приемлемо для вас.

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

Ответ 2

Этан,

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

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

Ответ 3

Ответ Daan корректен в отношении двух поставщиков, явно указанных (+1).

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

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

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

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

Удачи!

Ответ 4

Ответ Steffan попадает в основные моменты, и есть некоторые дополнительные преимущества для использования платформы backend-as-a-service (BaaS), за исключением того, что у вас есть инфраструктура /DevOps. (Полное раскрытие информации: Я являюсь инженером в Kinvey, провайдере бэкэнд-услуг).

  • Многие из этих служб предоставляют API RESTful для прямого доступа к вашим данным. Вместо того, чтобы тратить время на кассу (и снова изобретать колесо), вы обычно получаете свой собственный API данных, запеченный и готовый к работе.

  • Поставщики BaaS обычно предлагают библиотеки кода, чтобы упростить подключение к вашему API.

  • Это часто больше, чем просто данные приложения. Например, в Kinvey мы также предоставляем большой файл (blob). Если у вас есть изображения, видео и т.д., Вы можете сохранить их с нулевой настройкой.

  • Некоторые поставщики также предлагают аналитику использования вашего API - другое колесо, которое вам не нужно повторно изобретать

  • Партнерские отношения с другими провайдерами: например, Kinvey предоставляет push-уведомления через Urban Airship

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

Ответ 5

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

Одно важное . В AWS и RS вы контролируете свой экземпляр, потому что вы "владеете" (платите) и контролируете полный экземпляр. С другой стороны, GAE является облачной платформой приложений, поэтому, как и в случае Heroku, вам нужно написать свой код для работы с такой прикладной платформы. Для платформы облачных приложений существует несколько плюсов и минусов.

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

Ответ 6

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

Ответ 7

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

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

Ответ 8

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

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

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