Anúncio
Anúncio

Mais conteúdo relacionado

Apresentações para você(20)

Similar a Deep Dive: Strategic Importance of BaaS(20)

Anúncio

Mais de Apigee | Google Cloud(20)

Último(20)

Anúncio

Deep Dive: Strategic Importance of BaaS

  1. The Strategic Importance of BaaS Jeffrey West
  2. Jeffrey West Who Am I? •  BaaS Engineering Coach at Apigee •  10+ years in Middleware implementation, integration, development & product management •  Apache Committer
  3. Context 3
  4. 4 (m) obile B ackend a s a S ervice Datastore Push Notifications Connections / Social Location Users …and more Application
  5. Building Systems of Engagement with Edge API BaaS 5 Systems of Record Apigee Edge: Intelligent API Platform Systems of Engagement App Developers DatabaseERPCRM Data Warehouse Data Lake Partner AppsConsumer Apps Employee Apps Insights
  6. Systems of Engagement 6
  7. 7 ©2015 Apigee. All Rights Reserved. Web Scale 10’s of thousands requests/sec …across multiple data centers
  8. Scaling Usergrid to 10,000 Req/s w/ Gatling •  10k test run: –  35 c3.xlarge Tomcat Nodes –  9 c3.4xlarge C* nodes –  6 m3.large ES nodes •  Closing test ~7,800/s: –  15 c3.xlarge Tomcat Nodes –  9 c3.4xlarge C* nodes –  6 m3.large ES nodes 8
  9. Strategic Value 9
  10. Speed 10
  11. Speed …to proof of value …to deploy …to change …to ENGAGE – Customers – Partners – Employees 11 ©2015 Apigee. All Rights Reserved.
  12. How? 12
  13. Organization Organization Organization Application DevicesUsers Groups Security Roles Collection Data / Collections Entity {…}Entity {…}Entity {…} Application DevicesUsers Groups Security Roles Entity {…}Entity {…}Entity {…} Collection Data / Collections Entity {…}Entity {…}Entity {…}
  14. API BaaS – Users, Roles & Security •  Organization administrator accounts •  Registration & Login for your app •  End user credentials •  Organization-level client ID and shared secret •  Application-level client ID and shared secret •  Hierarchical Groups •  Fine-Grained User/Group/Role/ Permission model 14
  15. But I just want to store data! 15 REST API GET / PUT / POST / DELETE Scalable, Multi-tenant Persistence (Single Cluster)
  16. Apigee API BaaS: Powered by Apache Usergrid 16
  17. •  Apache Open Source Mobile Backend as a Service •  REST API for easy interaction from any platform •  SDKs available for iOS / Android / Javascript 17 http://usergrid.apache.org
  18. The Usergrid Stack 18
  19. Built on Horizontally Scalable Technologies
  20. Built on Horizontally Scalable Technologies 20 ©2015 Apigee. All Rights Reserved. ( )
  21. API-Driven Data Access w/ Query •  REST Semantics –  GET, PUT, POST, DELETE •  Filtering: –  GET http://api.usergrid.com/MyOrg/MyApp/books?ql=select * where title contains 'ta*' –  GET http://api.usergrid.com/MyOrg/MyApp/books?ql=select * where title contains 'tale’ –  GET http://api.usergrid.com/MyOrg/MyApp/books?ql=select * where title = 'A Tale of Two Cities' •  Limit –  GET http://api.usergrid.com/{org}/{app}/{collection}?limit=5&ql=where status='active’ •  Location: –  GET http://api.usergrid.com/{org}/{app}/{collection}?ql=select * where location within {d} of {x, y} •  Cursors –  GET http://api.usergrid.com/MyOrg/MyApp/users?ql=select * where name = ’John*'&limit=50&cursor=LTIxNDg0NDUxNDpnR2tBQVFFQWdITUFDWFJ2YlM1emJXbDBhQUNBZFF BUUQyMVZneExfRWVLRlV3TG9Hc1doZXdDQWRRQVFIYVdjb0JwREVlS1VCd0xvR3NWT0JRQQ 21
  22. Working with Graph & NoSQL Data 22
  23. Graph Data Persistence: Entities & Connections •  Entities –  Objects / Documents representing an Entity •  Collections –  Logical grouping of Entities •  Connections / Entity Relationships –  Graph Data Structure –  /{collection}/{entityA}/{verb}/{collection}/{entityB} –  /Users/me/likes/Products/iPhone6 –  /Recipes/Bread/includes/Ingredients/Flour 23 User A Product A User B User C Likes>> <<Liking
  24. •  De-normalization and model the data based on the way you expect to use it. Use connections to reflect relationships (which may or may not be based on “keys”) •  SDKs for seven languages can simplify app development, or just use “curl”, Apache HTTP Client, or your favorite browser tool. Designing for Apigee Edge API BaaS 24 Device Device Device Device Notification Preferences User Application Notification Preferences User Consent
  25. File Storage: Larger JSON Data & Binary Assets •  Purpose: Store binary files such as images, ZIP files and even large JSON objects which do not need to be indexed •  Files can be attached to any entity: –  curl -H "Authorization: Bearer ${TOKEN}" -X POST -F name='max.jpg' -F file=@max.jpg 'https://api.usergrid.com/ {org}/{app}/{collection}/{entity}' •  Retrieve your file by specifying a MIME type to accept: –  curl -H "Accept: image/jpeg" -H "Authorization: Bearer $ {TOKEN}" -X GET -o max_webcast.jpg 'https:// api.usergrid.com/{org}/{app}/{collection}/{entity}' 25
  26. Engaging with your Users 26
  27. 27 88% of emails are never opened 84% of Facebook posts are never viewed 71% of tweets are never read 98% of SMS/MMS messages are opened and read
  28. Push Notifications •  Notification Providers •  Narrowcast / Broadcast –  One User’s device –  All Devices –  All Devices in a Geo –  Only iOS / Android
  29. Flexible Notification Targeting Push Notification to 20 Miles of a store location POST https://api.usergrid.com/ jeffreyawest/sandbox/devices;ql=“location within 32186.9 of 34.427514,-118.535013”/ notifications Push Notifications to a group of users POST https://api.usergrid.com/ jeffreyawest/sandbox/groups/capos/ notifications POST https://api.usergrid.com/ jeffreyawest/sandbox/groups/soldiers/ notifications Push Notifications to a group of users in a certain location POST https://api.usergrid.com/ jeffreyawest/sandbox/groups/capos/ users;ql=/devices;ql=“location within 32186.9 of 034.427514,-118.535013”/ notifications 29
  30. DEMO 30
  31. Roadmap 31
  32. What’s Next for Usergrid •  Grow the community! •  Blueprints Driver Release! •  Service abstraction •  Indexing closer to real-time •  Larger Clusters •  Distributed Work System •  Encryption & Security 32
  33. Application Performance Monitoring from Apigee 33
  34. Q & A 34
Anúncio