Vous êtes sur la page 1sur 42

High-Level Cloud Application Architecture

Clients

DNS

Load Balancers
(cloud vendor or
open, e.g. nginx)
Cloud Compute
and Storage
(cloud vendor)

Containers
(Docker)

Tools

Apps
server-side Node.js,
Java
analytics Spark

Infrastructure
Monitoring and
Spend
Management

Message Queue
(Apache Kafka, Rabbit
MQ)

Security and
Auditing

Database
(Cassandra, Redis,
RDBMS)

DevOps

Microservices

Presentado
APAC
HE

Guatemala, Noviembre 2016

Introduccin a Cassandra

Un mundo con Big Data

Caractersticas
requeridas
Replicacin y disponibilidad
multiregin
Respuesta rpida y confiable
Sin punto nico de fallo
Debe siempre estar disponible
Debe ser fcil de administrar y
mantener

SQL vs NoSQL

Caractersticas de Apache Cassandra


Base de datos operacional (OLTP)

OLTP DB
Orientad
a a Filas

Cdigo
Abierto

Siempre Disponible
Distribuida / Tolerante a fallos

Consistenci
a
Configurab
le

Distribu
da

Tolerant
ea
Fallos

Decentraliz
ada
Altament
e
Disponib
le

Masivamente escalable
Escalabilidad lineal en capacidad y rendimiento
Operacin simple

Elstica

Guatemal
a

Honduras
Costa Rica

Historia de Apache Cassandra


En 2004 Google inici el
desarrollo de BigTable,
un sistema de gestin
de base de datos creado
con las caractersticas
de ser: distribuido, de
alta eficiencia y
propietario.

BigTable

Apache Cassandra fue


inicialmente desarrollada
en Facebook para impulsar
las bsqueda en la bandeja
de entrada Fue lanzada
como un proyecto open
source.

Dynamo

En octubre de 2007 se
public un paper con el
diseo y la especificacin, a
grandes rasgos, de
Dynamo, rompiendo con
conceptos como la
consistencia o modelo
relacional. Su objetivo se
defini claramente:
escalabilidad y
disponibilidad.
NoSQL.es

2008 se abre como Google code en julio de 2008.


2009 se transform en un proyecto de Apache Incubator.
2010 se gradu como un proyecto de alto nivel
2010 Se funda DataStax la primer compaa en ofrecer
una versin
enterprise de Cassandra con soporte y
herramientas adicionales

DataStax Enterprise
Listo y Certificado para ambientes de
produccin
In-Memory
Enterprise Security:
Autenticacin externa mediante Kerberos.
Encripcin transparente de datos.
Auditora de datos
Bsqueda integrada con Apache Solr
Integracin nativa con Spark para analticos
DataStax OpsCenter
Backup
Repair
Capacity
Best Practices

Por qu Apache Cassandra?


Diseada para anticiparse y recuperarse de fallos Master Less Sin punto
nico de falla
Datos particionados a travs de nodos en un cluster
Replicacin de datos configurable para asegurar disponibilidad Siempre
Arriba 100% uptime
Escalabilidad lineal (rendimiento / almacenamiento) Respuesta Rpida
OLTP para datos estructurados, semi-estructurados y no estructurados

Por qu Apache Cassandra?


Comparativo de operaciones por segundo NoSQL
Databases
Alto rendimiento
Baja Latencia
Disponibilidad total
Escalamiento elstico a
travs de varios centros de
datos y la nube

Benchmark
realizado por

Arquitectura
Node: Una instancia de Apache Cassandra.

RAC1

Rack: Una Agrupacin lgica de nodos.


Data Center: Una agrupacin lgica de Racks
Cluster: Una agrupacin lgica de Data Centers (1 to N)
RAC2

Cassandra Cluster
Nod
o1

RAck
1

Nod
o
2

Data Center 1
Nod
o3

Rack
2

Nod
o
4

Nod
o5

RAck
3

Nod
o
6

Data Center 2
Nod
o7

Rack
4

Nod
o
8

DC 1

DC 2

Cmo funciona?

Tres conceptos claves


Particionamiento (Distribucin de los
datos)
Replicacin (Tolerancia a fallos)
Consistencia (rendimiento personalizable)

