SlideShare uma empresa Scribd logo
1 de 44
Baixar para ler offline
1
Apache Usergrid: Web Scale Mobile APIs
with ElasticSearch and Cassandra!
Todd Nine
Principal Architect
Jeffrey West
BaaS Engineering
Coach
Agenda
2
1.
 Why do we need Usergrid?
2.
 What is Usergrid & How does it work?
3.
 How do we achieve web scale?
4.
 Learnings
5.
 Roadmap & Questions
©2015 Apigee. All Rights Reserved.
3
(m) obile
B ackend 
a s
a
S ervice
Datastore
Push
Notifications
Connections /
Social
Location
Users
…and more
Application
Systems of Engagement
4
Building Systems of Engagement with Edge API BaaS
5
Systems of "
Record
Apigee Edge: Intelligent API Platform
Systems of
Engagement
App Developers
Database
ERP
CRM
Data "
Warehouse
Data Lake
Partner Apps
Consumer Apps
 Employee Apps
 Insights
6
©2015 Apigee. All Rights Reserved. 
Web Scale"
10’s of thousands requests/sec"
…across multiple data centers
7
©2015 Apigee. All Rights Reserved. 
Web Scale / MongoDB
Usergrid
8
• Apache Open Source Mobile Backend as a Service
• REST API for easy interaction from any platform
• SDKs available for iOS / Android / Javascript

9
The Usergrid Taxonomy
10
Organization
Organization
Organization
Application
Devices
Users
 Groups
Security
 Roles
Collection
Collection
Entity
{…}
Entity
{…}
Entity
{…}
Application
Devices
Users
 Groups
Security
 Roles
Entity
{…}
Entity
{…}
Entity
{…}
Collection
Collection
Entity
{…}
Entity
{…}
Entity
{…}
But I just want persistence!
12
©2015 Apigee. All Rights Reserved. 
REST API
GET / PUT / POST / DELETE
Scalable, Multi-tenant
Persistence (Single Cluster)
What people do seeking ‘web scale’?
13
©2015 Apigee. All Rights Reserved.
The Usergrid Stack
14
•  Canonical System of Record
•  Collections
–  Unique Values / Primary Keys
•  Entities
–  Schemaless design
–  O(1) entity retrieval
•  Connections / Graph
–  Scalable Relationships
Horizontally Scalable Persistence
Built on Horizontally Scalable Technologies
• Filter / Limit / Cursor:
– GET http://api.usergrid.com/{org}/{app}/{collection}?
ql=select * where title = 'A Tale of Two
Cities’&limit=50&cursor=LTIxNDg0NDUxNDpnR2tBQVFFQWdITUFDW
FJ2YlM1emJXbDBhQUNBZFFBUUQyMVZneExfRWVLRlV3TG9Hc1doZXdDQW
RRQVFIYVdjb0JwREVlS1VCd0xvR3NWT0JRQQ
– GET http://api.usergrid.com/{org}/{app}/{collection}?
ql=select * where location within {d} of {x, y}
17
©2015 Apigee. All Rights Reserved. 
( )
Usergrid Application
18
©2015 Apigee. All Rights Reserved.
Architecture: Multi-Region Indexing & Consistency
SQS
SQS
 SNS
6) INDEX
6) INDEX
Region B
Region A
C* Replication
2)WRITE
5)READ
5)READ
Web Scale
20
Bottlenecks
21
©2015 Apigee. All Rights Reserved. 
Tomcat
20% CPU
!?? WHY ??!
Cassandra
10% CPU
Iterative Process
22
©2015 Apigee. All Rights Reserved. 
10,266/s
9,700/s
7,233/s
3,750
Hurdles
•  Gatling
–  Can’t get 10k/s with one node
•  Cassandra 
–  CPU
•  Compression?
•  C3.2xlarge -> c3.4xlarge
•  Row caching?
•  Tomcat
–  HTTP Connector
•  acceptCount
•  maxConnections
•  maxThreads
•  Non-blocking IO?
•  Usergrid
–  # of reads to Cassandra
23
©2015 Apigee. All Rights Reserved.
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
24
Elasticsearch
(working… not so well…)
25
Learn from our mistakes
26
Risks of Dynamic Mapping
27
©2015 Apigee. All Rights Reserved. 
D
D
D
D
 M
Risks of Dynamic Mapping
28
©2015 Apigee. All Rights Reserved. 
DD
D
DD
DD
D
DD
D D
DD
DD
DD
DD
Inbound message
requires a mapping
update
Mapping updated &
broadcast to the
cluster
M
Risks of Dynamic Mapping
29
©2015 Apigee. All Rights Reserved. 
M
DD
D
DD
DD
D
DD
D D
DD
DD
DD
DD
At scale (full loaded)
only one mapping
update can
processed at a time
Risks of Dynamic Mapping
30
©2015 Apigee. All Rights Reserved. 
DD
D
DD
DD
D
DD
D D
DD
DD
DD
DD
M
Risks of Dynamic Mapping
31
©2015 Apigee. All Rights Reserved. 
M
DD
D
DD
DD
D
DD
D D
DD
DD
DD
DD
30 ES Data Nodes
X
100MB mapping file
= 
3,000MB

