Usergrid
                  
      Open SourceMobile Backend on        Cassandra
Hi I m
Ed Anuff




API Management
API Analytics
API Tools
Usergrid

Backend-as-a-Service
& Open Source

Mobile and
Rich client apps

App, Cloud, & HTTP
No Web Stack        Page      Templates      MVC Logic      Database
Just Apps and APIs
Key Capabilities

A platform not a single app
Flexible data model
Easy to use from anylanguage



Why shouldCassandradevelopers careabout Usergrid?

Open Source (APLv2)
Built on Hector
Multi-tenant (VirtualKeyspaces)
JSON and full-text indexing
Rich permissions model
RES...
Multi-tenant data forApps
Lots of Teams... Team   Team      Team
Lots of Apps...  App    App     App         Team
And App Users...         App         Team
And data anddevices        App        Team
Multi-tenancy atscaleApp   App   App   App   App   App  Team         Team         Team
Schema     Separate Database Shared DatabaseShared               - Scalability     + Scalability                + Isolatio...
CREATE DATABASE  ALTER TABLE
Sharding SQL is toomuch work.

Oracle is too muchmoney.
What about NoSQL?

Most NoSQL worksat the wrongabstraction level.
Does Cassandraprovide any moreoptions?

Sort of
Schema     Separate Keyspace Shared KeyspaceShared              Expensive        InterestingSeparateSchema                ...
How would SharedSchema/SharedKeyspace work?
Users = {   "4e3c0423-…" : {      username: "edanuff",      email: "ed@anuff.com",      … : …   },   "e5d61f2b-…" : {     ...
Users = {   "4e3c0423-…" : {      username: "edanuff",      email: "ed@anuff.com",      … : …   },   "e5d61f2b-…" : {     ...
Conventional Row Keys In Single Keyspace	                  Row UUID	                  Row UUID	                  Row UUID	...
Multi-tenant Row Keys In Shared Keyspace	       Tenant ID	           Row UUID	       Tenant ID	           Row UUID	       ...
Wonderful, morethings for me to buildmyself in the apptier... 

Hold that thought...
Shared Schema/Shared Keyspace is Virtual Keyspaces 

Part of Hector Client
public static <E> Keyspace	createVirtualKeyspace(	String keyspace,	E keyPrefix,	Serializer<E> kps,	Cluster cluster);
Hector hides the Tenant Prefixes	                Prepend Tenant UUID	   Hector	                             Cassandra	     ...
What about indexes?

Hector doesn t filterresults
Don t add a tenant column
App-tier CF indexespreferable

What about CQL?

See previous slide for indexlimitations
Hector doesn t currentlysupport Virtual Keyspaces viaCQL
I don t ...
So what else is inthere?
JSON

Full JSON values,fully indexed, usingJackson and stufffrom Lucene
Permissions

Fine grained, peruser, built on Shiro
REST

Full REST API, builton Jersey
Anything else?
Mongo CompatibleAPI

Experimental MongoAPI emulation viaNetty

Mongo binary wire
That s what
Usergrid is.
Use the ideas
Use the code
Use the cloud
usergrid.com
git.io/usergrid

Thanks!
Upcoming SlideShare
Loading in...5
×

Building a Mobile Data Platform with Cassandra - Apigee Under the Hood (Webcast)

4,896

Published on

Published in: Technology
2 Comments
4 Likes
Statistics
Notes
No Downloads
Views
Total Views
4,896
On Slideshare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
80
Comments
2
Likes
4
Embeds 0
No embeds

No notes for slide

Building a Mobile Data Platform with Cassandra - Apigee Under the Hood (Webcast)

  1. 1. Usergrid
 
 Open SourceMobile Backend on Cassandra
  2. 2. Hi I m
Ed Anuff


  3. 3. 

API Management
API Analytics
API Tools
  4. 4. Usergrid

Backend-as-a-Service
& Open Source

Mobile and
Rich client apps

  5. 5. App, Cloud, & HTTP
  6. 6. No Web Stack Page Templates MVC Logic Database
  7. 7. Just Apps and APIs
  8. 8. Key Capabilities

A platform not a single app
Flexible data model
Easy to use from anylanguage



  9. 9. Why shouldCassandradevelopers careabout Usergrid?

  10. 10. Open Source (APLv2)
Built on Hector
Multi-tenant (VirtualKeyspaces)
JSON and full-text indexing
Rich permissions model
REST API


  11. 11. Multi-tenant data forApps
  12. 12. Lots of Teams... Team Team Team
  13. 13. Lots of Apps... App App App Team
  14. 14. And App Users... App Team
  15. 15. And data anddevices App Team
  16. 16. Multi-tenancy atscaleApp App App App App App Team Team Team
  17. 17. Schema Separate Database Shared DatabaseShared - Scalability + Scalability + Isolation - No Isolation + Simple - ComplicatedSeparateSchema - Scalability - Scalability + Isolation - No Isolation + Not Complicated - Complicated
  18. 18. CREATE DATABASE ALTER TABLE
  19. 19. Sharding SQL is toomuch work.

Oracle is too muchmoney.
  20. 20. What about NoSQL?

Most NoSQL worksat the wrongabstraction level.
  21. 21. Does Cassandraprovide any moreoptions?

Sort of
  22. 22. Schema Separate Keyspace Shared KeyspaceShared Expensive InterestingSeparateSchema Very Unwieldy Expensive
  23. 23. How would SharedSchema/SharedKeyspace work?
  24. 24. Users = { "4e3c0423-…" : { username: "edanuff", email: "ed@anuff.com", … : … }, "e5d61f2b-…" : { username: "jdoe", email:"john.doe@gmail.com", … : … }}
  25. 25. Users = { "4e3c0423-…" : { username: "edanuff", email: "ed@anuff.com", … : … }, "e5d61f2b-…" : { username: "jdoe", email:"john.doe@gmail.com", … : … }}
  26. 26. Conventional Row Keys In Single Keyspace Row UUID Row UUID Row UUID Row UUID Row UUID Row UUID
  27. 27. Multi-tenant Row Keys In Shared Keyspace Tenant ID Row UUID Tenant ID Row UUID Tenant ID Row UUID Tenant ID Row UUID Tenant ID Row UUID Tenant ID Row UUID
  28. 28. Wonderful, morethings for me to buildmyself in the apptier... 

Hold that thought...
  29. 29. Shared Schema/Shared Keyspace is Virtual Keyspaces 

Part of Hector Client
  30. 30. public static <E> Keyspace createVirtualKeyspace( String keyspace, E keyPrefix, Serializer<E> kps, Cluster cluster);
  31. 31. Hector hides the Tenant Prefixes Prepend Tenant UUID Hector Cassandra Remove Tenant UUID
  32. 32. What about indexes?

Hector doesn t filterresults
Don t add a tenant column
App-tier CF indexespreferable

  33. 33. What about CQL?

See previous slide for indexlimitations
Hector doesn t currentlysupport Virtual Keyspaces viaCQL
I don t actually ever use CQL
  34. 34. So what else is inthere?
  35. 35. JSON

Full JSON values,fully indexed, usingJackson and stufffrom Lucene
  36. 36. Permissions

Fine grained, peruser, built on Shiro
  37. 37. REST

Full REST API, builton Jersey
  38. 38. Anything else?
  39. 39. Mongo CompatibleAPI

Experimental MongoAPI emulation viaNetty

Mongo binary wire
  40. 40. That s what
Usergrid is.
  41. 41. Use the ideas
Use the code
Use the cloud
  42. 42. usergrid.com
git.io/usergrid

Thanks!

×