Introduzione a Couchbase

55
Introduzione a NoSQL e Couchbase Franco Caporale

description

Couchbase e' il database NoSQL ad alta scalibilita' e performance attualmente utilizzato in produzione da aziende come Orbitz, Amadeus e PayPal. In Couchbase e' estremamente semplice aggiungere o rimuovere nodi, sempre mantenendo l'applicazione live. Couchbase supporta il formato JSON e permette di indicizzare i documenti tramite la funzione di map-reduce . Couchbase inoltre supporta la replica attiva tra piu' centri dati, permettendo cosi' di scalare l'applicazione a un livello globale.

Transcript of Introduzione a Couchbase

Page 1: Introduzione a Couchbase

Introduzione+a+NoSQL+e+Couchbase+

Franco+Caporale+

Page 2: Introduzione a Couchbase

Perché+il+NoSQL?+

Page 3: Introduzione a Couchbase

Tre+Nuove+Tendenze+

Big+Data+ SaaS/Cloud+MolC+UtenC+

Page 4: Introduzione a Couchbase

0+

0.2+

0.4+

0.6+

0.8+

1+

1.2+

1.4+

1.6+

1.8+

2+

2000+ 2006+ 2011+

Source:(IDC(2011(Digital(Universe(Study((h<p://www.emc.com/collateral/demos/microsites/emcBdigitalBuniverseB2011/index.htm)(

Trillions(of(G

igabytes((Ze<

abytes)(

Big+Data+•  DaC+molto+eterogenei+a+crescita+esponenziale+

DaC+Non+StruMuraC+

DaC+StruMuraC(

Text,+Log+Files,+

Click+Streams,+

Blogs,+Tweets,+

Audio,+Video,+etc.+

E’+necessario+un+modello+dei+daC+piu’+flessibile+

Page 5: Introduzione a Couchbase

MolC+UtenC+•  UtenC+da+tuMo+il+mondo,+sempre+connessi+

UtenC+Smartphone+

Ore+passate+online+

35+Miliardi+di+ore+

1Miliardo+

++

Popolazione+online+

2Miliardi+

++

h<p://www.goBgulf.com/blog/onlineBJme(h<p://business.Jme.com/2012/02/14/oneBbillionBsmartphonesBbyB2016BhereBcomesBtheBmobileBarmsBrace/(

E’+necessario+un+database+facile+da+scalare+

Page 6: Introduzione a Couchbase

SaaS/Cloud+•  Le+nuove+applicazioni+uClizzano+un’architeMura+a+3+livelli+

ArchiteMura+client/server+

Client+User(interface(Business(and(data(processing(logic(

Database+Server+Data(

LAN+

Moderna+architeMura+a+3+livelli+

Web/App++Server+Tier(

Cloud+Public/Private/Hybrid+Cloud+

Database+Server+Tier+

INTERNET+

Un+database+che+si+puo’+scalare+orizzontalmente+si+adaMa+

bene+alle+applicazioni+su+cloud+

Page 7: Introduzione a Couchbase

NoSQL+

++ ++

Piu’+daC+ Piu’+utenC+SaaS/Cloud+

Scalabilita’,+performance+e+facilita’+di+sviluppo+

Page 8: Introduzione a Couchbase

In+mancanza+di+una+soluzione+gli+utenC+se+la+sono+inventata+

Dynamo+October(2007(

Cassandra+August(2008(

Voldemort+February(2009(November(2006(

Bigtable+

Poche+aziende+sono+in+grado+di+costruirsi+e+mantenersi++

un+database+

Page 9: Introduzione a Couchbase

Draw+Something+Zynga+

Page 10: Introduzione a Couchbase

Draw+Something+diventa+virale+in++3+seamane+

19(17(15(13(11(9(7(5(3(3/1(28(26(24(22(20(18(16(14(12(10(8(2/6(

Daily&Ac)ve&Users&(millions)&

21(

2(

4(

6(

8(

10(

12(

14(

16(

Page 11: Introduzione a Couchbase

I+daC+crescono+in+modo+non+lineare…+

19(17(15(13(11(9(7(5(3(3/1(28(26(24(22(20(18(16(14(12(10(8(2/6(

Daily&Ac)ve&Users&(millions)&

21(

2(

4(

6(

8(

10(

12(

14(

16(

In+un+mese+30,000,000+di+downloads(della(app,(oltre(5,000+disegni+al(secondo,(

oltre(2,200,000,000+disegni+immagazzinaJ,(oltre(105,000(operazioni(al(secondo,(e(oltre(3.3+terabytes(di(daJ(in(totale.(

(

Page 12: Introduzione a Couchbase

Invece+con+RDBMS……+

19(17(15(13(11(9(7(5(3(3/1(28(26(24(22(20(18(16(14(12(10(8(2/6(

The+Simpson’s:+Tapped+Out+Daily&Ac)ve&Users&(millions)&

21(

2(

4(

6(

8(

10(

12(

14(

16(

#2+Free(app(on(iPad(#3+Free(app(on(iPhone(

Page 13: Introduzione a Couchbase

MySQL+o+NoSQL?+

Page 14: Introduzione a Couchbase

La+maggioranza+delle+applicazioni+uClizzano+gli+RDBMS+

Page 15: Introduzione a Couchbase

I+principali+moCvi+per+l’adozione++del+NoSQL+

Schema+rigido+e+non+flessibile+

Difficolta’+a+scalare++

Problemi+di+performance+

CosC+ Tua+I++precedenC+

Altri+

49%+

35%+

29%+

16%+

12%+ 11%+

Source:(Couchbase(Survey,(December(2011,(n(=(1351.(

Page 16: Introduzione a Couchbase

Architettura moderna di un’applicazione web

Application Scales Out Just add more commodity web servers

Database Scales Up Get a bigger, more complex server

Nota(–(I(database(relazionali(sono(una(tecnologia(eccellente(ma(non(per(questo(uso.(

Page 17: Introduzione a Couchbase

I database NoSQL utilizzano la stessa logica dell’applicazione

Application Scales Out Just add more commodity web servers

Database Scales Out Just add more commodity data servers

Scalando orizzontalmente si riducono I costi e aumentano le performance

NoSQL(Database(Servers(

Page 18: Introduzione a Couchbase

Una+StruMura+dei+DaC+Diversa+

Page 19: Introduzione a Couchbase

Modello+Relazionale+vs.+A+Documento+

Modello+“Relazionale”+ Modello+“A+documento”+

Collezione(di(documenJ(complessi(con(formaJ(arbitrari(e(schema(variabile(

Tabelle(con(schema(rigido(e(stru<ura(dei(daJ(predefinita(

JSON+JSON+

JSON+

C1+ C2+ C3+ C4+

{+

+

+

+

}+

Page 20: Introduzione a Couchbase

Database+a+Documento+

•  Ogni(record(e’(un(documento(a(se’(stante(

•  Ogni(documento(ha(una(stru<ura(indipendente(

•  I(documenJ(possono(essere(complessi(•  Richiedono(una(chiave(unica(•  I(daJ(sono(immagazzinaJ(in(formato(JSON,(XML(o(simili(

•  Il(contenuto(puo’(essere(indicizzato(e(interrogato(

•  Offrono(sharding(automaJco(e(repliche(

{"“UUID”:"“21f7f8de0805105b89086“Time”:" “2011004001T13:01:02.42“Server”:" “A2223E”,“Calling"Server”:" “A2213W”,“Type”:"“E100”,“Initiating" User”:" “[email protected]”,“Details”:"

{“IP”:"“10.1.1.22”,“API”:" “InsertDVDQueueItem”,“Trace”:" “cleansed”,“Tags”:"

[“SERVER”,"“US0West”,"“API”]

}}

Page 21: Introduzione a Couchbase

Esempio+Social+Game++Profilo+Giocatore+

{(("jsonType":("player",(("uuid":("35767d02Ba958B4b83B8179B616816692de1",(("name":("Keith4540",(("hitpoints":(75,(("experience":(663,(("level":(4,(("loggedIn":(false(

}((

ID+Utente+

Page 22: Introduzione a Couchbase

Esempio+Social+Game+OggeMo+

{(("jsonType":("item",(("name":("Katana_e5890c94B11c6B65746ce6c560",(("uuid":("e5890c94B11c6B4856Ba7a6B65746ce6c560",(("ownerId":("Dale9887"(

}(

ID+OggeMo+

ID+Utente+

Page 23: Introduzione a Couchbase

Esempio+Social+Game+Mostro+

{(("jsonType":("monster",(("name":("Bauchan9932",(("uuid":("d10dfc1bB0412B4140Bb4ecBaffdbf2aa5ec",(("hitpoints":(370,(("experienceWhenKilled":(52,(("itemProbability":(0.5050581341872865(

}(

ID+

Mostro+

Page 24: Introduzione a Couchbase

Esempio+Blog++Diviso+su+piu’+DocumenC+

{"“UUID”:"“21f7f8de0805105b89086“Time”:" “2011004001T13:01:02.42“Server”:" “A2223E”,“Calling"Server”:" “A2213W”,“Type”:"“E100”,“Initiating" User”:" “[email protected]”,“Details”:"

{“IP”:"“10.1.1.22”,“API”:" “InsertDVDQueueItem”,“Trace”:" “cleansed”,“Tags”:"

[“SERVER”,"“US0West”,"“API”]

}}

{ !“_id”: “Coucbase_Hello_World”,!“author”: “dborkar”, !“type”: “post”!“title”: “Hello World”,!“format”: “markdown”, !“body”: “Hello from [Couchbase](http://couchbase.com).”, !“html”: “<p>Hello from <a href=\“http: …!“comments”:[!

! “comment1_Couchbase_Hello_world”!! ]!

}! {"“UUID”:"“21f7f8de0805105b89086“Time”:" “2011004001T13:01:02.42“Server”:" “A2223E”,“Calling"Server”:" “A2213W”,“Type”:"“E100”,“Initiating" User”:" “[email protected]”,“Details”:"

{“IP”:"“10.1.1.22”,“API”:" “InsertDVDQueueItem”,“Trace”:" “cleansed”,“Tags”:"

[“SERVER”,"“US0West”,"“API”]

}}

{!“_id”: “comment1_Couchbase_Hello_World”,!“format”: “markdown”, !“body”:”Awesome post!” !}+

BLOG+

COMMENTI+

Page 25: Introduzione a Couchbase

Esempio:+Profilo+Utente+Database'Relazionale'

Indirizzo+Utente+

1+ DEN+ 30303+CO+

2+ MV+ 94040+CA+

3+ CHI+ 60609+IL+

Informazioni+Utente+

KEY+ First+ ZIP_id+Last+

4+ NY+ 10010+NY+

1+ DipC+ 2+Borkar+

2+ Joe+

2+Smith+

3+ Ali+ 2+Dodson+

4+ John+ 3+Doe+

ZIP_id+ CITY+ ZIP+STATE+

1+ 2+

2+ MV+ 94040+CA+

Per+oMenere+informazioni+su+un+utente+specifico,+devi+effeMuare+un+JOIN+tra+

due+tabelle+

Page 26: Introduzione a Couchbase

Tua+I+daC+di+un+utente+in+un+singolo+documento+

+{+

++++“ID”:+1,+

++++“FIRST”:+“DipC”,+

++++“LAST”:+“Borkar”,+

++++“ZIP”:+“94040”,+

++++“CITY”:+“MV”,+

++++“STATE”:+“CA”+

++}+JSON+

=+ ++

Esempio:+Profilo+Utente+Database'a'Documento'

Page 27: Introduzione a Couchbase

User+ID+ Nome+ Cognome+ CAP+

1+ DipC+ Borkar+ 94040+

2+ Joe+ Smith+ 94040+

3+ Ali+ Dodson+ 94040+

4+ Sarah+ Gorin+ NW1+

5+ Bob+ Young+ 30303+

6+ Nancy+ Baker+ 10010+

7+ Ray+ Jones+ 31311+

8+ Lee+ Chen+V5V3

M+

•  ++•  ++

•  ++

50000+ Doug+ Moore+ 04252+

50001+ Mary+ White+ SW195+

50002+ Lisa+ Clark+ 12425+

ID+Paese+TEL3+

+001+

ID+Paese+ Nome+Paese+

001+ USA+

002+ UK+

003+ ArgenCna+

004+ Australia+

005+ Aruba+

006+ Austria+

007+ Brazil+

008+ Canada+

009+ Chile+

•  ++•  ++•  ++

130+ Portugal+

131+ Romania+

132+ Russia+

133+ Spain+

134+ Sweden+

User+ID+ Foto+ID+ Commento+

2+ d043+ NYC+

2+ b054+ Bday+

5+ c036+ Miami+

7+ d072+ Sunset+

5002+ e086+ Spain+

Tabella+Foto+

++001+

++007+

++001+

++133+

++133+

User+ID+ Status+ID+ Text+

1+ a42+ At+conf+

4+ b26+ excited+

5+ c32+ hockey+

12+ d83+ Go+A’s+

5000+ e34+ sailing+

Tabella+Status+

++134+

007+

++008+

++001+

++005+

Tabella+Paese+

User+ID+ Affl+ID+ Affl+Name+

2+ a42+ Cal+

4+ b96+ USC+

7+ c14+ UW+

8+ e22+ Oxford+

Tabella+Affiliazioni+ID+Paese+

++001+

++001+

++001+

++002+

ID+Paese+

ID+Paese+

001+

001+

002+

001+

001+

001+

008+

001+

002+

001+

Tabella+Utente+

.+

.+

.+

EffeMuare+una+Modifica+su+RDBMS+

Page 28: Introduzione a Couchbase

Modifiche+su+un+database++a+documento+

+{+

++++“ID”:+1,+

++++“FIRST”:+“Don”,+

++++“LAST”:+“Pinto”,+

++++“ZIP”:+“94040”,+

++++“CITY”:+“MV”,+

++++“STATE”:+“CA”,+

++++“STATUS”:++

++++++{++“TEXT”:+“At+Conf”++

+

+

+ ++

}+

}+

++++++“GEO_LOC”:+“134”+},+

“COUNTRY”:+”USA”+

Basta+aggiungere+le+informazioni+sul+documento+

JSON+

,+}+

Page 29: Introduzione a Couchbase

I+Database+NoSQL+

Page 30: Introduzione a Couchbase

Catalogo+dei+NoSQL+

ChiavewValore+

Memcached( Redis(

StruMura+DaC+ Documento+ Colonna+ Grafico+

MongoDB(

Couchbase( Cassandra(

Cache(

(mem

ory(on

ly)(

Database(

(mem

ory/disk)(

Neo4J(

Page 31: Introduzione a Couchbase

Couchbase+Open+Source+

•  Il(principale(database(NoSQL(distribuito(

•  Supporta(sia(le(applicazioni(chiaveBvalore(che(a(documento(

•  Tun(I(componenJ(sono(disponibili(con(licenza(Apache+2.0+Public+License+

•  Disponibile(come(pacche<o(sooware(sia(nella(versione(Community(che(in(quella(Enterprise(

Couchbase Open Source Project

Page 32: Introduzione a Couchbase

≠+

Page 33: Introduzione a Couchbase

Scalabilita’(Semplice(

Performance(Elevate(e(CostanJ(

Sempre(Live(24x365(

Ingrandisci(il(tuo(cluster(con(un(click(mentre(l’applicazione(

rimane(live(

Tempi(di(risposta(costanJ(so<o(il(millisecondo(per(operazioni(di(

scri<ura(e(le<ura((

L’applicazione(non(e’(mai(inanva(anche(in(caso(di(

aggiornamenJ,(manutenzione(etc.(

Modello(DaJ(Flessibile(

Supporto(per(documenJ(JSON(senza(uno(schema(rigido(

Principi+Chiave+di+Couchbase+Server+

Page 34: Introduzione a Couchbase

Differenze+Principali+RispeMo+ad+Altri+Database+NoSQL+

•  Perme<e(un(alJssimo(numero(di(connessioni(contemporanee((fondamentale(per(applicazioni(web(interanve)(

•  Nessun(locks(•  Cache(naJva+•  Hash(parJJoning((non(range)((((

!(non(si(formano(“hotspots”(

•  Sharding(automaJco(

Page 35: Introduzione a Couchbase

Dietro+le+Quinte+di+Couchbase+

Page 36: Introduzione a Couchbase

3(3( 2(

Server+Singolow+Operazione+ScriMura+con+Couchbase+

Managed(Cache(

Disk(Que

ue(

ReplicaJon(Queue(

App(Server(

Doc+1’+

Doc+1+

Doc+1’+Doc+1+

Doc+1’+

Disk(

To(other(node(

Couchbase(Server(Node(

Page 37: Introduzione a Couchbase

GET+

Doc+1+

3(3( 2(

Server+Singolow+Operazione+LeMura+con+Couchbase+

Disk(Que

ue(

ReplicaJon(Queue(

App(Server(

Doc+1+

Doc+1+Doc+1+

Managed(Cache(

Disk(

To(other(node(

Couchbase(Server(Node(

Page 38: Introduzione a Couchbase

COUCHBASE+SERVER++CLUSTER+

Operazioni+di+Base+sul+Cluster+

• Tua+I+nodi+sono+uguali+e+I+documenC+sono+ugualmente+distribuiC+

• Ogni+server+conCene+sia+I+documenC+aavi+che+quelli+replica+

• La+mappa+del+cluster+ha+le+coordinate+su+dove+si+trovano+I+documenC+++++++++++++++++++L’applicazione(non(ha(bisogno(di(saperlo(

User(Configured(Replica(Count(=(1(

READ/WRITE/UPDATE+

+

+ACTIVE+

Doc+5+

Doc+2+

Doc+

Doc+

Doc+

SERVER+1+ +

+ACTIVE+

Doc+4+

Doc+7+

Doc+

Doc+

Doc+

SERVER+2+

Doc+8+

+

+ACTIVE+

Doc+1+

Doc+3+

Doc+

Doc+

Doc+

REPLICA+

Doc+4+

Doc+1+

Doc+8+

Doc+

Doc+

Doc+

REPLICA+

Doc+6+

Doc+3+

Doc+2+

Doc+

Doc+

Doc+

REPLICA+

Doc+7+

Doc+9+

Doc+5+

Doc+

Doc+

Doc+

SERVER+3+

Doc+6+

APP+SERVER+1+

COUCHBASE+Client+Library+++ CLUSTER+MAP+

COUCHBASE+Client+Library+++ CLUSTER+MAP+

APP+SERVER+2+

Doc+9+

Page 39: Introduzione a Couchbase

Aggiungere+Nodi+al+Cluster+

• Due+servers+aggiunC+con+un+solo+click+

•  I+documenC+vengono+automaCcamente+ribilanciaC+aMraverso+il+cluster+Col(minimo(spostamento(di(documenJ(possibile(

•  La+mappa+del+cluster+viene+aggiornata+

•  L’applicazione+ora+e’+supportata+da+un+numero+maggiore+di+servers.+

+

+

REPLICA+

ACTIVE+

Doc+5+

Doc+2+

Doc+

Doc+

Doc+4+

Doc+1+

Doc+

Doc+

SERVER+1+ +

+

REPLICA+

ACTIVE+

Doc+4+

Doc+7+

Doc+

Doc+

Doc+6+

Doc+3+

Doc+

Doc+

SERVER+2+ +

+

REPLICA+

ACTIVE+

Doc+1+

Doc+3+

Doc+

Doc+

Doc+7+

Doc+9+

Doc+

Doc+

SERVER+3+ +

+

SERVER+4+ +

+

SERVER+5+

REPLICA+

ACTIVE+

REPLICA+

ACTIVE+

Doc+

Doc+8+ Doc+

Doc+9+ Doc+

Doc+2+ Doc+

Doc+8+ Doc+

Doc+5+ Doc+

Doc+6+

READ/WRITE/UPDATE+ READ/WRITE/UPDATE+

APP+SERVER+1+

COUCHBASE+Client+Library+++ CLUSTER+MAP+

COUCHBASE+Client+Library+++ CLUSTER+MAP+

APP+SERVER+2+

COUCHBASE+SERVER++CLUSTER+

User(Configured(Replica(Count(=(1(

Page 40: Introduzione a Couchbase

Caduta+di+un+Nodo+

+

+

REPLICA+

ACTIVE+

Doc+5+

Doc+2+

Doc+

Doc+

Doc+4+

Doc+1+

Doc+

Doc+

SERVER+1+ +

+

REPLICA+

ACTIVE+

Doc+4+

Doc+7+

Doc+

Doc+

Doc+6+

Doc+3+

Doc+

Doc+

SERVER+2+ +

+

REPLICA+

ACTIVE+

Doc+1+

Doc+10+

Doc+

Doc+

Doc+7+

Doc+9+

Doc+

Doc+

SERVER+3+ +

+

SERVER+4+ +

+

SERVER+5+

REPLICA+

ACTIVE+

REPLICA+

ACTIVE+

Doc+9+

Doc+8+

Doc+ Doc+6+ Doc+

Doc+

Doc+5+ Doc+10+

Doc+2+

Doc+8+ Doc+

Doc+

•  I+server+della+app+accedono+ai+daC+

•  Le+richieste+al+Server+3+falliscono+

•  Il+Cluster+idenCfica+che+un+nodo+e’+offline+Le(repliche(vengono(promosse(ad(anve(e(la(mappa(del(cluster(viene(aggiornata(

•  Le+richieste+della+app+ora+si+dirigono+sul+server+appropriato+

•  Il+tuMo+e’+seguito+dal+ribilanciamento+dei+daC+

Doc+

Doc+1+ Doc+3+

APP+SERVER+1+

COUCHBASE+Client+Library+++ CLUSTER+MAP+

COUCHBASE+Client+Library+++ CLUSTER+MAP+

APP+SERVER+2+

User(Configured(Replica(Count(=(1(

COUCHBASE+SERVER++CLUSTER+

Page 41: Introduzione a Couchbase

Cross+Data+Center+ReplicaCon+(XDCR)+

COUCHBASE+SERVER++CLUSTER+NY+DATA+CENTER+

+

+ ACTIVE+

Doc++

Doc+2+

SERVER+1+

Doc+9+

+

+

SERVER+2+ +

+

SERVER+3+

RAM(

Doc++ Doc++ Doc+

ACTIVE+

Doc+

Doc++

Doc++

RAM(

ACTIVE+

Doc++

Doc++

Doc+

RAM(

DISK(

Doc++ Doc+ Doc++

DISK(

Doc+ Doc+ Doc+

DISK(

COUCHBASE+SERVER++CLUSTER+SF+DATA+CENTER+

+

+ ACTIVE+

Doc++

Doc+2+

SERVER+1+

Doc+9+

+

+

SERVER+2+ +

+

SERVER+3+

RAM(

Doc++ Doc++ Doc+

ACTIVE+

Doc+

Doc++

Doc++

RAM(

ACTIVE+

Doc++

Doc++

Doc+

RAM(

DISK(

Doc++ Doc+ Doc++

DISK(

Doc+ Doc+ Doc+

DISK(

Page 42: Introduzione a Couchbase

Couchbase+Server+Admin+Console+

Page 43: Introduzione a Couchbase
Page 44: Introduzione a Couchbase

Altri+Usi+Comuni+del+NoSQL+

Page 45: Introduzione a Couchbase

Market+AdopCon+–+Customers+

Internet+Companies+ Enterprises+

More+than+300+customers+ww+5,000+producCon+deployments+worldwide+

Page 46: Introduzione a Couchbase

CaraMerisCche+dei+DaC+

•  StruMura+definita+dall’utente+(TwiMer+feeds)+•  Serve+supporto+per+crescita+esponenziale+(Apps+virali)+•  StruMura+dei+daC+non+omogenea+

•  C’e’+necessita’+di+cambiare+struMura+frequentemente+

•  Lunghezza+dei+documenC+variabile+

•  StruMura+dei+daC+gerarchica+

+

Couchbase+e’+la+scelta+ideale++

Page 47: Introduzione a Couchbase

RequisiC+di+Performance+

•  Latenze+estremamente+basse+(es.+1millisecondo)+

•  Traffici+elevaC+(es.+200000+ops/sec)+

•  Numero+di+utenC+elevato+

•  Domanda+non+prevenCvabile+con+crescite+improvvise+

•  C’e’+predominanza+di+accesso+direMo+ai+documenC+

•  Alto+traffico+in+leMura+e+scriMura+

+

Couchbase+e’+la+scelta+ideale++

Page 48: Introduzione a Couchbase

Applicazioni+Comuni+Social+Gaming+

+•  Couchbase(conJene(I(daJ(sugli(utenJ(e(I(giochi(

•  Esempi(clienJ:(Zynga,(Tapjoy,(Ubisoo,(Tencent(

+

+Apps+Mobili+

+•  Couchbase(conJene(daJ(su(utenJ(e(contenuJ(

•  Esempi(clienJ:(Kobo,(PlayJka((

+

+

Pubblicita’+Online++

•  Couchbase(conJene(info(sugli(utenJ(per(un(accesso(veloce(

•  Esempi(clienJ:(AOL,(Mediamind,(Convertro((

+

Informazioni+di+Sessione++

•  Couchbase(come(database(chiaveBvalore(

•  Esempi(clienJ:(Concur,(Sabre(

+

Profili+UtenC++

•  Couchbase(come(database(chiaveBvalore(

•  Esempi(clienJ:(Tunewiki(

+

Cache+ad+Alta+Disponibilita’++

•  Couchbase(uJlizzato(come(livello(di(cache(

•  Esempi(clienJ:(Orbitz(

+

Metadata+e+ContenuC+•  Couchbase(insieme(ad(ElasJcsearch(

•  Esempi(clienJ:(McGraw(Hill(+

+Aggregazione+DaC+

+•  Couchbase(aggrega(I(daJ(dai(social(media(

•  Esempi(clienJ:(Sambacloud(

+

Page 49: Introduzione a Couchbase

• Informazioni+sui+profili+utenC+

• Informazioni+di+registrazione+

• Nomi+utenC+e+password+

+

Profili+UtenC+

Esempio+d’uso:+Profili+UtenC+

Accesso+chiavewvalore+con+le+seguenC+caraMerisCche:++

• Alta+consistenza+• Scalabilita’+per+gesCre+cenCnaia+di+milioni+di+utenC+

• Il+sistema+dev’essere+sempre+live+24x7x365+

• Alta+consistenza+a+livello+del+cluster.+• Il+cluster+puo’+essere+allargato+o+ristreMo+per+supportare+la+crescita+esponenziale+di+utenC+

• Il+cluster+dev’essere+disponibile+24/365.+Con+Couchbase+tuMe+le+operazioni+di+manutenzione,+aggiornamento+e+riparazione+vengono+effeMuate+lasciando+l’applicazione+live.+Grazie+al+cross+datacenter+replicaCon+e’possibile+collegare+due+centri+daC+diversi+per+ridurre+I+rischi+di+perdita+daC+e+per+una+maggiore+prossimita’+agli+utenC+

Tipologia+di+DaC+ RequisiC+dell’applicazione+

Perche’+NoSQL+e+Couchbase+

h<p://blog.couchbase.com/couchbaseBnosqlBtunewikiBbillionBdocumentsBandBcounJng((

Page 50: Introduzione a Couchbase

• Preferenze+utenC+e+daC+psicografici+

• Cronologia+delle+ricerche+• Cronologia+delle+parole+chiave+acquistate+dall’azienda+

• Cronologia+delle+pubblicita’+visualizzate+

Pubblicita’+Online+

Esempio+d’uso:+Pubblicita’+Online+

• Alte+performance+per+soddisfare+I+tempi+ristreassimi+degli+utenC+(soMo+I+40ms+in+totale)+

• Scalabilita’+per+sostenere+traffici+elevaC+e+cenCnaia+di+milioni+di+utenC+

• Sistema+disponibile+24x7x365+per+evitare+perdite+di+guadagni+

• Accesso+ai+daC+in+meno+di+un+millisecondo+costante,+lasciando+quindi+piu’+tempo+per+l’analisi+

• Facilita’+a+scalare+il+cluster+a+cenCnaia+di+servers+se+necessario+• Il+cluster+rimarra’+sempre+live+e+disponibile,+evitando+quindi+perdite+di+profia..+

Tipologia+di+DaC+ RequisiC+dell’Applicazione+

Perche’+NoSQL+e+Couchbase+

h<p://www.couchbase.com/ad_platorms((

Page 51: Introduzione a Couchbase

• Oggea+dell’applicazione+

• RisultaC+delle+ricerche+• Informazioni+di+sessione+

• Pagine+web+ad+alto+uClizzo+• Metadata+

Cache+ad+alta+disponibilita’+

Esempio+d’uso:+Cache+ad+Alta+Disponibilita’+

• Tempi+di+risposta+brevissimi+e+costanC+

• Alta+disponibilita’w+24x7x365+• Facile+da+gesCre+mantenendo+l’applicazione+sempre+live+

• SosCtuisce+l’intero+livello+di+caching+

• Basse+latenze+(soMo+il+millisecondo)+e+prestazioni+costanC+e+prevedibili+

• TuMe+le+operazioni+possono+essere+effeMuate+lasciando+live+l’applicazione+

• CompaCbile+con+memcached.+La+migrazione+a+Couchbase+viene+effeMuata+lasciando+intaMa+l’applicazione+

• Alta+disponibilita’+con+repliche+all’interno+del+cluster+e+all’esterno+(XDCR)+per+essere+garanCC+anche+in+caso+di+disastri+

Tipologia+di+daC+ RequisiC+dell’applicazione+

Perche’+NoSQL+e+Couchbase+

h<p://www.couchbase.com/memcached((

Page 52: Introduzione a Couchbase

QuesCons?+

Page 53: Introduzione a Couchbase

Demo+

Page 54: Introduzione a Couchbase

Non+dimenCcate+di………+

Scaricare+e+fare+praCca+con+Couchbase+Server+

hMp://www.couchbase.com/download+

Iscrivervi+sul+gruppo+di+Couchbase+Italia+su+LinkedIn+

hMp://www.linkedin.com/groups/CouchbasewItaliaw4932288+

Iscrivervi+sul+nostro+Community+Portal+hMp://www.couchbase.com/communiCes/user/register+

Page 55: Introduzione a Couchbase

Grazie+a+Tua!+

[email protected]+