Cassandra chez Chronopost
pour traiter en temps réel 1,5 milliard d’événements par an
Alexander DEJANOVSKI
Qui suis-je ?
• Ingénieur EAI
• Depuis 15 ans chez Chronopost
•@alexanderDeja
Leader de la livraison express de colis jusqu’à 30 kg aux entreprises comme aux
particuliers partout dans le monde, Chrono...
L’EAI chez
Chronopost
• TIBCO BusinessWorks
• 750 000 échanges/j
• 3M d’étapes/j
Flux EAI chez Chronopost
Développement interne : FLUKS
Base relationnelle
Suivi des flux EAI
Suivi des flux EAI
Suivi des flux EAI
Suivi des flux EAI
Suivi des flux EAI
• Contentions
• Latences
• Statistiques
Problèmes
• Portage
• Scalabilité
• Open Source
Proposition d’un PoC NoSQL sur Fluks
Hadoop
HBase
Cassandra
Hypertable
Accumulo
Cloudata
Cloudera
MonetDB
HPCC
Apache Flink
Splice Machine
MongoDB
La jungle « ...
• HBase
• Cassandra
• MongoDB
Notre short list
Cassandra
• Simplicité
• Réplication
• Tolérance aux pannes
• CQL
• JDBC
• Scalabilité
Pourquoi Cassandra ?
Partition et réplication
Replication Factor = 3
3 répliques de chaque enregistrement
Requêtes
Scalabilité linéaire
• Cré ation de table :
– CREATE TABLE ma_table(
id int,
value text,
PRIMARY INDEX(id)
);
• Requêtage des donné es :
– SELE...
• Pas de relations
• Dénormalisation
• Clauses WHERE limitées
• Requêtes analytiques
Il faut réapprendre certaines choses…
Le PoC
Cassandra
• Driver JDBC Cassandra (TIBCO/IHM)
• Guava
• 2 mois / 1 personne
Portage de Fluks
• Serveurs décommissionnés
• Août 2014 : 1ère
infrastructure
• Avril 2015 : évolution
Passage en production
• Plus de contention
• Stats temps réel
• RDBMS : 100-120ms / message
• Cassandra : 16-20ms / message
Résultats en product...
Comparatifs des temps d’intégration
• Dans la version relationnelle :
– Batch
– Recalculs à la demande
• Avec la monté e en charge :
– Durée++
– Perturbation ...
• Type « counter »de Cassandra
– Incré mentation/Dé cré mentation :
UPDATE ma_table
SET my_counter = my_counter + 10
WHERE...
Attention :
– Cassandra < 2.1 = compteurs
approximatifs
• rejeux
• OK pour des stats
Des stats temps réel ?
Développements
en cours sur
Cassandra
• Base Cassandra alimentée depuis notre Base Colis
– Toutes les Informations colis
– Tous les événements
Vision
• 2 nouvelles offres Chronopost à la rentré e
• Stockage Cassandra
• Accent fort sur le temps réel
• Stockage en « time se...
Infrastructure
analytique
• Apache Spark 1.2
• Cassandra (via connecteur Spark Datastax)
– Analyse sur profondeur réduite (opérationnel)
• HDFS
– An...
Contribution à
l’écosystème
Cassandra
• Non maintenu
• Limité
• Cassandra <= 1.2
• Datastax Java driver
Le driver JDBC « legacy »
• Cassandra 2.0/2.1
• Load balancing
• Disponible sur code.google.com
• Google : « cassandra jdbc »
• API Thrift
Mise à jo...
• Réécriture
• Intégration Driver Java Datastax
• Disponible sur
github.com/adejanovski
Nouveau driver JDBC
Requêtes asynchrones
Load balancing policies : Token Aware Policy
Load balancing policies : DC Aware Policy
Load balancing policies : DC Aware Policy
• Datastax pour :
– Son invitation aujourd’hui
– Sa contribution au code source Cassandra
(>80%)
– Son animation de la com...
Merci !
Prochain SlideShare
Chargement dans…5
×

Big Data Paris 2015 - Cassandra chez Chronopost

1 459 vues

Publié le

Cassandra s'impose chez Chronopost comme base NoSQL de choix pour remplacer les RDBMS traditionnels.
Pourquoi choisir Cassandra dans la jungle du Big Data, pour quels usages et quels gains en tirer.

