• Share
  • Email
  • Embed
  • Like
  • Private Content
Webinar - Developing Mobile Apps With NoSQL
 

Webinar - Developing Mobile Apps With NoSQL

on

  • 1,965 views

We are in the post-PC era – more mobile computing devices (smartphones, tablets) ship per quarter than PC’s, and have since the fourth quarter of 2010*. Mobile devices are where we gather and ...

We are in the post-PC era – more mobile computing devices (smartphones, tablets) ship per quarter than PC’s, and have since the fourth quarter of 2010*. Mobile devices are where we gather and consume information with increasing frequency, but the cloud is where that information will be aggregated, analyzed and enriched. NoSQL databases are ideal for the cloud-side data management needs of mobile applications, powering some of the most successful and widely used mobile apps, including the recent hit Draw Something by OMGPOP which reached 50 million downloads in 50 days.

In this webinar you will learn about:

- The rapidly evolving mobile landscape
- Why a NoSQL database may be the best fit for your application
- Mobile use cases from real-world deployments

To view Couchbase webinars on-demand visit http://www.couchbase.com/webinars

Statistics

Views

Total Views
1,965
Views on SlideShare
1,947
Embed Views
18

Actions

Likes
4
Downloads
54
Comments
0

2 Embeds 18

http://cz.graftonapps.com 10
http://www.cricket.com 8

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Webinar - Developing Mobile Apps With NoSQL Webinar - Developing Mobile Apps With NoSQL Presentation Transcript

    • Building)Mobile)Applica2ons) With)NoSQL Chris&Anderson Chief)Architect,)Mobile @jchris 1
    • Mobile)is)Different GROWTH SPEED FLEXIBILITY PUSH 2
    • GROWTH:RIDING&THE&MOBILE&ROCKET 3
    • Draw)Something)by)OMGPOP 4
    • Draw)Something)“goes)viral”)3)weeks)aQer)launch) Draw&Something&by&OMGPOP Daily&Ac)ve&Users&(millions)16141210 8 6 4 2 2/6 8 10 12 14 16 18 20 22 24 26 28 3/1 3 5 7 9 11 13 15 17 19 21 5
    • As)usage)grew,)game)data)went)nonXlinear. Draw&Something&by&OMGPOP Daily&Ac)ve&Users&(millions) 16 14 12 10 8 By)March)19,)there)were) 6 over)30,000,000&downloads)of)the)app, over)5,000&drawings)being)stored)per&second, 4 over)2,200,000,000&drawings)stored,over)105,000)database)transacQons&per&second, 2 and)over)3.3&terabytes)of)data)stored. 2/6 8 10 12 14 16 18 20 22 24 26 28 3/1 3 5 7 9 11 13 15 17 19 21 6
    • In)contrast. The&Simpson’s:&Tapped&Out Daily&Ac)ve&Users&(millions)16141210 8 6 4 #2&Free)app)on)iPad 2 #3&Free)app)on)iPhone 2/6 8 10 12 14 16 18 20 22 24 26 28 3/1 3 5 7 9 11 13 15 17 19 21 7
    • SPEED:YOUR&USERS&WILL&THANK&YOU 8
    • Users)Don’t)Want)to)Wait 9
    • Users)Don’t)Want)to)Wait 9
    • Slow)performance)==)lost)users h_p://blog.kissmetrics.com/loadingX2me/ 10
    • Your)secret)weapon:)SubXmillisecond)latency 11
    • Reliably)fast,)even)under)stress 12
    • Cross)Data)Center)Replica2on US)DATA) EUROPE)DATA) ASIA)DATA)CENTER CENTER CENTER ReplicaQon ReplicaQon ReplicaQon ! Data)close)to)users ! Mul2ple)loca2ons)for)disaster)recovery ! Independently)managed)clusters)serving)local)data 13
    • FLEXIBILITY:YOU&CAN’T&CONTROL&EVERYTHING 14
    • JSON)is)more)relaxed Old)and)new)data)structures)can)coexist)in)the)same)database so)you)don’t)have)to)force)your)users)to)upgrade 15
    • JSON)is)going)na2ve)(in)Objec2veXC) 16
    • You)are)not)alone 17
    • Normalize)mixed)data)structures)at)query)2me 18
    • Easily)ingest)data)from)JSON)APIs 19
    • PUSH:KEEP&YOUR&USERS&ENGAGED 20
    • Real2me)ma_ers 21
    • With)Couchbase,)your)database)can)push 22
    • CAN&YOUR&DATABASE&DO&THIS? 23
    • Couchbase)Server)))))))))))))))))))))))))(a.k.a.)Membase) Simple.)Fast.)Elas2c.)NoSQL.) )Couchbase)automa2cally)distributes)data)across)commodity)servers.)BuiltXin)caching)enables) apps)to)read)and)write)data)with)subXmillisecond)latency.)And)with)no)schema)to)manage,) Couchbase)effortlessly)accommodates)changing)data)management)requirements.) 24
    • Traditional Database Application Scales Out Just add more commodity web servers Database Scales Up Get a bigger, more complex server Expensive & disruptive sharding, doesn’t perform at web scale 25
    • NoSQL)Scalability Application Scales Out Just add more commodity web servers Database Scales Out Just add more commodity data servers •)Horizontally)scalable)with)autoXsharding •)High)performance)at)web)scale •)SchemaXless)for)flexibility Scaling out flattens the cost and performance curves 26
    • Couchbase)Server)Features • BuiltXin)clustering)–)All)nodes)equal • Data)replica2on)with)autoXfailover • ZeroXXdown2me)maintenance) • Clone)to)grow)and)scale)horizontally 27
    • Couchbase)Server)Basic)Opera2on APP&SERVER&1 APP&SERVER&2 ! Docs)distributed)evenly)across) servers)in)the)cluster COUCHBASE)CLIENT)LIBRARY CLUSTER)MAP COUCHBASE)CLIENT)LIBRARY CLUSTER)MAP ! Each)server)stores)both)ac)ve)&) replica)docs ! Only)one)server)ac2ve)at)a)2me ! Client)library)provides)app)with) simple)interface)to)database ! Cluster)map)provides)map)to) which)server)doc)is)on ! App)never)needs)to)know SERVER&1 SERVER&2 SERVER&3 ! App)reads,)writes,)updates)docs Ac2ve)Docs Ac2ve)Docs Ac2ve)Docs Doc)5 DOC Doc)4 DOC Doc)1 DOC ! Mul2ple)App)Servers)can)access) same)document)at)same)2me Doc)2 DOC Doc)7 DOC Doc)3 DOC Doc)9 DOC Doc)8 DOC Doc)6 DOC COUCHBASE&SERVER&CLUSTER 28
    • Couchbase)Server)Basic)Opera2on APP&SERVER&1 APP&SERVER&2 ! Docs)distributed)evenly)across) servers)in)the)cluster COUCHBASE)CLIENT)LIBRARY CLUSTER)MAP COUCHBASE)CLIENT)LIBRARY CLUSTER)MAP ! Each)server)stores)both)ac)ve)&) replica)docs ! Only)one)server)ac2ve)at)a)2me ! Client)library)provides)app)with) simple)interface)to)database ! Cluster)map)provides)map)to) which)server)doc)is)on ! App)never)needs)to)know SERVER&1 SERVER&2 SERVER&3 ! App)reads,)writes,)updates)docs Ac2ve)Docs Ac2ve)Docs Ac2ve)Docs Doc)5 DOC Doc)4 DOC Doc)1 DOC ! Mul2ple)App)Servers)can)access) same)document)at)same)2me Doc)2 DOC Doc)7 DOC Doc)3 DOC Doc)9 DOC Doc)8 DOC Doc)6 DOC Replica)Docs Replica)Docs Replica)Docs Doc)4 DOC Doc)6 DOC Doc)7 DOC Doc)1 DOC Doc)3 DOC Doc)9 DOC Doc)8 DOC Doc)2 DOC Doc)5 DOC COUCHBASE&SERVER&CLUSTER 28
    • Couchbase)Server)Basic)Opera2on APP&SERVER&1 APP&SERVER&2 ! Docs)distributed)evenly)across) servers)in)the)cluster COUCHBASE)CLIENT)LIBRARY CLUSTER)MAP COUCHBASE)CLIENT)LIBRARY CLUSTER)MAP ! Each)server)stores)both)ac)ve)&) replica)docs ! Only)one)server)ac2ve)at)a)2me ! Client)library)provides)app)with) Read/Write/Update Read/Write/Update simple)interface)to)database ! Cluster)map)provides)map)to) which)server)doc)is)on ! App)never)needs)to)know SERVER&1 SERVER&2 SERVER&3 ! App)reads,)writes,)updates)docs Ac2ve)Docs Ac2ve)Docs Ac2ve)Docs Doc)5 DOC Doc)4 DOC Doc)1 DOC ! Mul2ple)App)Servers)can)access) same)document)at)same)2me Doc)2 DOC Doc)7 DOC Doc)3 DOC Doc)9 DOC Doc)8 DOC Doc)6 DOC Replica)Docs Replica)Docs Replica)Docs Doc)4 DOC Doc)6 DOC Doc)7 DOC Doc)1 DOC Doc)3 DOC Doc)9 DOC Doc)8 DOC Doc)2 DOC Doc)5 DOC COUCHBASE&SERVER&CLUSTER 28
    • Add)Nodes APP&SERVER&1 APP&SERVER&2 COUCHBASE)CLIENT)LIBRARY COUCHBASE)CLIENT)LIBRARY CLUSTER)MAP CLUSTER)MAPSERVER&1 SERVER&2 SERVER&3Ac2ve)Docs Ac2ve)Docs Ac2ve)Docs Ac2ve)Docs Doc)5 DOC Doc)4 DOC Doc)1 DOC Doc)3 Doc)2 DOC Doc)7 DOC Doc)3 DOC Doc)6 Doc)9 DOC Doc)8 DOC Doc)6 DOCReplica)Docs Replica)Docs Replica)Docs Replica)Docs Doc)4 DOC Doc)6 DOC Doc)7 DOC Doc)7 Doc)1 DOC Doc)3 DOC Doc)9 DOC Doc)9 Doc)8 DOC Doc)2 DOC Doc)5 DOC COUCHBASE&SERVER&CLUSTER 29
    • Add)Nodes APP&SERVER&1 APP&SERVER&2 COUCHBASE)CLIENT)LIBRARY COUCHBASE)CLIENT)LIBRARY CLUSTER)MAP CLUSTER)MAPSERVER&1 SERVER&2 SERVER&3 SERVER&4 SERVER&5Ac2ve)Docs Ac2ve)Docs Ac2ve)Docs Ac2ve)Docs Ac2ve)Docs Ac2ve)Docs Doc)5 DOC Doc)4 DOC Doc)1 DOC Doc)3 Doc)2 DOC Doc)7 DOC Doc)3 DOC Doc)6 Doc)9 DOC Doc)8 DOC Doc)6 DOCReplica)Docs Replica)Docs Replica)Docs Replica)Docs Replica)Docs Replica)Docs Doc)4 DOC Doc)6 DOC Doc)7 DOC Doc)7 Doc)1 DOC Doc)3 DOC Doc)9 DOC Doc)9 Doc)8 DOC Doc)2 DOC Doc)5 DOC COUCHBASE&SERVER&CLUSTER 29
    • Add)Nodes APP&SERVER&1 APP&SERVER&2 ! Two)servers)added)to) cluster COUCHBASE)CLIENT)LIBRARY COUCHBASE)CLIENT)LIBRARY ! OneXclick)opera2on CLUSTER)MAP CLUSTER)MAP ! Docs)automa2cally) rebalanced)across)cluster ! Even)distribu2on)of)docs ! Minimum)doc)movement ! Cluster)map)updated ! App)database)calls)now) distributed)over)larger)#)of) serversSERVER&1 SERVER&2 SERVER&3 SERVER&4 SERVER&5Ac2ve)Docs Ac2ve)Docs Ac2ve)Docs Ac2ve)Docs Ac2ve)Docs Ac2ve)Docs Doc)5 DOC Doc)4 DOC Doc)1 DOC Doc)9 DOC Doc)6 DOC Doc)3 Doc)2 DOC Doc)7 DOC Doc)3 DOC Doc)8 DOC Doc)6Replica)Docs Replica)Docs Replica)Docs Replica)Docs Replica)Docs Replica)Docs Doc)4 DOC Doc)6 DOC Doc)7 DOC Doc)5 DOC Doc)8 DOC Doc)7 Doc)1 DOC Doc)3 DOC Doc)9 DOC Doc)2 DOC Doc)9 COUCHBASE&SERVER&CLUSTER 29
    • Add)Nodes APP&SERVER&1 APP&SERVER&2 ! Two)servers)added)to) cluster COUCHBASE)CLIENT)LIBRARY COUCHBASE)CLIENT)LIBRARY ! OneXclick)opera2on CLUSTER)MAP CLUSTER)MAP ! Docs)automa2cally) rebalanced)across)cluster ! Even)distribu2on)of)docs ! Minimum)doc)movement ! Cluster)map)updated Read/Write/Update Read/Write/Update ! App)database)calls)now) distributed)over)larger)#)of) serversSERVER&1 SERVER&2 SERVER&3 SERVER&4 SERVER&5Ac2ve)Docs Ac2ve)Docs Ac2ve)Docs Ac2ve)Docs Ac2ve)Docs Ac2ve)Docs Doc)5 DOC Doc)4 DOC Doc)1 DOC Doc)9 DOC Doc)6 DOC Doc)3 Doc)2 DOC Doc)7 DOC Doc)3 DOC Doc)8 DOC Doc)6Replica)Docs Replica)Docs Replica)Docs Replica)Docs Replica)Docs Replica)Docs Doc)4 DOC Doc)6 DOC Doc)7 DOC Doc)5 DOC Doc)8 DOC Doc)7 Doc)1 DOC Doc)3 DOC Doc)9 DOC Doc)2 DOC Doc)9 COUCHBASE&SERVER&CLUSTER 29
    • Fail)Over)Node ! App)servers)happily)accessing)docs)on) Server)3 ! Server)fails COUCHBASE)CLIENT)LIBRARY COUCHBASE)CLIENT)LIBRARY ! App)server)requests)to)server)3)fail CLUSTER)MAP CLUSTER)MAP ! Cluster)detects)server)has)failed ! Promotes)replicas)of)docs)to)ac)ve ! Updates&cluster&map ! App)server)requests)for)docs)now)go) to)appropriate)server ! Typically)rebalance)would)followSERVER&1 SERVER&2 SERVER&3 SERVER&4 SERVER&5Ac2ve)Docs Ac2ve)Docs Ac2ve)Docs Ac2ve)Docs Ac2ve)Docs Ac2ve)Docs Doc)5 DOC Doc)4 DOC Doc)1 DOC Doc)9 DOC Doc)6 DOC Doc)3 Doc)2 DOC Doc)7 DOC Doc)3 DOC Doc)8 DOC Doc)6Replica)Docs Replica)Docs Replica)Docs Replica)Docs Replica)Docs Replica)Docs Doc)4 DOC Doc)6 DOC Doc)7 DOC Doc)5 DOC Doc)8 DOC Doc)7 Doc)1 DOC Doc)3 DOC Doc)9 DOC Doc)2 DOC Doc)9 COUCHBASE&SERVER&CLUSTER 30
    • Fail)Over)Node ! App)servers)happily)accessing)docs)on) Server)3 ! Server)fails COUCHBASE)CLIENT)LIBRARY COUCHBASE)CLIENT)LIBRARY ! App)server)requests)to)server)3)fail CLUSTER)MAP CLUSTER)MAP ! Cluster)detects)server)has)failed ! Promotes)replicas)of)docs)to)ac)ve ! Updates&cluster&map ! App)server)requests)for)docs)now)go) to)appropriate)server ! Typically)rebalance)would)followSERVER&1 SERVER&2 SERVER&3 SERVER&4 SERVER&5Ac2ve)Docs Ac2ve)Docs Ac2ve)Docs Ac2ve)Docs Ac2ve)Docs Ac2ve)Docs Doc)5 DOC Doc)4 DOC Doc)1 DOC Doc)9 DOC Doc)6 DOC Doc)3 Doc)2 DOC Doc)7 DOC Doc)3 DOC Doc)8 DOC Doc)6Replica)Docs Replica)Docs Replica)Docs Replica)Docs Replica)Docs Replica)Docs Doc)4 DOC Doc)6 DOC Doc)7 DOC Doc)5 DOC Doc)8 DOC Doc)7 Doc)1 DOC Doc)3 DOC Doc)9 DOC Doc)2 DOC Doc)9 COUCHBASE&SERVER&CLUSTER 30
    • Fail)Over)Node ! App)servers)happily)accessing)docs)on) Server)3 ! Server)fails COUCHBASE)CLIENT)LIBRARY COUCHBASE)CLIENT)LIBRARY ! App)server)requests)to)server)3)fail CLUSTER)MAP CLUSTER)MAP ! Cluster)detects)server)has)failed ! Promotes)replicas)of)docs)to)ac)ve ! Updates&cluster&map ! App)server)requests)for)docs)now)go) to)appropriate)server ! Typically)rebalance)would)followSERVER&1 SERVER&2 SERVER&3 SERVER&4 SERVER&5Ac2ve)Docs Ac2ve)Docs Ac2ve)Docs Ac2ve)Docs Ac2ve)Docs Ac2ve)Docs Doc)5 DOC Doc)4 DOC Doc)1 DOC Doc)9 DOC Doc)6 DOC Doc)3 Doc)2 DOC Doc)7 DOC Doc)3 DOC Doc)8 DOC DOC Doc)6 Doc)1 Doc)3Replica)Docs Replica)Docs Replica)Docs Replica)Docs Replica)Docs Replica)Docs Doc)4 DOC Doc)6 DOC Doc)7 DOC Doc)5 Doc)8 DOC Doc)7 DOC DOC Doc)9 DOC Doc)2 DOC Doc)9 COUCHBASE&SERVER&CLUSTER 30
    • Fail)Over)Node ! App)servers)happily)accessing)docs)on) Server)3 ! Server)fails COUCHBASE)CLIENT)LIBRARY COUCHBASE)CLIENT)LIBRARY ! App)server)requests)to)server)3)fail CLUSTER)MAP CLUSTER)MAP ! Cluster)detects)server)has)failed ! Promotes)replicas)of)docs)to)ac)ve ! Updates&cluster&map ! App)server)requests)for)docs)now)go) to)appropriate)server ! Typically)rebalance)would)followSERVER&1 SERVER&2 SERVER&3 SERVER&4 SERVER&5Ac2ve)Docs Ac2ve)Docs Ac2ve)Docs Ac2ve)Docs Ac2ve)Docs Ac2ve)Docs Doc)5 DOC Doc)4 DOC Doc)1 DOC Doc)9 DOC Doc)6 DOC Doc)3 Doc)2 DOC Doc)7 DOC Doc)3 DOC Doc)8 DOC DOC Doc)6 Doc)1 Doc)3Replica)Docs Replica)Docs Replica)Docs Replica)Docs Replica)Docs Replica)Docs Doc)4 DOC Doc)6 DOC Doc)7 DOC Doc)5 Doc)8 DOC Doc)7 DOC DOC Doc)9 DOC Doc)2 DOC Doc)9 COUCHBASE&SERVER&CLUSTER 30
    • Couchbase)Server)Features • Memcached)compa2ble)(builtXin)caching) • Monitoring)and)administra2on)APIs)and) GUI) • Reliable)storage)architecture) 31
    • REAL&WORLD&MOBILE&USAGE 32
    • Concur 33
    • NTT)Docomo 34
    • Trusted)for)mission)cri2cal)deployments 35
    • THE&FUTURE 36
    • Mobile)Syncpoint)X)Your)Data)Anywhereh_ps://groups.google.com/forum/#!forum/mobileXcouchbase Syncpoint Cluster Local Syncpoint Lightweight&Syncpoint&Clients 37
    • Point of Sale• Massively multi-player interactive data• Realtime sharing between front and back of house• Shopping cart functionality• Integrate with external transaction APIs• Birds eye view for management
    • DOWNLOAD&COUCHBASE&SERVERHTTP://WWW.COUCHBASE.COM 39
    • MORE&QUESTIONS?EMAIL&JCHRIS@COUCHBASE.COM 40