SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
Zenika © 2010 1
Terracotta
Zenika © 2010 2
ProblématiqueProblématique
Des clients toujours plus exigeants
Demande croissante
• En puissance de calcul
• applications financières,
• calcul scientifique...
• En taille des données manipulées
• Catalogues produits (Amazon, Walmart...)
• Statistiques, reporting...
→ Nécessité de déployer des clusters
Zenika © 2010 3
ProblématiqueProblématique
Problématiques d'architecture
• Synchronisation des noeuds :
• Compromis intégrité / performance
• Stratégies : réplication, broadcast invalidation...
• Résilience aux pannes :
• Une ferme de petites machines « jetables » est moins
coûteuse qu'un gros système
• Mais leur mémoire locale est volatile
Zenika © 2010 4
ProblématiqueProblématique
Solution traditionnelle :
• Clients stateless
• Données sécurisées en base de données, y compris les données
temporaires
→ BDD obèse et engorgement réseau
Zenika © 2010 5
ProblématiqueProblématique
Problématiques de programmation
Les applications deviennent plus complexes :
• Mono-thread : facile à programmer
• Multi-thread : synchronisation nécessaire, mais JMM respecté
• Cluster : JMM non respecté
→ Réécriture / réarchitecture nécessaire pour intégrer des
frameworks de clustering ou du code custom
Zenika © 2010 6
TerracottaTerracotta
Terracotta
• Présentation
• Use-cases principaux
• Architecture
• Deux modes de fonctionnement
• La plateforme DSO
• Les TIMs
• Les produits
• Scalabilité
• L'outillage
Zenika © 2010 7
TerracottaTerracotta
Présentation
• "Java Clustered Edition"
• Network Attached Memory
• partage et synchronisation d'une zone mémoire entre les JVM
• Synchronisation des threads sur le cluster
• Garantit l'application du JMM sur l'ensemble du cluster
• Locks
• Visibilité
• « Happens before »
Zenika © 2010 8
TerracottaTerracotta
Use-cases principaux
• Clustering de sessions HTTP
• Clustering de caches (EHCache, Hibernate L2...)
• Grilles de calcul type master/worker
• Synchronisation d'applications (sémaphores, latches...)
Zenika © 2010 9
TerracottaTerracotta
Architecture
• Serveur :
• Gère la synchronisation des clients (données et locks)
• Sauvegarde la mémoire dans une base locale (BerkeleyDB)
• Utilise un Distributed Garbage Collector pour nettoyer la
mémoire partagée
• Clients (JVMs) :
• Utilisent un Bootjar ou un Agent Terracotta pour communiquer
avec le serveur
• Accèdent à la zone mémoire partagée de manière
transparente
Zenika © 2010 10
TerracottaTerracotta
Zenika © 2010 11
TerracottaTerracotta
Zenika © 2010 12
TerracottaTerracotta
Deux modes de fonctionnement
• Identity
• Instrumentation des classes
• Synchronise les deltas d'objets uniquement
• Fonctionne sur des objets non Serializable
• requiert un bootjar et de la configuration XML
• Express
• Utilise la sérialisation Java standard
• Synchronise les graphes entiers d'objets Serializable
• Plus simple à utiliser
Zenika © 2010 13
TerracottaTerracotta
La plateforme DSO
• Configurée via tc-config.xml
• Roots
• Racines des graphes d'objets à partager
• Locks
• Réutilisation des locks présents dans le code
• Ou locking externe, déclaratif (pour configurer du code tiers)
• Tims
• Terracotta Integration Modules
Zenika © 2010 14
<tc-config>
<application>
<dso>
<instrumented-classes>
<include>
<class-expression>
com.zenika.terracotta.model..*
</class-expression>
</include>
</instrumented-classes>
<locks>
<autolock>
<lock-level>write</lock-level>
<method-expression>
* com.zenika.terracotta.model..*.*(..)
</method-expression>
</autolock>
</locks>
</dso>
</application>
</tc-config>
Zenika © 2010 15
TerracottaTerracotta
Les TIMs
• Fragments de configuration packagés et réutilisables
• Disponibles pour la majorité des serveurs et frameworks :
• Tomcat,
• Spring,
• Ehcache,
• Wicket...
• Facile de créer un Tim personnalisé, pour un framework maison
par exemple
• Plugin Maven
Zenika © 2010 16
TerracottaTerracotta
Les produits
• Session clustering : clusterise les maps
des sessions
• EHCache : assure l'intégrité du cache
sur le cluster et une réplication efficace.
• Hibernate 2nd level cache
• Quartz scheduling : permet de
synchroniser et de garantir l'exécution
des jobs
Zenika © 2010 17
Zenika © 2010 18
TerracottaTerracotta
Scalabilité
• Montée en charge quasi-linéaire
• Plus de puissance de calcul : augmenter le nombre de clients
(serveurs web...)
• Plus de données manipulées : augmenter le nombre de serveurs
Terracotta
• Choisir la bonne distribution Terracotta:
• Terracotta DX : opensource, serveurs en mode actif / passif,
console de développement
• Terracotta EX : + support
• Terracotta FX : + server array, go-live pack, console
d'opérations
Zenika © 2010 19
Zenika © 2010 20
L'outillage
• Dev-console
• Plugin Eclipse
Zenika © 2010 21
L'outillage
Zenika © 2010 22
ConclusionConclusion
Bénéfices
• Clustering as a platform service :
• transparent pour le programmeur
• Montée en charge linéaire par configuration
• Simple d'utilisation grâce aux Produits
• Bien outillé
• Console de développement
• Plugin Eclipse
Zenika © 2010 23
ConclusionConclusion
Terracotta everywhere
• Des clients prestigieux :
• Sabre,
• Walmart,
• Monster...
• Et vous ?
• Risque zéro car non intrusif
Zenika © 2010 24
Questions ?

