Zenika © 2010 1
Terracotta
Zenika © 2010 2
ProblématiqueProblématique
Des clients toujours plus exigeants
Demande croissante
• En puissance de calcul...
Zenika © 2010 3
ProblématiqueProblématique
Problématiques d'architecture
• Synchronisation des noeuds :
• Compromis intégr...
Zenika © 2010 4
ProblématiqueProblématique
Solution traditionnelle :
• Clients stateless
• Données sécurisées en base de d...
Zenika © 2010 5
ProblématiqueProblématique
Problématiques de programmation
Les applications deviennent plus complexes :
• ...
Zenika © 2010 6
TerracottaTerracotta
Terracotta
• Présentation
• Use-cases principaux
• Architecture
• Deux modes de fonct...
Zenika © 2010 7
TerracottaTerracotta
Présentation
• "Java Clustered Edition"
• Network Attached Memory
• partage et synchr...
Zenika © 2010 8
TerracottaTerracotta
Use-cases principaux
• Clustering de sessions HTTP
• Clustering de caches (EHCache, H...
Zenika © 2010 9
TerracottaTerracotta
Architecture
• Serveur :
• Gère la synchronisation des clients (données et locks)
• S...
Zenika © 2010 10
TerracottaTerracotta
Zenika © 2010 11
TerracottaTerracotta
Zenika © 2010 12
TerracottaTerracotta
Deux modes de fonctionnement
• Identity
• Instrumentation des classes
• Synchronise ...
Zenika © 2010 13
TerracottaTerracotta
La plateforme DSO
• Configurée via tc-config.xml
• Roots
• Racines des graphes d'obj...
Zenika © 2010 14
<tc-config>
<application>
<dso>
<instrumented-classes>
<include>
<class-expression>
com.zenika.terracotta...
Zenika © 2010 15
TerracottaTerracotta
Les TIMs
• Fragments de configuration packagés et réutilisables
• Disponibles pour l...
Zenika © 2010 16
TerracottaTerracotta
Les produits
• Session clustering : clusterise les maps
des sessions
• EHCache : ass...
Zenika © 2010 17
Zenika © 2010 18
TerracottaTerracotta
Scalabilité
• Montée en charge quasi-linéaire
• Plus de puissance de calcul : augmen...
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
• M...
Zenika © 2010 23
ConclusionConclusion
Terracotta everywhere
• Des clients prestigieux :
• Sabre,
• Walmart,
• Monster...
•...
Zenika © 2010 24
Questions ?
Prochain SlideShare
Chargement dans…5
×

Terracotta jug

1 163 vues

Publié le

1 commentaire
0 j’aime
Statistiques
Remarques
  • Tout commence dans un cadre familier: des load-balancers, des reverse-proxies, des serveurs d'application, une base de données, plein de diodes lumineuses qui clignotent de façon hypnotisante et une température vraiment glaciale. Le nombre d'utilisateurs augmente chaque jour, et chaque fois votre équipe arrive à tuner l'un des composants pour conserver une performance acceptable. Pourtant un jour, la limite dure du système va être atteinte.

    Terracotta est né de ce constat et des besoins spécifiques de clients nécessitant une scalabilité linéaire. Linéaire car le but est d'enregistrer, lors de l'ajout d'un noeud au cluster, un gain continu de capacité de traitement ou de taille maximale de données en mémoire. En termes techniques, Terracotta est un outil opensource permettant de partager des structures de données et des locks de facon optimisée entre JVM. Mais surtout, dans un cadre de haute-disponibilité et/ou de haute performance, Terracotta est un outil vous permettant de dormir la nuit sans avoir à vous réveiller en sursaut pour aller vérifier vos failovers de base de données.
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 163
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
10
Commentaires
1
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Terracotta jug

  1. 1. Zenika © 2010 1 Terracotta
  2. 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. 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. 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. 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. 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. 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. 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. 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. 10. Zenika © 2010 10 TerracottaTerracotta
  11. 11. Zenika © 2010 11 TerracottaTerracotta
  12. 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. 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. 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. 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. 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
  17. 17. Zenika © 2010 17
  18. 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
  19. 19. Zenika © 2010 19
  20. 20. Zenika © 2010 20 L'outillage • Dev-console • Plugin Eclipse
  21. 21. Zenika © 2010 21 L'outillage
  22. 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. 23. Zenika © 2010 23 ConclusionConclusion Terracotta everywhere • Des clients prestigieux : • Sabre, • Walmart, • Monster... • Et vous ? • Risque zéro car non intrusif
  24. 24. Zenika © 2010 24 Questions ?

×