SlideShare une entreprise Scribd logo
1  sur  50
Télécharger pour lire hors ligne
Introduction to Apache Usergrid: 
The BaaS built on Cassandra 
Dave Johnson 
Apigee
Agenda 
» Overview: why Usergrid 
» Exploring the Usergrid API 
» Creating an app with Usergrid 
» Running & Deploying Usergrid 
» Q & A 
© 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 2
Usergrid Overview
Why Usergrid? 
» Don’t build a server 
PHP 
Ruby Java 
MySQL Node PaaS 
Services in 
the “cloud” 
App Server Cloud 
© 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 4
Why Usergrid? 
» Focus on building your app 
Services in 
the “cloud” 
& 
App Cloud 
© 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 5
What is Usergrid? 
» Complete Back-end as a Service (BaaS) 
» REST API, backed by Cassandra 
» Three parts: 
» Web application, provides REST API 
» Comprehensive Management Portal 
» Client SDKs 
» iOS, Android, JavaScript, Node, Ruby, 
Java, Perl, .Net, Command-line, … 
© 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 6
What is Usergrid? 
» Core services you need to build apps: 
» JSON object indexing & query 
» Geo-location & geo-queries 
» Connections & Collections 
» Users, Groups, Social Graph 
» Authentication, Roles & Permissions 
» Asset & File Management 
» Soon: Push Notifications 
© 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 7
Main limitation 
» You cannot add server-side logic 
» If you need server-side logic: 
App Cloud 
Your server-side 
logic 
Services in 
the “cloud” 
& 
© 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 8
An Apache Incubator Project 
© 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 9
Exploring the Usergrid API 
8
Usergrid REST API 
» JSON over HTTP 
» POST, GET, PUT and DELETE JSON Entities 
» Entities have UUID, Name, Type 
» Entities have name/value properties 
» All Entity properties are indexed 
» SQL-like syntax for Entity queries 
© 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 11
Usergrid REST API 
»Usergrid is multi-tenant 
»Multiple organizations 
»Each organization has multiple apps 
»Each application has root URL like this 
»http:// host/${org}/${app} 
» Entities exist in Collections 
»http:// host/${org}/${app}/${collection} 
© 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 12
Usergrid REST API 
» You can define Collections of custom 
Entities with any properties you want 
» Plus special “built-in” Entity Collections: 
» http:// host/${org}/${app}/users 
» http:// host/${org}/${app}/groups 
» http:// host/${org}/${app}/roles 
» http:// host/${org}/${app}/activities 
» http:// host/${org}/${app}/assets 
© 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 13
Connections 
» No joins, but Entities can have Connections to 
other Entities 
» For example, to get all Entities that Dave is 
connected to via a connection of type “pets” 
» http:// host/${org}/${app}/users/dave/pets 
© 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 14
Collecting Cats 
» Demo the Portal 
» Create User Dave with Default Role 
» Create Cats Collection 
» Setup “Dave has Cats” Connections 
© 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 15
Creating an app with Usergrid 
18
Let’s create a checkin app 
» A simple checkin app to demonstrate 
Usergrid features: 
» Login & signup 
» Roles & Permissions 
» Following, Followers and Checkins 
» Usergrid JavaScript SDK 
» Built with jQueryMobile & Cordova 
© 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 17
Define the data model 
» Usergrid provides the basic REST API 
» You must decide: 
» Entity Types & Properties 
» Entity Connections 
» Users Roles & Permissions 
© 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 18
Entities & Connections 
» Entity Collections 
» Users 
» Checkins 
» Entity Connections 
» Users Follow Users 
» Users Have Checkins 
© 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 19
User Role: Guest 
» User who has not signed up yet 
» Permissions User with Guest Role: 
GET POST PUT DELETE 
/users/*  ✅   
/token  ✅   
» Guest user POSTs to register or login 
» Usergrid takes care of account activation 
© 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 20
User Role: Default 
» Permissions for User with Default Role: 
GET POST PUT DELETE 
/users/${user}/** ✅ ✅ ✅ ✅ 
/activities/* ✅    
/users/* ✅    
/users/${user} ✅  ✅  
© 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 21
App setup in the Portal 
» Quick demo 
» Take a look at Roles & Permissions 
» Ensure they are setup right 
© 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 22
Adding Login & Signup 
32
Getting started 
» Pre-requisites: 
» Usergrid JavaScript SDK 
» jQuery Mobile 
» Apache Cordova 
» Your favorite dev environment 
© 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 24
jQueryMobile 
© 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 25
Apache Cordova 
© 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 26
Get setup in an IDE 
© 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 27
Login with password 
» With Javascript SDK 
var client = new Usergrid.Client({ 
appName: 'checkin1', 
orgName: 'test-organization', 
URI: 'http://10.1.1.161:8080' 
}); 
client.login(username, password, function(err, res, entity) { 
if (err) { 
// inform user of error 
} else { 
// change to View Checkins page 
} 
}); 
© 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 28
Login in with password 
» Without Javascript SDK 
» POST a JSON object to /token 
» For example with curl: 
curl -X POST -i -H 
"Content-Type: application/json" 
"http://host/test-org/test-app/token" -d 
'{"grant_type":"password","username":"dav 
e","password":"XXX"}' 
© 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 29
Get setup in an IDE 
» Demo time 
» Create Cordova project in IDE 
» Add Login & Registration Page 
© 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 30
What we’ll add add in checkinv1 
» index.html 
» $(document).on(“mobileinit”, … 
» login-page 
» signup-page 
» checkin-list-page (a placeholder) 
» index.js 
» login() 
» logout() 
» signup() 
© 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 31
Adding Checkins 
4
Checkins as Activities 
» Usergrid supports notion of Activity 
» And supports a “Following” Connection 
» Users post Activities to their own Collection 
» POST /users/${user}/activities 
» Users can see Activities those they follow 
» GET /activities 
© 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 33
JavaScript SDK - create checkin 
var data = { 
type: “checkin", 
content: content, 
verb: “post", 
actor: { username: user.get(“username") } 
}; 
client.createUserActivity(user.get("username"), data, 
function( err, response, activity ) { 
if (err) { 
// alert user of error 
} else { 
// send user back to View Checkins page 
} 
}); 
© 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 34
What we’ll add in checkinv2 
» index.html 
» checkin-list—page 
» add-page 
» view-checkin—page 
» index.js 
» buildCheckinList() 
» checkin() 
» showCheckinPage() 
© 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 35
Add Follower relationships 
36
Usergrid Social Graph 
» Usergrid provides Social Graph features 
including Following and Groups 
» Fred can follow Barney: 
» POST /users/fred/following/barney 
» Fred can see his followers: 
» GET /users/fred/followers 
© 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 37
JavaScript SDK - follow user 
var target = // user to be followed 
var options = { 
method: 'POST', 
endpoint: ‘/users/' + me + '/following/users/' + target 
}; 
client.request(options, function (err, data) { 
if (err) { 
alert("Unable to follow user " + target); 
} else { 
alert("Followed user " + target); 
} 
}); 
© 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 38
What we’ll add in checkinv3 
» index.html 
» user-list-page 
» view-user—page 
» index.js 
» buildUserList() 
» showUserPage() 
» followUser() 
© 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 39
Package & run your app 
40
Apache Cordova 
» Demo time 
» Use Cordova to launch the app in iOS 
© 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 41
What we’ll add in checkinv4 
» index.js 
» deviceReady() 
» doWhenBothFrameworksLoaded() 
© 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 42
Running & Deploying Usergrid
Developing with Usergrid 
» Three ways to run Usergrid locally: 
» All-in-one Usergrid Launcher 
» Install Tomcat, Cassandra and Usergrid 
» Start Usergrid instance via Vagrant 
» Or find a BaaS provider that runs Usergrid: 
» e.g. Apigee’s API BaaS is free to use 
© 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 44
Usergrid deployment options 
» Do it yourself with Tomcat, Cassandra and 
Puppet, Chef, etc. 
» Do it yourself on AWS via Usergrid AWSCluster 
» AWS Cloud Formation Template 
» Plus supporting Bash and Groovy scripts 
» Let somebody else run it for you… 
» Hint hint  
© 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 45
Deployment Architecture UG1 
Mobile 
Cassandra 
Cluster 
Load 
Balancer 
Web Tomcats 
(shared nothing) 
© 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 46
Deployment Architecture UG2 
Mobile 
Cassandra 
Cluster 
Load 
Balancer 
ElasticSearch 
Cluster 
Web Tomcats 
(shared nothing) 
Distributed 
Queue 
© 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 47
Wrapping up…
Questions? 
» Apache Usergrid 
» http://usergrid.incubator.apache.org 
» http://twitter.com/usergrid 
» Apigee API BaaS 
» http://goo.gl/zcjRxC 
» Dave Johnson 
» https://github.com/snoopdave/ 
» usergrid-mobile (the example code for the presentation) 
» usergrid-vagrant (scripts to start Usergrid in a VM) 
» http://twitter.com/snoopdave 
© 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 49
Thank you

Contenu connexe

Tendances

Rapid API Development with LoopBack/StrongLoop
Rapid API Development with LoopBack/StrongLoopRapid API Development with LoopBack/StrongLoop
Rapid API Development with LoopBack/StrongLoopRaymond Camden
 
Building a Mobile Data Platform with Cassandra - Apigee Under the Hood (Webcast)
Building a Mobile Data Platform with Cassandra - Apigee Under the Hood (Webcast)Building a Mobile Data Platform with Cassandra - Apigee Under the Hood (Webcast)
Building a Mobile Data Platform with Cassandra - Apigee Under the Hood (Webcast)Apigee | Google Cloud
 
Building Search for Bitbucket Cloud
Building Search for Bitbucket CloudBuilding Search for Bitbucket Cloud
Building Search for Bitbucket CloudAtlassian
 
Getting Started With Angular
Getting Started With AngularGetting Started With Angular
Getting Started With AngularStormpath
 
Using React with Grails 3
Using React with Grails 3Using React with Grails 3
Using React with Grails 3Zachary Klein
 
Integration Testing on Steroids: Run Your Tests on the Real Things
Integration Testing on Steroids: Run Your Tests on the Real ThingsIntegration Testing on Steroids: Run Your Tests on the Real Things
Integration Testing on Steroids: Run Your Tests on the Real ThingsAtlassian
 
What's New with Confluence Connect
What's New with Confluence ConnectWhat's New with Confluence Connect
What's New with Confluence ConnectAtlassian
 
How Bitbucket Pipelines Loads Connect UI Assets Super-fast
How Bitbucket Pipelines Loads Connect UI Assets Super-fastHow Bitbucket Pipelines Loads Connect UI Assets Super-fast
How Bitbucket Pipelines Loads Connect UI Assets Super-fastAtlassian
 
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
 
StrongLoop Node.js API Security & Customization
StrongLoop Node.js API Security & CustomizationStrongLoop Node.js API Security & Customization
StrongLoop Node.js API Security & Customizationjguerrero999
 
Content-centric architectures - case study : Apache Sling
Content-centric architectures - case study : Apache SlingContent-centric architectures - case study : Apache Sling
Content-centric architectures - case study : Apache SlingFabrice Hong
 
Андрей Саксонов «Разработка плагинов для Atlassian JIRA»
Андрей Саксонов «Разработка плагинов для Atlassian JIRA»Андрей Саксонов «Разработка плагинов для Atlassian JIRA»
Андрей Саксонов «Разработка плагинов для Atlassian JIRA»DataArt
 
Designing and Running a GraphQL API
Designing and Running a GraphQL APIDesigning and Running a GraphQL API
Designing and Running a GraphQL APIAtlassian
 
Picking the Right Node.js Framework for Your Use Case
Picking the Right Node.js Framework for Your Use CasePicking the Right Node.js Framework for Your Use Case
Picking the Right Node.js Framework for Your Use CaseJimmy Guerrero
 
Access to User Activities - Activity Platform APIs
Access to User Activities - Activity Platform APIsAccess to User Activities - Activity Platform APIs
Access to User Activities - Activity Platform APIsAtlassian
 
How we built a job board in one week with JHipster
How we built a job board in one week with JHipsterHow we built a job board in one week with JHipster
How we built a job board in one week with JHipsterKile Niklawski
 
Working with LoopBack Models
Working with LoopBack ModelsWorking with LoopBack Models
Working with LoopBack ModelsRaymond Feng
 
#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015
#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015
#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015Matt Raible
 

Tendances (20)

Rapid API Development with LoopBack/StrongLoop
Rapid API Development with LoopBack/StrongLoopRapid API Development with LoopBack/StrongLoop
Rapid API Development with LoopBack/StrongLoop
 
Building a Mobile Data Platform with Cassandra - Apigee Under the Hood (Webcast)
Building a Mobile Data Platform with Cassandra - Apigee Under the Hood (Webcast)Building a Mobile Data Platform with Cassandra - Apigee Under the Hood (Webcast)
Building a Mobile Data Platform with Cassandra - Apigee Under the Hood (Webcast)
 
Building Search for Bitbucket Cloud
Building Search for Bitbucket CloudBuilding Search for Bitbucket Cloud
Building Search for Bitbucket Cloud
 
Getting Started With Angular
Getting Started With AngularGetting Started With Angular
Getting Started With Angular
 
Using React with Grails 3
Using React with Grails 3Using React with Grails 3
Using React with Grails 3
 
Integration Testing on Steroids: Run Your Tests on the Real Things
Integration Testing on Steroids: Run Your Tests on the Real ThingsIntegration Testing on Steroids: Run Your Tests on the Real Things
Integration Testing on Steroids: Run Your Tests on the Real Things
 
What's New with Confluence Connect
What's New with Confluence ConnectWhat's New with Confluence Connect
What's New with Confluence Connect
 
JHipster
JHipsterJHipster
JHipster
 
How Bitbucket Pipelines Loads Connect UI Assets Super-fast
How Bitbucket Pipelines Loads Connect UI Assets Super-fastHow Bitbucket Pipelines Loads Connect UI Assets Super-fast
How Bitbucket Pipelines Loads Connect UI Assets Super-fast
 
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
 
StrongLoop Node.js API Security & Customization
StrongLoop Node.js API Security & CustomizationStrongLoop Node.js API Security & Customization
StrongLoop Node.js API Security & Customization
 
Content-centric architectures - case study : Apache Sling
Content-centric architectures - case study : Apache SlingContent-centric architectures - case study : Apache Sling
Content-centric architectures - case study : Apache Sling
 
Full Stack Scala
Full Stack ScalaFull Stack Scala
Full Stack Scala
 
Андрей Саксонов «Разработка плагинов для Atlassian JIRA»
Андрей Саксонов «Разработка плагинов для Atlassian JIRA»Андрей Саксонов «Разработка плагинов для Atlassian JIRA»
Андрей Саксонов «Разработка плагинов для Atlassian JIRA»
 
Designing and Running a GraphQL API
Designing and Running a GraphQL APIDesigning and Running a GraphQL API
Designing and Running a GraphQL API
 
Picking the Right Node.js Framework for Your Use Case
Picking the Right Node.js Framework for Your Use CasePicking the Right Node.js Framework for Your Use Case
Picking the Right Node.js Framework for Your Use Case
 
Access to User Activities - Activity Platform APIs
Access to User Activities - Activity Platform APIsAccess to User Activities - Activity Platform APIs
Access to User Activities - Activity Platform APIs
 
How we built a job board in one week with JHipster
How we built a job board in one week with JHipsterHow we built a job board in one week with JHipster
How we built a job board in one week with JHipster
 
Working with LoopBack Models
Working with LoopBack ModelsWorking with LoopBack Models
Working with LoopBack Models
 
#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015
#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015
#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015
 

En vedette

Node.js - Extending the Programmability of Apigee Edge
Node.js - Extending the Programmability of Apigee Edge Node.js - Extending the Programmability of Apigee Edge
Node.js - Extending the Programmability of Apigee Edge Apigee | Google Cloud
 
Adapt or Die: Serverless Microservices
Adapt or Die: Serverless MicroservicesAdapt or Die: Serverless Microservices
Adapt or Die: Serverless MicroservicesApigee | Google Cloud
 
Introduction to Apache Roller
Introduction to Apache RollerIntroduction to Apache Roller
Introduction to Apache RollerMatt Raible
 
Sample Chapter of Practical Unit Testing with TestNG and Mockito
Sample Chapter of Practical Unit Testing with TestNG and MockitoSample Chapter of Practical Unit Testing with TestNG and Mockito
Sample Chapter of Practical Unit Testing with TestNG and MockitoTomek Kaczanowski
 
Usergrid Overview
Usergrid OverviewUsergrid Overview
Usergrid Overviewusergrid
 
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
 
How to size up an Apache Cassandra cluster (Training)
How to size up an Apache Cassandra cluster (Training)How to size up an Apache Cassandra cluster (Training)
How to size up an Apache Cassandra cluster (Training)DataStax Academy
 
Economic models for reinventing telco webcast by vision mobile, apigee
Economic models for reinventing telco   webcast by vision mobile, apigeeEconomic models for reinventing telco   webcast by vision mobile, apigee
Economic models for reinventing telco webcast by vision mobile, apigeeSlashData
 
Apigee centralite io t webinar july 2015 share (2)
Apigee centralite io t webinar july 2015 share (2)Apigee centralite io t webinar july 2015 share (2)
Apigee centralite io t webinar july 2015 share (2)Apigee | Google Cloud
 
Apigee Insights: Data & Context-Driven Actions
Apigee Insights: Data & Context-Driven ActionsApigee Insights: Data & Context-Driven Actions
Apigee Insights: Data & Context-Driven ActionsApigee | Google Cloud
 
Big Data Science with H2O in R
Big Data Science with H2O in RBig Data Science with H2O in R
Big Data Science with H2O in RAnqi Fu
 
Cassandra on Docker
Cassandra on DockerCassandra on Docker
Cassandra on DockerInstaclustr
 
H2O with Erin LeDell at Portland R User Group
H2O with Erin LeDell at Portland R User GroupH2O with Erin LeDell at Portland R User Group
H2O with Erin LeDell at Portland R User GroupSri Ambati
 

En vedette (20)

Whats New In Roller5
Whats New In Roller5Whats New In Roller5
Whats New In Roller5
 
Node.js - Extending the Programmability of Apigee Edge
Node.js - Extending the Programmability of Apigee Edge Node.js - Extending the Programmability of Apigee Edge
Node.js - Extending the Programmability of Apigee Edge
 
Apigee Edge Overview and Roadmap
Apigee Edge Overview and RoadmapApigee Edge Overview and Roadmap
Apigee Edge Overview and Roadmap
 
Adapt or Die: Serverless Microservices
Adapt or Die: Serverless MicroservicesAdapt or Die: Serverless Microservices
Adapt or Die: Serverless Microservices
 
Juniori/Seniori
Juniori/SenioriJuniori/Seniori
Juniori/Seniori
 
Introduction to Apache Roller
Introduction to Apache RollerIntroduction to Apache Roller
Introduction to Apache Roller
 
Apache Airavata Cloud Integration
Apache Airavata Cloud IntegrationApache Airavata Cloud Integration
Apache Airavata Cloud Integration
 
Sample Chapter of Practical Unit Testing with TestNG and Mockito
Sample Chapter of Practical Unit Testing with TestNG and MockitoSample Chapter of Practical Unit Testing with TestNG and Mockito
Sample Chapter of Practical Unit Testing with TestNG and Mockito
 
Usergrid Overview
Usergrid OverviewUsergrid Overview
Usergrid Overview
 
Deep Dive: Strategic Importance of BaaS
Deep Dive: Strategic Importance of BaaSDeep Dive: Strategic Importance of BaaS
Deep Dive: Strategic Importance of BaaS
 
How to size up an Apache Cassandra cluster (Training)
How to size up an Apache Cassandra cluster (Training)How to size up an Apache Cassandra cluster (Training)
How to size up an Apache Cassandra cluster (Training)
 
Apigee Products Overview
Apigee Products OverviewApigee Products Overview
Apigee Products Overview
 
Economic models for reinventing telco webcast by vision mobile, apigee
Economic models for reinventing telco   webcast by vision mobile, apigeeEconomic models for reinventing telco   webcast by vision mobile, apigee
Economic models for reinventing telco webcast by vision mobile, apigee
 
Apigee centralite io t webinar july 2015 share (2)
Apigee centralite io t webinar july 2015 share (2)Apigee centralite io t webinar july 2015 share (2)
Apigee centralite io t webinar july 2015 share (2)
 
Hadoop Technology
Hadoop TechnologyHadoop Technology
Hadoop Technology
 
Apigee Insights: Data & Context-Driven Actions
Apigee Insights: Data & Context-Driven ActionsApigee Insights: Data & Context-Driven Actions
Apigee Insights: Data & Context-Driven Actions
 
Big Data Science with H2O in R
Big Data Science with H2O in RBig Data Science with H2O in R
Big Data Science with H2O in R
 
Cassandra on Docker
Cassandra on DockerCassandra on Docker
Cassandra on Docker
 
H2O with Erin LeDell at Portland R User Group
H2O with Erin LeDell at Portland R User GroupH2O with Erin LeDell at Portland R User Group
H2O with Erin LeDell at Portland R User Group
 
Apigee Edge Product Demo
Apigee Edge Product DemoApigee Edge Product Demo
Apigee Edge Product Demo
 

Similaire à Introduction to Usergrid - ApacheCon EU 2014

API Services: Harness the Power of Enterprise Infrastructure
API Services: Harness the Power of Enterprise InfrastructureAPI Services: Harness the Power of Enterprise Infrastructure
API Services: Harness the Power of Enterprise InfrastructureApigee | Google Cloud
 
A Community-based, Graph API Framework to Integrate and Orchestrate Cloud-Bas...
A Community-based, Graph API Framework to Integrate and Orchestrate Cloud-Bas...A Community-based, Graph API Framework to Integrate and Orchestrate Cloud-Bas...
A Community-based, Graph API Framework to Integrate and Orchestrate Cloud-Bas...Michael Petychakis
 
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 APIsApigee | 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
 
Programming with Azure Active Directory
Programming with Azure Active DirectoryProgramming with Azure Active Directory
Programming with Azure Active DirectoryJoonas Westlin
 
Opensocial Haifa Seminar - 2008.04.08
Opensocial Haifa Seminar - 2008.04.08Opensocial Haifa Seminar - 2008.04.08
Opensocial Haifa Seminar - 2008.04.08Ari Leichtberg
 
Kasten securing access to your kubernetes applications
Kasten securing access to your kubernetes applicationsKasten securing access to your kubernetes applications
Kasten securing access to your kubernetes applicationsLibbySchulze
 
Prototyping applications with heroku and elasticsearch
 Prototyping applications with heroku and elasticsearch Prototyping applications with heroku and elasticsearch
Prototyping applications with heroku and elasticsearchprotofy
 
SharePoint 2013 Apps and the App Model
SharePoint 2013 Apps and the App ModelSharePoint 2013 Apps and the App Model
SharePoint 2013 Apps and the App ModelJames Tramel
 
Goodle Developer Days London 2008 - Open Social Update
Goodle Developer Days London 2008 - Open Social UpdateGoodle Developer Days London 2008 - Open Social Update
Goodle Developer Days London 2008 - Open Social UpdatePatrick Chanezon
 
Goodle Developer Days Munich 2008 - Open Social Update
Goodle Developer Days Munich 2008 - Open Social UpdateGoodle Developer Days Munich 2008 - Open Social Update
Goodle Developer Days Munich 2008 - Open Social UpdatePatrick Chanezon
 
Deploy and Access WebSphere Liberty and StrongLoop REST Endpoints on IBM Bluemix
Deploy and Access WebSphere Liberty and StrongLoop REST Endpoints on IBM BluemixDeploy and Access WebSphere Liberty and StrongLoop REST Endpoints on IBM Bluemix
Deploy and Access WebSphere Liberty and StrongLoop REST Endpoints on IBM BluemixArthur De Magalhaes
 
Running your Spring Apps in the Cloud Javaone 2014
Running your Spring Apps in the Cloud Javaone 2014Running your Spring Apps in the Cloud Javaone 2014
Running your Spring Apps in the Cloud Javaone 2014cornelia davis
 
Protección web con ESAPI y AppSensor [GuadalajaraCON 2013]
Protección web con ESAPI y AppSensor [GuadalajaraCON 2013]Protección web con ESAPI y AppSensor [GuadalajaraCON 2013]
Protección web con ESAPI y AppSensor [GuadalajaraCON 2013]Websec México, S.C.
 
Ajaxworld Opensocial Presentation
Ajaxworld Opensocial PresentationAjaxworld Opensocial Presentation
Ajaxworld Opensocial PresentationChris Schalk
 
Dirigible @ Skyscanner
Dirigible @ SkyscannerDirigible @ Skyscanner
Dirigible @ SkyscannerJordan Pavlov
 
Openshift Container Platform: First ItalyMeetup
Openshift Container Platform: First ItalyMeetupOpenshift Container Platform: First ItalyMeetup
Openshift Container Platform: First ItalyMeetupGiuseppe Bonocore
 
The Powerful and Comprehensive API for Mobile App Development and Testing
The Powerful and Comprehensive API for Mobile App Development and TestingThe Powerful and Comprehensive API for Mobile App Development and Testing
The Powerful and Comprehensive API for Mobile App Development and TestingBitbar
 
Designing, Implementing, and Using Reactive APIs
Designing, Implementing, and Using Reactive APIsDesigning, Implementing, and Using Reactive APIs
Designing, Implementing, and Using Reactive APIsVMware Tanzu
 
10thMeetup-20190420-REST API Design Principles 되새기기
10thMeetup-20190420-REST API Design Principles 되새기기10thMeetup-20190420-REST API Design Principles 되새기기
10thMeetup-20190420-REST API Design Principles 되새기기DongHee Lee
 

Similaire à Introduction to Usergrid - ApacheCon EU 2014 (20)

API Services: Harness the Power of Enterprise Infrastructure
API Services: Harness the Power of Enterprise InfrastructureAPI Services: Harness the Power of Enterprise Infrastructure
API Services: Harness the Power of Enterprise Infrastructure
 
A Community-based, Graph API Framework to Integrate and Orchestrate Cloud-Bas...
A Community-based, Graph API Framework to Integrate and Orchestrate Cloud-Bas...A Community-based, Graph API Framework to Integrate and Orchestrate Cloud-Bas...
A Community-based, Graph API Framework to Integrate and Orchestrate Cloud-Bas...
 
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
 
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
 
Programming with Azure Active Directory
Programming with Azure Active DirectoryProgramming with Azure Active Directory
Programming with Azure Active Directory
 
Opensocial Haifa Seminar - 2008.04.08
Opensocial Haifa Seminar - 2008.04.08Opensocial Haifa Seminar - 2008.04.08
Opensocial Haifa Seminar - 2008.04.08
 
Kasten securing access to your kubernetes applications
Kasten securing access to your kubernetes applicationsKasten securing access to your kubernetes applications
Kasten securing access to your kubernetes applications
 
Prototyping applications with heroku and elasticsearch
 Prototyping applications with heroku and elasticsearch Prototyping applications with heroku and elasticsearch
Prototyping applications with heroku and elasticsearch
 
SharePoint 2013 Apps and the App Model
SharePoint 2013 Apps and the App ModelSharePoint 2013 Apps and the App Model
SharePoint 2013 Apps and the App Model
 
Goodle Developer Days London 2008 - Open Social Update
Goodle Developer Days London 2008 - Open Social UpdateGoodle Developer Days London 2008 - Open Social Update
Goodle Developer Days London 2008 - Open Social Update
 
Goodle Developer Days Munich 2008 - Open Social Update
Goodle Developer Days Munich 2008 - Open Social UpdateGoodle Developer Days Munich 2008 - Open Social Update
Goodle Developer Days Munich 2008 - Open Social Update
 
Deploy and Access WebSphere Liberty and StrongLoop REST Endpoints on IBM Bluemix
Deploy and Access WebSphere Liberty and StrongLoop REST Endpoints on IBM BluemixDeploy and Access WebSphere Liberty and StrongLoop REST Endpoints on IBM Bluemix
Deploy and Access WebSphere Liberty and StrongLoop REST Endpoints on IBM Bluemix
 
Running your Spring Apps in the Cloud Javaone 2014
Running your Spring Apps in the Cloud Javaone 2014Running your Spring Apps in the Cloud Javaone 2014
Running your Spring Apps in the Cloud Javaone 2014
 
Protección web con ESAPI y AppSensor [GuadalajaraCON 2013]
Protección web con ESAPI y AppSensor [GuadalajaraCON 2013]Protección web con ESAPI y AppSensor [GuadalajaraCON 2013]
Protección web con ESAPI y AppSensor [GuadalajaraCON 2013]
 
Ajaxworld Opensocial Presentation
Ajaxworld Opensocial PresentationAjaxworld Opensocial Presentation
Ajaxworld Opensocial Presentation
 
Dirigible @ Skyscanner
Dirigible @ SkyscannerDirigible @ Skyscanner
Dirigible @ Skyscanner
 
Openshift Container Platform: First ItalyMeetup
Openshift Container Platform: First ItalyMeetupOpenshift Container Platform: First ItalyMeetup
Openshift Container Platform: First ItalyMeetup
 
The Powerful and Comprehensive API for Mobile App Development and Testing
The Powerful and Comprehensive API for Mobile App Development and TestingThe Powerful and Comprehensive API for Mobile App Development and Testing
The Powerful and Comprehensive API for Mobile App Development and Testing
 
Designing, Implementing, and Using Reactive APIs
Designing, Implementing, and Using Reactive APIsDesigning, Implementing, and Using Reactive APIs
Designing, Implementing, and Using Reactive APIs
 
10thMeetup-20190420-REST API Design Principles 되새기기
10thMeetup-20190420-REST API Design Principles 되새기기10thMeetup-20190420-REST API Design Principles 되새기기
10thMeetup-20190420-REST API Design Principles 되새기기
 

Dernier

Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 

Dernier (20)

Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 

Introduction to Usergrid - ApacheCon EU 2014

  • 1. Introduction to Apache Usergrid: The BaaS built on Cassandra Dave Johnson Apigee
  • 2. Agenda » Overview: why Usergrid » Exploring the Usergrid API » Creating an app with Usergrid » Running & Deploying Usergrid » Q & A © 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 2
  • 4. Why Usergrid? » Don’t build a server PHP Ruby Java MySQL Node PaaS Services in the “cloud” App Server Cloud © 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 4
  • 5. Why Usergrid? » Focus on building your app Services in the “cloud” & App Cloud © 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 5
  • 6. What is Usergrid? » Complete Back-end as a Service (BaaS) » REST API, backed by Cassandra » Three parts: » Web application, provides REST API » Comprehensive Management Portal » Client SDKs » iOS, Android, JavaScript, Node, Ruby, Java, Perl, .Net, Command-line, … © 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 6
  • 7. What is Usergrid? » Core services you need to build apps: » JSON object indexing & query » Geo-location & geo-queries » Connections & Collections » Users, Groups, Social Graph » Authentication, Roles & Permissions » Asset & File Management » Soon: Push Notifications © 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 7
  • 8. Main limitation » You cannot add server-side logic » If you need server-side logic: App Cloud Your server-side logic Services in the “cloud” & © 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 8
  • 9. An Apache Incubator Project © 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 9
  • 11. Usergrid REST API » JSON over HTTP » POST, GET, PUT and DELETE JSON Entities » Entities have UUID, Name, Type » Entities have name/value properties » All Entity properties are indexed » SQL-like syntax for Entity queries © 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 11
  • 12. Usergrid REST API »Usergrid is multi-tenant »Multiple organizations »Each organization has multiple apps »Each application has root URL like this »http:// host/${org}/${app} » Entities exist in Collections »http:// host/${org}/${app}/${collection} © 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 12
  • 13. Usergrid REST API » You can define Collections of custom Entities with any properties you want » Plus special “built-in” Entity Collections: » http:// host/${org}/${app}/users » http:// host/${org}/${app}/groups » http:// host/${org}/${app}/roles » http:// host/${org}/${app}/activities » http:// host/${org}/${app}/assets © 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 13
  • 14. Connections » No joins, but Entities can have Connections to other Entities » For example, to get all Entities that Dave is connected to via a connection of type “pets” » http:// host/${org}/${app}/users/dave/pets © 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 14
  • 15. Collecting Cats » Demo the Portal » Create User Dave with Default Role » Create Cats Collection » Setup “Dave has Cats” Connections © 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 15
  • 16. Creating an app with Usergrid 18
  • 17. Let’s create a checkin app » A simple checkin app to demonstrate Usergrid features: » Login & signup » Roles & Permissions » Following, Followers and Checkins » Usergrid JavaScript SDK » Built with jQueryMobile & Cordova © 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 17
  • 18. Define the data model » Usergrid provides the basic REST API » You must decide: » Entity Types & Properties » Entity Connections » Users Roles & Permissions © 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 18
  • 19. Entities & Connections » Entity Collections » Users » Checkins » Entity Connections » Users Follow Users » Users Have Checkins © 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 19
  • 20. User Role: Guest » User who has not signed up yet » Permissions User with Guest Role: GET POST PUT DELETE /users/*  ✅   /token  ✅   » Guest user POSTs to register or login » Usergrid takes care of account activation © 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 20
  • 21. User Role: Default » Permissions for User with Default Role: GET POST PUT DELETE /users/${user}/** ✅ ✅ ✅ ✅ /activities/* ✅    /users/* ✅    /users/${user} ✅  ✅  © 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 21
  • 22. App setup in the Portal » Quick demo » Take a look at Roles & Permissions » Ensure they are setup right © 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 22
  • 23. Adding Login & Signup 32
  • 24. Getting started » Pre-requisites: » Usergrid JavaScript SDK » jQuery Mobile » Apache Cordova » Your favorite dev environment © 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 24
  • 25. jQueryMobile © 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 25
  • 26. Apache Cordova © 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 26
  • 27. Get setup in an IDE © 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 27
  • 28. Login with password » With Javascript SDK var client = new Usergrid.Client({ appName: 'checkin1', orgName: 'test-organization', URI: 'http://10.1.1.161:8080' }); client.login(username, password, function(err, res, entity) { if (err) { // inform user of error } else { // change to View Checkins page } }); © 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 28
  • 29. Login in with password » Without Javascript SDK » POST a JSON object to /token » For example with curl: curl -X POST -i -H "Content-Type: application/json" "http://host/test-org/test-app/token" -d '{"grant_type":"password","username":"dav e","password":"XXX"}' © 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 29
  • 30. Get setup in an IDE » Demo time » Create Cordova project in IDE » Add Login & Registration Page © 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 30
  • 31. What we’ll add add in checkinv1 » index.html » $(document).on(“mobileinit”, … » login-page » signup-page » checkin-list-page (a placeholder) » index.js » login() » logout() » signup() © 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 31
  • 33. Checkins as Activities » Usergrid supports notion of Activity » And supports a “Following” Connection » Users post Activities to their own Collection » POST /users/${user}/activities » Users can see Activities those they follow » GET /activities © 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 33
  • 34. JavaScript SDK - create checkin var data = { type: “checkin", content: content, verb: “post", actor: { username: user.get(“username") } }; client.createUserActivity(user.get("username"), data, function( err, response, activity ) { if (err) { // alert user of error } else { // send user back to View Checkins page } }); © 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 34
  • 35. What we’ll add in checkinv2 » index.html » checkin-list—page » add-page » view-checkin—page » index.js » buildCheckinList() » checkin() » showCheckinPage() © 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 35
  • 37. Usergrid Social Graph » Usergrid provides Social Graph features including Following and Groups » Fred can follow Barney: » POST /users/fred/following/barney » Fred can see his followers: » GET /users/fred/followers © 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 37
  • 38. JavaScript SDK - follow user var target = // user to be followed var options = { method: 'POST', endpoint: ‘/users/' + me + '/following/users/' + target }; client.request(options, function (err, data) { if (err) { alert("Unable to follow user " + target); } else { alert("Followed user " + target); } }); © 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 38
  • 39. What we’ll add in checkinv3 » index.html » user-list-page » view-user—page » index.js » buildUserList() » showUserPage() » followUser() © 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 39
  • 40. Package & run your app 40
  • 41. Apache Cordova » Demo time » Use Cordova to launch the app in iOS © 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 41
  • 42. What we’ll add in checkinv4 » index.js » deviceReady() » doWhenBothFrameworksLoaded() © 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 42
  • 44. Developing with Usergrid » Three ways to run Usergrid locally: » All-in-one Usergrid Launcher » Install Tomcat, Cassandra and Usergrid » Start Usergrid instance via Vagrant » Or find a BaaS provider that runs Usergrid: » e.g. Apigee’s API BaaS is free to use © 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 44
  • 45. Usergrid deployment options » Do it yourself with Tomcat, Cassandra and Puppet, Chef, etc. » Do it yourself on AWS via Usergrid AWSCluster » AWS Cloud Formation Template » Plus supporting Bash and Groovy scripts » Let somebody else run it for you… » Hint hint  © 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 45
  • 46. Deployment Architecture UG1 Mobile Cassandra Cluster Load Balancer Web Tomcats (shared nothing) © 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 46
  • 47. Deployment Architecture UG2 Mobile Cassandra Cluster Load Balancer ElasticSearch Cluster Web Tomcats (shared nothing) Distributed Queue © 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 47
  • 49. Questions? » Apache Usergrid » http://usergrid.incubator.apache.org » http://twitter.com/usergrid » Apigee API BaaS » http://goo.gl/zcjRxC » Dave Johnson » https://github.com/snoopdave/ » usergrid-mobile (the example code for the presentation) » usergrid-vagrant (scripts to start Usergrid in a VM) » http://twitter.com/snoopdave © 2013 Apigee Confidential © Copyright Apigee T–h Aisl lw Roirgkh ists l iRceensseerdv uendder a Creative Commons Attribution-ShareAlike 4.0 International License. 49