Particionamiento
Objetivo: Distribucin de los datos
Particionador Funcin de Hash

100 0

Generador de Token
ID

NAME

DOB

AB1

John Smith

10/11/19
72

HASH

17 Node 2

AB2

Bob Jones

3/1/1964

HASH

79 Node 1

ZZ3

Mike West

4/22/196
8

HASH

14 Node 2

HASH

32 Node 3

HASH

51 Node 4

WX2
MNZ

Sally
Thompson

10/15/19
69

Bill Wright

6/6/1966

Node 1

75

Node
4

Node 2

Node
3

50

25

Replicacin
Provee tolerancia a fallos
Provee distribucin geogrfica
Copias de cada particin estn distribuidas en data centers.
Definido a nivel de esquema (Factor de replicacin)

A123 | JOHN SMITH | 11234


A147 | BOB MARTIN | 32235
B212 | JEN JONES | 43323

RF =1

RF = 2

RF = 3

Replicacin
Mayor nivel de replicacin = Mayor tolerancia a fallos

UN
E AVA
IL

AB
L

RF =1

RF = 2

RF = 3

Teorema
CAP

Consistencia
El nivel de consistencia es configurable en Cassandra
La consistencia no funciona como en un RDBMS tradicional
Nivel de consistencia
Nmero de REPLICAS que necesito que respondan para responder a una solicitud
Puede ser establecido de manera independiente para cada solicitud (se puede tener un
default)
Algunos niveles de consistencia
ONE Una sola replica debe responder
Quorum 51% de las replicas deben responder
Local_Quorum 51% de las replicas en el data center
ALL Todas las replicas deben responder

Sistemas Anti-Entropa
Hints
El coordinador almacena actualizaciones pendientes para procesarse despus
Las almacena por tres horas (por defecto)

Read Repair
Resultados inconsistentes en tiempo de lectura disparan una accin de reparacin
para esa particin de datos
Read Repair Chance dispara una validacin de todas las replicas en un pequeo
porcentaje de lecturas

Repair
Proceso que corre en un nodo y Keyspace para verificar los datos
Puede ser calendarizado en Opscenter si se utiliza DSE
Asegura que las lpidas hayan sido propiamente eliminadas durante la
compactacin

Backups
Snapshots
Generadas por keyspace, nodo, cluster
Muy rpidas
Hard-Link

Necesitas backup?
Replicacin de datos
Datos distribuidos y replicados a travs de todos los nodos

Gossip
Gossip hace todo el trabajo
Los nodos interactan cada segundo
Comparten informacin acerca de s mismos y otros
nodos
Nodos lentos o muertos son marcados como tales
Las solicitudes son encaminadas a los nodos activos y
con buen rendimiento

Balanceo de carga
Todos los nodos pueden hacer las mismas tareas
El cliente puede contactar a cualquier nodo
Polticas:
Round Robin
DC Aware Round Robin
Token Aware

Cluster
RF = 3

Casos de Uso

Modelado de Datos

Modelado de datos en Cassandra


No
RDBMS

Cassandra is OLTP

QueryDriven
Methodol
ogy

No Joins

Use Solr for Search

Data
Modeli
ng
No
Normaliza
tion

CQL
No
Constraint
s

Use Hadoop/Spark
for Analytics

Modelado de datos en Cassandra


Cassandra no es un RDBMS
Usa CQL
Los registros son accedidos por la clave de
particionamiento
Denormalizacin (No joins)
No hay agrupaciones (No Group By)
Metodologa de modelado dirigida por consultas (Query-Driven
Metodology)
OLTP (No Analytics / No Search / No ad hoc querys)
Se utiliza Solr para bsquedas y Hadoop/Spark para Analticos

Modelado de datos en Cassandra


Define transiciones a
travs de diferentes
modelos
Metodologa dirigida por
consultas
Anlisis y validacin formal

Define un acercamiento
cientfico para el modelado
de datos a travs de:
Reglas de modelado
Patrones de mapeo
Tcnicas de optimizacin de

Conceptos bsicos
Keyspace
Identificado por nombre
Contiene tablas ("column families")
Determina el factor de replicacin

Table
Identificada por nombre
Tiene filas

