SlideShare a Scribd company logo
1 of 32
Download to read offline
© 2014 IBM Corporation 
Building Applications for Success 
Glynn Bird, Developer Advocate
Agenda 
• Application Development 
• Scaling 
• Real-world examples & how can Cloudant help?
Introduction 
Glynn Bird 
Developer Advocate 
Cloudant 
http://glynnbird.com 
@glynn_bird glynn@cloudant.com
Development - Go-to tools 
Basic 
1980s 1990s 2000s 2010s 
Pascal 
C 
C++ 
Forth 
PHP4 
Java 
ObjC 
PHP5 
Node.js 
File System 
NoSQL SQL
Scalability? 
• Pick your tools of choice 
• PHP + MySQL, Ruby + Mongo 
• Build on your machine 
• Deploy! 
• Scalability is an ops problem? 
• Hint: “no”
Scaling tip #1 - Keep things separate 
• Separate 
• load balancing 
• app 
• database 
• cache 
• Separation of layers allows 
independent scaling 
Google’s first server rack 
http://bit.ly/10xGe2Y
Scaling tip #2 - Keep app servers stateless 
• Store all persistent data in a 
database 
• Don’t be tempted to store 
sessions on local disk 
• Stateless app servers can be 
created and destroyed at will 
IBM 305 RAMAC 5Mb Disk - 1957 
http://bit.ly/10xGe2Y
Scaling tip #3 - queue-driven workflow 
• Store tasks in queues 
• Workers servers consume the 
queue 
• Queues allow workers to be 
scaled at will 
http://bit.ly/1Aycjse
Scaling tip #4 - Automate everything 
• No need to manually 
configure servers 
anymore 
• Workers servers 
consume the queue 
• It should be as easy to 
deploy N servers as 1 
server 
http://bit.ly/1Aycjse
What does failure to scale look like? 
http://bit.ly/1Aycjse
What does failure to scale look like? 
• increased latency 
• downtime 
• high maintenance costs 
• data loss 
• disgruntled customers 
http://bit.ly/1Aycjse
Cloudant Highlights 
• Founded in 2009 by data scientists: 
Hoffman, Miller & Kocoloski 
• 20,000+ freemium and 225+ paying 
customers 
• Key collaboration & investment 
agreement with Samsung Electronics 
• HQ’d in Boston with offices/presence in 
Seattle, San Francisco, Bristol, UK & 
Seoul, SK 
• 34 global locations on 4 hosting 
providers 
• Acquired by IBM in February 2014 into 
the Information Management software 
group
Cloudant NoSQL DBaaS 
App Layer / Browser / Mobile App 
REST (HTTPS) 
Cloudant JSON API 
Incremental 
MapReduce Security Monitoring 
Geo-Load Balancing 
Indexed 
JSON 
Storage 
Physical Storage @ IBM SoftLayer, Rackspace, Microsoft Azure, AWS 
JSON 
CRUD 
Multi- 
Master 
Replication 
Device 
Sync 
Lucene 
Search 
2D, 3D 
Geospatial 
IO 
Control 
Managed for you 24x7 by Cloudant developer-operators
How can Cloudant help you to scale? 
Cloudant empowers clients to get their applications to market faster in a cost-effective, 
hassle-free delivery model with guaranteed performance and support. 
• Scales massively & elastically 
• Handle millions of daily active users 
• Guaranteed performance & up time 
• Removes risk of project & SLA delivery failure 
• More agile development for web & mobile 
• No rigid schemas to slow development 
• Managed for you 24x7 
• Stay focused on new development, no DB administration
Example 1 - IoT Data Logging 
• Temperature sensor £1.50 
• Raspberry Pi £25 
• Network attached 
thermometer 
DS18B20
DS18B20 
Software 
• Bash script 
• Where should 
we put the data 
? 
sensorid=`find /sys/bus/w1/devices/* -type l | grep -o '[0-9]*-.*$' | head -n 1` 
filename="/sys/bus/w1/devices/$sensorid/w1_slave" 
T=`tail -n 1 "$filename" | grep -o "[0-9]*$"` 
t=${T:0:2}.${T:2:3} 
unix=`date "+%s"` 
d=`date "+%Y-%m-%d %H:%M:%S %Z"` 
json="{ "ts": $unix, "date": "$d", "temperature": $t, "sensor_id": 
"$sensorid" }"
DS18B20 
Storage 
• Local CouchDB 
• Installed with 
one line 
sensorid=`find /sys/bus/w1/devices/* -type l | grep -o '[0-9]*-.*$' | head -n 1` 
filename="/sys/bus/w1/devices/$sensorid/w1_slave" 
T=`tail -n 1 "$filename" | grep -o "[0-9]*$"` 
t=${T:0:2}.${T:2:3} 
unix=`date "+%s"` 
d=`date "+%Y-%m-%d %H:%M:%S %Z"` 
json="{ "ts": $unix, "date": "$d", "temperature": $t, "sensor_id": 
"$sensorid" }" 
curl -X POST -H "Content-Type: application/json" -d "$json" "http://localhost: 
5984/logger/"
Where does Cloudant fit in? 
• Replicate to 
Cloudant 
• Scale by adding 
more sensors 
• Data collection 
can be offline 
• Sync when 
connected
Demo 
• http://celsius.mybluemix.net
Why is Cloudant a good fit? 
• Replication 
• collect data at the edge, replicate when online 
• Cloudant can store data at massive scale with high 
availability 
• Time-series data is a great fit for Cloudant
Time-series data in Cloudant 
• MapReduce indexes 
on date field 
• Allows range querying 
with grouping e.g. find 
min/max/avg between 
two dates, grouped by 
year/month/day/hour 
etc. 
{ 
"_id": "00339bc7", 
"_rev": "1-0ef01b53", 
"ts": 1411723490, 
"date": "2014-09-26 09:24:50 UTC", 
"temperature": 20.937, 
"sensor_id": "28-000006746cde" 
} 
[2014,9,26,9,24,50] ---> 20.937
Example #2 - Mobile applications 
• Mobile game 
• Stores games state, usage stats, 
achievements etc. locally 
• Needs to be cross-platform
Option 1 - PouchDB + HTML5 
• In-browser, cross-platform 
datastore 
• CouchDB compatible 
• Syncs with Cloudant 
http://pouchdb.com/
Option 2 - CloudantSync 
• iOS and Android 
native libraries 
• Local storage + query 
• Syncs to and from 
Cloudant 
https://cloudant.com/product/cloudant-features/sync/
One database per user
One database per user 
• Each user’s data has it’s own access control 
• Each database is relatively small; small enough to fit 
on phone 
• Scales massively; hundreds of thousands of 
concurrent users 
https://cloudant.com/product/cloudant-features/sync/
Demo 
• Business Card collection app 
• Native Android App 
• Companion Web App 
https://cloudant.com/product/cloudant-features/sync/
How did that work? 
Android Phone App 
pouchdb 
IBM BlueMix 
Web App
What about the code? 
var db = new PouchDB("myfirstdatabase"); 
db.post( { a:1, b: "2", c: true } ); 
db.sync(URL, { live: true }); 
https://cloudant.com/product/cloudant-features/sync/
Why is Cloudant a good fit? 
• Replication is a hard problem. PouchDB + Cloudant solve it 
• One database per-user is a great way to scale mobile apps
Conclusion 
• Building with Cloudant as your data layer has become a “go 
to” development solution 
• Building with Cloudant builds in scale from day one 
• large data sets 
• lots of smaller data sets 
• Cloudant syncs! 
https://cloudant.com/product/cloudant-features/sync/