Publié dans : Données & analyses
2 commentaires
5 j’aime
Statistiques
Remarques
Aucun téléchargement
Vues
Nombre de vues
1 459
Sur SlideShare
0
Issues des intégrations
0
Intégrations
85
Actions
Partages
0
Téléchargements
40
Commentaires
2
J’aime
5
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Big Data Paris 2015 - Cassandra chez Chronopost

  1. 1. Cassandra chez Chronopost pour traiter en temps réel 1,5 milliard d’événements par an
  2. 2. Alexander DEJANOVSKI Qui suis-je ? • Ingénieur EAI • Depuis 15 ans chez Chronopost •@alexanderDeja
  3. 3. 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 International Notre métier En 2014 : 3 500 salariés Plus de 60 000 entreprises clientes 4 500 tournées de livraison par jour 114,5 millions de colis livrés 230 pays desservis 33% des colis livrés en BtoC 25% de son CA à l’International
  4. 4. L’EAI chez Chronopost
  5. 5. • TIBCO BusinessWorks • 750 000 échanges/j • 3M d’étapes/j Flux EAI chez Chronopost
  6. 6. Développement interne : FLUKS Base relationnelle Suivi des flux EAI
  7. 7. Suivi des flux EAI
  8. 8. Suivi des flux EAI
  9. 9. Suivi des flux EAI
  10. 10. Suivi des flux EAI
  11. 11. • Contentions • Latences • Statistiques Problèmes
  12. 12. • Portage • Scalabilité • Open Source Proposition d’un PoC NoSQL sur Fluks
  13. 13. Hadoop HBase Cassandra Hypertable Accumulo Cloudata Cloudera MonetDB HPCC Apache Flink Splice Machine MongoDB La jungle « NoSQL/Big Data » #CassandraSummit Elasticsearch Couchbase CouchDB RethinkDB RavenDB MarkLogic Server Clusterpoint Server NeDB Terrastore AmisaDB JasDB RaptorDB djondb EJDB densodb SisoDB SDB ThruDB iBoxDB DynamoDB Riak Redis Aerospike FoundationDB LevelDB Berkeley DB Oracle NOSQL GenieDB BangDB Scalaris Scalien Voldemort Dynomite KAI MemcacheDB Spark …. http://nosql-database.org/ liste + de 150 bases NoSQL
  14. 14. • HBase • Cassandra • MongoDB Notre short list
  15. 15. Cassandra
  16. 16. • Simplicité • Réplication • Tolérance aux pannes • CQL • JDBC • Scalabilité Pourquoi Cassandra ?
  17. 17. Partition et réplication Replication Factor = 3 3 répliques de chaque enregistrement
  18. 18. Requêtes
  19. 19. Scalabilité linéaire
  20. 20. • 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
  21. 21. • Pas de relations • Dénormalisation • Clauses WHERE limitées • Requêtes analytiques Il faut réapprendre certaines choses…
  22. 22. Le PoC Cassandra
  23. 23. • Driver JDBC Cassandra (TIBCO/IHM) • Guava • 2 mois / 1 personne Portage de Fluks
  24. 24. • Serveurs décommissionnés • Août 2014 : 1ère infrastructure • Avril 2015 : évolution Passage en production
  25. 25. • Plus de contention • Stats temps réel • RDBMS : 100-120ms / message • Cassandra : 16-20ms / message Résultats en production
  26. 26. Comparatifs des temps d’intégration
  27. 27. • Dans la version relationnelle : – Batch – Recalculs à la demande • Avec la monté e en charge : – Durée++ – Perturbation insertions Des stats temps réel ?
  28. 28. • 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 ?
  29. 29. Attention : – Cassandra < 2.1 = compteurs approximatifs • rejeux • OK pour des stats Des stats temps réel ?
  30. 30. Développements en cours sur Cassandra
  31. 31. • Base Cassandra alimentée depuis notre Base Colis – Toutes les Informations colis – Tous les événements Vision
  32. 32. • 2 nouvelles offres Chronopost à la rentré e • Stockage Cassandra • Accent fort sur le temps réel • Stockage en « time series » Vision
  33. 33. Infrastructure analytique
  34. 34. • 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 »
  35. 35. Contribution à l’écosystème Cassandra
  36. 36. • Non maintenu • Limité • Cassandra <= 1.2 • Datastax Java driver Le driver JDBC « legacy »
  37. 37. • Cassandra 2.0/2.1 • Load balancing • Disponible sur code.google.com • Google : « cassandra jdbc » • API Thrift Mise à jour du driver JDBC « legacy »
  38. 38. • Réécriture • Intégration Driver Java Datastax • Disponible sur github.com/adejanovski Nouveau driver JDBC
  39. 39. Requêtes asynchrones
  40. 40. Load balancing policies : Token Aware Policy
  41. 41. Load balancing policies : DC Aware Policy
  42. 42. Load balancing policies : DC Aware Policy
  43. 43. • 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
  44. 44. Merci !

×