big data paris 2015 - cassandra chez chronopost

44
Cassandra chez Chronopost pour traiter en temps réel 1,5 milliard d’événements par an

Upload: alexander-dejanovski

Post on 20-Jul-2015

552 views

Category:

Data & Analytics


0 download

TRANSCRIPT

Page 1: Big Data Paris 2015 - Cassandra chez Chronopost

Cassandra chez Chronopostpour traiter en temps réel 1,5 milliard d’événements par an

Page 2: Big Data Paris 2015 - Cassandra chez Chronopost

Alexander DEJANOVSKI

Qui suis-je ?

• Ingénieur EAI• Depuis 15 ans chez Chronopost•@alexanderDeja

Page 3: Big Data Paris 2015 - Cassandra chez Chronopost

Leader de la livraison express de colis jusqu’à 30 kg aux entreprises comme aux particuliers partout dans le monde, Chronopost s’appuie sur en France sur un réseau constitué de 75 sites opérationnels et 7 hubs. Chronopost dessert plus de 230 pays en Europe et dans le monde.

Chronopost InternationalNotre métier

En 2014 :

3 500 salariésPlus de 60 000 entreprises clientes4 500 tournées de livraison par jour 114,5 millions de colis livrés230 pays desservis33% des colis livrés en BtoC25% de son CA à l’International

Page 4: Big Data Paris 2015 - Cassandra chez Chronopost

L’EAI chez Chronopost

Page 5: Big Data Paris 2015 - Cassandra chez Chronopost

• TIBCO BusinessWorks• 750 000 échanges/j• 3M d’étapes/j

Flux EAI chez Chronopost

Page 6: Big Data Paris 2015 - Cassandra chez Chronopost

Développement interne : FLUKSBase relationnelle

Suivi des flux EAI

Page 7: Big Data Paris 2015 - Cassandra chez Chronopost

Suivi des flux EAI

Page 8: Big Data Paris 2015 - Cassandra chez Chronopost

Suivi des flux EAI

Page 9: Big Data Paris 2015 - Cassandra chez Chronopost

Suivi des flux EAI

Page 10: Big Data Paris 2015 - Cassandra chez Chronopost

Suivi des flux EAI

Page 11: Big Data Paris 2015 - Cassandra chez Chronopost

• Contentions • Latences • Statistiques

Problèmes

Page 12: Big Data Paris 2015 - Cassandra chez Chronopost

• Portage• Scalabilité• Open Source

Proposition d’un PoC NoSQL sur Fluks

Page 13: Big Data Paris 2015 - Cassandra chez Chronopost

Hadoop

HBase

CassandraHypertable

Accumulo

CloudataCloudera

MonetDB

HPCCApache Flink

Splice Machine

MongoDB

La jungle « NoSQL/Big Data »

#CassandraSummit

Elasticsearch

Couchbase

CouchDBRethinkDB

RavenDB

MarkLogic Server

Clusterpoint Server

NeDBTerrastore

AmisaDB

JasDB

RaptorDB

djondb

EJDBdensodb

SisoDB

SDBThruDB

iBoxDB

DynamoDBRiak

Redis

AerospikeFoundationDB

LevelDB

Berkeley DB

Oracle NOSQLGenieDB

BangDB

ScalarisScalien

Voldemort

DynomiteKAI

MemcacheDB

Spark….

http://nosql-database.org/ liste + de 150 bases NoSQL

Page 14: Big Data Paris 2015 - Cassandra chez Chronopost

• HBase• Cassandra• MongoDB

Notre short list

Page 15: Big Data Paris 2015 - Cassandra chez Chronopost

Cassandra

Page 16: Big Data Paris 2015 - Cassandra chez Chronopost

• Simplicité• Réplication• Tolérance aux pannes• CQL • JDBC • Scalabilité

Pourquoi Cassandra ?

Page 17: Big Data Paris 2015 - Cassandra chez Chronopost

Partition et réplication

Replication Factor = 33 répliques de chaque enregistrement

Page 18: Big Data Paris 2015 - Cassandra chez Chronopost

Requêtes

Page 19: Big Data Paris 2015 - Cassandra chez Chronopost

Scalabilité linéaire

Page 20: Big Data Paris 2015 - Cassandra chez Chronopost

• Cré ation de table : – CREATE TABLE ma_table(

id int, value text, PRIMARY INDEX(id));

• Requêtage des donné es :– SELECT * FROM ma_table WHERE id=?

CQL = Cassandra Query Language

