SlideShare a Scribd company logo
1 of 34
Download to read offline
The Strategic Importance of BaaS
Jeffrey West
Jeffrey West
Who Am I?
•  BaaS Engineering Coach at Apigee
•  10+ years in Middleware
implementation, integration,
development & product
management
•  Apache Committer
Context
3
4
(m) obile
B ackend
a s
a
S ervice
Datastore
Push
Notifications
Connections /
Social
Location
Users
…and more
Application
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
Systems of Engagement
6
7
©2015 Apigee. All Rights Reserved.
Web Scale
10’s of thousands requests/sec
…across multiple data centers
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
Strategic Value
9
Speed
10
Speed
…to proof of value
…to deploy
…to change
…to ENGAGE
– Customers
– Partners
– Employees
11
©2015 Apigee. All Rights Reserved.
How?
12
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
{…}
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
But I just want to store data!
15
REST API
GET / PUT / POST / DELETE
Scalable, Multi-tenant
Persistence (Single Cluster)
Apigee API BaaS:
Powered by Apache Usergrid
16
•  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
The Usergrid Stack
18
Built on Horizontally Scalable Technologies
Built on Horizontally Scalable Technologies
20
©2015 Apigee. All Rights Reserved.
( )
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
Working with Graph & NoSQL Data
22
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
•  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
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
Engaging with your Users
26
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
Push Notifications
•  Notification Providers
•  Narrowcast / Broadcast
–  One User’s device
–  All Devices
–  All Devices in a Geo
–  Only iOS / Android
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
DEMO
30
Roadmap
31
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
Application Performance Monitoring from Apigee
33
Q & A
34

More Related Content

What's hot

I Love APIs 2015: Advanced Crash Course in Apigee Edge Workshop
I Love APIs 2015: Advanced Crash Course in Apigee Edge Workshop I Love APIs 2015: Advanced Crash Course in Apigee Edge Workshop
I Love APIs 2015: Advanced Crash Course in Apigee Edge Workshop
Apigee | Google Cloud
 
I Love APIs 2015: The "State" of your API: Common Use Cases for Storing Data
I Love APIs 2015: The "State" of your API: Common Use Cases for Storing DataI Love APIs 2015: The "State" of your API: Common Use Cases for Storing Data
I Love APIs 2015: The "State" of your API: Common Use Cases for Storing Data
Apigee | Google Cloud
 

What's hot (20)

Using containerization to enable your microservice architecture
Using containerization to enable your microservice architecture Using containerization to enable your microservice architecture
Using containerization to enable your microservice architecture
 
API Management and Kubernetes
API Management and KubernetesAPI Management and Kubernetes
API Management and Kubernetes
 
Using APIs to Program Disparate IoT Devices
Using APIs to Program Disparate IoT DevicesUsing APIs to Program Disparate IoT Devices
Using APIs to Program Disparate IoT Devices
 
Is Microservices SOA Done Right?
Is Microservices SOA Done Right?Is Microservices SOA Done Right?
Is Microservices SOA Done Right?
 
Bringing API Management to AWS Powered Backends
Bringing API Management to AWS Powered BackendsBringing API Management to AWS Powered Backends
Bringing API Management to AWS Powered Backends
 
I Love APIs 2015: Implementing an API Tier to Enable a New Mobile Platform
I Love APIs 2015: Implementing an API Tier to Enable a New Mobile PlatformI Love APIs 2015: Implementing an API Tier to Enable a New Mobile Platform
I Love APIs 2015: Implementing an API Tier to Enable a New Mobile Platform
 
Edge API BaaS Deep-Dive: Streamline app development
Edge API BaaS Deep-Dive: Streamline app developmentEdge API BaaS Deep-Dive: Streamline app development
Edge API BaaS Deep-Dive: Streamline app development
 
Apigee Edge: Intro to Microgateway
Apigee Edge: Intro to MicrogatewayApigee Edge: Intro to Microgateway
Apigee Edge: Intro to Microgateway
 
