Поверхностный обзор javascript-enabled BaaS платформ

в 8:52, , рубрики: acs, BaaS, javascript, kinvey, parse, quickblox, метки: , , , , ,

Будучи начинающим javascript разработчиком, я заинтересовался темой межплатформенной разработки мобильных приложений. В этой области, в настоящее время, балом правят Cordova (phonegap) www.phonegap.com, Appcelerator Titanium www.appcelerator.com, Mosync www.mosync.com.

Рано или поздно, после выпуска первых мини-приложений, основанных на этих системах, разработчику захочется создать что-нибудь Большое и Светлое, и хотелось бы, чтоб в этом новом приложении/сервисе были пользователи (c аватарами и проч.), push-notifications, user-generated-content и т.д… Но при этом, не хотелось бы тратить время и деньги на написание своей серверной инфраструктуры, а хотелось бы воспользоваться чем-нибудь недорогим, вплоть до бесплатного, и простым в освоении (и ещё чтоб «в облаке»!).

Как раз подобного рода тяжести и взяли на себя многочисленные Backend-as-a-Service (не путать с другими aaS). Я хочу кратко пробежаться по некоторым игрокам на этом рынке. Подчеркну, что меня в первую очередь интересовали те платформы, которые можно было бы легко и безопасно использовать с мобильным javascript (Phonegap/Titanium). Если платформа просто предоставляет REST API, этого мало, т.к. вопрос безопасности требует наличия некоторого специального ограничительного функционала: AccessControlList/permissions/masterKeys/etc. И вообще, желательно отдельный javascript SDK.

(Так как это «поверхностный обзор», я не буду подробно писать кому и зачем нужен BaaS и почему вместо всего этого не использовать старый-добрый PHP/MySQL на VPS или новый-добрый node.js в облаке)

Я начал поиск с www.programmableweb.com/apis/directory/1?apicat=Backend там перечислено почти 40 платформ, просмотрев их, я оставил для обзора те, что легко можно использовать с javascript:

1. Parse
image

URL parse.com
Blog blog.parse.com
Команда 17 человек, офис в Сан-Франциско (Калифорния, США) link
Финансирование Инвесторы: Ignition, Y-combinator, StartFund, Google Ventures, SV Angel, Menlo Ventures, DST и др… Общая сумма инвестиций: $7M link
Дата запуска 2011.07
SDK для платформ iOS, Android, REST, javascript. + много других неофициальных (.net, Unity, ActionScript, etc...) link
Возможности Users, Social, Location, Files, Data Push
Web-панель управления возможность создавать и заполнять таблицы (они называются Classes), импортировать их из CSV файлов, посылать push-сообщения, экспортировать все накопленные данные
Разделение Development/ Production версий нет
Access Control есть ACL. Есть Роли, но на бесплатном тарифе можно создать только одну роль link
Server side code нет
Совместная работа нескольких разработчиков есть на тарифе PRO и Enterprise
Authentication Model по ключам, для каждого приложения отдельные Client Key, Javascript Key, REST API Key, Master Key
Интеграция с Соцсетями Facebook, Twitter
Push Notifications iOS, Android
Особенности Javascript SDK на основе backbone.js
Бесплатные возможности: в месяц: 1,000,000 API-запросов; 1,000,000 push сообщений; 1Gb файлового хранилища. За превышение можно доплатить
Цены: после бесплатного сразу идёт PRO за $199 в месяц, затем Enterprise с неизвестной ценой link

Широко известная платформа (хвалятся, что больше 16000 приложений используют parse), большая команда с хорошим финансовым заделом.
Отдельный Javascript SDK на основе backbone.js
Админка выглядит по-спартански, но удобная. В качестве полей создаваемых таблиц (т.е. «Классов») можно использовать: String, Number, Boolean, Date, File (можно загрузить файл там же, в админке), Pointer (указывает на другой Class), Geopoint, Array, Object (JSON объект до 128кб), Relation (указывает на Row из другого Class). Каждому элементу данных (вернее всей «строке», Row) можно назначить ACL в виде списка id пользователей, которым доступна запись/чтение.
Также всей таблице можно установить ограничение на публичные Get/Find/Update/Create/Delete/AddFields (и сделать их доступными определённым пользователям или Ролям)