Row
Contiene columnas (hasta 2 mil millones!) cien mil es el lmite prctico
Cada fila puede tener diferente nmero de columnas

Column
Identificada por nombre
Tiene un tipo de dato

Llave primaria
Requerida para cada tabla
Identifica inequvocamente una fila
Llave de Particin
Determina el nodo
Tiene una o ms columnas

Llave de Cluster

Determina la ubicacin en el disco (orden)


Tiene cero o ms columnas
Bsqueda binaria
Se pueden hacer bsquedas por: >, >=, <=, <, =

Modelado de Datos
DATE

CUST_I
D

TYPE

TIME

CUST NAME

LOCATION

AMOUNT

10/15/1
4

A11

DEPOSIT

09:24:33.55

JOHN SMITH

30132

252.50

10/15/1
4

A11

DEPOSIT

09:25:53.21

JOHN SMITH

30132

63.49

10/15/1
4

A11

WITHDRAW

12:45:22.23

JOHN SMITH

30060

-300.00

10/15/1
4

B23

DEPOSIT

08:12:22.32

BOB BARKER

94123

500.00

Tipos de Datos

Cmo se almacenan los datos?

Cassandra Write Path


C
O
O
R
D
I
N
A
T
O
R

CASSANDRA
PROCESS

ID
ID

NAME
NAME

DOB
DOB

AB1
AB1

John
John Smith
Smith

10/11/19
10/11/19
72
72

AB2

Bob Jones

3/1/1964

ZZ3

Mike West

4/22/196
8

IN MEMORY
ON DISK

(sequenti
al)
COMMIT LOG
2014 DataStax Confidential. Do not distribute without consent.

ID
NAME
DOB
ID
NAME
DOB
BB1
John Waters
11/11/19
BB1
John Waters 7411/11/19
74
CB2
Chris Jones
3/16/196
CB2
Chris Jones 4 3/16/196
4
NN3
Jim West
4/22/195
NN3
Jim West
8 4/22/195
8
SSTABLES

MEMTABLE

Cassandra Write Path


C
O
O
R
D
I
N
A
T
O
R

CASSANDRA
PROCESS

ID

NAME

DOB

AB1

John Smith

10/11/19
72

AB2

Bob Jones

3/1/1964

ZZ3

Mike West

4/22/196
8

IN MEMORY
ON DISK

(sequenti
al)
COMMIT LOG
2014 DataStax Confidential. Do not distribute without consent.

ID
NAME
DOB
ID
NAME
DOB
NAME 11/11/19
DOB
BB1 IDJohn Waters
BB1
John Waters 7411/11/19
AB1
John Smith 74 10/11/19
72
CB2
Chris Jones
3/16/196
CB2
Chris Jones 4 3/16/196
AB2
Bob Jones 4 3/1/1964
NN3 ZZ3
Jim West
4/22/195
Mike West
4/22/196
NN3
Jim West
8 4/22/195
8
8
SSTABLES

MEMTABLE

F
L
U
S
H

Cassandra Write Path


C
O
O
R
D
I
N
A
T
O
R

CASSANDRA
PROCESS

ID

NAME

DOB

AB1

John Smith

10/11/19
72

AB2

Bob Jones

3/1/1964

ZZ3

Mike West

4/22/196
8

MEMTABLE

IN MEMORY
ON DISK

(sequenti
al)
COMMIT LOG
2014 DataStax Confidential. Do not distribute without consent.

ID
NAME
ID
NAME
DOB
ID
NAME
DOBJohn Smith
AB1
NAME 11/11/19
DOB
BB1 IDJohn Waters
BB1
John Waters 7411/11/19
AB1
John Smith 74 10/11/19
AB2
Bob Jones
72
CB2
Chris Jones
3/16/196
CB2
Chris Jones ZZ3
Mike West
4 3/16/196
AB2
Bob Jones 4 3/1/1964
NN3 ZZ3
Jim West
4/22/195
Mike West
4/22/196
NN3
Jim West
CB2
Chris Jones
8 4/22/195
8
8
SSTABLES

COMPACTION

DOB
10/11/19
72
3/1/1964
4/22/196
8
3/16/196
4

SMACK Stack

Preguntas y Respuestas

Vous aimerez peut-être aussi