More Related Content

What's hot

Data Platform Overview
Data Platform OverviewData Platform Overview
Data Platform Overview
Hamid J. Fard
 
Triple C - Centralize, Cloudify and Consolidate Dozens of Oracle Databases (O...
Triple C - Centralize, Cloudify and Consolidate Dozens of Oracle Databases (O...Triple C - Centralize, Cloudify and Consolidate Dozens of Oracle Databases (O...
Triple C - Centralize, Cloudify and Consolidate Dozens of Oracle Databases (O...
Lucas Jellema
 
Cloud-based Linked Data Management for Self-service Application Development
Cloud-based Linked Data Management for Self-service Application DevelopmentCloud-based Linked Data Management for Self-service Application Development
Cloud-based Linked Data Management for Self-service Application Development
Peter Haase
 

What's hot (20)

Data Platform Overview
Data Platform OverviewData Platform Overview
Data Platform Overview
 
Azure Cosmos DB
Azure Cosmos DBAzure Cosmos DB
Azure Cosmos DB
 
Azure data platform overview
Azure data platform overviewAzure data platform overview
Azure data platform overview
 
Azure Hd insigth news
Azure Hd insigth newsAzure Hd insigth news
Azure Hd insigth news
 
AWS Partner Webcast - Hadoop in the Cloud: Unlocking the Potential of Big Dat...
AWS Partner Webcast - Hadoop in the Cloud: Unlocking the Potential of Big Dat...AWS Partner Webcast - Hadoop in the Cloud: Unlocking the Potential of Big Dat...
AWS Partner Webcast - Hadoop in the Cloud: Unlocking the Potential of Big Dat...
 
Triple C - Centralize, Cloudify and Consolidate Dozens of Oracle Databases (O...
Triple C - Centralize, Cloudify and Consolidate Dozens of Oracle Databases (O...Triple C - Centralize, Cloudify and Consolidate Dozens of Oracle Databases (O...
Triple C - Centralize, Cloudify and Consolidate Dozens of Oracle Databases (O...
 
Introduction to Windows Azure Data Services
Introduction to Windows Azure Data ServicesIntroduction to Windows Azure Data Services
Introduction to Windows Azure Data Services
 
Windows on AWS
Windows on AWSWindows on AWS
Windows on AWS
 
Jax Cloud 2016 Microsoft Ignite Recap
Jax Cloud 2016 Microsoft Ignite RecapJax Cloud 2016 Microsoft Ignite Recap
Jax Cloud 2016 Microsoft Ignite Recap
 
Azure Data services
Azure Data servicesAzure Data services
Azure Data services
 
An Introduction to Cloud Computing by Robert Grossman 08-06-09 (v19)
An Introduction to Cloud Computing by Robert Grossman 08-06-09 (v19)An Introduction to Cloud Computing by Robert Grossman 08-06-09 (v19)
An Introduction to Cloud Computing by Robert Grossman 08-06-09 (v19)
 
ITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data Lake
ITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data LakeITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data Lake
ITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data Lake
 
Review Oracle OpenWorld 2015 - Overview, Main themes, Announcements and Future
Review Oracle OpenWorld 2015 - Overview, Main themes, Announcements and FutureReview Oracle OpenWorld 2015 - Overview, Main themes, Announcements and Future
Review Oracle OpenWorld 2015 - Overview, Main themes, Announcements and Future
 
Ppt on cloud service
Ppt on cloud servicePpt on cloud service
Ppt on cloud service
 
SQL Server Lift & Shift on Azure - SQL Saturday 921
SQL Server Lift & Shift on Azure - SQL Saturday 921SQL Server Lift & Shift on Azure - SQL Saturday 921
SQL Server Lift & Shift on Azure - SQL Saturday 921
 
Zero to 60 with Azure Cosmos DB
Zero to 60 with Azure Cosmos DBZero to 60 with Azure Cosmos DB
Zero to 60 with Azure Cosmos DB
 
Key Design Considerations Private and Hybrid Clouds - RightScale Compute 2013
Key Design Considerations Private and Hybrid Clouds - RightScale Compute 2013Key Design Considerations Private and Hybrid Clouds - RightScale Compute 2013
Key Design Considerations Private and Hybrid Clouds - RightScale Compute 2013
 
Select Stars: A DBA's Guide to Azure Cosmos DB (SQL Saturday Oslo 2018)
Select Stars: A DBA's Guide to Azure Cosmos DB (SQL Saturday Oslo 2018)Select Stars: A DBA's Guide to Azure Cosmos DB (SQL Saturday Oslo 2018)
Select Stars: A DBA's Guide to Azure Cosmos DB (SQL Saturday Oslo 2018)
 
How companies use NoSQL & Couchbase - NoSQL Now 2014
How companies use NoSQL & Couchbase - NoSQL Now 2014How companies use NoSQL & Couchbase - NoSQL Now 2014
How companies use NoSQL & Couchbase - NoSQL Now 2014
 
Cloud-based Linked Data Management for Self-service Application Development
Cloud-based Linked Data Management for Self-service Application DevelopmentCloud-based Linked Data Management for Self-service Application Development
Cloud-based Linked Data Management for Self-service Application Development
 

Similar to Glynn Bird – Cloudant – Building applications for success.- NoSQL matters Barcelona 2014

Busy Bee Application Develompent Platform
Busy Bee Application Develompent PlatformBusy Bee Application Develompent Platform
Busy Bee Application Develompent Platform
Utkarsh Shukla
 
"Portrait of the developer as The Artist" Lockheed Architect Workshop
"Portrait of the developer as The Artist" Lockheed Architect Workshop"Portrait of the developer as The Artist" Lockheed Architect Workshop
"Portrait of the developer as The Artist" Lockheed Architect Workshop
Patrick Chanezon
 
Right scale enterprise solution
Right scale enterprise solution Right scale enterprise solution
Right scale enterprise solution
Brad , Yun Lee
 

Similar to Glynn Bird – Cloudant – Building applications for success.- NoSQL matters Barcelona 2014 (20)

Busy Bee Application Develompent Platform
Busy Bee Application Develompent PlatformBusy Bee Application Develompent Platform
Busy Bee Application Develompent Platform
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Can Your Mobile Infrastructure Survive 1 Million Concurrent Users?
Can Your Mobile Infrastructure Survive 1 Million Concurrent Users?Can Your Mobile Infrastructure Survive 1 Million Concurrent Users?
Can Your Mobile Infrastructure Survive 1 Million Concurrent Users?
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Acting on Real-time Behavior: How Peak Games Won Transactions
Acting on Real-time Behavior: How Peak Games Won TransactionsActing on Real-time Behavior: How Peak Games Won Transactions
Acting on Real-time Behavior: How Peak Games Won Transactions
 
IBM - Introduction to Cloudant
IBM - Introduction to CloudantIBM - Introduction to Cloudant
IBM - Introduction to Cloudant
 
.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles
 
JAX 2014 - The PaaS to a better IT architecture.
JAX 2014 - The PaaS to a better IT architecture.JAX 2014 - The PaaS to a better IT architecture.
JAX 2014 - The PaaS to a better IT architecture.
 
IBM s'associe au SmartHome Challenge
IBM s'associe au SmartHome ChallengeIBM s'associe au SmartHome Challenge
IBM s'associe au SmartHome Challenge
 
Up and Running with firebase
Up and Running with firebaseUp and Running with firebase
Up and Running with firebase
 
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the CloudMongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
 
Lessons learned while going serverless in production
Lessons learned while going serverless in productionLessons learned while going serverless in production
Lessons learned while going serverless in production
 
Azure mobile services
Azure mobile servicesAzure mobile services
Azure mobile services
 
"Portrait of the developer as The Artist" Lockheed Architect Workshop
"Portrait of the developer as The Artist" Lockheed Architect Workshop"Portrait of the developer as The Artist" Lockheed Architect Workshop
"Portrait of the developer as The Artist" Lockheed Architect Workshop
 
Preventative Maintenance of Robots in Automotive Industry
Preventative Maintenance of Robots in Automotive IndustryPreventative Maintenance of Robots in Automotive Industry
Preventative Maintenance of Robots in Automotive Industry
 
Migrating Java EE applications to IBM Bluemix platform as-a-service (CloudFou...
Migrating Java EE applications to IBM Bluemix platform as-a-service (CloudFou...Migrating Java EE applications to IBM Bluemix platform as-a-service (CloudFou...
Migrating Java EE applications to IBM Bluemix platform as-a-service (CloudFou...
 
Build a Cloud Day Paris
Build a Cloud Day ParisBuild a Cloud Day Paris
Build a Cloud Day Paris
 
Multi-homed applications
Multi-homed applicationsMulti-homed applications
Multi-homed applications
 
Right scale enterprise solution
Right scale enterprise solution Right scale enterprise solution
Right scale enterprise solution
 
Right scale enterprise solution
Right scale enterprise solution Right scale enterprise solution
Right scale enterprise solution
 

More from NoSQLmatters

Mark Harwood - Building Entity Centric Indexes - NoSQL matters Dublin 2015
Mark Harwood - Building Entity Centric Indexes - NoSQL matters Dublin 2015Mark Harwood - Building Entity Centric Indexes - NoSQL matters Dublin 2015
Mark Harwood - Building Entity Centric Indexes - NoSQL matters Dublin 2015
NoSQLmatters
 
Akmal Chaudhri - How to Build Streaming Data Applications: Evaluating the Top...
Akmal Chaudhri - How to Build Streaming Data Applications: Evaluating the Top...Akmal Chaudhri - How to Build Streaming Data Applications: Evaluating the Top...
Akmal Chaudhri - How to Build Streaming Data Applications: Evaluating the Top...
NoSQLmatters
 
Chris Ward - Understanding databases for distributed docker applications - No...
Chris Ward - Understanding databases for distributed docker applications - No...Chris Ward - Understanding databases for distributed docker applications - No...
Chris Ward - Understanding databases for distributed docker applications - No...
NoSQLmatters
 

More from NoSQLmatters (20)

Nathan Ford- Divination of the Defects (Graph-Based Defect Prediction through...
Nathan Ford- Divination of the Defects (Graph-Based Defect Prediction through...Nathan Ford- Divination of the Defects (Graph-Based Defect Prediction through...
Nathan Ford- Divination of the Defects (Graph-Based Defect Prediction through...
 
Stefan Hochdörfer - The NoSQL Store everyone ignores: PostgreSQL - NoSQL matt...
Stefan Hochdörfer - The NoSQL Store everyone ignores: PostgreSQL - NoSQL matt...Stefan Hochdörfer - The NoSQL Store everyone ignores: PostgreSQL - NoSQL matt...
Stefan Hochdörfer - The NoSQL Store everyone ignores: PostgreSQL - NoSQL matt...
 
Adrian Colyer - Keynote: NoSQL matters - NoSQL matters Dublin 2015
Adrian Colyer - Keynote: NoSQL matters - NoSQL matters Dublin 2015Adrian Colyer - Keynote: NoSQL matters - NoSQL matters Dublin 2015
Adrian Colyer - Keynote: NoSQL matters - NoSQL matters Dublin 2015
 
Peter Bakas - Zero to Insights - Real time analytics with Kafka, C*, and Spar...
Peter Bakas - Zero to Insights - Real time analytics with Kafka, C*, and Spar...Peter Bakas - Zero to Insights - Real time analytics with Kafka, C*, and Spar...
Peter Bakas - Zero to Insights - Real time analytics with Kafka, C*, and Spar...
 
Dan Sullivan - Data Analytics and Text Mining with MongoDB - NoSQL matters Du...
Dan Sullivan - Data Analytics and Text Mining with MongoDB - NoSQL matters Du...Dan Sullivan - Data Analytics and Text Mining with MongoDB - NoSQL matters Du...
Dan Sullivan - Data Analytics and Text Mining with MongoDB - NoSQL matters Du...
 
Mark Harwood - Building Entity Centric Indexes - NoSQL matters Dublin 2015
Mark Harwood - Building Entity Centric Indexes - NoSQL matters Dublin 2015Mark Harwood - Building Entity Centric Indexes - NoSQL matters Dublin 2015
Mark Harwood - Building Entity Centric Indexes - NoSQL matters Dublin 2015
 
Prassnitha Sampath - Real Time Big Data Analytics with Kafka, Storm & HBase -...
Prassnitha Sampath - Real Time Big Data Analytics with Kafka, Storm & HBase -...Prassnitha Sampath - Real Time Big Data Analytics with Kafka, Storm & HBase -...
Prassnitha Sampath - Real Time Big Data Analytics with Kafka, Storm & HBase -...
 
Akmal Chaudhri - How to Build Streaming Data Applications: Evaluating the Top...
Akmal Chaudhri - How to Build Streaming Data Applications: Evaluating the Top...Akmal Chaudhri - How to Build Streaming Data Applications: Evaluating the Top...
Akmal Chaudhri - How to Build Streaming Data Applications: Evaluating the Top...
 
Michael Hackstein - NoSQL meets Microservices - NoSQL matters Dublin 2015
Michael Hackstein - NoSQL meets Microservices - NoSQL matters Dublin 2015Michael Hackstein - NoSQL meets Microservices - NoSQL matters Dublin 2015
Michael Hackstein - NoSQL meets Microservices - NoSQL matters Dublin 2015
 
Chris Ward - Understanding databases for distributed docker applications - No...
Chris Ward - Understanding databases for distributed docker applications - No...Chris Ward - Understanding databases for distributed docker applications - No...
Chris Ward - Understanding databases for distributed docker applications - No...
 
Philipp Krenn - Host your database in the cloud, they said... - NoSQL matters...
Philipp Krenn - Host your database in the cloud, they said... - NoSQL matters...Philipp Krenn - Host your database in the cloud, they said... - NoSQL matters...
Philipp Krenn - Host your database in the cloud, they said... - NoSQL matters...
 
Lucian Precup - Back to the Future: SQL 92 for Elasticsearch? - NoSQL matters...
Lucian Precup - Back to the Future: SQL 92 for Elasticsearch? - NoSQL matters...Lucian Precup - Back to the Future: SQL 92 for Elasticsearch? - NoSQL matters...
Lucian Precup - Back to the Future: SQL 92 for Elasticsearch? - NoSQL matters...
 
Bruno Guedes - Hadoop real time for dummies - NoSQL matters Paris 2015
Bruno Guedes - Hadoop real time for dummies - NoSQL matters Paris 2015Bruno Guedes - Hadoop real time for dummies - NoSQL matters Paris 2015
Bruno Guedes - Hadoop real time for dummies - NoSQL matters Paris 2015
 
DuyHai DOAN - Real time analytics with Cassandra and Spark - NoSQL matters Pa...
DuyHai DOAN - Real time analytics with Cassandra and Spark - NoSQL matters Pa...DuyHai DOAN - Real time analytics with Cassandra and Spark - NoSQL matters Pa...
DuyHai DOAN - Real time analytics with Cassandra and Spark - NoSQL matters Pa...
 
Benjamin Guinebertière - Microsoft Azure: Document DB and other noSQL databas...
Benjamin Guinebertière - Microsoft Azure: Document DB and other noSQL databas...Benjamin Guinebertière - Microsoft Azure: Document DB and other noSQL databas...
Benjamin Guinebertière - Microsoft Azure: Document DB and other noSQL databas...
 
David Pilato - Advance search for your legacy application - NoSQL matters Par...
David Pilato - Advance search for your legacy application - NoSQL matters Par...David Pilato - Advance search for your legacy application - NoSQL matters Par...
David Pilato - Advance search for your legacy application - NoSQL matters Par...
 
Tugdual Grall - From SQL to NoSQL in less than 40 min - NoSQL matters Paris 2015
Tugdual Grall - From SQL to NoSQL in less than 40 min - NoSQL matters Paris 2015Tugdual Grall - From SQL to NoSQL in less than 40 min - NoSQL matters Paris 2015
Tugdual Grall - From SQL to NoSQL in less than 40 min - NoSQL matters Paris 2015
 
Gregorry Letribot - Druid at Criteo - NoSQL matters 2015
Gregorry Letribot - Druid at Criteo - NoSQL matters 2015Gregorry Letribot - Druid at Criteo - NoSQL matters 2015
Gregorry Letribot - Druid at Criteo - NoSQL matters 2015
 
Michael Hackstein - Polyglot Persistence & Multi-Model NoSQL Databases - NoSQ...
Michael Hackstein - Polyglot Persistence & Multi-Model NoSQL Databases - NoSQ...Michael Hackstein - Polyglot Persistence & Multi-Model NoSQL Databases - NoSQ...
Michael Hackstein - Polyglot Persistence & Multi-Model NoSQL Databases - NoSQ...
 
Rob Harrop- Key Note The God, the Bad and the Ugly - NoSQL matters Paris 2015
Rob Harrop- Key Note The God, the Bad and the Ugly - NoSQL matters Paris 2015Rob Harrop- Key Note The God, the Bad and the Ugly - NoSQL matters Paris 2015
Rob Harrop- Key Note The God, the Bad and the Ugly - NoSQL matters Paris 2015
 

Recently uploaded

Top profile Call Girls In Vadodara [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Vadodara [ 7014168258 ] Call Me For Genuine Models ...Top profile Call Girls In Vadodara [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Vadodara [ 7014168258 ] Call Me For Genuine Models ...
gajnagarg
 
Abortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get CytotecAbortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Riyadh +966572737505 get cytotec
 
Top profile Call Girls In Satna [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Satna [ 7014168258 ] Call Me For Genuine Models We ...Top profile Call Girls In Satna [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Satna [ 7014168258 ] Call Me For Genuine Models We ...
nirzagarg
 
如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样
如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样
如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样
wsppdmt
 
Computer science Sql cheat sheet.pdf.pdf
Computer science Sql cheat sheet.pdf.pdfComputer science Sql cheat sheet.pdf.pdf
Computer science Sql cheat sheet.pdf.pdf
SayantanBiswas37
 
Gartner's Data Analytics Maturity Model.pptx
Gartner's Data Analytics Maturity Model.pptxGartner's Data Analytics Maturity Model.pptx
Gartner's Data Analytics Maturity Model.pptx
chadhar227
 
Top profile Call Girls In Chandrapur [ 7014168258 ] Call Me For Genuine Model...
Top profile Call Girls In Chandrapur [ 7014168258 ] Call Me For Genuine Model...Top profile Call Girls In Chandrapur [ 7014168258 ] Call Me For Genuine Model...
Top profile Call Girls In Chandrapur [ 7014168258 ] Call Me For Genuine Model...
gajnagarg
 
Top profile Call Girls In Indore [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Indore [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Indore [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Indore [ 7014168258 ] Call Me For Genuine Models We...
gajnagarg
 

Recently uploaded (20)

SAC 25 Final National, Regional & Local Angel Group Investing Insights 2024 0...
SAC 25 Final National, Regional & Local Angel Group Investing Insights 2024 0...SAC 25 Final National, Regional & Local Angel Group Investing Insights 2024 0...
SAC 25 Final National, Regional & Local Angel Group Investing Insights 2024 0...
 
Top profile Call Girls In Vadodara [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Vadodara [ 7014168258 ] Call Me For Genuine Models ...Top profile Call Girls In Vadodara [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Vadodara [ 7014168258 ] Call Me For Genuine Models ...
 
Statistics notes ,it includes mean to index numbers
Statistics notes ,it includes mean to index numbersStatistics notes ,it includes mean to index numbers
Statistics notes ,it includes mean to index numbers
 
Abortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get CytotecAbortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get Cytotec
 
Top profile Call Girls In Satna [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Satna [ 7014168258 ] Call Me For Genuine Models We ...Top profile Call Girls In Satna [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Satna [ 7014168258 ] Call Me For Genuine Models We ...
 
如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样
如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样
如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样
 
TrafficWave Generator Will Instantly drive targeted and engaging traffic back...
TrafficWave Generator Will Instantly drive targeted and engaging traffic back...TrafficWave Generator Will Instantly drive targeted and engaging traffic back...
TrafficWave Generator Will Instantly drive targeted and engaging traffic back...
 
RESEARCH-FINAL-DEFENSE-PPT-TEMPLATE.pptx
RESEARCH-FINAL-DEFENSE-PPT-TEMPLATE.pptxRESEARCH-FINAL-DEFENSE-PPT-TEMPLATE.pptx
RESEARCH-FINAL-DEFENSE-PPT-TEMPLATE.pptx
 
Computer science Sql cheat sheet.pdf.pdf
Computer science Sql cheat sheet.pdf.pdfComputer science Sql cheat sheet.pdf.pdf
Computer science Sql cheat sheet.pdf.pdf
 
Vadodara 💋 Call Girl 7737669865 Call Girls in Vadodara Escort service book now
Vadodara 💋 Call Girl 7737669865 Call Girls in Vadodara Escort service book nowVadodara 💋 Call Girl 7737669865 Call Girls in Vadodara Escort service book now
Vadodara 💋 Call Girl 7737669865 Call Girls in Vadodara Escort service book now
 
Gartner's Data Analytics Maturity Model.pptx
Gartner's Data Analytics Maturity Model.pptxGartner's Data Analytics Maturity Model.pptx
Gartner's Data Analytics Maturity Model.pptx
 
High Profile Call Girls Service in Jalore { 9332606886 } VVIP NISHA Call Girl...
High Profile Call Girls Service in Jalore { 9332606886 } VVIP NISHA Call Girl...High Profile Call Girls Service in Jalore { 9332606886 } VVIP NISHA Call Girl...
High Profile Call Girls Service in Jalore { 9332606886 } VVIP NISHA Call Girl...
 
Top profile Call Girls In Chandrapur [ 7014168258 ] Call Me For Genuine Model...
Top profile Call Girls In Chandrapur [ 7014168258 ] Call Me For Genuine Model...Top profile Call Girls In Chandrapur [ 7014168258 ] Call Me For Genuine Model...
Top profile Call Girls In Chandrapur [ 7014168258 ] Call Me For Genuine Model...
 
Top profile Call Girls In Indore [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Indore [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Indore [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Indore [ 7014168258 ] Call Me For Genuine Models We...
 
Top Call Girls in Balaghat 9332606886Call Girls Advance Cash On Delivery Ser...
Top Call Girls in Balaghat  9332606886Call Girls Advance Cash On Delivery Ser...Top Call Girls in Balaghat  9332606886Call Girls Advance Cash On Delivery Ser...
Top Call Girls in Balaghat 9332606886Call Girls Advance Cash On Delivery Ser...
 
Ranking and Scoring Exercises for Research
Ranking and Scoring Exercises for ResearchRanking and Scoring Exercises for Research
Ranking and Scoring Exercises for Research
 
Discover Why Less is More in B2B Research
Discover Why Less is More in B2B ResearchDiscover Why Less is More in B2B Research
Discover Why Less is More in B2B Research
 
Aspirational Block Program Block Syaldey District - Almora
Aspirational Block Program Block Syaldey District - AlmoraAspirational Block Program Block Syaldey District - Almora
Aspirational Block Program Block Syaldey District - Almora
 
Nirala Nagar / Cheap Call Girls In Lucknow Phone No 9548273370 Elite Escort S...
Nirala Nagar / Cheap Call Girls In Lucknow Phone No 9548273370 Elite Escort S...Nirala Nagar / Cheap Call Girls In Lucknow Phone No 9548273370 Elite Escort S...
Nirala Nagar / Cheap Call Girls In Lucknow Phone No 9548273370 Elite Escort S...
 
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
 

Glynn Bird – Cloudant – Building applications for success.- NoSQL matters Barcelona 2014

  • 1. © 2014 IBM Corporation Building Applications for Success Glynn Bird, Developer Advocate
  • 2. Agenda • Application Development • Scaling • Real-world examples & how can Cloudant help?
  • 3. Introduction Glynn Bird Developer Advocate Cloudant http://glynnbird.com @glynn_bird glynn@cloudant.com
  • 4. Development - Go-to tools Basic 1980s 1990s 2000s 2010s Pascal C C++ Forth PHP4 Java ObjC PHP5 Node.js File System NoSQL SQL
  • 5. Scalability? • Pick your tools of choice • PHP + MySQL, Ruby + Mongo • Build on your machine • Deploy! • Scalability is an ops problem? • Hint: “no”
  • 6. Scaling tip #1 - Keep things separate • Separate • load balancing • app • database • cache • Separation of layers allows independent scaling Google’s first server rack http://bit.ly/10xGe2Y
  • 7. Scaling tip #2 - Keep app servers stateless • Store all persistent data in a database • Don’t be tempted to store sessions on local disk • Stateless app servers can be created and destroyed at will IBM 305 RAMAC 5Mb Disk - 1957 http://bit.ly/10xGe2Y
  • 8. Scaling tip #3 - queue-driven workflow • Store tasks in queues • Workers servers consume the queue • Queues allow workers to be scaled at will http://bit.ly/1Aycjse
  • 9. Scaling tip #4 - Automate everything • No need to manually configure servers anymore • Workers servers consume the queue • It should be as easy to deploy N servers as 1 server http://bit.ly/1Aycjse
  • 10. What does failure to scale look like? http://bit.ly/1Aycjse
  • 11.
  • 12. What does failure to scale look like? • increased latency • downtime • high maintenance costs • data loss • disgruntled customers http://bit.ly/1Aycjse
  • 13. Cloudant Highlights • Founded in 2009 by data scientists: Hoffman, Miller & Kocoloski • 20,000+ freemium and 225+ paying customers • Key collaboration & investment agreement with Samsung Electronics • HQ’d in Boston with offices/presence in Seattle, San Francisco, Bristol, UK & Seoul, SK • 34 global locations on 4 hosting providers • Acquired by IBM in February 2014 into the Information Management software group
  • 14. Cloudant NoSQL DBaaS App Layer / Browser / Mobile App REST (HTTPS) Cloudant JSON API Incremental MapReduce Security Monitoring Geo-Load Balancing Indexed JSON Storage Physical Storage @ IBM SoftLayer, Rackspace, Microsoft Azure, AWS JSON CRUD Multi- Master Replication Device Sync Lucene Search 2D, 3D Geospatial IO Control Managed for you 24x7 by Cloudant developer-operators
  • 15. How can Cloudant help you to scale? Cloudant empowers clients to get their applications to market faster in a cost-effective, hassle-free delivery model with guaranteed performance and support. • Scales massively & elastically • Handle millions of daily active users • Guaranteed performance & up time • Removes risk of project & SLA delivery failure • More agile development for web & mobile • No rigid schemas to slow development • Managed for you 24x7 • Stay focused on new development, no DB administration
  • 16. Example 1 - IoT Data Logging • Temperature sensor £1.50 • Raspberry Pi £25 • Network attached thermometer DS18B20
  • 17. DS18B20 Software • Bash script • Where should we put the data ? sensorid=`find /sys/bus/w1/devices/* -type l | grep -o '[0-9]*-.*$' | head -n 1` filename="/sys/bus/w1/devices/$sensorid/w1_slave" T=`tail -n 1 "$filename" | grep -o "[0-9]*$"` t=${T:0:2}.${T:2:3} unix=`date "+%s"` d=`date "+%Y-%m-%d %H:%M:%S %Z"` json="{ "ts": $unix, "date": "$d", "temperature": $t, "sensor_id": "$sensorid" }"
  • 18. DS18B20 Storage • Local CouchDB • Installed with one line sensorid=`find /sys/bus/w1/devices/* -type l | grep -o '[0-9]*-.*$' | head -n 1` filename="/sys/bus/w1/devices/$sensorid/w1_slave" T=`tail -n 1 "$filename" | grep -o "[0-9]*$"` t=${T:0:2}.${T:2:3} unix=`date "+%s"` d=`date "+%Y-%m-%d %H:%M:%S %Z"` json="{ "ts": $unix, "date": "$d", "temperature": $t, "sensor_id": "$sensorid" }" curl -X POST -H "Content-Type: application/json" -d "$json" "http://localhost: 5984/logger/"
  • 19. Where does Cloudant fit in? • Replicate to Cloudant • Scale by adding more sensors • Data collection can be offline • Sync when connected
  • 21. Why is Cloudant a good fit? • Replication • collect data at the edge, replicate when online • Cloudant can store data at massive scale with high availability • Time-series data is a great fit for Cloudant
  • 22. Time-series data in Cloudant • MapReduce indexes on date field • Allows range querying with grouping e.g. find min/max/avg between two dates, grouped by year/month/day/hour etc. { "_id": "00339bc7", "_rev": "1-0ef01b53", "ts": 1411723490, "date": "2014-09-26 09:24:50 UTC", "temperature": 20.937, "sensor_id": "28-000006746cde" } [2014,9,26,9,24,50] ---> 20.937
  • 23. Example #2 - Mobile applications • Mobile game • Stores games state, usage stats, achievements etc. locally • Needs to be cross-platform
  • 24. Option 1 - PouchDB + HTML5 • In-browser, cross-platform datastore • CouchDB compatible • Syncs with Cloudant http://pouchdb.com/
  • 25. Option 2 - CloudantSync • iOS and Android native libraries • Local storage + query • Syncs to and from Cloudant https://cloudant.com/product/cloudant-features/sync/
  • 27. One database per user • Each user’s data has it’s own access control • Each database is relatively small; small enough to fit on phone • Scales massively; hundreds of thousands of concurrent users https://cloudant.com/product/cloudant-features/sync/
  • 28. Demo • Business Card collection app • Native Android App • Companion Web App https://cloudant.com/product/cloudant-features/sync/
  • 29. How did that work? Android Phone App pouchdb IBM BlueMix Web App
  • 30. What about the code? var db = new PouchDB("myfirstdatabase"); db.post( { a:1, b: "2", c: true } ); db.sync(URL, { live: true }); https://cloudant.com/product/cloudant-features/sync/
  • 31. Why is Cloudant a good fit? • Replication is a hard problem. PouchDB + Cloudant solve it • One database per-user is a great way to scale mobile apps
  • 32. Conclusion • Building with Cloudant as your data layer has become a “go to” development solution • Building with Cloudant builds in scale from day one • large data sets • lots of smaller data sets • Cloudant syncs! https://cloudant.com/product/cloudant-features/sync/