Webcast: Deep-Dive Apigee Edge Microgateway
Webcast: Deep-Dive Apigee Edge MicrogatewayWebcast: Deep-Dive Apigee Edge Microgateway
Webcast: Deep-Dive Apigee Edge Microgateway
 
A Checklist for Every API Call
A Checklist for Every API CallA Checklist for Every API Call
A Checklist for Every API Call
 
Adapt or Die: Serverless Microservices
Adapt or Die: Serverless MicroservicesAdapt or Die: Serverless Microservices
Adapt or Die: Serverless Microservices
 
Orchestrating microservices like a ninja
Orchestrating microservices like a ninjaOrchestrating microservices like a ninja
Orchestrating microservices like a ninja
 
London Adapt or Die: Opening Keynot
London Adapt or Die: Opening KeynotLondon Adapt or Die: Opening Keynot
London Adapt or Die: Opening Keynot
 
End to End Testing: Bug Squashing for API Developers
End to End Testing: Bug Squashing for API Developers End to End Testing: Bug Squashing for API Developers
End to End Testing: Bug Squashing for API Developers
 
I Love APIs 2015: Advanced Crash Course in Apigee Edge Workshop
I Love APIs 2015: Advanced Crash Course in Apigee Edge Workshop I Love APIs 2015: Advanced Crash Course in Apigee Edge Workshop
I Love APIs 2015: Advanced Crash Course in Apigee Edge Workshop
 
I Love APIs 2015: Crash Course Foundational Topics in Apigee Edge Workshop
I Love APIs 2015: Crash Course Foundational Topics in Apigee Edge WorkshopI Love APIs 2015: Crash Course Foundational Topics in Apigee Edge Workshop
I Love APIs 2015: Crash Course Foundational Topics in Apigee Edge Workshop
 
I Love APIs 2015 : Zero to Thousands TPS Private Cloud Operations Workshop
I Love APIs 2015 : Zero to Thousands TPS Private Cloud Operations WorkshopI Love APIs 2015 : Zero to Thousands TPS Private Cloud Operations Workshop
I Love APIs 2015 : Zero to Thousands TPS Private Cloud Operations Workshop
 
Pivotal + Apigee Workshop (June 4th, 2019)
Pivotal + Apigee Workshop (June 4th, 2019)Pivotal + Apigee Workshop (June 4th, 2019)
Pivotal + Apigee Workshop (June 4th, 2019)
 
Webcast: Apigee Edge Product Demo
Webcast: Apigee Edge Product DemoWebcast: Apigee Edge Product Demo
Webcast: Apigee Edge Product Demo
 
I Love APIs 2015: The "State" of your API: Common Use Cases for Storing Data
I Love APIs 2015: The "State" of your API: Common Use Cases for Storing DataI Love APIs 2015: The "State" of your API: Common Use Cases for Storing Data
I Love APIs 2015: The "State" of your API: Common Use Cases for Storing Data
 

Similar to Deep Dive: Strategic Importance of BaaS

I Love APIs 2015: Apache Usergrid Web Scale Mobile APIs with Elastic Search a...
I Love APIs 2015: Apache Usergrid Web Scale Mobile APIs with Elastic Search a...I Love APIs 2015: Apache Usergrid Web Scale Mobile APIs with Elastic Search a...
I Love APIs 2015: Apache Usergrid Web Scale Mobile APIs with Elastic Search a...
Apigee | Google Cloud
 

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

I Love APIs 2015: Apache Usergrid Web Scale Mobile APIs with Elastic Search a...
I Love APIs 2015: Apache Usergrid Web Scale Mobile APIs with Elastic Search a...I Love APIs 2015: Apache Usergrid Web Scale Mobile APIs with Elastic Search a...
I Love APIs 2015: Apache Usergrid Web Scale Mobile APIs with Elastic Search a...
 