For each schema/
mapping update
3GB data transfer
X
5M entities with
different schemas
=
a LOT of data
transfer and a lot
of latency
Risks of Dynamic Mapping
32
©2015 Apigee. All Rights Reserved. 
DD
D
DD
DD
D
DD
D D
DD
DD
DD
DD
M
Elasticsearch
(working well)
33
{

"hello": {

"world":{

"message": "Hello!"

},

"items": [

{

"name": "apples",

"weight": 100

} 

]

}

}
{

"uuid": "48e262d6-b922-11e4-8a11",

"ud_entity_id": "ad2b33c2e",

"size": 100,

"ug_app": "1a67aed7-bbb3-11e4-8a11",

"fields": [

{

”name": "hello.world.message",

”string": "Hello!"

},

{

”name": "items[0].name",

”string": "apples"

},

{

”name": "items[0].weight",

"integer": 100

} 

]

}

Flattened Documents
34
©2015 Apigee. All Rights Reserved. 
Indexed as
Data Node A
Data Node B
Data Node C
Index Allocation
•  Multiple Indexes spread across the cluster
•  Indexes have shards
•  Read/Write aliases point to physical
indexes
•  Aliases assigned based on hashing of the
App UUID
35
©2015 Apigee. All Rights Reserved. 
Index_1
1
1
2
3
2
3
app_1_read_alias
app_1_write_alias
Data Node A
Data Node B
Data Node C
Tenant Management
36
©2015 Apigee. All Rights Reserved. 
Index_1
1
1
2
3
2
3
app_1_read_alias
app_1_write_alias
app_2_read_alias
app_2_write_alias
Data Node A
Data Node B
Data Node C
Tenant Management
•  Assign Write alias to new Index
•  Add new index to read alias
•  Stream data from old index
•  Delete data from old index
37
©2015 Apigee. All Rights Reserved. 
Index_1
1
1
2
3
2
3
Index_2
1
1
2
3
2
 3
app_2_read_alias
app_2_write_alias
stream2es
app_1_read_alias
app_1_write_alias
Data Node D
Data Node A
Data Node B
Data Node C
Tenant Management
•  Indexes targeted to separate machines
38
©2015 Apigee. All Rights Reserved. 
Index_1
1
1
2
3
2
3
Index_2
1
1
2
3
2
3
app_1_read_alias
app_1_write_alias
 app_2_read_alias
app_2_write_alias
Data Node A
Data Node B
Data Node C
Data Node A
Data Node B
Data Node C
Multiple Scaling Vectors
39
©2015 Apigee. All Rights Reserved. 
Index_1
1
1
2
3
2
3
Index_2
1
1
2
3
2
3
Index_3
1
1
 2
3
2
 3
Index_4
1
1
 2
3
2
3
Index_5
1
1
2
3
2
3
Working with Graph & NoSQL Data
40
Data De-normalization per interaction
41
ERP
Product
CatalogsCRM Data Lake
Data
Warehouse
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
42
User
A
Product
A
User
B
User
C
Likes>>
<<Liking
Roadmap
43
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
44
http://usergrid.apache.org
45

Mais conteúdo relacionado

Mais procurados

Serverless beyond AWS Lambda
Serverless beyond AWS LambdaServerless beyond AWS Lambda
Serverless beyond AWS LambdaBen Kehoe
 
Cloud Security @ Netflix
Cloud Security @ NetflixCloud Security @ Netflix
Cloud Security @ NetflixJason Chan
 
Architecting &Building Scalable Secure Web API
Architecting &Building Scalable Secure Web APIArchitecting &Building Scalable Secure Web API
Architecting &Building Scalable Secure Web APISHAKIL AKHTAR
 
Comparison and mapping between various cloud services 2019
Comparison and mapping between various cloud services 2019Comparison and mapping between various cloud services 2019
Comparison and mapping between various cloud services 2019jones4u
 
(MBL402) Mobile Identity Management & Data Sync Using Amazon Cognito
(MBL402) Mobile Identity Management & Data Sync Using Amazon Cognito(MBL402) Mobile Identity Management & Data Sync Using Amazon Cognito
(MBL402) Mobile Identity Management & Data Sync Using Amazon CognitoAmazon Web Services
 
Building a Node.js API backend with LoopBack in 5 Minutes
Building a Node.js API backend with LoopBack in 5 MinutesBuilding a Node.js API backend with LoopBack in 5 Minutes
Building a Node.js API backend with LoopBack in 5 MinutesRaymond Feng
 
Making connected apps with BaaS (Droidcon Bangalore 2014)
Making connected apps with BaaS (Droidcon Bangalore 2014)Making connected apps with BaaS (Droidcon Bangalore 2014)
Making connected apps with BaaS (Droidcon Bangalore 2014)Varun Torka
 