2. Stackmob
image

URL stackmob.com
Blog blog.stackmob.com
Команда 24 человека, офис в Сан-Франциско (Калифорния, США) link
Финансирование Инвесторы: Charles River Ventures, Founder Collective, Baseline Ventures, Harrison Metal Capital, Trinity Ventures, Общая сумма инвестиций: $7,5M link
Дата запуска public beta 2011.12
SDK для платформ iOS, Android, Java, Javascript, Ruby link
Возможности Datastore, Object Relationships, Geospatial, User Authentication, Push
Web-панель управления можно создавать и заполнять таблицы (они называются Schemas), Роли. есть Test Console с REST API
Разделение Development/ Production версий да
Access Control гибкие настройки. Есть Роли link
Server side code есть — Java/Scala/Clojure
Совместная работа нескольких разработчиков нет
Authentication Model по ключам, для каждого приложения отдельные Public/Private Keys. OAuth 2.0 авторизация
Интеграция с Соцсетями Facebook, Twitter
Push Notifications iOS, Android
Особенности хостинг файлов через Amazon S3
Бесплатные возможности: в месяц: 60,000 API-запросов; 60,000 push сообщений. За превышение можно доплатить
Цены: следующий после бесплатного тариф: 8.99$ link

Также как для Parse, большая команда и финансирование внушают уважение и благоговейный трепет.
Также напоминает Parse тем, что использует backbone.js. Из отличительных особенностей — можно писать серверный код на Java/Scala/Clojure
В качестве полей создаваемых таблиц (т.е. «Схем» — Schemas) можно использовать: String, Integer, Float, Boolean, Array, Binary (через загрузку на Amazon S3), Geopoint. Можно задавать отношения (Relationships) между схемами one-to-one/one-to-many.
Схемам можно установить ограничение на Create/Read/Update/Delete и сделать их доступными определённым Ролям.


3. Quickblox
image
(раньше звались Mob1serv)

URL quickblox.com
Blog quickblox.com/blog
Команда 30(?) человек. London/ San Francisco/ Харьков
Финансирование ? link
Дата запуска public beta 2011.10
SDK для платформ iOS, Android, WP7, Web/Facebook
Возможности Modules: Content, Custom, Location, Messages, Ratings, Users, Chat
Web-панель управления для каждого модуля свой функционал по добавлению/ редактированию данных. В custom можно создавать свои class с полями Integer/ Float/ Boolean/ String
Разделение Development/ Production версий нет
Access Control ? (не нашёл)
Server side code нет
Совместная работа нескольких разработчиков да, на платных тарифах
Authentication Model modification of OAuth link
Интеграция с Соцсетями Facebook, Twitter
Push Notifications iOS, Android, Microsoft, BlackBerry
Особенности в разработчиках — «наши люди», присутствующие на хабре
Бесплатные возможности: в месяц: 1,000,000 API Calls. 1,000,000 Push Notifications. 5 GB Traffic Storage. За превышение можно доплатить
Цены: следующий после бесплатного тариф: 19$ link

Описание данной платформы лучше читать авторские: habrahabr.ru/post/143653/
Web/Facebook QuickBlox framework is now under development — причём мне кажется это не очень активный/приоритетный development, так что quickblox для javascript пока сложноват в освоении.


4. Cocoafish
image
Это была отдельная компания, которую в феврале 2012 приобрела Appcelerator и теперь сервис называется Appcelerator Cloud Services (ACS)

