nosql user group paris - 21 juin 2011 - gigaspaces
DESCRIPTION
Présentation GigaSpaces réalisée pour le groupe NoSQL à Paris lors de la session du 21 Juin 2011 (http://bit.ly/lDb1y4).TRANSCRIPT
www.fastconnect.fr
NOSQL User Group Paris 21 Juin 2011
Introduc0on
GigaSpaces Historique
d’un cache distribué à une plate-‐forme transac<onnelle scalable Fonc<onnalités principales
Cas d’u<lisa<on Le DataGrid main<ent la performance et gère la scalabilité du Grid Compu<ng
Référen<el de données
Plate-‐forme de routage d’ordres interna<onale
Résumé
Démo
Agenda
Qui sommes nous ? > SELECT * FROM nosqlparis.speakers WHERE
company = ‘FastConnect’ +-------------------------------------------------------------------------------+
| Name | Company | Role |
+-------------------------------------------------------------------------------+
| Gauvain Girault | FastConnect | Resp. Dpt Conseil & Solutions, CTO fondateur | | Luc Boutier | FastConnect | Resp. Pôle Grid/DataGrid & SOA Open Source |
+-------------------------------------------------------------------------------+
> nosqlparis.speakers.find({name:“Gauvain Girault”}) { name:“Gauvain Girault”, company: { name:“FastConnect”, domains:[“SOA” “EAI/ESB” “Grid”,“DataGrid”,“Cloud/PaaS” “Optimisation”] expertise:“Architectures Distribuées” } role:“CTO”, }
Introduc<on
GigaSpaces Historique
d’un cache distribué à une plate-‐forme transac0onnelle scalable Fonc<onnalités principales
Cas d’u<lisa<on Le DataGrid main<ent la performance et gère la scalabilité du Grid Compu<ng
Référen<el de données
Plate-‐forme de routage d’ordres interna<onale
Résumé
Démo
Agenda
Historique
Applica<ons
Au commencement, il y avait Jini …
Applica<ons Write
Read, Take, Notify W
rite
Rea
d, T
ake,
N
otify
API Jini/JavaSpaces • Write – écrit un objet • Read – lit un objet • Take – lit un objet et l’efface (atomique !) • Notify – génère une notification sur le changement d’état d’un objet
Jini • Entry • Discovery & join • Distributed Leasing (lease management & renewal) • Distributed Event programming model • Transaction model & semantics
Et son modèle tuple
Applica<ons • Base de l’interopérabilité entre langages
• Le tuple porte les méta données : répliqué, persisté, indexé, relations, etc…
Et GigaSpaces clusterisa JavaSpaces
In-‐Memory Clustering par00oned/replicated ,
sync/async, with or w/o backups
Clustering Réplication Fail-Over Répartition de charge Fournit: Scalabilité Haute Disponibilité Performance
• Découplage code – déploiement • Objectif : rendre flexible le déploiement par configuration de l’infrastructure GigaSpaces sans changer le code
Evolu0on vers un Cache Distribué
Applica<ons
cache distribué
sources de données
serveurs d’applications
• Optimisation des temps d’accès en lecture • Déchargement de la base de données • Multi langages : Java, C++, .Net
Qu’est ce que c’est ? Hashmap distribuée, clusterise la mémoire d’un ensemble de machines
A quoi çà sert ? Op<mise les temps d’accès en lecture (et écriture) : en millisecondes Mais la base de données reste garante de l’intégrité des données (System Of Records) et
donc se trouve sur le chemin cri<que des données (en écriture)
Technologies phares Memcached, Tangosol (maintenant Oracle) Coherence, IBM eXtreme Scale,
GigaSpaces Diverses implémentations et fonctionnalités : hash-based, consistent hashing,
appels multiples ou non, divers langages supportés suivant les technos
Cas d’usage Sites Web : données de session, pages Web HPC : données de référence nécessaires au calcul
Le cache distribué
Puis vers une grille de données / DataGrid
Applica<ons
grille de données
sources de données
Serveurs
• Optimisation des temps d’accès en lecture et écriture • Déchargement de la base de données • Multi langages : Java, C++, .Net • Transactionnel : local, distribué, XA pour certains
Qu’est ce que c’est ? Un cache distribué ++ : requêtage avancé (“SQL like”), map/reduce, multi langage et interopérabilité
( Java,C++, .Net) Intégration aux sources de données pilotée par le data grid Gestion cohérence/intégrité (locks, transactions)
A quoi çà sert ? Op<mise les temps d’accès en lecture (et écriture) : en millisecondes Le back end (base de données ou mainframe) n’est plus sur le chemin cri<que de l’applica<on (stockage
asynchrone)
Technologies phares Tangosol (maintenant Oracle) Coherence, IBM eXtreme Scale, GigaSpaces, Gemstone
Cas d’usage Systèmes transactionnels frontaux (devant Back Ends type mainframe) Finance : plates-formes de routage d’ordre Référentiels virtualisés (performance, scalabilité)
La grille de données
Serveur d’applica0ons transac0onnel distribué
JEE vs GigaSpaces XAP Component J2EE XAP
Persistency JPA Hibernate, JPA
Messaging JMS,MDB JMS, Polling/No<fy Container , Na<ve Messaging API
Security JASS, SSL Spring Security, SSL (incl Data !)
Web Session Management HYpSession HYpSession (via JeYy)
Transac<on Management JTA Spring Transac<on via Jini Transac<on Manager
Data Access JDBC , Session Bean, En<ty Bean JDBC, Space, JPA, Document
Remo<ng EJB, IIOP, RMI Spring remo<ng over LRMI
Web Servlet, JSP Servlet, JSP (via JeYy)
Packaging and deployment ear , war jar , war
Contexts and Dependency Injec<on
JSR 299 Spring IOC
System Management JMX JMX , SNMP, Na<ve Admin API
Java Naming and Directory Service JNDI Jini Lookup Service
Une plate-‐forme transac0onelle élas0que
Applica<ons
Montée en charge dynamique ( contrôlée par des SLAs)
Plusieurs API pour : • accéder aux mêmes données ( mode tx ou non) !
• permet d’héberger (services) ou exécuter du code (map/reduce)
• déployer ses applis Web sous Je]y (war)
Elas0cité =
1 console Web et APIs de supervision et d’administra0on • Contrôle • Visualisa0on • Alertes
Introduc<on
GigaSpaces Historique
d’un cache distribué à une plate-‐forme transac<onnelle scalable Fonc0onnalités principales
Cas d’u<lisa<on Le DataGrid main<ent la performance et gère la scalabilité du Grid Compu<ng
Référen<el de données
Plate-‐forme de routage d’ordres interna<onale
Résumé
Démo
Agenda
La Processing Unit • Unité de scalabilité
• Ensemble de : services, données, événementiel
• Colocalisation au sein du même espace mémoire (VM)
• Gestion unifiée Evénements et Données
• In-Memory + colocalisation = latence minimisée
Cloud de Processing Units
• Scalabilité à travers le partitionnement
• Virtualisation middleware et infrastructure (DataCenter, Cloud privé, public, …)
Un Space: • Elégance – 4 API simples
• Gère:
• Etat
• Messaging
• Workflow
• Parallel processing
Au cœur de GigaSpaces : Space Based Architecture
• Accès unifié aux données en mémoire
• Topologie flexible, une API (“Write Once Scale Anywhere”) – Embarqué, clusterisé, quelque soit le type (par<<onné, répliqué,
avec ou sans réplicas/backups) – Local ou distribué ou mixte (master-‐local + évic<on)
• Une variété d’API clientes – Map/Jcache, Space, Document, en Java, .Net, C++
Un middleware en mémoire souple
Embarqué / Distribué / Master-‐Local
Users Load Balancer
Writer (Proxy)
Reader (Proxy)
Par00on 1
Par00on 2
Par00on 3
Par00on #N
Routage contrôlé (Hash % #partitions) => latence optimisée
Scalabilité par le par00onnement
Scalabilité : • données • requêtes
Scalabilité dynamique par la dissociation JVM/ partitions • une JVM peut contenir plusieurs ‘partitions’ • ajoût JVM et rebalancing automatisé => scalabilité dynamique
Users Load Balancer
Par00on 1
Writer (Proxy)
Reader (Proxy)
Replica 1
Par00on 1 Replica 1
Par00on 1 Replica 1
Par00on 1 Replica 1
Résilience à travers l’u0lisa0on de replicas/backups
SITE A SITE B
Active/Active deployment
SITE A SITE B
Site failure
SITE A SITE B
Rebalancing…
SITE A
Recovery after Site failure
SITE B
Résilience controlée : placement zones (DR, main)
23
SITE C
SITE B
Mirror
Mirror
Mirror
SITE D
Mirror
SITE A
Mirror
WAN
Ges0on fédéra0ons de clusters mul0-‐sites
File Based Wan Gateway v1 (FastConnect)
• Nombre configurable de réplicas/backups par par<<on
• Eventual consistency (Réplica<on asynchrone) – Meilleure performance pour les opéra<ons “destructrices” (write/update/take/clear)
– Peut créer des probèmes de consistance dans les lectures (pas de quorum reads par défaut)
– Résilience – possibilité de perte de données
• Strong consistency (Réplica<on synchrone) – Performance en écriture divisée par 2 au moins (aYente acquiYement réplicas)
– Consistance garan<e
• Combinaison des 2 : Write behind (GigaSpaces Mirror)
– Synchrone en mémoire
– Asynchrone vers le disque
Configura0on des paramètres CAP
• Objec<fs – Minimiser le “lock-‐in” au niveau code
– Faciliter la migra<on d’applica<ons existantes
– Choisir le meilleur ou<l en fonc<on du besoin
– Réunir les mondes SQL et non-‐SQL
• Fonc<onnalités – Mul< langages (Java, .Net, C++)
– Support de JPA – API orientée Document
– Support JDBC – Memcached
Plusieurs APIs d’accès aux données
• GigaSpaces Object oriented API
• GigaSpaces JDBC API
• Memcached API
• Map/Reduce
Exemples de requêtes
• GigaSpaces JPA
JPA
Metadata
Query SQL like approach
Schema free
Nested documents
Modèle document
Ges0on des collec0ons
Containers d’abstrac0on One to One ~JMS queue
One to Many ~ JMS topic
Web
Writer
Reader Space
Writer
Reader Space
Writer
Reader Space
Read- Map/Reduce
Read all
Implicit Map/Reduce: Explicit Map/Reduce:
Map-‐Reduce dans GigaSpaces
• Objec<fs – Simplifier la transi<on du développement à la produc<on
– Automa<sa<on sans perte de contrôle
• Fonc<onnalités – Mode de packaging
GigaSpaces PU (services + données, ou services, ou données)= jar, Web PU = war – Elas<c middleware
• Simplifica<on des déploiements à grande échelle
• Support na<f de SLAs pour la montée en charge (et la redescente)
• Support Mul< cloud – Console de supervision et contrôle Web – Dev Ops API pour la customisa<on
• Intégrer finement l’applica<on à l’environnement (infastructure, custom SLA)
• Automa<sa<on
Ou0ls d’exploita0on
Ressources matérielles partagées
Caractéris<ques • Déploiement centralisé
– Provisionnement en 1 click
• Mul<-‐tenant – U<lise des ressources partagées
(ges<on sécurité à tous les niveaux)
• Montée en charge automa<sée
– Alloca<on de ressources en fonc<on de SLAs
– Désalloue les ressources si nécessaire (en fonc<on des SLAs)
• Résilient – Ges<on automa<que des
pannes : réalloca<on PU, redémarrage containers/VMs
– Le DataGrid gère la résilence des données
– interac<on avec infrastructures virtuelles : VMWare, Xen, AmazonEC2, …
Chargement données
Chargement données
Déploie un Data Grid Min (10G), Max (100G)
Déploie un Data Grid Min (10G), Max (200G)
Simplifica0on et centralisa0on déploiement
• Autres op<ons: – Permet d’arrêter ou démarrer des machines – Security
35
Gestion déclarative
Elas0c Management API
• Permet le contrôle de tous les aspects d’une applica<on distribuée: – Déploiement / Retrait
– Alloca0on et ges0on des ressources – Arrêt / Redémarrage de tout ou par0e
• Supervision proac<ve de l’applica<on et de l’infrastructure sous jacente:
– Alertes
– Indicateurs visuels
Console d’administra0on
• Visibilité opéra<onnelle sur l’applica<on déployée à travers des APIs
• Intégra<on à systèmes <ers
• Ou<ls d’administra<on : – Informa<ons sur le comportement de l’applica<on – Réac<ons face aux événements de panne ou montée en
charge – Trouble shoo<ng – S’assurer que le SLA applica<f est respecté
APIs « DevOps »
Introduc<on
GigaSpaces Historique
d’un cache distribué à une plate-‐forme transac<onnelle scalable Fonc<onnalités principales
Cas d’u0lisa0on Le DataGrid main0ent la performance et gère la scalabilité du Grid
Compu0ng Référen<el de données
Plate-‐forme de routage d’ordres interna<onale
Résumé
Démo
Agenda
Exemple d’architecture HPC
Généralement calculs de risques : historical VaR, Stress Var
Ges0on de temps de réponse très faibles en lecture En millisecondes
(Ges0on d’un proxy de connexion)
Requêtes semi complexes -‐ type SQL (where)
Le DataGrid Supporte de quelques centaines à quelques milliers de nœuds Grid Compu0ng en produc0on
Ges0on de plusieurs centaines de milliers de requêtes par seconde en pic
Ges0on de plusieurs centaines de Giga Octets en mémoire
DataGrid dans architecture HPC
Introduc<on
GigaSpaces Historique
d’un cache distribué à une plate-‐forme transac<onnelle scalable Fonc<onnalités principales
Cas d’u0lisa0on Le DataGrid main<ent la performance et gère la scalabilité du Grid Compu<ng
Référen0el de données
Plate-‐forme de routage d’ordres interna<onale
Résumé
Démo
Agenda
Architecture Clients en .Net & Java
Font du Request/reply S’abonnent en No0fica0ons A des données de référen0el marché et sta0ques (XML compressé)
Back-end GigaSpaces + connecteurs d’intégration aux référentiels amonts
GigaSpaces adopté en 2008 Usage :
DataGrid par00oned-‐sync2backup_32,1 = 32 par00ons (1 backup/par00on) x 6GB Event container colocalisé, publisher/subscriber no0fica0on
Caractéris0ques DataGrid (ALL_IN_CACHE mode) Intégra0on na0ve à une base de données sous-‐jacente Requêtes complexes Services d’accès aux données Ges0on transac0onnelle Mul0-‐sites gateway (en cours) Ges0on des SLA (par configura0on) Système de no0fica0ons scalable
Référen0el de données virtualisé
En produc0on depuis 2008 Sert 60 à 80 applica0ons clientes
Tourne sur 8 machines : CPU Bi-‐pro 8 cores OS RedHat 5.5 RAM 48 Go JVM : Sun JDK 1.6.24 – 64bits GigaSpaces 6.6.6 build 3333 (JVM size : 6 Go/container) ; en migra0on vers GigaSpaces 8 Oracle DB 10g
Sta0s0ques journalières 1.7 millions d’objets mé0ers stockés en mémoire 14 Milliards de lecture en Mai 2011 ( contre 4 Milliards en Janvier 2011) 3.7 millions d’inser0ons / mises à jour 56 millions de no0fica0ons en Mai 2011 (contre 2.2 millions en Janvier 2011) 1 million d’effacements (purge) Temps de réponse en ms
Supervision & repor0ng Solu0on maison
Référen0el de données virtualisé
Introduc<on
GigaSpaces Historique
d’un cache distribué à une plate-‐forme transac<onnelle scalable Fonc<onnalités principales
Cas d’u0lisa0on Le DataGrid main<ent la performance et gère la scalabilité du Grid Compu<ng
Référen<el de données
Plate-‐forme de routage d’ordres interna0onale
Résumé
Démo
Agenda
Architecture haut-‐niveau Différents type de clients
Web, clients lourds, console d’administra0on, jBPM Services applica0fs WebLogic
DAO layer access to the space
GigaSpaces
DataGrid devant une base de données Fournisseur d’événements sur les changements d’états des
données (pas de middleware type JMS)
Fonc0onnalités u0lisées DataGrid (ALL_IN_CACHE mode), scalabilité mé0er Intégra0on à la base de données (Hibernate) Queries complexes Ges0on transac0onnelle (cri0que et indispensable) Gateway WAN mul0-‐site en cours de déploiement, ges0on
intégrité des données remontée à l’applica0on ! SLA management No0fica0ons vers les consoles u0lisateurs
Plate-‐forme de routage d’ordres Stats journalières • 5 millions objets métiers + 100k static objects
• 36 millions reads
• 5 millions writes/updates
• 800K notifications
• 7K takes
• Temps de réponse en ms
Introduc<on
GigaSpaces Historique
d’un cache distribué à une plate-‐forme transac<onnelle scalable Fonc<onnalités principales
Cas d’u<lisa<on Le DataGrid main<ent la performance et gère la scalabilité du Grid Compu<ng
Référen<el de données
Plate-‐forme de routage d’ordres interna<onale
Résumé
Démo
Agenda
Beaucoup de concepts communs entre GigaSpaces (DataGrid en général) et les approches NoSQL et similarités avec les bases de données
Fonc<onnalités d’entreprise : transac<ons, intégra<on sources de données externes, WAN, supervision et administra<on
Fonc<onnalités permeYant la migra<on plus aisée d’applica<ons existantes vers les concepts distribués / NoSQL
Prouvé et opérable (avec la forma<on nécessaire)
Flexibilité laissée à l’architecte/développeur sur le choix de l’API à u<liser en fonc<on du besoin : très puissant
Nécessité de bonnes connaissances d’architecture distribuées comme sur les plates-‐formes NoSQL
GigaSpaces : entre SGBD en mémoire et système NoSQL
SGDB, DataGrid ou NoSQL, comment choisir ?
Attention cette grille a été réalisée en 2010 dans un contexte particulier. Elle est présente à titre informatif, et ne doit pas servir à effectuer des choix non raisonnés ;-)
Doit on vraiment choisir ? • GigaSpaces + NoSQL = plate-‐forme tx Big Data
In Memory Data Grid / App Server
• Temps-‐réel
• Evénemen<el
• Exécu<on de code au plus proche des données
NoSQL (stockage fichier) • Stockage à coût modéré
(rapport prix/perfs linéaire) • Scalabilité Write/Read
• Montée en charge dynamique
Sources
Application Analytique
Write Behind (async) Combien d’erreurs aujourd’hui ?
Quels sont les erreurs qui se produisent en même temps ?
Introduc<on
GigaSpaces Historique
d’un cache distribué à une plate-‐forme transac<onnelle scalable Fonc<onnalités principales
Cas d’u<lisa<on Le DataGrid main<ent la performance et gère la scalabilité du Grid Compu<ng
Référen<el de données
Plate-‐forme de routage d’ordres interna<onale
Résumé
Démo
Agenda
Intégra<on de GigaSpaces serveur d’applica<ons distribués et cluster de données scalable en mémoire et Cassandra comme stockage persistant et scalable
hYp://www.gigaspaces.com/wiki/display/SBP/Cassandra+Mirror+Service
Démo
CREE EN 2004 80 CONSULTANTS
• Paris • Rennes (2011) • Toulouse (2011)
Sites
Nos consultants apportent leur expertise dans les domaines suivants
Architecture Orientée Services (SOA) et Événements (EDA) Conception, implémentation et optimisation d’architectures Java/EE et .Net (et clients C++ parfois) Intégration d’Applications et d’Informations (EAI, ESB) Présentation de l’information : Rich Internet-based Applications (RIA), Rich Desktop Applications (RDA) eXtrem Transaction Processing (XTP), Grid Computing et Data Grid Virtualisation applicative – Cloud Computing Fabric (PaaS) Gestion de processus et d’activités (BPM – BAM), gestion de règles (BRMS) Gestion complexe d’événements (CEP) Business Transaction Monitoring (BTM)
CONSEIL EXPERTISE
FastConnect
IMPLEMENTATION FORMATION SUPPORT
Nos Partenaires et leurs Posi0onnements Nos partenariats éditeurs représentent une part importante dans notre stratégie, ils nous perme]ent de développer une exper0se technique « éditeur » et d’offrir une forte valeur ajoutée à nos clients.
IaaS = Infrastructure As A Service
SaaS = Software As A Service
Sup
ervi
sion
tran
sact
ion
de b
out e
n bo
ut PaaS Development (Legacy technologies)
PaaS : Private Cloud Fabric
aPaaS
iPaaS
Private Data Center Public Data
Center Virtualised / HodtedPrivate Data Center