SlideShare a Scribd company logo
Building collaborative HTML5 apps
using a backend-as-a-service
João Parreira

CTO for Realtime Framework
Realtime.co Cloud Services

Enterprise-grade services with global presence
Realtime.co Cloud Services
Used in TOP500 global websites
Realtime.co Cloud Services
Used in TOP500 global websites
Building collaborative HTML5 apps using a backend-as-a-service (HTML5DevConf 2013 SF)
Realtime.co

Backed by $100M funding
Backend?

Usually consists of three
parts: a server, an
application and a database.
Backend-as-a-Service?

How?

What to look for?

(an example would be nice ...)
Why? (10 reasons)
caching
sharding data sync
server provisioning
scale-in/scale-out

read replicas

cluster management
CAP theorem

load balancing
monitoring
Why? (tl;dr)
You love building great web apps.

You don’t want to waste time
operating highly available
distributed backend clusters.
A little story from the trenches
Babblr: a chat platform for Tumblr users
They are ...
frontend developers
JavaScript ninjas
not SysAdmins
friends of a guy with 600K+ Tumblr
followers 
They wanted to ...
develop a chrome extension in 4 weeks
keep their hands off servers
launch it with a bang
reach every Tumblr user
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.
They had great press
before launch
th 6PM PST. They launched!
May 7
One hour later ...

“… we got 34,000 downloads in a
matter of 30 minutes. And what
that did is that the servers couldn’t
handle that traffic …”
What went wrong?
But you promised me love
Promised me love, love, love

Cee Lo Green
What to look for?
Scalable
Mobile ready
Available at all times
Real-time enabled
Truly secure
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.
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?
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.
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.
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
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”
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
Scalable
Mobile ready
Available at all times
Real-time enabled
Truly secure
BaaSWho’s who?
Building collaborative HTML5 apps using a backend-as-a-service (HTML5DevConf 2013 SF)
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
It’s Scalable
(remember Babblr?)

Relaunched
with 120K+ users
It’s Mobile ready
 Objective-C SDK for iOS
 Java SDK for Android
 Push notifications with APNS+GCM
(in private beta, public in 3 weeks)
It’s highly-available
 100% uptime
(source: Site24x7)

 Multi-region
(US, EU, BR and ASIA)
 Data is saved in 3
different datacenters
It’s real-time enabled
 Data sync through WebSockets (with fallbacks)
 Powered by high-performance pub/sub message broker
 Simple event-based API:
var tableRef = storageRef.table("SomeTable");
tableRef.on("update", function(item) {
console.log(“Got an update:", item.val());
});
It’s secure
 Token-based authentication
 Permissions by ACLs with Create-Read-Update-Delete
 Roles for easier user management
 SSL encryption
It’s cost-effective
 Pay-as-you-go
 Starts from $1.5 USD/month (2 operations/sec)
 $500 USD developer offer including:
 10.000 concurrent users
 200GB storage
 10 million real-time notifications/month
One cloud backend, one API, multiple platforms

API

DynamoDB

Highly scalable

Real-time
notifications

API

Realtime Cloud Storage BaaS
API

API
(yes, with an example)
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/
Developer resources
 https://github.com/jparreira/Html5DevConf
 https://github.com/realtime-framework/Storage
 http://framework.realtime.co/storage
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 ...
@jtparreira
Thank you

More Related Content

PDF
2017 Ad-Tech on AWS 세미나ㅣAccelerating Ad-Tech on AWS in Japan
PPTX
Real Time Conversion Joins Using Storm and HBase
PPTX
AWS Partner Techshift - Developing a Global Sales Channel with AWS Marketplac...
PDF
삼성 SDS의 SCM 고도화를 위한 클라우드 활용 사례 - AWS Summit Seoul 2017
PDF
16h00 globant - aws globant-big-data_summit2012
PDF
Google Cloud Fundamentals
PDF
중국에서의 AWS 활용 현황 및 유저그룹 활동 - AWS Summit Seoul 2017
PPTX
BloomReach AWS Tech
2017 Ad-Tech on AWS 세미나ㅣAccelerating Ad-Tech on AWS in Japan
Real Time Conversion Joins Using Storm and HBase
AWS Partner Techshift - Developing a Global Sales Channel with AWS Marketplac...
삼성 SDS의 SCM 고도화를 위한 클라우드 활용 사례 - AWS Summit Seoul 2017
16h00 globant - aws globant-big-data_summit2012
Google Cloud Fundamentals
중국에서의 AWS 활용 현황 및 유저그룹 활동 - AWS Summit Seoul 2017
BloomReach AWS Tech

Similar to Building collaborative HTML5 apps using a backend-as-a-service (HTML5DevConf 2013 SF) (20)

PPTX
Data Streaming with Apache Kafka & MongoDB
PPTX
Data Streaming with Apache Kafka & MongoDB - EMEA
PPTX
Webinar: Data Streaming with Apache Kafka & MongoDB
PPT
Web hosting is a software business
PPTX
Big Data on Azure Tutorial
PDF
Big Data Day LA 2015 - The AWS Big Data Platform by Michael Limcaco of Amazon
POTX
devworkshop-10_28_1015-amazon-conference-presentation
PPTX
How leading financial services organisations are winning with tech
PPTX
Building real-time serverless data applications with Confluent and AWS - Lond...
PPTX
Cloud Computing:An Economic Solution for Libraries
PDF
[AWS Dev Day] 기조연설 – Olivier Klein AWS 신기술 부문 책임자, 정성권 삼성전자 수석
PPT
Cloud Providers Public 030909 V2
PDF
Unleashing the Future: Building a Scalable and Up-to-Date GenAI Chatbot with ...
PPT
Cloud Computing
PPT
UnConference for Georgia Southern Computer Science March 31, 2015
PPTX
Handling Data in Mega Scale Systems
PPTX
Building real-time serverless data applications with Confluent and AWS.pptx
PDF
Modern Web Applications
PPT
Cloud computing adoption in sap technologies
PDF
Why Cloud-Native Kafka Matters: 4 Reasons to Stop Managing it Yourself
Data Streaming with Apache Kafka & MongoDB
Data Streaming with Apache Kafka & MongoDB - EMEA
Webinar: Data Streaming with Apache Kafka & MongoDB
Web hosting is a software business
Big Data on Azure Tutorial
Big Data Day LA 2015 - The AWS Big Data Platform by Michael Limcaco of Amazon
devworkshop-10_28_1015-amazon-conference-presentation
How leading financial services organisations are winning with tech
Building real-time serverless data applications with Confluent and AWS - Lond...
Cloud Computing:An Economic Solution for Libraries
[AWS Dev Day] 기조연설 – Olivier Klein AWS 신기술 부문 책임자, 정성권 삼성전자 수석
Cloud Providers Public 030909 V2
Unleashing the Future: Building a Scalable and Up-to-Date GenAI Chatbot with ...
Cloud Computing
UnConference for Georgia Southern Computer Science March 31, 2015
Handling Data in Mega Scale Systems
Building real-time serverless data applications with Confluent and AWS.pptx
Modern Web Applications
Cloud computing adoption in sap technologies
Why Cloud-Native Kafka Matters: 4 Reasons to Stop Managing it Yourself
Ad

Recently uploaded (20)

PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
Cloud computing and distributed systems.
PDF
Electronic commerce courselecture one. Pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
cuic standard and advanced reporting.pdf
PDF
Machine learning based COVID-19 study performance prediction
PDF
Spectral efficient network and resource selection model in 5G networks
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Cloud computing and distributed systems.
Electronic commerce courselecture one. Pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Encapsulation_ Review paper, used for researhc scholars
Dropbox Q2 2025 Financial Results & Investor Presentation
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Chapter 3 Spatial Domain Image Processing.pdf
cuic standard and advanced reporting.pdf
Machine learning based COVID-19 study performance prediction
Spectral efficient network and resource selection model in 5G networks
The AUB Centre for AI in Media Proposal.docx
Diabetes mellitus diagnosis method based random forest with bat algorithm
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
20250228 LYD VKU AI Blended-Learning.pptx
Ad

Building collaborative HTML5 apps using a backend-as-a-service (HTML5DevConf 2013 SF)

  • 1. Building collaborative HTML5 apps using a backend-as-a-service
  • 2. João Parreira CTO for Realtime Framework
  • 3. Realtime.co Cloud Services Enterprise-grade services with global presence
  • 4. Realtime.co Cloud Services Used in TOP500 global websites
  • 5. Realtime.co Cloud Services Used in TOP500 global websites
  • 8. Backend? Usually consists of three parts: a server, an application and a database.
  • 9. Backend-as-a-Service? How? What to look for? (an example would be nice ...)
  • 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.
  • 16. They had great press before launch
  • 17. th 6PM PST. They launched! May 7
  • 18. One hour later ... “… we got 34,000 downloads in a matter of 30 minutes. And what that did is that the servers couldn’t handle that traffic …”
  • 19. What went wrong? But you promised me love Promised me love, love, love Cee Lo Green
  • 20. What to look for?
  • 21. Scalable Mobile ready Available at all times Real-time enabled Truly secure
  • 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
  • 29. Scalable Mobile ready Available at all times Real-time enabled Truly secure
  • 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
  • 34. It’s Mobile ready  Objective-C SDK for iOS  Java SDK for Android  Push notifications with APNS+GCM (in private beta, public in 3 weeks)
  • 35. It’s highly-available  100% uptime (source: Site24x7)  Multi-region (US, EU, BR and ASIA)  Data is saved in 3 different datacenters
  • 36. It’s real-time enabled  Data sync through WebSockets (with fallbacks)  Powered by high-performance pub/sub message broker  Simple event-based API: var tableRef = storageRef.table("SomeTable"); tableRef.on("update", function(item) { console.log(“Got an update:", item.val()); });
  • 37. It’s secure  Token-based authentication  Permissions by ACLs with Create-Read-Update-Delete  Roles for easier user management  SSL encryption
  • 38. It’s cost-effective  Pay-as-you-go  Starts from $1.5 USD/month (2 operations/sec)  $500 USD developer offer including:  10.000 concurrent users  200GB storage  10 million real-time notifications/month
  • 39. One cloud backend, one API, multiple platforms API DynamoDB Highly scalable Real-time notifications API Realtime Cloud Storage BaaS API API
  • 40. (yes, with an example)
  • 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/
  • 42. Developer resources  https://github.com/jparreira/Html5DevConf  https://github.com/realtime-framework/Storage  http://framework.realtime.co/storage
  • 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 ...