Contenu connexe

En vedette

Les défis des services publics
Les défis des services publicsLes défis des services publics
Les défis des services publicsOFO - IFA
 
Clase herramientas WEB
Clase herramientas WEBClase herramientas WEB
Clase herramientas WEBMiranda90
 
Cezanne.manet.zola.beuvelet
Cezanne.manet.zola.beuveletCezanne.manet.zola.beuvelet
Cezanne.manet.zola.beuveletOlivier Beuvelet
 
Annual Results and Impact Evaluation Workshop for RBF - Day Seven - Plan Nace...
Annual Results and Impact Evaluation Workshop for RBF - Day Seven - Plan Nace...Annual Results and Impact Evaluation Workshop for RBF - Day Seven - Plan Nace...
Annual Results and Impact Evaluation Workshop for RBF - Day Seven - Plan Nace...RBFHealth
 
Annual Results and Impact Evaluation Workshop for RBF - Day Two - Résumé des ...
Annual Results and Impact Evaluation Workshop for RBF - Day Two - Résumé des ...Annual Results and Impact Evaluation Workshop for RBF - Day Two - Résumé des ...
Annual Results and Impact Evaluation Workshop for RBF - Day Two - Résumé des ...RBFHealth
 
Ki'Scène Bel'Art : Flash Back de la 8ème édition by la Compagnie En'Corps
Ki'Scène Bel'Art : Flash Back de la 8ème édition by la Compagnie En'CorpsKi'Scène Bel'Art : Flash Back de la 8ème édition by la Compagnie En'Corps
Ki'Scène Bel'Art : Flash Back de la 8ème édition by la Compagnie En'CorpsMohamed Amine Fadli
 
Présentation veille info
Présentation veille infoPrésentation veille info
Présentation veille infojyrtek
 

En vedette (20)

Les défis des services publics
Les défis des services publicsLes défis des services publics
Les défis des services publics
 
Mai 2014 statistique site public
Mai 2014 statistique site publicMai 2014 statistique site public
Mai 2014 statistique site public
 
PEPL (1)
PEPL (1)PEPL (1)
PEPL (1)
 
Clase herramientas WEB
Clase herramientas WEBClase herramientas WEB
Clase herramientas WEB
 
Distribucion de planta
Distribucion de plantaDistribucion de planta
Distribucion de planta
 
Cezanne.manet.zola.beuvelet
Cezanne.manet.zola.beuveletCezanne.manet.zola.beuvelet
Cezanne.manet.zola.beuvelet
 
mai 2014 - Stats collection TCB
mai 2014 - Stats collection TCBmai 2014 - Stats collection TCB
mai 2014 - Stats collection TCB
 