(SEC310) Integrating AWS with External Identity Management | AWS re:Invent 2014
(SEC310) Integrating AWS with External Identity Management | AWS re:Invent 2014(SEC310) Integrating AWS with External Identity Management | AWS re:Invent 2014
(SEC310) Integrating AWS with External Identity Management | AWS re:Invent 2014Amazon Web Services
 
Cloud Security At Netflix, October 2013
Cloud Security At Netflix, October 2013Cloud Security At Netflix, October 2013
Cloud Security At Netflix, October 2013Jay Zarfoss
 
(SEC308) Navigating PCI Compliance in the Cloud | AWS re:Invent 2014
(SEC308) Navigating PCI Compliance in the Cloud | AWS re:Invent 2014(SEC308) Navigating PCI Compliance in the Cloud | AWS re:Invent 2014
(SEC308) Navigating PCI Compliance in the Cloud | AWS re:Invent 2014Amazon Web Services
 
(SEC402) Intrusion Detection in the Cloud | AWS re:Invent 2014
(SEC402) Intrusion Detection in the Cloud | AWS re:Invent 2014(SEC402) Intrusion Detection in the Cloud | AWS re:Invent 2014
(SEC402) Intrusion Detection in the Cloud | AWS re:Invent 2014Amazon Web Services
 
(SEC324) NEW! Introducing Amazon Inspector
(SEC324) NEW! Introducing Amazon Inspector(SEC324) NEW! Introducing Amazon Inspector
(SEC324) NEW! Introducing Amazon InspectorAmazon Web Services
 
TechDays Finland 2020: Azuren tietoturva haltuun!
TechDays Finland 2020: Azuren tietoturva haltuun!TechDays Finland 2020: Azuren tietoturva haltuun!
TechDays Finland 2020: Azuren tietoturva haltuun!Karl Ots
 
Integrating Jira Software Cloud With the AWS Code Suite
Integrating Jira Software Cloud With the AWS Code SuiteIntegrating Jira Software Cloud With the AWS Code Suite
Integrating Jira Software Cloud With the AWS Code SuiteAtlassian
 
Getting Started with Serverless Architectures
Getting Started with Serverless ArchitecturesGetting Started with Serverless Architectures
Getting Started with Serverless ArchitecturesAmazon Web Services
 
Designing Secure APIs in the Cloud
Designing Secure APIs in the CloudDesigning Secure APIs in the Cloud
Designing Secure APIs in the CloudPostman
 
Working with LoopBack Models
Working with LoopBack ModelsWorking with LoopBack Models
Working with LoopBack ModelsRaymond Feng
 
Designing an Enterprise Windows and .NET Authentication Strategy (WIN321) - A...
Designing an Enterprise Windows and .NET Authentication Strategy (WIN321) - A...Designing an Enterprise Windows and .NET Authentication Strategy (WIN321) - A...
Designing an Enterprise Windows and .NET Authentication Strategy (WIN321) - A...Amazon Web Services
 
Innovation anywhere with microsoft azure arc
Innovation anywhere with microsoft azure arcInnovation anywhere with microsoft azure arc
Innovation anywhere with microsoft azure arcGoviccaSihombing
 

Mais procurados (20)

Serverless beyond AWS Lambda
Serverless beyond AWS LambdaServerless beyond AWS Lambda
Serverless beyond AWS Lambda
 
Cloud Security @ Netflix
Cloud Security @ NetflixCloud Security @ Netflix
Cloud Security @ Netflix
 
Architecting &Building Scalable Secure Web API
Architecting &Building Scalable Secure Web APIArchitecting &Building Scalable Secure Web API
Architecting &Building Scalable Secure Web API
 
Comparison and mapping between various cloud services 2019
Comparison and mapping between various cloud services 2019Comparison and mapping between various cloud services 2019
Comparison and mapping between various cloud services 2019
 
(MBL402) Mobile Identity Management & Data Sync Using Amazon Cognito
(MBL402) Mobile Identity Management & Data Sync Using Amazon Cognito(MBL402) Mobile Identity Management & Data Sync Using Amazon Cognito
(MBL402) Mobile Identity Management & Data Sync Using Amazon Cognito
 
Building a Node.js API backend with LoopBack in 5 Minutes
Building a Node.js API backend with LoopBack in 5 MinutesBuilding a Node.js API backend with LoopBack in 5 Minutes
Building a Node.js API backend with LoopBack in 5 Minutes
 
Making connected apps with BaaS (Droidcon Bangalore 2014)
Making connected apps with BaaS (Droidcon Bangalore 2014)Making connected apps with BaaS (Droidcon Bangalore 2014)
Making connected apps with BaaS (Droidcon Bangalore 2014)
 
(SEC310) Integrating AWS with External Identity Management | AWS re:Invent 2014
(SEC310) Integrating AWS with External Identity Management | AWS re:Invent 2014(SEC310) Integrating AWS with External Identity Management | AWS re:Invent 2014
(SEC310) Integrating AWS with External Identity Management | AWS re:Invent 2014
 
Cloud Security At Netflix, October 2013
Cloud Security At Netflix, October 2013Cloud Security At Netflix, October 2013
Cloud Security At Netflix, October 2013
 
