Slide deck for talk at the 2013 HTML5 Developers Conference in San Francisco. Covers the main BaaS critical success factors: SMART (Scalable, Mobile-ready, Available, Real-time enabled and Truly secure)
João ParreiraCTO for Realtime Framework at Realtime.co
10. Why? (10 reasons)
caching
sharding data sync
server provisioning
scale-in/scale-out
read replicas
cluster management
CAP theorem
load balancing
monitoring
11. Why? (tl;dr)
You love building great web apps.
You don’t want to waste time
operating highly available
distributed backend clusters.
12. A little story from the trenches
Babblr: a chat platform for Tumblr users
13. They are ...
frontend developers
JavaScript ninjas
not SysAdmins
friends of a guy with 600K+ Tumblr
followers
14. They wanted to ...
develop a chrome extension in 4 weeks
keep their hands off servers
launch it with a bang
reach every Tumblr user
15. Their solution?
“do what you do best and outsource the rest”
find someone to do the heavy-lifting
use a backend-as-a-service
And so they did,
they went with Firebase.
22. Lack of scalability
will doom your success
Remember Babblr:
the prototype was easy to develop ...
everything worked during private beta ...
but production launch was a disaster!
The backend service was not up to the task.
It didn’t scale when Babblr most needed it.
23. Your success depends
on your backend scalability
Understand how your BaaS provider scales . Ask.
Never talks about ops/sec? Hummm ...
Favour reserved capacity scaling models
Look for scaling APIs and autoscaling processes
Be suspicious of scale limited developer plans.
What is the provider affraid of?
24. Mobile is
the new black!
~40% of internet time now on mobile devices
Native iOS and Android SDKs are mandatory
Push notifications are a nice plus
(APNS, GCM)
If you’re not flirting with native apps ...you should.
25. Your user is king
and he demands you’re available
Data must be stored in multiple datacenters
Periodic backups? Disaster Recovery != Business Continuity
Rolling deploys must be the standard procedure
Look for service status pages
A 99,999% SLA is quite normal ...
don’t let anyone tell you otherwise.
26. Life supports real-time,
your app should too
Collaboration is easier with real-time data sync
No persistent connection to each user?
Sorry, no real-time for you.
We’re talking about time, latency matters. Measure.
Look for WebSockets. They’re new but they’re awesome
27. Thou shalt have
a truly secured app
If there’s a security option... turn it on!
http://robinverton.de/blog/2013/08/27/becareful-when-going-client-only-firebase/
Don’t trust the client …
You should be able to say “who can do what”
28. Thou shalt have
a truly secured app
Favour ACLs with CRUD permissions
Look for SSL enabled providers
Look for providers using certified infrastructure
Look for cryptographic methods to authenticate users
and prevent unauthorized data access
32. It’s Scalable
Reserved capacity scaling model
Different capacity for reads and writes
Powered by Amazon DynamoDB
Highly-scalable NoSQL database
Shazam at SuperBowl 2012:
500.000 writes per second
41. Building a collaboration
HTML5 app in 5 minutes
Group chat
Realtime Cloud Storage (backend)
AngularJS (MVC framework)
Nicolas Gallagher PURE CSS SPEECH BUBBLES (pizzazz)
http://nicolasgallagher.com/pure-css-speech-bubbles/
43. Realtime Cloud Storage : use cases
A unified backend for modern applications across platforms
Collaboration applications
Multiplayer Online Games
Social networks streams
Digital Advertising
E-commerce
Publishing
Project Management
Chats and comments
Systems monitoring dashboards
The next big thing ...