The Rise of BaaS A Utopia for Client-Side Developers
-
Upload
mac-broadcast -
Category
Engineering
-
view
289 -
download
0
description
Transcript of The Rise of BaaS A Utopia for Client-Side Developers
![Page 1: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/1.jpg)
The Rise of BaaSA Utopia for Client-Side Developers
This is a comment.
1Saturday, March 15, 14
![Page 2: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/2.jpg)
State of the UnionHow client-side applications are built today
2Saturday, March 15, 14
![Page 3: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/3.jpg)
CLIENT SIDE APP APIs
Web Server
Hosting Tooling
DATA MANAGEMENT
USER MANAGEMENT
BUSINESS LOGIC
BUSINESS LOGIC
* your backend serves up data that your client-side code uses to render the different views* when your view needs to change the client-side code makes a request to the backend to re-render the view via xhr or websocket* talk to the backend to perform any action or to talk to third-party api's
3Saturday, March 15, 14
• your backend serves up data that your client-side code uses to render the different views• when your view needs to change the client-side code makes a request to the backend to re-render the view via xhr or websocket• talk to the backend to perform any action or to talk to third-party api's
![Page 4: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/4.jpg)
How often do you change your backend to support the needs
of your client side app?
4Saturday, March 15, 14
![Page 5: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/5.jpg)
How often must you upgrade your back-end to extend your application?
Constantly.* data and access controls (all the security) lives inside the backend so in order to extend your application you have to build out new routes
5Saturday, March 15, 14
• data and access controls (all the security) lives inside the backend so in order to extend your application you have to build out new routes
![Page 6: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/6.jpg)
The chasebegins
6Saturday, March 15, 14
The communication nightmare kicks-off, the standard formation in most companies is that the client-side guys handle the users world and the back-end guys write the backend. Now, to make a change that the back-end doesn't support means that you have to coordinate with them to build out the feature.
So instead of focusing on building an amazing application for your customers, you end up spending time working with the back-end team and their schedule.
![Page 7: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/7.jpg)
So what do we settle for?
APIs
DATA MANAGEMENT
Storage
7Saturday, March 15, 14
The communication nightmare kicks-off
![Page 8: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/8.jpg)
Every application has unique requirements
DATA MANAGEMENT
USER MANAGEMENT
HOSTING
SECURITY
8Saturday, March 15, 14
Blog:• Comments, users and posts• Each post has a user and many comments• You want to order the posts by date and select a range of them, perhaps you also want to filter by category• Similar, for comments, you want to order by date and select a range of them• For users, you need some sort of authentication and user management system• For creating posts, you want some type of user admin role
![Page 9: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/9.jpg)
Let’s face reality, we’ve been reinventing the wheel
And it’s a fracking head-ache.
9Saturday, March 15, 14
![Page 10: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/10.jpg)
This approach has consequences
10Saturday, March 15, 14
Repeating the same pattern over and over (creating an API to wrap the data structure) and creates additional risks
![Page 11: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/11.jpg)
This approach has consequences
• Tightly coupled to the server
10Saturday, March 15, 14
Repeating the same pattern over and over (creating an API to wrap the data structure) and creates additional risks
![Page 12: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/12.jpg)
This approach has consequences
• Tightly coupled to the server
• Inflexible
10Saturday, March 15, 14
Repeating the same pattern over and over (creating an API to wrap the data structure) and creates additional risks
![Page 13: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/13.jpg)
This approach has consequences
• Tightly coupled to the server
• Inflexible• Expensive
10Saturday, March 15, 14
Repeating the same pattern over and over (creating an API to wrap the data structure) and creates additional risks
![Page 14: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/14.jpg)
This approach has consequences
• Tightly coupled to the server
• Inflexible• Expensive
• Incomplete
10Saturday, March 15, 14
Repeating the same pattern over and over (creating an API to wrap the data structure) and creates additional risks
![Page 15: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/15.jpg)
This approach has consequences
• Tightly coupled to the server
• Inflexible• Expensive
• Incomplete• Limited extensibility
10Saturday, March 15, 14
Repeating the same pattern over and over (creating an API to wrap the data structure) and creates additional risks
![Page 16: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/16.jpg)
This approach has consequences
• Tightly coupled to the server
• Inflexible• Expensive
• Incomplete• Limited extensibility• The list as you know,
does not end here
10Saturday, March 15, 14
Repeating the same pattern over and over (creating an API to wrap the data structure) and creates additional risks
![Page 17: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/17.jpg)
Imagine for a moment, the ultimate back-end.
One that could fuel any & every feature.
11Saturday, March 15, 14
![Page 18: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/18.jpg)
Ian Livingstone
@ianlivingstone
VP Engineering, GoInstant
12Saturday, March 15, 14
![Page 19: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/19.jpg)
We’re obsessive about this problem.
13Saturday, March 15, 14
Started as co-browse, started transitioning BaaS because we found we needed every component, and none existed.
![Page 20: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/20.jpg)
14Saturday, March 15, 14
![Page 21: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/21.jpg)
The question that keeps us up at night?
14Saturday, March 15, 14
![Page 22: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/22.jpg)
The question that keeps us up at night?
What would this ultimate backend look like?
14Saturday, March 15, 14
![Page 23: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/23.jpg)
The Vision: BaaS
15Saturday, March 15, 14
![Page 24: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/24.jpg)
The Vision: BaaSOne really really awesome round wheel, we all share.
15Saturday, March 15, 14
![Page 25: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/25.jpg)
CLIENT SIDE APP APIs
Web Server
Hosting Tooling
DATA MANAGEMENT
USER MANAGEMENT
BaaS
BUSINESS LOGIC
16Saturday, March 15, 14
![Page 26: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/26.jpg)
CLIENT SIDE APP APIs
Web Server
Hosting Tooling
DATA MANAGEMENT
USER MANAGEMENT
BaaS
BUSINESS LOGIC
16Saturday, March 15, 14
![Page 27: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/27.jpg)
CLIENT SIDE APP APIs
Web Server
Hosting Tooling
DATA MANAGEMENT
USER MANAGEMENT
BaaS
BUSINESS LOGIC
16Saturday, March 15, 14
![Page 28: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/28.jpg)
CLIENT SIDE APP APIs
Web Server
Hosting Tooling
DATA MANAGEMENT
USER MANAGEMENT
BaaS
BUSINESS LOGIC
16Saturday, March 15, 14
![Page 29: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/29.jpg)
Ok that looks awesome
Let’s make it a reality!
17Saturday, March 15, 14
![Page 30: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/30.jpg)
Connectivityweb sockets and xhr-polling we have the technology to create "full-duplex" connections even in older browsersthis gives us a mechanism for pushing data between server and client
18Saturday, March 15, 14
• web sockets and xhr-polling we have the technology to create "full-duplex" connections even in older browsers• this gives us a mechanism for pushing data between server and client
![Page 31: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/31.jpg)
Data Management* already exists just needs an API built for it on the client* support querying* transactions* all json types
19Saturday, March 15, 14
• already exists just needs an API built for it on the client• support querying• transactions• all json type
![Page 32: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/32.jpg)
User Management
* built on-top of the data model* standardized by convention * id * groups (or roles) built in* extensible to store extra data required
20Saturday, March 15, 14
• built on-top of the data model• standardized by convention
• id• groups (or roles) built in
• extensible to store extra data required•
![Page 33: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/33.jpg)
Security & Access Control* having data on client means there are a lot of security concerns* access control layer around who can read and write data based on their id and groups* input validation to guarantee data integrity* output sanitization to prevent different forms of injection attacks* enforced on server via schema of some form
21Saturday, March 15, 14
• having data on client means there are a lot of security concerns• access control layer around who can read and write data based on their id and groups• input validation to guarantee data integrity• output sanitization to prevent different forms of injection attacks• enforced on server via schema of some form
![Page 34: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/34.jpg)
Tooling* API is a black box you won’t control* tooling is *really* important* even with less surface area, there will still be bugs* so what type of tooling do we need?
22Saturday, March 15, 14
![Page 35: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/35.jpg)
Data Tooling• Ability to view the data• Ability to export and import backups• Ability to run arbitrary queries on the data• Audit logs for monitoring how data changes• Schema visualizer◦ Exploring how access controls are enforced◦ Testing input validation and output sanitization
• Available via Web UI and CLI
23Saturday, March 15, 14
• Ability to view the data• Ability to export and import backups• Ability to run arbitrary queries on the data• Audit logs for monitoring how data changes
• Schema visualizer• Exploring how access controls are enforced
• Testing input validation and output sanitization• Available via Web UI and CLI
![Page 36: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/36.jpg)
Organizational Tooling• Support for multiple collaborators• Support for multiple environments• Varying access controls based on environment• Ability to perform data migrations
24Saturday, March 15, 14
• Support for multiple collaborators• Support for multiple environments• Varying access controls based on environment• Ability to perform data migrations
![Page 37: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/37.jpg)
Hosting* to truly remove the operational burden, we also need to provide static application hosting* but it can't just host static html, css, js -- it needs to be living and breathing as well* schema provides access control to routes and redirect controls
25Saturday, March 15, 14
• to truly remove the operational burden, we also need to provide static application hosting• but it can't just host static html, css, js -- it needs to be living and breathing as well• schema provides access control to routes and redirect controls
![Page 38: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/38.jpg)
All together now
26Saturday, March 15, 14
![Page 39: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/39.jpg)
CONNECTIVITY
All together now
26Saturday, March 15, 14
![Page 40: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/40.jpg)
CONNECTIVITY
DATA MANAGEMENT
All together now
26Saturday, March 15, 14
![Page 41: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/41.jpg)
CONNECTIVITY
DATA MANAGEMENT
USER MANAGEMENT
All together now
26Saturday, March 15, 14
![Page 42: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/42.jpg)
CONNECTIVITY
DATA MANAGEMENT
USER MANAGEMENT
SECURITY
All together now
26Saturday, March 15, 14
![Page 43: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/43.jpg)
CONNECTIVITY
DATA MANAGEMENT
USER MANAGEMENT
SECURITY
TOOLING
All together now
26Saturday, March 15, 14
![Page 44: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/44.jpg)
CONNECTIVITY
DATA MANAGEMENT
USER MANAGEMENT
SECURITY
TOOLING
HOSTING
All together now
26Saturday, March 15, 14
![Page 45: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/45.jpg)
We’ve found some obvious advantages
27Saturday, March 15, 14
![Page 46: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/46.jpg)
We’ve found some obvious advantages
✓crowd source quality
27Saturday, March 15, 14
![Page 47: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/47.jpg)
We’ve found some obvious advantages
✓crowd source quality✓specialization
27Saturday, March 15, 14
![Page 48: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/48.jpg)
We’ve found some obvious advantages
✓crowd source quality✓specialization✓scale
27Saturday, March 15, 14
![Page 49: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/49.jpg)
We’ve found some obvious advantages
✓crowd source quality✓specialization✓scale
✓ reliability
27Saturday, March 15, 14
![Page 50: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/50.jpg)
We’ve found some obvious advantages
✓crowd source quality✓specialization✓scale
✓ reliability✓extensibility
27Saturday, March 15, 14
![Page 51: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/51.jpg)
We’ve found some obvious advantages
✓crowd source quality✓specialization✓scale
✓ reliability✓extensibility✓ lower cost
27Saturday, March 15, 14
![Page 52: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/52.jpg)
28Saturday, March 15, 14
![Page 53: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/53.jpg)
“The whole is greater than the sum of its parts.”
– Aristotle
28Saturday, March 15, 14
![Page 54: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/54.jpg)
Data Synchronization
* evolved from BaaS movement* user a modifies data, automatically updates the view of user b* possible because of the full-duplex connection and event subscriptions* subscribe to “change” events in data model* server pushes new data and client-side api trigger event listener* by leveraging this pattern you now have “real-time” out of the box, you don’t have to manage this! It’s given to you!* show code example of what this looks like!
29Saturday, March 15, 14
![Page 55: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/55.jpg)
Offline Support* now we have this mechanism for forcing our view to re-render* with this we can update the view of the application when the user reconnects (from sleep mode, or connects to wifi, etc.)* all the data transferred to the client from the server is cached so we can have read-only offline mode support out of the box*
30Saturday, March 15, 14
![Page 56: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/56.jpg)
Shared Integrations
31Saturday, March 15, 14
![Page 57: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/57.jpg)
In this utopia, how long would it take to build the application of your
users dreams.
Better question,how much time could you save?
32Saturday, March 15, 14
![Page 58: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/58.jpg)
Baas TodayThis utopia will be built,
one brick at a time
33Saturday, March 15, 14
Talk through current solutions available
![Page 59: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/59.jpg)
The Players
34Saturday, March 15, 14
![Page 60: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/60.jpg)
In Conclusion
• Client-side developers waste time and money on infrastructure
• BaaS will fundamentally change how client-side applications are developed
• The work is alreadyunder-way
• It’s an extension of the platform movement
35Saturday, March 15, 14
![Page 61: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/61.jpg)
Join the BaaS movement
An intersection of developer productivity and the platformization
revolution
36Saturday, March 15, 14
![Page 62: The Rise of BaaS A Utopia for Client-Side Developers](https://reader036.fdocuments.in/reader036/viewer/2022062320/559abd221a28abd44a8b46fb/html5/thumbnails/62.jpg)
Q&A
37Saturday, March 15, 14