URL www.appcelerator.com/cloud
Blog developer.appcelerator.com/blog
Команда изначально в cocoafish было три человека
Финансирование хорошее link
Дата запуска 2012.04
SDK для платформ для тех, что поддерживаются Appcelerator Titanium, плюс отдельный Javascript SDK
Возможности много мини-модулей: Push Notifications, User management, Photo manipulation and storage, Places (rich location storage), Social integration, File Storage (Beta), Check-ins, Status updates, Chats, Friend connections (Beta), Ratings and Reviews, Discussion forums, Event planning (Beta), Messaging (Beta), Key-Value data storage
Web-панель управления в каждом «модуле» можно создавать/ редактировать записи. Не очень удобно и медленновато. Импорта/Экспорта нет
Разделение Development/ Production версий да
Access Control есть ACL
Server side code нет
Совместная работа нескольких разработчиков нет
Authentication Model по ключам, для каждого приложения отдельные APP Key. OAuth авторизация (2-legged, 3-legged) link
Интеграция с Соцсетями facebook
Push Notifications iOS, Android
Особенности есть Analytics events
Бесплатные возможности: 250,000 Tier 1 API calls. 250,000 Tier 2 API calls. 5 GB storage
Цены: кроме бесплатного, есть тарифы ACCELERATE STANDARD, ACCELERATE ENHANCED, ACCELERATE PREMIUM (цены раскрываются по email запросу). для бесплатного тарифа можно оплатить превышение квот (1,000,000 API calls Tier 1 Services за $10. 500,000 API calls Tier 2 Services за $10. Storage Limit 20 GB за $5) link

Подразумевается, что максимальное удобство будет у разработчиков, использующих Appcelerator Titanium, но доступен и отдельный Javascript SDK.
Напоминает Quickblox — много «мини-модулей», в том числе и возможность создавать свои Custom Objects (с полями: number, string, boolean, dictionary, array, date). Особое внимание именно к соц. взаимодействиям пользователей — прям хоть делай свой мобильный facebook c блэкджеком и кем-то там.


5. Kinvey
image

URL www.kinvey.com
Blog www.kinvey.com/blog
Команда 14 человек, офис в Кэмбридж (Массачусетс, США) link
Финансирование Инвесторы: TechStars, Avalon Ventures, Atlas Venture. Общая сумма инвестиций: $7M link
Дата запуска 2012.04 — public beta. 2012.07 — public release
SDK для платформ iOS, Android, Javascript (в т.ч. отдельно для phonegap и titanium) link
Возможности Appdata — An auto-scaling key-value data store that supports nested data structures, typed values and advanced queries. Resources — A massive CDN backed cloud storage solution for images, audio, video and any other file you can picture. Users — Keep track of information about users and relationships between users and their data
Web-панель управления можно создавать и заполнять таблицы (они называются Collections). есть Console с REST API есть импорт CSV, экспорт JSON
Разделение Development/ Production версий нет
Access Control есть ACL, задаётся в коде, не через Web-панель
Server side code Есть настройка валидации вводимых данных. В следующих релизах полный функционал.
Совместная работа нескольких разработчиков да
Authentication Model App Key, App Secret, Master Secret
Интеграция с Соцсетями authorization with facebook
Push Notifications iOS, Android
Особенности Caching and Offline Support out of the box, 3rd-party Data Integration
Бесплатные возможности: up to 200 active users, up to 2 GB storage
Цены: растёт с повышением числа активных пользователей и объёма хранимых файлов link

Продвигают концепцию BaaS вообще и себя в частности. Интересный и активный блог — есть познавательная схема, показывающая кто, что и где в этой области рынка www.kinvey.com/images/kinvey_backend-as-a-service_mobileecosystem_2100px.png


6. Cloudmine
image

