Contenu connexe
Similaire à Terracotta jug
Similaire à Terracotta jug (20)
Terracotta jug
- 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
- 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
- 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