Nevera Smeg FAB50PO
Nevera Smeg FAB50PONevera Smeg FAB50PO
Nevera Smeg FAB50PO
 
Horno BOSCH HBA74S360E
Horno BOSCH HBA74S360E Horno BOSCH HBA74S360E
Horno BOSCH HBA74S360E
 
Horno Siemens HM676G0S1
Horno Siemens HM676G0S1Horno Siemens HM676G0S1
Horno Siemens HM676G0S1
 
Horno BOSCH HBB74C350E
Horno BOSCH HBB74C350EHorno BOSCH HBB74C350E
Horno BOSCH HBB74C350E
 
Annual Results and Impact Evaluation Workshop for RBF - Day Seven - Plan Nace...
Annual Results and Impact Evaluation Workshop for RBF - Day Seven - Plan Nace...Annual Results and Impact Evaluation Workshop for RBF - Day Seven - Plan Nace...
Annual Results and Impact Evaluation Workshop for RBF - Day Seven - Plan Nace...
 
Annual Results and Impact Evaluation Workshop for RBF - Day Two - Résumé des ...
Annual Results and Impact Evaluation Workshop for RBF - Day Two - Résumé des ...Annual Results and Impact Evaluation Workshop for RBF - Day Two - Résumé des ...
Annual Results and Impact Evaluation Workshop for RBF - Day Two - Résumé des ...
 
Campana Siemens LC96BA521
Campana Siemens LC96BA521 Campana Siemens LC96BA521
Campana Siemens LC96BA521
 
Les ateliers de formation de l'Équipe ADP de l'Action Pédagogique
Les ateliers de formation de l'Équipe ADP de l'Action PédagogiqueLes ateliers de formation de l'Équipe ADP de l'Action Pédagogique
Les ateliers de formation de l'Équipe ADP de l'Action Pédagogique
 
Nevera Teka TS 138
Nevera Teka TS 138Nevera Teka TS 138
Nevera Teka TS 138
 
Flores
FloresFlores
Flores
 
Campana BOSCH DIB091K50
Campana BOSCH DIB091K50Campana BOSCH DIB091K50
Campana BOSCH DIB091K50
 
Ki'Scène Bel'Art : Flash Back de la 8ème édition by la Compagnie En'Corps
Ki'Scène Bel'Art : Flash Back de la 8ème édition by la Compagnie En'CorpsKi'Scène Bel'Art : Flash Back de la 8ème édition by la Compagnie En'Corps
Ki'Scène Bel'Art : Flash Back de la 8ème édition by la Compagnie En'Corps
 
Présentation veille info
Présentation veille infoPrésentation veille info
Présentation veille info
 

Similaire à Terracotta jug

Osis18_Cloud : Virtualisation efficace d’architectures NUMA
Osis18_Cloud : Virtualisation efficace d’architectures NUMAOsis18_Cloud : Virtualisation efficace d’architectures NUMA
Osis18_Cloud : Virtualisation efficace d’architectures NUMAPôle Systematic Paris-Region
 
Net Worker 9 : une solution orientée Backup As a Service
Net Worker 9 : une solution orientée Backup As a ServiceNet Worker 9 : une solution orientée Backup As a Service
Net Worker 9 : une solution orientée Backup As a ServiceRSD
 
Slides Edataday2021_V2.pdf
Slides Edataday2021_V2.pdfSlides Edataday2021_V2.pdf
Slides Edataday2021_V2.pdfDr Hajji Hicham
 
Meetup Google Cloud
Meetup Google CloudMeetup Google Cloud
Meetup Google CloudPierre Coste
 
Panorama des offres NoSQL disponibles dans Azure
Panorama des offres NoSQL disponibles dans AzurePanorama des offres NoSQL disponibles dans Azure
Panorama des offres NoSQL disponibles dans AzureMicrosoft Technet France
 
DataStax Enterprise et Cas d'utilisation de Apache Cassandra
DataStax Enterprise et Cas d'utilisation de Apache CassandraDataStax Enterprise et Cas d'utilisation de Apache Cassandra
DataStax Enterprise et Cas d'utilisation de Apache CassandraVictor Coustenoble
 
