azure web camp : nosql
DESCRIPTION
Actualités NoSQL sur Azure: disponibilité de MongoDB as-a-service, disponibilité de HBase dans HDInsight... Puis deux exemples d'utilisation NoSQL pour de la géo-réplication: avec les Azure Tables et l'accès en lecture seule à la géo-réplication; puis avec un cluster Cassandra géo-distribué.TRANSCRIPT
![Page 1: Azure Web Camp : NoSQL](https://reader036.vdocuments.us/reader036/viewer/2022081602/55526769b4c9052e1f8b4fba/html5/thumbnails/1.jpg)
#azurecampNoSQL
Thomas Conté, MicrosoftAntoine Perrin, Alkemics
24 juin 2014
![Page 2: Azure Web Camp : NoSQL](https://reader036.vdocuments.us/reader036/viewer/2022081602/55526769b4c9052e1f8b4fba/html5/thumbnails/2.jpg)
Windows Azure Camp: nos partenairesSPONSORS MICROSOFT AZURE CAMP
![Page 3: Azure Web Camp : NoSQL](https://reader036.vdocuments.us/reader036/viewer/2022081602/55526769b4c9052e1f8b4fba/html5/thumbnails/3.jpg)
Tour d’horizon et retour d’expérience par Alkemics
Actualités NoSQL
Rappels/nouveautés Azure Tables
Zoom sur Cassandra géo-distribué
Au programme
![Page 4: Azure Web Camp : NoSQL](https://reader036.vdocuments.us/reader036/viewer/2022081602/55526769b4c9052e1f8b4fba/html5/thumbnails/4.jpg)
#azurecampAlkemics
![Page 5: Azure Web Camp : NoSQL](https://reader036.vdocuments.us/reader036/viewer/2022081602/55526769b4c9052e1f8b4fba/html5/thumbnails/5.jpg)
#azurecamp
Quelques actualités NoSQL
![Page 6: Azure Web Camp : NoSQL](https://reader036.vdocuments.us/reader036/viewer/2022081602/55526769b4c9052e1f8b4fba/html5/thumbnails/6.jpg)
![Page 7: Azure Web Camp : NoSQL](https://reader036.vdocuments.us/reader036/viewer/2022081602/55526769b4c9052e1f8b4fba/html5/thumbnails/7.jpg)
http://azure.microsoft.com/en-us/documentation/articles/hdinsight-hbase-get-started/
HBase dans HDInsight
![Page 8: Azure Web Camp : NoSQL](https://reader036.vdocuments.us/reader036/viewer/2022081602/55526769b4c9052e1f8b4fba/html5/thumbnails/8.jpg)
#azurecamp
Azure Tablesgéo-réplication
![Page 9: Azure Web Camp : NoSQL](https://reader036.vdocuments.us/reader036/viewer/2022081602/55526769b4c9052e1f8b4fba/html5/thumbnails/9.jpg)
Stockage NoSQL structuré et massivement évolutif accessible via un protocole OData simple d’emploi (AtomPub ou JSON)
Recherches clés/valeurs à l’échelle
Pour stocker des informations utilisateurs, devices, ou tout type de métadonnées pouvant être récupéré par une clé d’index unique
Azure Tables
![Page 10: Azure Web Camp : NoSQL](https://reader036.vdocuments.us/reader036/viewer/2022081602/55526769b4c9052e1f8b4fba/html5/thumbnails/10.jpg)
Les données sont géo-répliquées sur des régions séparées par des centaines de kilomètresProcure une durabilité des données en cas de catastrophe majeureDisponible pour Blobs, Tables et Queues
L’utilisateur choisir la région primaire lors de la création du compteChaque région primaire a une secondaire prédéfinie
Géo-réplication asynchronePas dans le chemin critique des requêtes
Geo Redundant Storage (GRS)
US West US East
US North US South
US Central US East 2
Europe North Europe West
Asia East Asia South East
China North China South
Japan East Japan West
South Brazil US South
![Page 11: Azure Web Camp : NoSQL](https://reader036.vdocuments.us/reader036/viewer/2022081602/55526769b4c9052e1f8b4fba/html5/thumbnails/11.jpg)
Accès en lecture seule au secondaire même si le primaire n’est pas disponible
Accès à une copie « éventuellement consistante » de la donnée sur l’autre région
L’application doit être conçue pour prendre en compte l’aspect éventuellement consistant des lectures
Accès Read-Only au GRS (RA-GRS)
![Page 12: Azure Web Camp : NoSQL](https://reader036.vdocuments.us/reader036/viewer/2022081602/55526769b4c9052e1f8b4fba/html5/thumbnails/12.jpg)
Customers using GRS can opt to have read-only access to the eventually consistent copy of data on SecondaryCustomer selects primary region, and the secondary region is fixed
Get two endpoints for accessing your storage account
Primary endpointaccountname.<service>.core.windows.net
Secondary endpointaccountname-secondary.<service>.core.windows.net
Applications control which location they read data fromUse one of the above two endpointsOur client libraries provides features to select location
Retry options: PrimaryOnly, SecondaryOnly, PrimaryThenSecondary, etc.
RA-GRS – How it Works? (1 of 2)
![Page 13: Azure Web Camp : NoSQL](https://reader036.vdocuments.us/reader036/viewer/2022081602/55526769b4c9052e1f8b4fba/html5/thumbnails/13.jpg)
Same storage keys work for both endpoints
ConsistencyAll Writes go to the PrimaryReads to Primary are Strongly Consistent Reads to Secondary are Eventually Consistent
Applications can query the current max geo-replication delay for each service (blob, table, queue) in their storage account
Separate storage analytics metrics for primary and secondary locations
RA-GRS – How it Works? (2 of 2)
![Page 14: Azure Web Camp : NoSQL](https://reader036.vdocuments.us/reader036/viewer/2022081602/55526769b4c9052e1f8b4fba/html5/thumbnails/14.jpg)
#azurecamp
Cassandragéo-réplication
![Page 15: Azure Web Camp : NoSQL](https://reader036.vdocuments.us/reader036/viewer/2022081602/55526769b4c9052e1f8b4fba/html5/thumbnails/15.jpg)
Cassandra a été conçu pour des déploiements répartis sur plusieurs datacenters
Replication Factor
Nombre et emplacement des réplicas
Consistency Level
Ajustable READ / WRITE
LOCAL_QUORUM, EACH_QUORUM
Cluster Cassandra géo-distribué
![Page 16: Azure Web Camp : NoSQL](https://reader036.vdocuments.us/reader036/viewer/2022081602/55526769b4c9052e1f8b4fba/html5/thumbnails/16.jpg)
Création de deux VNetrégionaux connectés
Utilisation de Traffic Managerpour répartir la chargesur deux frontaux
Cluster Cassandra géo-distribué
![Page 17: Azure Web Camp : NoSQL](https://reader036.vdocuments.us/reader036/viewer/2022081602/55526769b4c9052e1f8b4fba/html5/thumbnails/17.jpg)
demo246@cnodex1x1:~$ nodetool status azuredcsDatacenter: 1=============Status=Up/Down|/ State=Normal/Leaving/Joining/Moving-- Address Load Tokens Owns (effective) Host ID RackUN 10.1.1.11 159.67 KB 256 100.0% ab8c6941-2337-4572-87cd-737d7edd0e03 1UN 10.1.1.12 188.61 KB 256 100.0% c1ba8e91-dbeb-43ef-8b26-fcabdfcd369d 1UN 10.1.1.13 188.43 KB 256 100.0% bbed2365-14b7-4e13-b0ef-6b061e0f7039 1Datacenter: 2=============Status=Up/Down|/ State=Normal/Leaving/Joining/Moving-- Address Load Tokens Owns (effective) Host ID RackUN 10.2.1.11 195.6 KB 256 100.0% cfbb2ea8-3451-4b55-95a9-cc5f30cc0f11 1UN 10.2.1.13 201.29 KB 256 100.0% 7a711759-4c06-47ca-8367-71e67724daaf 1UN 10.2.1.12 213.21 KB 256 100.0% 331496b3-24ff-49e2-806a-bc186dfacdd5 1
Cluster Cassandra géo-distribué
![Page 18: Azure Web Camp : NoSQL](https://reader036.vdocuments.us/reader036/viewer/2022081602/55526769b4c9052e1f8b4fba/html5/thumbnails/18.jpg)
Cluster Cassandra géo-distribué
![Page 19: Azure Web Camp : NoSQL](https://reader036.vdocuments.us/reader036/viewer/2022081602/55526769b4c9052e1f8b4fba/html5/thumbnails/19.jpg)
cluster = Cluster(['10.1.1.11', '10.1.1.12', '10.1.1.13', '10.2.1.11', '10.2.1.12', '10.2.1.13'], load_balancing_policy=DCAwareRoundRobinPolicy(local_dc='1'))
session = cluster.connect('azuredcs')
hostname = socket.gethostname()
@app.route("/")def index(): rows = session.execute('SELECT * FROM test') return render_template('index.html', rows=rows, hostname=hostname)
Cluster Cassandra géo-distribué
https://github.com/tomconte/SampleCassandraDC
![Page 20: Azure Web Camp : NoSQL](https://reader036.vdocuments.us/reader036/viewer/2022081602/55526769b4c9052e1f8b4fba/html5/thumbnails/20.jpg)
Boostez votre projet cloud!
Remportez un Hands-On
avec nos spécialistes Azure le 3 juillet
Inscrivez-vous sur notre stand!