why baas is crucial to early stage startups

58
Why Backend-as-a-Service (BaaS) is crucial David Ng, Product & Growth at Oursky to early stage startups and frontend developers

Upload: oursky

Post on 15-Apr-2017

169 views

Category:

Engineering


0 download

TRANSCRIPT

Why Backend-as-a-Service (BaaS) is crucial

David Ng, Product & Growth at Oursky

to early stage startups and frontend developers

Agenda

• What is BaaS

• Features of BaaS and how does it help

• Popular BaaS and comparison

Banana World

My app idea

Startup’s worries

Develop an MVPA core component of Lean Startup methodology is the

Build-Measure-Learn feedback loop

THE LEAN STARTUPMETHODOLOGY

“Work Smarter, Not Harder”

THE LEAN STARTUPMETHODOLOGY

The question is not "Can this product be built?"

Instead, the questions are "Should this product be built?" and "Can we build a sustainable business around this set of products and

services?"

THE LEAN STARTUPMETHODOLOGY

The question is not "Can this product be built?"

Instead, the questions are "Should this product be built?" and "Can we build a sustainable business around this set of products and

services?"

BaaSBackend-as-a-Service

What is BaaS?

• Pre-built, cloud hosted components for developing mobile application backends.

• Reduce the time and complexity required to build mobile applications.

• Allow developers to focus on core features instead of low-level tasks.

For whom?

• Indie developers

• Startups

• App Vendors

• Enterprise

BaaS Features• Data Store API for storage on cloud

• File storage

• User Authentication

• Push Notifications

• Secure Connectivity

• Social Integration

• Dashboard / UI

Auth Push Chat CloudDB Pubsub Cloud Functions CMS

BaaS Features

Sign Up / Login

• Username / email / phone number sign up

• Supported Platforms of Social Login

Auth

SMS verification

Auth

User Profile

Auth

User Dashboard

Auth

Push Notification Editor

Push

Schedule Push Notification

Push

Chat• Group / DM Conversations

• Real time receive message in callbacks

• Send Message / Video / Sounds

• Chat History

• Unread count

• Recipient status

• Push notification

• Typing indicators

• End-to-end encryption with Signal ProtocolChat

Create Conversation

Chat

Load message history

Chat

Send a message

Chat

Send Photos and Video

Chat

CloudDB

• Synchronize your data to the cloud

• Easy to save and query data with integrated SDKs

• Flexible as Document-based DB with the power of relational DB

• Fully managed and built for reliabilty

CloudDB

CloudDB• Sample Code of CRUD

• Create a recordconst note = new Note({ 'content': 'Hello World' });skygear.publicDB.save(note);

// Batch Createskygear.publicDb.save([note1, note2, note3, note4, note5]);

CloudDB

CloudDB• Sample Code of CRUD

• Read a record

const query = new skygear.Query(Note);query.greaterThan('importance', 10);query.addDescending('importance');query.limit = 10;

skygear.publicDB.query(query).then((records) => { console.log(records)}, (error) => { console.error(error);})

CloudDB

Pubsub

Channel 1

Subscriber Publisher

Publisher

Subscriber

Subscriber

Channel 2

subscription event Pubsub

Cloud Functions

• Auto scaling backend for you API

• Simple to manage and build with function based API

Cloud Functions

Cloud Functions

• Write custom business logic on backend

• Micro-services architecture

• Trigger Cloud Functions in various ways

Cloud Functions

Cloud Functions

• Applying the cliched 80-20 rule.

• Covered 80% of the features which one requires on the server side for App development.

• For remaining 20% features, you may want to run your custom code on the cloud.

Cloud Functions

CMS

• Simple installation

• Great support on data viewer: Filter, search and sort the records

• Send push notifications via CMS

• Customization available

CMS

CMS• Instant web-based CMS dashboard for business users

• Configuration of which DB tables / columns to show

• Content type support

• Localization support

• Versioning support

• Audit Log

• Role Based Access Control

• Approval WorkflowCMS

BaaS Types

• Cloud BaaS

• Cloud Hosted Solution

• Open source BaaS

• An on-premise offering which is typically Free and Open Source in nature

BaaS Providers

• Parse.com

• Kinvey

• Kii Cloud

• Google Firebase

Kinvey

• Founded in 2010

• Rich platforms support

• Targeted for Enterprise

Kinvey

Kinvey

Parse

• Acquired by Facebook in April of 2013 (100k apps as in June 2013)

• Shut down hosted solution and open source in January of 2016

• Supporting many client platforms (.NET, ActionScript, Java, Qt, Ruby, PHP, Python and more)

Parse

parse.com (2012)

Firebase

• Focus: Realtime data synchronization

• Founded in 2011

• Acquired by Google in October of 2014

Firebase

Skygear

• Started in Hong Kong in 2014

• Support Web / iOS / Android / Hybrid apps

• Open source + hosted solution

Skygear

Skygear• Auth: User management, signup / login

• Push Notifications: Sending in-app push, retaining users

• Chat: Embed professional chat features into your app fast

• Cloud DB: Synchronize your data to the cloud

• Pubsub: Broadcasting real time message

• Cloud Functions: Extend your backend with customization

• CMS: Instant web-based CMS dashboard, view and edit data

Detail comparisonSkygear Parse Backend Kinvey Firebase

Data StorageYes, PostgreSQL with MongoDB-like interface and auto-migration

Yes, MongoDB Yes Yes, JSON Tree based

User Management Yes Yes Yes Yes

Cloud Code Yes Yes Yes (Business Logic Code) No

Dashboard Yes Yes Yes Yes

Push Yes Yes Yes Yes

Real Time Pubsub and Query subscription No / Live Query No Yes

Analytics No No Yes Yes

File Storage Yes Yes Yes Yes

API Integration Yes No Yes No

Hosting Open source / On-premise / Managed Cloud Open source deployment Managed Cloud Managed Cloud

Platform Web, Android, iOS and IoT Web, Android, iOS and IoT Web, iOS, Android, Windows, REST API iOS, Android, Web

Best for Most kind of apps MVP apps B2B, B2E Apps Realtime communication apps

How to choose a BaaS?

• Depends on your project requirement and features.

• Aware of the costs you will incur in using the service.

• Take close look at the documentation.

• Is there any Supporting Service.

Conclusion• Saves Time : Utilising existing tools from BaaS.

• Go-to-market time reduced : You don’t need a backend developer to code your app and connect it to database.

• Richer app : You have a much richer apps built on your BaaS.

• Saves few hires : Using BaaS is like hiring 10 best backend hackers.

THE LEAN STARTUPMETHODOLOGY

“Work Smarter, Not Harder”

Please feel free to ask any question.

Thank you

Feel free to come to me and exchange a name card.

I’m happy to share you the slides

A B O U T U S

We specialise in creating digital products with great experiences

2 0 0 8f o u n d e d i n

4 0t a l e n t e d d e s i g n e r s a n d d e v e l o p e r s

2s t u d i o s i n H o n g K o n g a n d Ta i p e i

Apple featured our apps

LabelboxGif.cam Spentable