SlideShare a Scribd company logo
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

More Related Content

What's hot

Rapid API Development with LoopBack/StrongLoop
Rapid API Development with LoopBack/StrongLoopRapid API Development with LoopBack/StrongLoop
Rapid API Development with LoopBack/StrongLoop
Raymond 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 Cloud
Atlassian
 
Getting Started With Angular
Getting Started With AngularGetting Started With Angular
Getting Started With Angular
Stormpath
 
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 Things
Atlassian
 
What's New with Confluence Connect
What's New with Confluence ConnectWhat's New with Confluence Connect
What's New with Confluence Connect
Atlassian
 
JHipster
JHipsterJHipster
JHipster
Yuen-Kuei Hsueh
 
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
Atlassian
 
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
Atlassian
 
StrongLoop Node.js API Security & Customization
StrongLoop Node.js API Security & CustomizationStrongLoop Node.js API Security & Customization
StrongLoop Node.js API Security & Customization
jguerrero999
 
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
Fabrice Hong
 
Full Stack Scala
Full Stack ScalaFull Stack Scala
Full Stack Scala
Ramnivas Laddad
 
Андрей Саксонов «Разработка плагинов для 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 API
Atlassian
 
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
Jimmy 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 APIs
Atlassian
 
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
Kile Niklawski
 
Working with LoopBack Models
Working with LoopBack ModelsWorking with LoopBack Models
Working with LoopBack Models
Raymond 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 2015
Matt Raible
 

What's hot (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
 

Viewers also liked

Whats New In Roller5
Whats New In Roller5Whats New In Roller5
Whats New In Roller5
David M. Johnson
 
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
 
Apigee Edge Overview and Roadmap
Apigee Edge Overview and RoadmapApigee Edge Overview and Roadmap
Apigee Edge Overview and Roadmap
Apigee | Google Cloud
 
Adapt or Die: Serverless Microservices
Adapt or Die: Serverless MicroservicesAdapt or Die: Serverless Microservices
Adapt or Die: Serverless Microservices
Apigee | Google Cloud
 
Juniori/Seniori
Juniori/SenioriJuniori/Seniori
Juniori/Seniori
Milan Vukoje
 
Introduction to Apache Roller
Introduction to Apache RollerIntroduction to Apache Roller
Introduction to Apache Roller
Matt Raible
 
Apache Airavata Cloud Integration
Apache Airavata Cloud IntegrationApache Airavata Cloud Integration
Apache Airavata Cloud Integration
Heshan Suriyaarachchi
 
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
Tomek Kaczanowski
 
Usergrid Overview
Usergrid OverviewUsergrid Overview
Usergrid Overview
usergrid
 
Deep Dive: Strategic Importance of BaaS
Deep Dive: Strategic Importance of BaaSDeep Dive: Strategic Importance of BaaS
Deep Dive: Strategic Importance of BaaS
Apigee | 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
 
Apigee Products Overview
Apigee Products OverviewApigee Products Overview
Apigee Products Overview
Apigee | Google Cloud
 
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
SlashData
 
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 Actions
Apigee | 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 R
Anqi Fu
 
Cassandra on Docker
Cassandra on DockerCassandra on Docker
Cassandra on Docker
Instaclustr
 
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
Sri Ambati
 
Apigee Edge Product Demo
Apigee Edge Product DemoApigee Edge Product Demo
Apigee Edge Product Demo
Apigee | Google Cloud
 

Viewers also liked (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
 

Similar to 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 Infrastructure
Apigee | 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 APIs
Apigee | 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 Cloud
Revelation Technologies
 
Programming with Azure Active Directory
Programming with Azure Active DirectoryProgramming with Azure Active Directory
Programming with Azure Active Directory
Joonas 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 applications
LibbySchulze
 
Prototyping applications with heroku and elasticsearch
 Prototyping applications with heroku and elasticsearch Prototyping applications with heroku and elasticsearch
Prototyping applications with heroku and elasticsearch
protofy
 
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
James 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 Update
Patrick 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 Update
Patrick 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 Bluemix
Arthur 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 2014
cornelia 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 Presentation
Chris Schalk
 
Dirigible @ Skyscanner
Dirigible @ SkyscannerDirigible @ Skyscanner
Dirigible @ Skyscanner
Jordan Pavlov
 
Openshift Container Platform: First ItalyMeetup
Openshift Container Platform: First ItalyMeetupOpenshift Container Platform: First ItalyMeetup
Openshift Container Platform: First ItalyMeetup
Giuseppe 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 Testing
Bitbar
 
Designing, Implementing, and Using Reactive APIs
Designing, Implementing, and Using Reactive APIsDesigning, Implementing, and Using Reactive APIs
Designing, Implementing, and Using Reactive APIs
VMware 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
 

Similar to 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 되새기기
 

Recently uploaded

Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
Peter Caitens
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Hivelance Technology
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
Jelle | Nordend
 
Software Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdfSoftware Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdf
MayankTawar1
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 

Recently uploaded (20)

Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
 
Software Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdfSoftware Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdf
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 

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