O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
Building the better BaaS 
Ed Anuff & Nate McCall
@edanuff @zznate
What’s a BaaS and what’s so special about Usergrid? 
Ed Anuff 
Usergrid Founder, Apigee Product Strategist 
3
App, Cloud, and HTTP 
4
No Web Stack 
5 
Page Templates 
MVC Logic 
Database
Just Apps and APIs 
6
Building A Platform 
7
Not just an App 
8
App 
Developer
Team Team Team
App App App 
Team
App 
Team
App 
Team
App App App App App App 
Team Team Team
Key Challenges 
• New Type Of Database (Cassandra) 
• New Type Of Deployment (Elastic in the Cloud, Small & Fast on the De...
Major Milestones & Progress 
• 2011 – Usergrid released as first Open Source BaaS 
• 2012 – Usergrid becomes part of Apige...
How do you use a BaaS? 
17
/users 
/groups 
/users/me/followers
/restaurants 
/products 
/car-washes 
/<whatever>
POST /devices/<id>
POST /events 
{ “category” : “ads”, 
“counters” : { 
“ad_clicks” : 5 
}}
/users/ed/friends/nate 
/users/ed/likes/foods/pizza
GET /restaurants?near=37.803, - 
122.404
GET /restaurants?ql=name 
contains ‘pizza’ and within 5m of 
39.962,-105.114
POST /users/me/activities 
{ “title”: “look”, 
“location”: …}
GET /users/me/feed 
[{ “title”: “Ed ate a slice of pizza”, 
“location”: …}]
postUserActivity(me, activity) 
[client postUserActivity: “me” 
activity: activityObj]
/token?grant_type=... 
/auth/facebook?fb_access_token 
=…
/users?filter=facebook.first_name 
eq 'john'
/users?ql=name eq 'john' and 
facebook.education. 
school.name contains '...'
What’s Usergrid 2.0 all about? 
Nate McCall 
Apache Usergrid PPMC & Cassandra MVP 
31
Who is this man and why isn’t he here? 
32 
Todd Nine, Lead Architect for Apigee Edge BaaS, Apache Usergrid Committer, and...
New Pieces of the Stack 
33 
RxJava Archaius 
GuicyFig
Challenges 
• 1.0 Architecture had a number of Cassandra anti-patterns 
• Enterprise users wanted to load and query large ...
New Architectures 
• Elastic Search 
• Cassandra 2.0+ 
• Moving most common operations to CQL as the transport 
• Archaius...
New Architectures: Elastic Search 
• Right tool for the job 
• Cassandra worked… until it didn’t. 
• Well known operationa...
New Architectures: Cassandra 2.0/2.1 
• Still best of breed NoSQL solution for scale 
• Off-heap performance improvements ...
New Architectures: Archaius and Guice 
• Properties typing 
• Property change polling 
• Hierarchical callbacks on changes...
New Architectures: Archaius + Guice = GuicyFig 
39
New Architectures: Archaius + Guice = GuicyFig 
40
New Architectures: Hystrix and RxJava 
• Compose sequences of asynchronous events declaratively 
• Circuit breaker pattern...
New Architectures: RxJava Example 
42
More Stuff 
• Major components are plug-able 
• MVCC 
• Directed edge graph supports time series and collections 
• Chop l...
New Open Source Projects Spun Out 
• Judo-Chop: annotation based load testing framework 
• GuicyFig: combination of Netfli...
What’s next? 
45
Usergrid 3.0 
• V2 API (V3?) 
• Subscriptions (standing server-side queries with notifications) 
• WebSocket/Server-side E...
How can you get involved? 
47
48 
http://www.usergrid.org
http://developer.apigee.com
Thank you
Próximos SlideShares
Carregando em…5
×

Building a Better BaaS

1.875 visualizações

Publicada em

APIs for cutting edge enterprise apps: Apigee BaaS and Apache Usergrid

Publicada em: Software
  • Nice presentation! To get more information about BaaS, please read this article: https://www.cleveroad.com/blog/how-to-build-cloud-based-mobile-applications. It will help you to answer this questions: What is Baas? How does the process of its creation happen? What are the pros and cons of this type of development? What services will help to complete this task? What is a cloud hosting? So, after reading this article, you will understand how to develop a cloud application, whether you need it, and what are the risks of using the cloud-based application development with BaaS.
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui

Building a Better BaaS

  1. 1. Building the better BaaS Ed Anuff & Nate McCall
  2. 2. @edanuff @zznate
  3. 3. What’s a BaaS and what’s so special about Usergrid? Ed Anuff Usergrid Founder, Apigee Product Strategist 3
  4. 4. App, Cloud, and HTTP 4
  5. 5. No Web Stack 5 Page Templates MVC Logic Database
  6. 6. Just Apps and APIs 6
  7. 7. Building A Platform 7
  8. 8. Not just an App 8
  9. 9. App Developer
  10. 10. Team Team Team
  11. 11. App App App Team
  12. 12. App Team
  13. 13. App Team
  14. 14. App App App App App App Team Team Team
  15. 15. Key Challenges • New Type Of Database (Cassandra) • New Type Of Deployment (Elastic in the Cloud, Small & Fast on the Desktop) • New Type of Access (REST API, SDKs) • New Type of Learning Curve (Smart Docs & Swagger) 15
  16. 16. Major Milestones & Progress • 2011 – Usergrid released as first Open Source BaaS • 2012 – Usergrid becomes part of Apigee • 2012 – Apigee ships Enterprise App Services • 2013 – Integrated as Apigee Edge BaaS • 2013 – Usergrid goes to Apache • 2014 – Apache Usergrid 1.0 release! • 2014 – Apigee 127 Developer Kit with Node.js, Volos, and Usergrid • 2014 – Apigee BaaS 2.0 and Usergrid 2.0 Beta 16
  17. 17. How do you use a BaaS? 17
  18. 18. /users /groups /users/me/followers
  19. 19. /restaurants /products /car-washes /<whatever>
  20. 20. POST /devices/<id>
  21. 21. POST /events { “category” : “ads”, “counters” : { “ad_clicks” : 5 }}
  22. 22. /users/ed/friends/nate /users/ed/likes/foods/pizza
  23. 23. GET /restaurants?near=37.803, - 122.404
  24. 24. GET /restaurants?ql=name contains ‘pizza’ and within 5m of 39.962,-105.114
  25. 25. POST /users/me/activities { “title”: “look”, “location”: …}
  26. 26. GET /users/me/feed [{ “title”: “Ed ate a slice of pizza”, “location”: …}]
  27. 27. postUserActivity(me, activity) [client postUserActivity: “me” activity: activityObj]
  28. 28. /token?grant_type=... /auth/facebook?fb_access_token =…
  29. 29. /users?filter=facebook.first_name eq 'john'
  30. 30. /users?ql=name eq 'john' and facebook.education. school.name contains '...'
  31. 31. What’s Usergrid 2.0 all about? Nate McCall Apache Usergrid PPMC & Cassandra MVP 31
  32. 32. Who is this man and why isn’t he here? 32 Todd Nine, Lead Architect for Apigee Edge BaaS, Apache Usergrid Committer, and Recently Married Man as of Last Friday, now on Honeymoon
  33. 33. New Pieces of the Stack 33 RxJava Archaius GuicyFig
  34. 34. Challenges • 1.0 Architecture had a number of Cassandra anti-patterns • Enterprise users wanted to load and query large datasets • Cassandra moving to 2.0 with CQL3, deprecating Thrift protocol • Team wanted to leverage new indexing models of Elastic Search 34
  35. 35. New Architectures • Elastic Search • Cassandra 2.0+ • Moving most common operations to CQL as the transport • Archaius and Guice for dynamic configuration management • Hystrix and RxJava 35
  36. 36. New Architectures: Elastic Search • Right tool for the job • Cassandra worked… until it didn’t. • Well known operationalization characteristics • Scale-out was well understood for “full text search” use case 36
  37. 37. New Architectures: Cassandra 2.0/2.1 • Still best of breed NoSQL solution for scale • Off-heap performance improvements • Failure scenario performance improvements 37
  38. 38. New Architectures: Archaius and Guice • Properties typing • Property change polling • Hierarchical callbacks on changes • Load from anywhere dynamic sources • … all via Guice annotations 38
  39. 39. New Architectures: Archaius + Guice = GuicyFig 39
  40. 40. New Architectures: Archaius + Guice = GuicyFig 40
  41. 41. New Architectures: Hystrix and RxJava • Compose sequences of asynchronous events declaratively • Circuit breaker pattern for back-off and retry • Natural fit with complex, asynchronous operations such as graph updates… 41
  42. 42. New Architectures: RxJava Example 42
  43. 43. More Stuff • Major components are plug-able • MVCC • Directed edge graph supports time series and collections • Chop load testing framework 43
  44. 44. New Open Source Projects Spun Out • Judo-Chop: annotation based load testing framework • GuicyFig: combination of Netflix’s Archaius and Google’s Guice • Modular Cassandra JUnit integration (coming soon!) 44
  45. 45. What’s next? 45
  46. 46. Usergrid 3.0 • V2 API (V3?) • Subscriptions (standing server-side queries with notifications) • WebSocket/Server-side Events • WebHooks • Data storage management (reporting, limits, etc.) • Collection management (deletes, copies, etc.) • Consistency exposed via API(conditional puts, etc.) • Indexing API • Queues • Expanded/pluggable sign-in (more Oauth, LDAP, etc.) 46
  47. 47. How can you get involved? 47
  48. 48. 48 http://www.usergrid.org
  49. 49. http://developer.apigee.com
  50. 50. Thank you

×