Apache Eagle: Secure Hadoop in Real Time
Apache Eagle: Secure Hadoop in Real TimeApache Eagle: Secure Hadoop in Real Time
Apache Eagle: Secure Hadoop in Real Time
 
Apache Eagle at Hadoop Summit 2016 San Jose
Apache Eagle at Hadoop Summit 2016 San JoseApache Eagle at Hadoop Summit 2016 San Jose
Apache Eagle at Hadoop Summit 2016 San Jose
 
Se training storage grid webscale technical overview
Se training   storage grid webscale technical overviewSe training   storage grid webscale technical overview
Se training storage grid webscale technical overview
 
Matrix.org decentralised communication, Matthew Hodgson, TADSummit
Matrix.org decentralised communication, Matthew Hodgson, TADSummitMatrix.org decentralised communication, Matthew Hodgson, TADSummit
Matrix.org decentralised communication, Matthew Hodgson, TADSummit
 
Prototyping applications with heroku and elasticsearch
 Prototyping applications with heroku and elasticsearch Prototyping applications with heroku and elasticsearch
Prototyping applications with heroku and elasticsearch
 
IoT interoperability
IoT interoperabilityIoT interoperability
IoT interoperability
 
Event-Based API Patterns and Practices
Event-Based API Patterns and PracticesEvent-Based API Patterns and Practices
Event-Based API Patterns and Practices
 
API Services: Building State-of-the-Art APIs
API Services: Building State-of-the-Art APIsAPI Services: Building State-of-the-Art APIs
API Services: Building State-of-the-Art APIs
 
Webinar: What's new in CDAP 3.5?
Webinar: What's new in CDAP 3.5?Webinar: What's new in CDAP 3.5?
Webinar: What's new in CDAP 3.5?
 
KONG-APIGateway.pptx
KONG-APIGateway.pptxKONG-APIGateway.pptx
KONG-APIGateway.pptx
 
REST easy with API Platform
REST easy with API PlatformREST easy with API Platform
REST easy with API Platform
 
Microservices and the Art of Taming the Dependency Hell Monster
Microservices and the Art of Taming the Dependency Hell MonsterMicroservices and the Art of Taming the Dependency Hell Monster
Microservices and the Art of Taming the Dependency Hell Monster
 
Apache Eagle in Action
Apache Eagle in ActionApache Eagle in Action
Apache Eagle in Action
 
RESTful APIs and SBCs
RESTful APIs and SBCsRESTful APIs and SBCs
RESTful APIs and SBCs
 
NetApp Se training storage grid webscale technical overview
NetApp Se training   storage grid webscale technical overviewNetApp Se training   storage grid webscale technical overview
NetApp Se training storage grid webscale technical overview
 
Enterprise guide to building a Data Mesh
Enterprise guide to building a Data MeshEnterprise guide to building a Data Mesh
Enterprise guide to building a Data Mesh
 
Business Applications Integration In The Cloud
Business Applications Integration In The CloudBusiness Applications Integration In The Cloud
Business Applications Integration In The Cloud
 
Building APIs in an easy way using API Platform
Building APIs in an easy way using API PlatformBuilding APIs in an easy way using API Platform
Building APIs in an easy way using API Platform
 
Ladies Be Architects - Integration - Multi-Org, Security, JSON, Backup & Restore
Ladies Be Architects - Integration - Multi-Org, Security, JSON, Backup & RestoreLadies Be Architects - Integration - Multi-Org, Security, JSON, Backup & Restore
Ladies Be Architects - Integration - Multi-Org, Security, JSON, Backup & Restore
 

More from Apigee | Google Cloud

More from Apigee | Google Cloud (20)

How Secure Are Your APIs?
How Secure Are Your APIs?How Secure Are Your APIs?
How Secure Are Your APIs?
 
Magazine Luiza at a glance (1)
Magazine Luiza at a glance (1)Magazine Luiza at a glance (1)
Magazine Luiza at a glance (1)
 