(SEC308) Navigating PCI Compliance in the Cloud | AWS re:Invent 2014
(SEC308) Navigating PCI Compliance in the Cloud | AWS re:Invent 2014(SEC308) Navigating PCI Compliance in the Cloud | AWS re:Invent 2014
(SEC308) Navigating PCI Compliance in the Cloud | AWS re:Invent 2014
 
(SEC402) Intrusion Detection in the Cloud | AWS re:Invent 2014
(SEC402) Intrusion Detection in the Cloud | AWS re:Invent 2014(SEC402) Intrusion Detection in the Cloud | AWS re:Invent 2014
(SEC402) Intrusion Detection in the Cloud | AWS re:Invent 2014
 
Azure Big Picture
Azure Big PictureAzure Big Picture
Azure Big Picture
 
(SEC324) NEW! Introducing Amazon Inspector
(SEC324) NEW! Introducing Amazon Inspector(SEC324) NEW! Introducing Amazon Inspector
(SEC324) NEW! Introducing Amazon Inspector
 
TechDays Finland 2020: Azuren tietoturva haltuun!
TechDays Finland 2020: Azuren tietoturva haltuun!TechDays Finland 2020: Azuren tietoturva haltuun!
TechDays Finland 2020: Azuren tietoturva haltuun!
 
Integrating Jira Software Cloud With the AWS Code Suite
Integrating Jira Software Cloud With the AWS Code SuiteIntegrating Jira Software Cloud With the AWS Code Suite
Integrating Jira Software Cloud With the AWS Code Suite
 
Getting Started with Serverless Architectures
Getting Started with Serverless ArchitecturesGetting Started with Serverless Architectures
Getting Started with Serverless Architectures
 
Designing Secure APIs in the Cloud
Designing Secure APIs in the CloudDesigning Secure APIs in the Cloud
Designing Secure APIs in the Cloud
 
Working with LoopBack Models
Working with LoopBack ModelsWorking with LoopBack Models
Working with LoopBack Models
 
Designing an Enterprise Windows and .NET Authentication Strategy (WIN321) - A...
Designing an Enterprise Windows and .NET Authentication Strategy (WIN321) - A...Designing an Enterprise Windows and .NET Authentication Strategy (WIN321) - A...
Designing an Enterprise Windows and .NET Authentication Strategy (WIN321) - A...
 
Innovation anywhere with microsoft azure arc
Innovation anywhere with microsoft azure arcInnovation anywhere with microsoft azure arc
Innovation anywhere with microsoft azure arc
 

Destaque

Cybersecurity-Serverless-Graph DB
Cybersecurity-Serverless-Graph DBCybersecurity-Serverless-Graph DB
Cybersecurity-Serverless-Graph DBSukumar Nayak
 
Data Modeling with Cassandra Column Families
Data Modeling with Cassandra Column FamiliesData Modeling with Cassandra Column Families
Data Modeling with Cassandra Column Familiesgdusbabek
 
Cassandra synergy
Cassandra synergyCassandra synergy
Cassandra synergyniallmilton
 
NoSQL Database- cassandra column Base DB
NoSQL Database- cassandra column Base DBNoSQL Database- cassandra column Base DB
NoSQL Database- cassandra column Base DBsadegh salehi
 
Optimising eCommerce with Machine Learning & Game Theory — Cassandra, Elasti...
 Optimising eCommerce with Machine Learning & Game Theory — Cassandra, Elasti... Optimising eCommerce with Machine Learning & Game Theory — Cassandra, Elasti...
Optimising eCommerce with Machine Learning & Game Theory — Cassandra, Elasti...Loqate, a GBG Solution
 
Usergrid Overview
Usergrid OverviewUsergrid Overview
Usergrid Overviewusergrid
 
Open Source Mobile Backend on Cassandra
Open Source Mobile Backend on CassandraOpen Source Mobile Backend on Cassandra
Open Source Mobile Backend on CassandraEd Anuff
 
Predicting behaviour with Machine Learning
Predicting behaviour with Machine Learning Predicting behaviour with Machine Learning
Predicting behaviour with Machine Learning Loqate, a GBG Solution
 