Instances multiples : les pièges à éviter (Liferay User Group France)
Instances multiples : les pièges à éviter (Liferay User Group France)Instances multiples : les pièges à éviter (Liferay User Group France)
Instances multiples : les pièges à éviter (Liferay User Group France)Sébastien Le Marchand
 
Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1Microsoft
 
JSS2013 : Haute disponibilité
JSS2013 : Haute disponibilitéJSS2013 : Haute disponibilité
JSS2013 : Haute disponibilitéChristophe Laporte
 
Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...
Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...
Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...Modern Data Stack France
 
[Café Techno] Les nouveautés de TSM V 6.4
[Café Techno] Les nouveautés de TSM V 6.4[Café Techno] Les nouveautés de TSM V 6.4
[Café Techno] Les nouveautés de TSM V 6.4Groupe D.FI
 
DataStax Enterprise - La plateforme de base de données pour le Cloud
DataStax Enterprise - La plateforme de base de données pour le CloudDataStax Enterprise - La plateforme de base de données pour le Cloud
DataStax Enterprise - La plateforme de base de données pour le CloudVictor Coustenoble
 
Stockage et Cloud [#CloudAccelerate 13/06/2014 @ IBM CC Paris]
Stockage et Cloud [#CloudAccelerate 13/06/2014 @ IBM CC Paris]Stockage et Cloud [#CloudAccelerate 13/06/2014 @ IBM CC Paris]
Stockage et Cloud [#CloudAccelerate 13/06/2014 @ IBM CC Paris]IBM France PME-ETI
 
Présentation de notre offre TeraBackup
Présentation de notre offre TeraBackupPrésentation de notre offre TeraBackup
Présentation de notre offre TeraBackupOzitem
 
Stockage sur site et dans le Cloud: témoignage d'implémentation StorSimple
Stockage sur site et dans le Cloud: témoignage d'implémentation StorSimple Stockage sur site et dans le Cloud: témoignage d'implémentation StorSimple
Stockage sur site et dans le Cloud: témoignage d'implémentation StorSimple Microsoft Technet France
 
Ipgarde - Mardinnov' du 8 octobre 2013
Ipgarde - Mardinnov' du 8 octobre 2013Ipgarde - Mardinnov' du 8 octobre 2013
Ipgarde - Mardinnov' du 8 octobre 2013Le Moulin Digital
 
Meetup Google Cloud
Meetup Google CloudMeetup Google Cloud
Meetup Google CloudPierre Coste
 
Presentation websockets
Presentation websocketsPresentation websockets
Presentation websocketsBert Poller
 

Similaire à Terracotta jug (20)

Osis18_Cloud : Virtualisation efficace d’architectures NUMA
Osis18_Cloud : Virtualisation efficace d’architectures NUMAOsis18_Cloud : Virtualisation efficace d’architectures NUMA
Osis18_Cloud : Virtualisation efficace d’architectures NUMA
 
Net Worker 9 : une solution orientée Backup As a Service
Net Worker 9 : une solution orientée Backup As a ServiceNet Worker 9 : une solution orientée Backup As a Service
Net Worker 9 : une solution orientée Backup As a Service
 
Slides Edataday2021_V2.pdf
Slides Edataday2021_V2.pdfSlides Edataday2021_V2.pdf
Slides Edataday2021_V2.pdf
 
Meetup Google Cloud
Meetup Google CloudMeetup Google Cloud
Meetup Google Cloud
 
Panorama des offres NoSQL disponibles dans Azure
Panorama des offres NoSQL disponibles dans AzurePanorama des offres NoSQL disponibles dans Azure
Panorama des offres NoSQL disponibles dans Azure
 
DataStax Enterprise et Cas d'utilisation de Apache Cassandra
DataStax Enterprise et Cas d'utilisation de Apache CassandraDataStax Enterprise et Cas d'utilisation de Apache Cassandra
DataStax Enterprise et Cas d'utilisation de Apache Cassandra
 
Instances multiples : les pièges à éviter (Liferay User Group France)
Instances multiples : les pièges à éviter (Liferay User Group France)Instances multiples : les pièges à éviter (Liferay User Group France)
Instances multiples : les pièges à éviter (Liferay User Group France)
 
Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1
 
JSS2013 : Haute disponibilité
JSS2013 : Haute disponibilitéJSS2013 : Haute disponibilité
JSS2013 : Haute disponibilité
 
Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...
Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...
Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...
 
[Café Techno] Les nouveautés de TSM V 6.4
[Café Techno] Les nouveautés de TSM V 6.4[Café Techno] Les nouveautés de TSM V 6.4
[Café Techno] Les nouveautés de TSM V 6.4
 
DataStax Enterprise - La plateforme de base de données pour le Cloud
DataStax Enterprise - La plateforme de base de données pour le CloudDataStax Enterprise - La plateforme de base de données pour le Cloud
DataStax Enterprise - La plateforme de base de données pour le Cloud
 
Stockage et Cloud [#CloudAccelerate 13/06/2014 @ IBM CC Paris]
Stockage et Cloud [#CloudAccelerate 13/06/2014 @ IBM CC Paris]Stockage et Cloud [#CloudAccelerate 13/06/2014 @ IBM CC Paris]
Stockage et Cloud [#CloudAccelerate 13/06/2014 @ IBM CC Paris]
 
Présentation de notre offre TeraBackup
Présentation de notre offre TeraBackupPrésentation de notre offre TeraBackup
Présentation de notre offre TeraBackup
 
Stockage sur site et dans le Cloud: témoignage d'implémentation StorSimple
Stockage sur site et dans le Cloud: témoignage d'implémentation StorSimple Stockage sur site et dans le Cloud: témoignage d'implémentation StorSimple
Stockage sur site et dans le Cloud: témoignage d'implémentation StorSimple
 
Exchange 2013 Bonnes pratiques
Exchange 2013 Bonnes pratiques Exchange 2013 Bonnes pratiques
Exchange 2013 Bonnes pratiques
 
Ipgarde - Mardinnov' du 8 octobre 2013
Ipgarde - Mardinnov' du 8 octobre 2013Ipgarde - Mardinnov' du 8 octobre 2013
Ipgarde - Mardinnov' du 8 octobre 2013
 
Trivadis Extreme Exadata
Trivadis Extreme ExadataTrivadis Extreme Exadata
Trivadis Extreme Exadata
 
Meetup Google Cloud
Meetup Google CloudMeetup Google Cloud
Meetup Google Cloud
 
Presentation websockets
Presentation websocketsPresentation websockets
Presentation websockets
 

Plus de Zenika

Datascience & IoT
Datascience & IoTDatascience & IoT
Datascience & IoTZenika
 
Matinale Agile Wake Up #4 : les tests et l'agilité
Matinale Agile Wake Up #4 : les tests et l'agilitéMatinale Agile Wake Up #4 : les tests et l'agilité
Matinale Agile Wake Up #4 : les tests et l'agilitéZenika
 
Agile Wake Up #3 : Lean UX
Agile Wake Up #3 : Lean UXAgile Wake Up #3 : Lean UX
Agile Wake Up #3 : Lean UXZenika
 
Agile Wake Up #3 : La transformation Agile de Kisio Digital
Agile Wake Up #3 : La transformation Agile de Kisio DigitalAgile Wake Up #3 : La transformation Agile de Kisio Digital
Agile Wake Up #3 : La transformation Agile de Kisio DigitalZenika
 
Agile Wake Up #3 : la contractualisation Agile
Agile Wake Up #3 : la contractualisation AgileAgile Wake Up #3 : la contractualisation Agile
Agile Wake Up #3 : la contractualisation AgileZenika
 
Zenika matinale spark-zeppelin_ml
Zenika matinale spark-zeppelin_mlZenika matinale spark-zeppelin_ml
Zenika matinale spark-zeppelin_mlZenika
 
Docker du mythe à la réalité
Docker du mythe à la réalitéDocker du mythe à la réalité
Docker du mythe à la réalitéZenika
 
Motivation 3.0 : sens, autonomie et maîtrise.
Motivation 3.0 : sens, autonomie et maîtrise.Motivation 3.0 : sens, autonomie et maîtrise.
Motivation 3.0 : sens, autonomie et maîtrise.Zenika
 
Matinale React
Matinale ReactMatinale React
Matinale ReactZenika
 
NigthClazz Spark - Machine Learning / Introduction à Spark et Zeppelin
NigthClazz Spark - Machine Learning / Introduction à Spark et ZeppelinNigthClazz Spark - Machine Learning / Introduction à Spark et Zeppelin
NigthClazz Spark - Machine Learning / Introduction à Spark et ZeppelinZenika
 
NightClazz Spark / Machine Learning
NightClazz Spark / Machine LearningNightClazz Spark / Machine Learning
NightClazz Spark / Machine LearningZenika
 
HTTP2 : ce qui va changer par Julien Landuré
HTTP2 : ce qui va changer par Julien LanduréHTTP2 : ce qui va changer par Julien Landuré
HTTP2 : ce qui va changer par Julien LanduréZenika
 
Agile Wake Up #1 du 01/12/2015 : L'agilité au service des projets Orange Fran...
Agile Wake Up #1 du 01/12/2015 : L'agilité au service des projets Orange Fran...Agile Wake Up #1 du 01/12/2015 : L'agilité au service des projets Orange Fran...
Agile Wake Up #1 du 01/12/2015 : L'agilité au service des projets Orange Fran...Zenika
 
Agile Wake Up #1 du 01/12/2015 : Scrum Master's Diary par Arnaud Villenave
Agile Wake Up #1 du 01/12/2015 : Scrum Master's Diary par Arnaud VillenaveAgile Wake Up #1 du 01/12/2015 : Scrum Master's Diary par Arnaud Villenave
Agile Wake Up #1 du 01/12/2015 : Scrum Master's Diary par Arnaud VillenaveZenika
 
Agile Wake Up #1 du 01/12/2015 : L'agilité à grande échelle
Agile Wake Up #1 du 01/12/2015 : L'agilité à grande échelleAgile Wake Up #1 du 01/12/2015 : L'agilité à grande échelle
Agile Wake Up #1 du 01/12/2015 : L'agilité à grande échelleZenika
 
Entreprise libérée : Du mythe à la réalité ?
Entreprise libérée : Du mythe à la réalité ?Entreprise libérée : Du mythe à la réalité ?
Entreprise libérée : Du mythe à la réalité ?Zenika
 
Conference MicroServices101 - 1ere partie
Conference MicroServices101 - 1ere partieConference MicroServices101 - 1ere partie
Conference MicroServices101 - 1ere partieZenika
 
NightClazz Docker Découverte
NightClazz Docker Découverte NightClazz Docker Découverte
NightClazz Docker Découverte Zenika
 
Matinale DevOps / Docker
Matinale DevOps / DockerMatinale DevOps / Docker
Matinale DevOps / DockerZenika
 
NightClazz Java 8 Decouverte
NightClazz Java 8 DecouverteNightClazz Java 8 Decouverte
NightClazz Java 8 DecouverteZenika
 

Plus de Zenika (20)

Datascience & IoT
Datascience & IoTDatascience & IoT
Datascience & IoT
 
Matinale Agile Wake Up #4 : les tests et l'agilité
Matinale Agile Wake Up #4 : les tests et l'agilitéMatinale Agile Wake Up #4 : les tests et l'agilité
Matinale Agile Wake Up #4 : les tests et l'agilité
 
Agile Wake Up #3 : Lean UX
Agile Wake Up #3 : Lean UXAgile Wake Up #3 : Lean UX
Agile Wake Up #3 : Lean UX
 
Agile Wake Up #3 : La transformation Agile de Kisio Digital
Agile Wake Up #3 : La transformation Agile de Kisio DigitalAgile Wake Up #3 : La transformation Agile de Kisio Digital
Agile Wake Up #3 : La transformation Agile de Kisio Digital
 
Agile Wake Up #3 : la contractualisation Agile
Agile Wake Up #3 : la contractualisation AgileAgile Wake Up #3 : la contractualisation Agile
Agile Wake Up #3 : la contractualisation Agile
 
Zenika matinale spark-zeppelin_ml
Zenika matinale spark-zeppelin_mlZenika matinale spark-zeppelin_ml
Zenika matinale spark-zeppelin_ml
 
Docker du mythe à la réalité
Docker du mythe à la réalitéDocker du mythe à la réalité
Docker du mythe à la réalité
 
Motivation 3.0 : sens, autonomie et maîtrise.
Motivation 3.0 : sens, autonomie et maîtrise.Motivation 3.0 : sens, autonomie et maîtrise.
Motivation 3.0 : sens, autonomie et maîtrise.
 
Matinale React
Matinale ReactMatinale React
Matinale React
 
NigthClazz Spark - Machine Learning / Introduction à Spark et Zeppelin
NigthClazz Spark - Machine Learning / Introduction à Spark et ZeppelinNigthClazz Spark - Machine Learning / Introduction à Spark et Zeppelin
NigthClazz Spark - Machine Learning / Introduction à Spark et Zeppelin
 
NightClazz Spark / Machine Learning
NightClazz Spark / Machine LearningNightClazz Spark / Machine Learning
NightClazz Spark / Machine Learning
 
HTTP2 : ce qui va changer par Julien Landuré
HTTP2 : ce qui va changer par Julien LanduréHTTP2 : ce qui va changer par Julien Landuré
HTTP2 : ce qui va changer par Julien Landuré
 
Agile Wake Up #1 du 01/12/2015 : L'agilité au service des projets Orange Fran...
Agile Wake Up #1 du 01/12/2015 : L'agilité au service des projets Orange Fran...Agile Wake Up #1 du 01/12/2015 : L'agilité au service des projets Orange Fran...
Agile Wake Up #1 du 01/12/2015 : L'agilité au service des projets Orange Fran...
 
Agile Wake Up #1 du 01/12/2015 : Scrum Master's Diary par Arnaud Villenave
Agile Wake Up #1 du 01/12/2015 : Scrum Master's Diary par Arnaud VillenaveAgile Wake Up #1 du 01/12/2015 : Scrum Master's Diary par Arnaud Villenave
Agile Wake Up #1 du 01/12/2015 : Scrum Master's Diary par Arnaud Villenave
 
Agile Wake Up #1 du 01/12/2015 : L'agilité à grande échelle
Agile Wake Up #1 du 01/12/2015 : L'agilité à grande échelleAgile Wake Up #1 du 01/12/2015 : L'agilité à grande échelle
Agile Wake Up #1 du 01/12/2015 : L'agilité à grande échelle
 
Entreprise libérée : Du mythe à la réalité ?
Entreprise libérée : Du mythe à la réalité ?Entreprise libérée : Du mythe à la réalité ?
Entreprise libérée : Du mythe à la réalité ?
 
Conference MicroServices101 - 1ere partie
Conference MicroServices101 - 1ere partieConference MicroServices101 - 1ere partie
Conference MicroServices101 - 1ere partie
 
NightClazz Docker Découverte
NightClazz Docker Découverte NightClazz Docker Découverte
NightClazz Docker Découverte
 
Matinale DevOps / Docker
Matinale DevOps / DockerMatinale DevOps / Docker
Matinale DevOps / Docker
 
NightClazz Java 8 Decouverte
NightClazz Java 8 DecouverteNightClazz Java 8 Decouverte
NightClazz Java 8 Decouverte
 

Terracotta jug

  • 1. Zenika © 2010 1 Terracotta
  • 2. Zenika © 2010 2 ProblématiqueProblématique Des clients toujours plus exigeants Demande croissante • En puissance de calcul • applications financières, • calcul scientifique... • En taille des données manipulées • Catalogues produits (Amazon, Walmart...) • Statistiques, reporting... → Nécessité de déployer des clusters
  • 3. Zenika © 2010 3 ProblématiqueProblématique Problématiques d'architecture • Synchronisation des noeuds : • Compromis intégrité / performance • Stratégies : réplication, broadcast invalidation... • Résilience aux pannes : • Une ferme de petites machines « jetables » est moins coûteuse qu'un gros système • Mais leur mémoire locale est volatile
  • 4. Zenika © 2010 4 ProblématiqueProblématique Solution traditionnelle : • Clients stateless • Données sécurisées en base de données, y compris les données temporaires → BDD obèse et engorgement réseau
  • 5. Zenika © 2010 5 ProblématiqueProblématique Problématiques de programmation Les applications deviennent plus complexes : • Mono-thread : facile à programmer • Multi-thread : synchronisation nécessaire, mais JMM respecté • Cluster : JMM non respecté → Réécriture / réarchitecture nécessaire pour intégrer des frameworks de clustering ou du code custom
  • 6. Zenika © 2010 6 TerracottaTerracotta Terracotta • Présentation • Use-cases principaux • Architecture • Deux modes de fonctionnement • La plateforme DSO • Les TIMs • Les produits • Scalabilité • L'outillage
  • 7. Zenika © 2010 7 TerracottaTerracotta Présentation • "Java Clustered Edition" • Network Attached Memory • partage et synchronisation d'une zone mémoire entre les JVM • Synchronisation des threads sur le cluster • Garantit l'application du JMM sur l'ensemble du cluster • Locks • Visibilité • « Happens before »
  • 8. Zenika © 2010 8 TerracottaTerracotta Use-cases principaux • Clustering de sessions HTTP • Clustering de caches (EHCache, Hibernate L2...) • Grilles de calcul type master/worker • Synchronisation d'applications (sémaphores, latches...)
  • 9. Zenika © 2010 9 TerracottaTerracotta Architecture • Serveur : • Gère la synchronisation des clients (données et locks) • Sauvegarde la mémoire dans une base locale (BerkeleyDB) • Utilise un Distributed Garbage Collector pour nettoyer la mémoire partagée • Clients (JVMs) : • Utilisent un Bootjar ou un Agent Terracotta pour communiquer avec le serveur • Accèdent à la zone mémoire partagée de manière transparente
  • 10. Zenika © 2010 10 TerracottaTerracotta
  • 11. Zenika © 2010 11 TerracottaTerracotta
  • 12. Zenika © 2010 12 TerracottaTerracotta Deux modes de fonctionnement • Identity • Instrumentation des classes • Synchronise les deltas d'objets uniquement • Fonctionne sur des objets non Serializable • requiert un bootjar et de la configuration XML • Express • Utilise la sérialisation Java standard • Synchronise les graphes entiers d'objets Serializable • Plus simple à utiliser
  • 13. Zenika © 2010 13 TerracottaTerracotta La plateforme DSO • Configurée via tc-config.xml • Roots • Racines des graphes d'objets à partager • Locks • Réutilisation des locks présents dans le code • Ou locking externe, déclaratif (pour configurer du code tiers) • Tims • Terracotta Integration Modules
  • 14. Zenika © 2010 14 <tc-config> <application> <dso> <instrumented-classes> <include> <class-expression> com.zenika.terracotta.model..* </class-expression> </include> </instrumented-classes> <locks> <autolock> <lock-level>write</lock-level> <method-expression> * com.zenika.terracotta.model..*.*(..) </method-expression> </autolock> </locks> </dso> </application> </tc-config>
  • 15. Zenika © 2010 15 TerracottaTerracotta Les TIMs • Fragments de configuration packagés et réutilisables • Disponibles pour la majorité des serveurs et frameworks : • Tomcat, • Spring, • Ehcache, • Wicket... • Facile de créer un Tim personnalisé, pour un framework maison par exemple • Plugin Maven
  • 16. Zenika © 2010 16 TerracottaTerracotta Les produits • Session clustering : clusterise les maps des sessions • EHCache : assure l'intégrité du cache sur le cluster et une réplication efficace. • Hibernate 2nd level cache • Quartz scheduling : permet de synchroniser et de garantir l'exécution des jobs
  • 18. Zenika © 2010 18 TerracottaTerracotta Scalabilité • Montée en charge quasi-linéaire • Plus de puissance de calcul : augmenter le nombre de clients (serveurs web...) • Plus de données manipulées : augmenter le nombre de serveurs Terracotta • Choisir la bonne distribution Terracotta: • Terracotta DX : opensource, serveurs en mode actif / passif, console de développement • Terracotta EX : + support • Terracotta FX : + server array, go-live pack, console d'opérations
  • 20. Zenika © 2010 20 L'outillage • Dev-console • Plugin Eclipse
  • 21. Zenika © 2010 21 L'outillage
  • 22. Zenika © 2010 22 ConclusionConclusion Bénéfices • Clustering as a platform service : • transparent pour le programmeur • Montée en charge linéaire par configuration • Simple d'utilisation grâce aux Produits • Bien outillé • Console de développement • Plugin Eclipse
  • 23. Zenika © 2010 23 ConclusionConclusion Terracotta everywhere • Des clients prestigieux : • Sabre, • Walmart, • Monster... • Et vous ? • Risque zéro car non intrusif
  • 24. Zenika © 2010 24 Questions ?