Terracotta jug

1,202 views

Published on

1 Comment
0 Likes
Statistics
Notes
  • 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.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

No Downloads
Views
Total views
1,202
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
10
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

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 ?

×