Monetization: Unlock More Value from Your APIs
Monetization: Unlock More Value from Your APIs Monetization: Unlock More Value from Your APIs
Monetization: Unlock More Value from Your APIs
 
Apigee Demo: API Platform Overview
Apigee Demo: API Platform OverviewApigee Demo: API Platform Overview
Apigee Demo: API Platform Overview
 
Ticketmaster at a glance
Ticketmaster at a glanceTicketmaster at a glance
Ticketmaster at a glance
 
AccuWeather: Recasting API Experiences in a Developer-First World
AccuWeather: Recasting API Experiences in a Developer-First WorldAccuWeather: Recasting API Experiences in a Developer-First World
AccuWeather: Recasting API Experiences in a Developer-First World
 
Which Application Modernization Pattern Is Right For You?
Which Application Modernization Pattern Is Right For You?Which Application Modernization Pattern Is Right For You?
Which Application Modernization Pattern Is Right For You?
 
Apigee Product Roadmap Part 2
Apigee Product Roadmap Part 2Apigee Product Roadmap Part 2
Apigee Product Roadmap Part 2
 
The Four Transformative Forces of the API Management Market
The Four Transformative Forces of the API Management MarketThe Four Transformative Forces of the API Management Market
The Four Transformative Forces of the API Management Market
 
Walgreens at a glance
Walgreens at a glanceWalgreens at a glance
Walgreens at a glance
 
Managing the Complexity of Microservices Deployments
Managing the Complexity of Microservices DeploymentsManaging the Complexity of Microservices Deployments
Managing the Complexity of Microservices Deployments
 
Pitney Bowes at a glance
Pitney Bowes at a glancePitney Bowes at a glance
Pitney Bowes at a glance
 
Microservices Done Right: Key Ingredients for Microservices Success
Microservices Done Right: Key Ingredients for Microservices SuccessMicroservices Done Right: Key Ingredients for Microservices Success
Microservices Done Right: Key Ingredients for Microservices Success
 
Adapt or Die: Opening Keynote with Chet Kapoor
Adapt or Die: Opening Keynote with Chet KapoorAdapt or Die: Opening Keynote with Chet Kapoor
Adapt or Die: Opening Keynote with Chet Kapoor
 
Adapt or Die: Keynote with Greg Brail
Adapt or Die: Keynote with Greg BrailAdapt or Die: Keynote with Greg Brail
Adapt or Die: Keynote with Greg Brail
 
Adapt or Die: Keynote with Anant Jhingran
Adapt or Die: Keynote with Anant JhingranAdapt or Die: Keynote with Anant Jhingran
Adapt or Die: Keynote with Anant Jhingran
 
London Adapt or Die: Lunch keynote
London Adapt or Die: Lunch keynoteLondon Adapt or Die: Lunch keynote
London Adapt or Die: Lunch keynote
 
London Adapt or Die: Closing Keynote — Adapt Now!
London Adapt or Die: Closing Keynote — Adapt Now!London Adapt or Die: Closing Keynote — Adapt Now!
London Adapt or Die: Closing Keynote — Adapt Now!
 
London adapt or-die opening keynote chet kapoor
London adapt or-die opening keynote chet kapoorLondon adapt or-die opening keynote chet kapoor
London adapt or-die opening keynote chet kapoor
 
London Adapt or Die: Opening Keynote with Chet Kapoor
London Adapt or Die: Opening Keynote with Chet KapoorLondon Adapt or Die: Opening Keynote with Chet Kapoor
London Adapt or Die: Opening Keynote with Chet Kapoor
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Recently uploaded (20)

AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 

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
  • 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
  • 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
  • 11. Speed …to proof of value …to deploy …to change …to ENGAGE – Customers – Partners – Employees 11 ©2015 Apigee. All Rights Reserved.
  • 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
  • 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
  • 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