Elassandra: Elasticsearch as a Cassandra Secondary Index (Rémi Trouville, Vin...
Elassandra: Elasticsearch as a Cassandra Secondary Index (Rémi Trouville, Vin...Elassandra: Elasticsearch as a Cassandra Secondary Index (Rémi Trouville, Vin...
Elassandra: Elasticsearch as a Cassandra Secondary Index (Rémi Trouville, Vin...DataStax
 

Destaque (11)

Cybersecurity-Serverless-Graph DB
Cybersecurity-Serverless-Graph DBCybersecurity-Serverless-Graph DB
Cybersecurity-Serverless-Graph DB
 
Data Modeling with Cassandra Column Families
Data Modeling with Cassandra Column FamiliesData Modeling with Cassandra Column Families
Data Modeling with Cassandra Column Families
 
Cassandra synergy
Cassandra synergyCassandra synergy
Cassandra synergy
 
NoSQL Database- cassandra column Base DB
NoSQL Database- cassandra column Base DBNoSQL Database- cassandra column Base DB
NoSQL Database- cassandra column Base DB
 
Optimising eCommerce with Machine Learning & Game Theory — Cassandra, Elasti...
 Optimising eCommerce with Machine Learning & Game Theory — Cassandra, Elasti... Optimising eCommerce with Machine Learning & Game Theory — Cassandra, Elasti...
Optimising eCommerce with Machine Learning & Game Theory — Cassandra, Elasti...
 
Usergrid Overview
Usergrid OverviewUsergrid Overview
Usergrid Overview
 
Open Source Mobile Backend on Cassandra
Open Source Mobile Backend on CassandraOpen Source Mobile Backend on Cassandra
Open Source Mobile Backend on Cassandra
 
Predicting behaviour with Machine Learning
Predicting behaviour with Machine Learning Predicting behaviour with Machine Learning
Predicting behaviour with Machine Learning
 
Docker and CloudStack
Docker and CloudStackDocker and CloudStack
Docker and CloudStack
 
CloudStack Architecture
CloudStack ArchitectureCloudStack Architecture
CloudStack Architecture
 
Elassandra: Elasticsearch as a Cassandra Secondary Index (Rémi Trouville, Vin...
Elassandra: Elasticsearch as a Cassandra Secondary Index (Rémi Trouville, Vin...Elassandra: Elasticsearch as a Cassandra Secondary Index (Rémi Trouville, Vin...
Elassandra: Elasticsearch as a Cassandra Secondary Index (Rémi Trouville, Vin...
 

Semelhante a I Love APIs 2015: Apache Usergrid Web Scale Mobile APIs with Elastic Search and Cassandra

Deep Dive: Strategic Importance of BaaS
Deep Dive: Strategic Importance of BaaSDeep Dive: Strategic Importance of BaaS
Deep Dive: Strategic Importance of BaaSApigee | Google Cloud
 
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 WorkshopApigee | Google Cloud
 
IMC Summit 2016 Breakout - William Bain - Implementing Extensible Data Struct...
IMC Summit 2016 Breakout - William Bain - Implementing Extensible Data Struct...IMC Summit 2016 Breakout - William Bain - Implementing Extensible Data Struct...
IMC Summit 2016 Breakout - William Bain - Implementing Extensible Data Struct...In-Memory Computing Summit
 
Melbourne: Certus Data 2.0 Vault Meetup with Snowflake - Data Vault In The Cl...
Melbourne: Certus Data 2.0 Vault Meetup with Snowflake - Data Vault In The Cl...Melbourne: Certus Data 2.0 Vault Meetup with Snowflake - Data Vault In The Cl...
Melbourne: Certus Data 2.0 Vault Meetup with Snowflake - Data Vault In The Cl...Certus Solutions
 
DEVNET-1140 InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...
DEVNET-1140	InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...DEVNET-1140	InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...
DEVNET-1140 InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...Cisco DevNet
 
Shashi Raina [AWS] & Al Sargent [InfluxData] | Build Modern Monitoring with I...
Shashi Raina [AWS] & Al Sargent [InfluxData] | Build Modern Monitoring with I...Shashi Raina [AWS] & Al Sargent [InfluxData] | Build Modern Monitoring with I...
Shashi Raina [AWS] & Al Sargent [InfluxData] | Build Modern Monitoring with I...InfluxData
 
Achieve big data analytic platform with lambda architecture on cloud
Achieve big data analytic platform with lambda architecture on cloudAchieve big data analytic platform with lambda architecture on cloud
Achieve big data analytic platform with lambda architecture on cloudScott Miao
 
What's New in Apache Hive 3.0?
What's New in Apache Hive 3.0?What's New in Apache Hive 3.0?
What's New in Apache Hive 3.0?DataWorks Summit
 
What's New in Apache Hive 3.0 - Tokyo
What's New in Apache Hive 3.0 - TokyoWhat's New in Apache Hive 3.0 - Tokyo
What's New in Apache Hive 3.0 - TokyoDataWorks Summit
 
What's New in Cytoscape
What's New in CytoscapeWhat's New in Cytoscape
What's New in CytoscapeKeiichiro Ono
 
Cepta The Future of Data with Power BI
Cepta The Future of Data with Power BICepta The Future of Data with Power BI
Cepta The Future of Data with Power BIKellyn Pot'Vin-Gorman
 
StampedeCon 2015 Keynote
StampedeCon 2015 KeynoteStampedeCon 2015 Keynote
StampedeCon 2015 KeynoteKen Owens
 
How Cisco Migrated from MapReduce Jobs to Spark Jobs - StampedeCon 2015
How Cisco Migrated from MapReduce Jobs to Spark Jobs - StampedeCon 2015How Cisco Migrated from MapReduce Jobs to Spark Jobs - StampedeCon 2015
How Cisco Migrated from MapReduce Jobs to Spark Jobs - StampedeCon 2015StampedeCon
 
DEVNET-1166 Open SDN Controller APIs
DEVNET-1166	Open SDN Controller APIsDEVNET-1166	Open SDN Controller APIs
DEVNET-1166 Open SDN Controller APIsCisco DevNet
 
InfoSphere BigInsights - Analytics power for Hadoop - field experience
InfoSphere BigInsights - Analytics power for Hadoop - field experienceInfoSphere BigInsights - Analytics power for Hadoop - field experience
InfoSphere BigInsights - Analytics power for Hadoop - field experienceWilfried Hoge
 
I Love APIs Europe 2015: Developer Sessions
I Love APIs Europe 2015: Developer SessionsI Love APIs Europe 2015: Developer Sessions
I Love APIs Europe 2015: Developer SessionsApigee | Google Cloud
 
Getting Started with API Management – Why It's Needed On-prem and in the Cloud
Getting Started with API Management – Why It's Needed On-prem and in the CloudGetting Started with API Management – Why It's Needed On-prem and in the Cloud
Getting Started with API Management – Why It's Needed On-prem and in the CloudRevelation Technologies
 
Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)
Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)
Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)Red Hat Developers
 
Delivering Insights from 20M+ Smart Homes with 500M+ Devices
Delivering Insights from 20M+ Smart Homes with 500M+ DevicesDelivering Insights from 20M+ Smart Homes with 500M+ Devices
Delivering Insights from 20M+ Smart Homes with 500M+ DevicesDatabricks
 

Semelhante a I Love APIs 2015: Apache Usergrid Web Scale Mobile APIs with Elastic Search and Cassandra (20)

Deep Dive: Strategic Importance of BaaS
Deep Dive: Strategic Importance of BaaSDeep Dive: Strategic Importance of BaaS
Deep Dive: Strategic Importance of BaaS
 
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
 
IMC Summit 2016 Breakout - William Bain - Implementing Extensible Data Struct...
IMC Summit 2016 Breakout - William Bain - Implementing Extensible Data Struct...IMC Summit 2016 Breakout - William Bain - Implementing Extensible Data Struct...
IMC Summit 2016 Breakout - William Bain - Implementing Extensible Data Struct...
 
Melbourne: Certus Data 2.0 Vault Meetup with Snowflake - Data Vault In The Cl...
Melbourne: Certus Data 2.0 Vault Meetup with Snowflake - Data Vault In The Cl...Melbourne: Certus Data 2.0 Vault Meetup with Snowflake - Data Vault In The Cl...
Melbourne: Certus Data 2.0 Vault Meetup with Snowflake - Data Vault In The Cl...
 
DEVNET-1140 InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...
DEVNET-1140	InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...DEVNET-1140	InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...
DEVNET-1140 InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...
 
Shashi Raina [AWS] & Al Sargent [InfluxData] | Build Modern Monitoring with I...
Shashi Raina [AWS] & Al Sargent [InfluxData] | Build Modern Monitoring with I...Shashi Raina [AWS] & Al Sargent [InfluxData] | Build Modern Monitoring with I...
Shashi Raina [AWS] & Al Sargent [InfluxData] | Build Modern Monitoring with I...
 
Achieve big data analytic platform with lambda architecture on cloud
Achieve big data analytic platform with lambda architecture on cloudAchieve big data analytic platform with lambda architecture on cloud
Achieve big data analytic platform with lambda architecture on cloud
 
What's New in Apache Hive 3.0?
What's New in Apache Hive 3.0?What's New in Apache Hive 3.0?
What's New in Apache Hive 3.0?
 
What's New in Apache Hive 3.0 - Tokyo
What's New in Apache Hive 3.0 - TokyoWhat's New in Apache Hive 3.0 - Tokyo
What's New in Apache Hive 3.0 - Tokyo
 
What's New in Cytoscape
What's New in CytoscapeWhat's New in Cytoscape
What's New in Cytoscape
 
Cepta The Future of Data with Power BI
Cepta The Future of Data with Power BICepta The Future of Data with Power BI
Cepta The Future of Data with Power BI
 
StampedeCon 2015 Keynote
StampedeCon 2015 KeynoteStampedeCon 2015 Keynote
StampedeCon 2015 Keynote
 
How Cisco Migrated from MapReduce Jobs to Spark Jobs - StampedeCon 2015
How Cisco Migrated from MapReduce Jobs to Spark Jobs - StampedeCon 2015How Cisco Migrated from MapReduce Jobs to Spark Jobs - StampedeCon 2015
How Cisco Migrated from MapReduce Jobs to Spark Jobs - StampedeCon 2015
 
OGCE SC10
OGCE SC10OGCE SC10
OGCE SC10
 
DEVNET-1166 Open SDN Controller APIs
DEVNET-1166	Open SDN Controller APIsDEVNET-1166	Open SDN Controller APIs
DEVNET-1166 Open SDN Controller APIs
 
InfoSphere BigInsights - Analytics power for Hadoop - field experience
InfoSphere BigInsights - Analytics power for Hadoop - field experienceInfoSphere BigInsights - Analytics power for Hadoop - field experience
InfoSphere BigInsights - Analytics power for Hadoop - field experience
 
I Love APIs Europe 2015: Developer Sessions
I Love APIs Europe 2015: Developer SessionsI Love APIs Europe 2015: Developer Sessions
I Love APIs Europe 2015: Developer Sessions
 
Getting Started with API Management – Why It's Needed On-prem and in the Cloud
Getting Started with API Management – Why It's Needed On-prem and in the CloudGetting Started with API Management – Why It's Needed On-prem and in the Cloud
Getting Started with API Management – Why It's Needed On-prem and in the Cloud
 
Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)
Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)
Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)
 
Delivering Insights from 20M+ Smart Homes with 500M+ Devices
Delivering Insights from 20M+ Smart Homes with 500M+ DevicesDelivering Insights from 20M+ Smart Homes with 500M+ Devices
Delivering Insights from 20M+ Smart Homes with 500M+ Devices
 

Mais de Apigee | Google Cloud

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 | Google Cloud
 
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 WorldApigee | Google Cloud
 
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 | Google Cloud
 
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 MarketApigee | Google Cloud
 
Managing the Complexity of Microservices Deployments
Managing the Complexity of Microservices DeploymentsManaging the Complexity of Microservices Deployments
Managing the Complexity of Microservices DeploymentsApigee | Google Cloud
 
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 SuccessApigee | Google Cloud
 
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 KapoorApigee | Google Cloud
 
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 BrailApigee | Google Cloud
 
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 JhingranApigee | Google Cloud
 
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!Apigee | Google Cloud
 

Mais de 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
 
Apigee Edge: Intro to Microgateway
Apigee Edge: Intro to MicrogatewayApigee Edge: Intro to Microgateway
Apigee Edge: Intro to Microgateway
 
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: Opening Keynot
London Adapt or Die: Opening KeynotLondon Adapt or Die: Opening Keynot
London Adapt or Die: Opening Keynot
 
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!
 

Último

2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdfAndrey Devyatkin
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slidesvaideheekore1
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfZer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfmaor17
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxRTS corp
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonApplitools
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolsosttopstonverter
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesKrzysztofKkol1
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITmanoharjgpsolutions
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...OnePlan Solutions
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesVictoriaMetrics
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptxVinzoCenzo
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shardsChristopher Curtin
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogueitservices996
 

Último (20)

2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slides
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfZer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdf
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration tools
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh IT
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 Updates
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptx
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogue
 

I Love APIs 2015: Apache Usergrid Web Scale Mobile APIs with Elastic Search and Cassandra

  • 1. 1 Apache Usergrid: Web Scale Mobile APIs with ElasticSearch and Cassandra! Todd Nine Principal Architect Jeffrey West BaaS Engineering Coach
  • 2. Agenda 2 1. Why do we need Usergrid? 2. What is Usergrid & How does it work? 3. How do we achieve web scale? 4. Learnings 5. Roadmap & Questions ©2015 Apigee. All Rights Reserved.
  • 3. 3 (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 Database ERP CRM Data " Warehouse Data Lake Partner Apps Consumer Apps Employee Apps Insights
  • 6. 6 ©2015 Apigee. All Rights Reserved. Web Scale" 10’s of thousands requests/sec" …across multiple data centers
  • 7. 7 ©2015 Apigee. All Rights Reserved. Web Scale / MongoDB
  • 9. • Apache Open Source Mobile Backend as a Service • REST API for easy interaction from any platform • SDKs available for iOS / Android / Javascript 9
  • 11. Organization Organization Organization Application Devices Users Groups Security Roles Collection Collection Entity {…} Entity {…} Entity {…} Application Devices Users Groups Security Roles Entity {…} Entity {…} Entity {…} Collection Collection Entity {…} Entity {…} Entity {…}
  • 12. But I just want persistence! 12 ©2015 Apigee. All Rights Reserved. REST API GET / PUT / POST / DELETE Scalable, Multi-tenant Persistence (Single Cluster)
  • 13. What people do seeking ‘web scale’? 13 ©2015 Apigee. All Rights Reserved.
  • 15. •  Canonical System of Record •  Collections –  Unique Values / Primary Keys •  Entities –  Schemaless design –  O(1) entity retrieval •  Connections / Graph –  Scalable Relationships Horizontally Scalable Persistence
  • 16. Built on Horizontally Scalable Technologies • Filter / Limit / Cursor: – GET http://api.usergrid.com/{org}/{app}/{collection}? ql=select * where title = 'A Tale of Two Cities’&limit=50&cursor=LTIxNDg0NDUxNDpnR2tBQVFFQWdITUFDW FJ2YlM1emJXbDBhQUNBZFFBUUQyMVZneExfRWVLRlV3TG9Hc1doZXdDQW RRQVFIYVdjb0JwREVlS1VCd0xvR3NWT0JRQQ – GET http://api.usergrid.com/{org}/{app}/{collection}? ql=select * where location within {d} of {x, y} 17 ©2015 Apigee. All Rights Reserved. ( )
  • 18. Architecture: Multi-Region Indexing & Consistency SQS SQS SNS 6) INDEX 6) INDEX Region B Region A C* Replication 2)WRITE 5)READ 5)READ
  • 20. Bottlenecks 21 ©2015 Apigee. All Rights Reserved. Tomcat 20% CPU !?? WHY ??! Cassandra 10% CPU
  • 21. Iterative Process 22 ©2015 Apigee. All Rights Reserved. 10,266/s 9,700/s 7,233/s 3,750
  • 22. Hurdles •  Gatling –  Can’t get 10k/s with one node •  Cassandra –  CPU •  Compression? •  C3.2xlarge -> c3.4xlarge •  Row caching? •  Tomcat –  HTTP Connector •  acceptCount •  maxConnections •  maxThreads •  Non-blocking IO? •  Usergrid –  # of reads to Cassandra 23 ©2015 Apigee. All Rights Reserved.
  • 23. 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 24
  • 25. Learn from our mistakes 26
  • 26. Risks of Dynamic Mapping 27 ©2015 Apigee. All Rights Reserved. D D D D M
  • 27. Risks of Dynamic Mapping 28 ©2015 Apigee. All Rights Reserved. DD D DD DD D DD D D DD DD DD DD Inbound message requires a mapping update Mapping updated & broadcast to the cluster M
  • 28. Risks of Dynamic Mapping 29 ©2015 Apigee. All Rights Reserved. M DD D DD DD D DD D D DD DD DD DD At scale (full loaded) only one mapping update can processed at a time
  • 29. Risks of Dynamic Mapping 30 ©2015 Apigee. All Rights Reserved. DD D DD DD D DD D D DD DD DD DD M
  • 30. Risks of Dynamic Mapping 31 ©2015 Apigee. All Rights Reserved. M DD D DD DD D DD D D DD DD DD DD
  • 31. 30 ES Data Nodes X 100MB mapping file = 3,000MB For each schema/ mapping update 3GB data transfer X 5M entities with different schemas = a LOT of data transfer and a lot of latency Risks of Dynamic Mapping 32 ©2015 Apigee. All Rights Reserved. DD D DD DD D DD D D DD DD DD DD M
  • 33. {
 "hello": {
 "world":{
 "message": "Hello!"
 },
 "items": [
 {
 "name": "apples",
 "weight": 100
 } 
 ]
 }
 } {
 "uuid": "48e262d6-b922-11e4-8a11",
 "ud_entity_id": "ad2b33c2e",
 "size": 100,
 "ug_app": "1a67aed7-bbb3-11e4-8a11",
 "fields": [
 {
 ”name": "hello.world.message",
 ”string": "Hello!"
 },
 {
 ”name": "items[0].name",
 ”string": "apples"
 },
 {
 ”name": "items[0].weight",
 "integer": 100
 } 
 ]
 }
 Flattened Documents 34 ©2015 Apigee. All Rights Reserved. Indexed as
  • 34. Data Node A Data Node B Data Node C Index Allocation •  Multiple Indexes spread across the cluster •  Indexes have shards •  Read/Write aliases point to physical indexes •  Aliases assigned based on hashing of the App UUID 35 ©2015 Apigee. All Rights Reserved. Index_1 1 1 2 3 2 3 app_1_read_alias app_1_write_alias
  • 35. Data Node A Data Node B Data Node C Tenant Management 36 ©2015 Apigee. All Rights Reserved. Index_1 1 1 2 3 2 3 app_1_read_alias app_1_write_alias app_2_read_alias app_2_write_alias
  • 36. Data Node A Data Node B Data Node C Tenant Management •  Assign Write alias to new Index •  Add new index to read alias •  Stream data from old index •  Delete data from old index 37 ©2015 Apigee. All Rights Reserved. Index_1 1 1 2 3 2 3 Index_2 1 1 2 3 2 3 app_2_read_alias app_2_write_alias stream2es app_1_read_alias app_1_write_alias
  • 37. Data Node D Data Node A Data Node B Data Node C Tenant Management •  Indexes targeted to separate machines 38 ©2015 Apigee. All Rights Reserved. Index_1 1 1 2 3 2 3 Index_2 1 1 2 3 2 3 app_1_read_alias app_1_write_alias app_2_read_alias app_2_write_alias
  • 38. Data Node A Data Node B Data Node C Data Node A Data Node B Data Node C Multiple Scaling Vectors 39 ©2015 Apigee. All Rights Reserved. Index_1 1 1 2 3 2 3 Index_2 1 1 2 3 2 3 Index_3 1 1 2 3 2 3 Index_4 1 1 2 3 2 3 Index_5 1 1 2 3 2 3
  • 39. Working with Graph & NoSQL Data 40
  • 40. Data De-normalization per interaction 41 ERP Product CatalogsCRM Data Lake Data Warehouse
  • 41. 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 42 User A Product A User B User C Likes>> <<Liking
  • 43. 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 44