Backend as a Service Comparison

17
Backend as a Service Backend as a Service comparison comparison

Transcript of Backend as a Service Comparison

Backend as a Service Backend as a Service comparisoncomparison

What is BaaS?

● Also known as mBaaS (mobile backend)● Cloud storage for web and mobile devs● Registration & login, social networks integration● Push notifications● File storage● Analytics● Hosting● ...and many more

Allows mobile/front-end developers to NOT have to develop backend

Pros & consby Kelly Rice @ Kinvey

● Save time● Save money● Richer apps● More productivity● Data liberation

● No complete control● Latency issues● Business is business

Who uses BaaS?

Initialization

● Same model for all:– Application ID– Client Key– Application version (for Backendless)

● In Kinvey, configuration can be separated in properties file

Platforms

● Mobile– iOS– Android– Windows Phone– Unity– Xamarin– React.js– REST API

● Desktop & Web– OSX

– Windows

– Javascript

– PHP

– .NET

● Embedded– Arduino

– Embedded C

Platforms

● Android (Java)● iOS (OSX)● Windows Phone (.NET)● ActionScript (Flex/AIR)● Javascript● REST API

Platforms

● iOS● Android● Java● HTML5● AngularJS● Backbone.js● Ember.js

● PhoneGap● Titanium● Node.js● Xamarin● REST API

Data Service

● Internally stores as flat JSON documents

Data Service

● Internally stores as flat JSON documents● Uses MongoDB

Data Service

● Internally stores relational model● Uses MySQL

Data Service

● Local datastore● Eventual save● Similarity to JSON● Embedded query functions

● Embedded query functions● ..and it kinda stops here

● Relational data model● No additional set up for classes● External databases (currently MySQL only)● SQL-like where clause for queries

Geo Service

● Stores only geo point's coordinates● Relations from data object to geo point● “whereNear” method: returns closest points

● No separate entity for geo point● Instead, objects may have _geoloc property

● Geo points has metadata – key-values● Relations from geo point to data object● SQL-like where clause for queries

– Backendless.Geo.find( “latitude=55.3 AND city='Tampa'” )

– where “latitude” is one of coords and “city” is GeoPoint's metadata

Cloud Code

● Javascript● Hooks to when data is added/removed● Cloud functions● Logging

● Javascript● Hooks to collections (data tables)● Cloud functions

● Java● Local CodeRunner for debug● Hooks to almost all events● Cloud functions● Logging● Timers

Security

● User roles● Data object permissions● Class-level permissions● Master key for cloud functions (Parse.Cloud.useMasterKey() )

● Ownership for entities● Class-level permissions● Object-level permissions (set in class itself)

● User roles● All kinds of permissions (Data, Roles,

Files, Geo, etc.)● Ownership for data and files

Pricing

● https://parse.com/plans● Unlimited analytics● 1 background job

● http://www.kinvey.com/pricing● No free tier ?

● https://backendless.com/pricing/● Unlimited API calls● Unlimited data storage● In-depth analytics

Sources

● What are the pros and cons of using a backend-as-a-service?– http://www.quora.com/What-are-the-pros-and-cons-of-using-a-backend-as-a-service

● BaaS comparison table– https://docs.google.com/spreadsheet/ccc?key=0Al7M8fgKPXoidENFa0M5VnJpb3pMeHQtS0RDcHFvY1E&usp=sharing#gid=0

● BaaS Android API Comparison– https://gist.github.com/gdaniels/3495006

● BaaS Data Model comparison– http://maxrohde.com/2014/09/09/a-comparison-of-data-models-in-baas-backend-as-a-service/

● BaaS general comparison– http://www.slideshare.net/pyro2927/baas-comparison-iosmn

– http://baas.apievangelist.com/

– http://yourstory.com/2014/01/mobile-backend-players/

– http://www.developereconomics.com/finding-right-baas/

– http://yalantis.com/blog/four-mbaas-platforms-compared-android-point-view/