URL cloudmine.me
Blog blog.cloudmine.me
Команда 10 человек, офис в Southern Liberties (Филадельфия, США) link
Финансирование Инвесторы: DreamIt Ventures, Ben Franklin Technology Partners of Southeastern Pennsylvania. Общая сумма инвестиций: $120k link
Дата запуска 2011.08
SDK для платформ iOS, Android, Javascript
Возможности User Accounts, App-level Security, Geo Queries, Push (coming soon), Server-side Code, No Data Models, File Storage, Compressed Data Transfer, Object Data Storage
Web-панель управления Не очень удобная. Можно создавать пользователей, создавать/ редактировать JSON объекты
Разделение Development/ Production версий нет
Access Control есть ACL, также есть гибкая настройка ограничений по API key link
Server side code да — Java, javascript
Совместная работа нескольких разработчиков нет
Authentication Model Application ID, API Keys (с настраиваемыми допусками) link
Интеграция с Соцсетями нет
Push Notifications нет
Особенности server side javascript, GZIP'd JSON or MessagePack data compression
Бесплатные возможности: 500 free active users monthly
Цены: $0.05 / active user link

Обращает на себя внимание тем, что есть возможность писать свой серверный javascript код


7. Usergrid
image
Это была отдельная компания, которую в январе 2012 приобрела Apigee. теперь называется Apigee App Services

URL apigee.com/usergrid
Blog blog.apigee.com
Команда
Финансирование хорошее link
Дата запуска
SDK для платформ iOS, Android, HTML5 link
Возможности Data storage, User management, Roles, Social networking, Geolocation, Facebook sign-in, and much more (Activities, Assets, Devices, Events, Folders, Groups, Roles, Users)
Web-панель управления Немного неудобно (вернее, непривычно) — весь функционал через REST API запросы прямо в web-панели
Разделение Development/ Production версий нет
Access Control доступы можно регулировать с помощью Ролей link
Server side code нет
Совместная работа нескольких разработчиков да
Authentication Model Client ID, Client Secret, OAuth 2.0 link
Интеграция с Соцсетями authorization with facebook
Push Notifications нет
Особенности большие бесплатные квоты
Бесплатные возможности: 35,000,000 API requests/month 10 Gigabytes storage — пока сервис в beta
Цены: какие цены будут после завершения beta — неизвестно link

Apigee — серьёзная контора, помогающая серьёзным клиентам apigee.com/about/customers с разработкой/ поддержкой/ мониторингом своих собственных API сервисов. Описывает себя как “Google Analytics для API”. Приобрела Usergrid в начале этого года, но сервис ещё со статусом beta.
Бесплатные квоты выглядят очень заманчиво, но какими будут окончательные цены?


8. sencha.io
image

URL developer.sencha.io
Blog www.sencha.com/blog
Команда
Финансирование хорошее link
Дата запуска beta — 2011.10
SDK для платформ javascript
Возможности User Services, Data Services, Channel Services
Web-панель управления функционал очень ограничен
Разделение Development/ Production версий да
Access Control нет (?)
Server side code нет
Совместная работа нескольких разработчиков да
Authentication Model app id, secret
Интеграция с Соцсетями authorization with facebook
Push Notifications нет
Особенности специально нацелен на работу с библиотекой Sencha Touch
Бесплатные возможности: не нашёл описания
Цены: пока не известны

Сервис от создателей ExtJS.
Из всех рассмотренных, мне он показался самым, ну если не сказать что сырым, то «непродвигаемым»: цены и лимиты не опубликованы, в админке почти нечего делать, Push notifications нет… Но голословно предполагаю, что разработчикам, хорошо знакомым с Sencha Touch, сервис понравился бы.


К сожалению, у меня пока нет серьёзного опыта работы с этими платформами, наверняка есть много грабель и особенностей, которые стоило бы добавить в обзор (будет, со временем).
Подытоживая, можно сказать, что BaaS сегмент довольно молод, основное развитие в нём началось только в этом году. Прослеживается, что более-менее одновременно, в разных платформах запускаются одни и те же новые «фичи» (ACL, oAuth). Не смотря на молодость, уже есть интересные, вполне жизнеспособные, предложения.

Я мог допустить ошибки и неточности в описании — сообщайте, исправлю.

Автор: yurash


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js