Page 21: Big Data Paris 2015 - Cassandra chez Chronopost

• Pas de relations• Dénormalisation• Clauses WHERE limitées• Requêtes analytiques

Il faut réapprendre certaines choses…

Page 22: Big Data Paris 2015 - Cassandra chez Chronopost

Le PoC Cassandra

Page 23: Big Data Paris 2015 - Cassandra chez Chronopost

• Driver JDBC Cassandra (TIBCO/IHM)• Guava• 2 mois / 1 personne

Portage de Fluks

Page 24: Big Data Paris 2015 - Cassandra chez Chronopost

• Serveurs décommissionnés• Août 2014 : 1ère infrastructure• Avril 2015 : évolution

Passage en production

Page 25: Big Data Paris 2015 - Cassandra chez Chronopost

• Plus de contention• Stats temps réel• RDBMS : 100-120ms / message• Cassandra : 16-20ms / message

Résultats en production

Page 26: Big Data Paris 2015 - Cassandra chez Chronopost

Comparatifs des temps d’intégration

Page 27: Big Data Paris 2015 - Cassandra chez Chronopost

• Dans la version relationnelle :

– Batch– Recalculs à la demande

• Avec la monté e en charge :

– Durée++– Perturbation insertions

Des stats temps réel ?

Page 28: Big Data Paris 2015 - Cassandra chez Chronopost

• Type «  counter  » de Cassandra– Incré mentation/Dé cré mentation :

UPDATE ma_table SET my_counter = my_counter + 10 WHERE ma_cle=1

• Le truc génial ? – UPDATE = INSERT– Enregistrement cré é s’il n’existe pas

Des stats temps réel ?

Page 29: Big Data Paris 2015 - Cassandra chez Chronopost

Attention : – Cassandra < 2.1 = compteurs

approximatifs• rejeux• OK pour des stats

Des stats temps réel ?

Page 30: Big Data Paris 2015 - Cassandra chez Chronopost

Développements en cours sur Cassandra

Page 31: Big Data Paris 2015 - Cassandra chez Chronopost

• Base Cassandra alimentée depuis notre Base Colis– Toutes les Informations colis – Tous les événements

Vision

Page 32: Big Data Paris 2015 - Cassandra chez Chronopost

• 2 nouvelles offres Chronopost à la rentré e • Stockage Cassandra• Accent fort sur le temps réel• Stockage en «  time series  »

Vision

Page 33: Big Data Paris 2015 - Cassandra chez Chronopost

Infrastructureanalytique

Page 34: Big Data Paris 2015 - Cassandra chez Chronopost

• Apache Spark 1.2• Cassandra (via connecteur Spark Datastax)

– Analyse sur profondeur réduite (opérationnel)

• HDFS– Analyse sur profondeur é tendue (archivage)

• Dataiku

Notre stack analytique « Big Data »

Page 35: Big Data Paris 2015 - Cassandra chez Chronopost

Contribution à l’écosystème Cassandra

Page 36: Big Data Paris 2015 - Cassandra chez Chronopost

• Non maintenu• Limité• Cassandra <= 1.2• Datastax Java driver

Le driver JDBC « legacy »

Page 37: Big Data Paris 2015 - Cassandra chez Chronopost

• Cassandra 2.0/2.1• Load balancing• Disponible sur code.google.com• Google : «  cassandra jdbc  »• API Thrift

Mise à jour du driver JDBC « legacy »

Page 38: Big Data Paris 2015 - Cassandra chez Chronopost

• Réécriture• Intégration Driver Java Datastax• Disponible sur github.com/adejanovski

Nouveau driver JDBC

Page 39: Big Data Paris 2015 - Cassandra chez Chronopost

Requêtes asynchrones

Page 40: Big Data Paris 2015 - Cassandra chez Chronopost

Load balancing policies : Token Aware Policy

Page 41: Big Data Paris 2015 - Cassandra chez Chronopost

Load balancing policies : DC Aware Policy

Page 42: Big Data Paris 2015 - Cassandra chez Chronopost

Load balancing policies : DC Aware Policy

Page 43: Big Data Paris 2015 - Cassandra chez Chronopost

• Datastax pour :– Son invitation aujourd’hui– Sa contribution au code source Cassandra

(>80%)– Son animation de la communauté Cassandra

• Vous pour :– M’avoir é couté jusqu’au bout

Remerciements

Page 44: Big Data Paris 2015 - Cassandra chez Chronopost

Merci !