SlideShare une entreprise Scribd logo
1  sur  34
Télécharger pour lire hors ligne
1
Construire des applications supportant la
montée en charge avec SQL Azure
Simon Ferquel
Access it IDF
Adrien Siffermann
Imajin
Pascal Laforest
Access it IDF
2
Access It IdF en quelques mots…
• Société de services, conseil / expertise, et formation,
exclusivement sur les technologies Microsoft
• 20+ collaborateurs spécialisés sur les techno MS, dont 11 MVP
• Interventions en mode :
 Conseil, expertise, coaching et formation
 Réalisation, au forfait ou en Assistance Technique
.NET Plateforme Applicative
Framework et langages
.Net, AZURE, Silverlight,
WPF/Surface, VS/TFS,
Windows Phone 7,…
SQL Server (SSIS, SQL,
SSAS, SSRS), PowerPivot,
SharePoint & on-line,
Office 365,…
.NET Collab.
BI
3
Agenda
• Rappel plateforme Azure
• SQL Azure
• Montée en charge
• Scale Up vs Scale-Out
• Aujourd’hui : SQL Sharding
• Demain : les Federations de base de données
4
Windows Azure est une plateforme de services à l'échelle
d'Internet hébergée et opérée par Microsoft dans des centres
de données à travers le monde. Il s'agit d'une plateforme
simple, fiable et performante pour créer des applications et
services Web.
Introduction
5
SQL Azure
Concepts familiers
Modèle relationnel
T-SQL classique
Support de librairies
et protocoles
existants
SQL Server
Management Studio
Valeur différentiée
Mutualisé
Paiement à la
consommation
Pas d’administration
physique
Gestion automatisée
Provisionnement
simple
Haute disponibilité
6
Etendre SQL Server au Cloud
Database
Data SyncReporting
Business
Intelligence
Modèle de programmation et outils communs
SGBD-R basé sur SQL Server 2008
Limité à 50 GB, tailles par paliers
Index clustered obligatoire
Full-Text Search non-supporté
SQL CLR non-supporté
Procédures systèmes non-
supportées
Bientôt
• Capacité additionnelle
• Services additionnels :
• Reporting / BI
• Synchronisation de données
• Sauvegarde applicative
7
Scénarios d’utilisation
On Premise Mixte Azure Sync
SQL Azure
Microsoft
Datacenter
SQL
Code / Outils
Hybride
Microsoft
Datacenter
Windows Azure
Application / Navigateur
Windows
Azure
SQL Azure
Azure
Microsoft
Datacenter
Code/ Outils
SQL Azure
Windows
Azure
SQL Azure
Data Sync
Microsoft
Datacenter
8
Utilisation /
Modèle de provisionnement
• Chaque Compte représente
• Un compte de facturation
• Un Serveur virtuel
• Chaque Serveur dispose
• D’une ou plusieurs bases limitées en taille (1 à 50 Gb)
• D’une base maître
• D’un ou plusieurs logins
• Chaque base a
• Un ou plusieurs SQL users
Compte
Serveur
Database
Server=server1.data.database.windows.net
Database=testDB
Login=nigele[@server1] (maps to testuser)
9
Démonstration
Premiers pas avec SQL Azure
10
Haute disponibilité
Replica 1
Replica 2
Replica 3
LB
SQL Azure
Noeud maître
Replica 4
!
11
Application
Internet
LB
TDS (tcp)
TDS (tcp)
TDS (tcp)
Connectivité SQL Standard:
ODBC, ADO.Net, PHP, …
Répartition de charge !
Zone de sécurité
Gateway Gateway Gateway Gateway Gateway Gateway
Scalabilité et haute disponibilité, reprise en cas d’incident,
réplication et répartition de charge
SQL SQL SQL SQL SQLSQL
Sous le capot…
12
Partitionnement
• Problématiques « traditionnelles »
• Volume des données
• Trop d’octets ( > 50 GO)
• Charge de travail
• Trop de transactions / seconde
• Nouvelles problématiques liées au Cloud
• Coût
• Type de stockage en fonction de son prix
• Elasticité / extensibilité
• Partitionnement ponctuel pour supporter des périodes de forte
charge
13
Elasticité / montée en charge : 2 stratégies !
• Scale Up
• Acheter un serveur suffisamment puissant
• Mais les gros serveurs sont chers !
• Essayer de le charger autant que possible
• Quid si la charge change subitement ?
• Prévoir les pics de charge est coûteux !
• Scale-Out
• Partitionner les données et charger plusieurs serveurs
• Les petits serveurs sont bon marché !
• Bénéficier de ressources de calcul distribuées
• Grande performance de 800 petits serveurs…
• Les pics de charge sont mieux maîtrisés !
• Load balancing sur tout le Data Center
14
Scale-Out avec SQL Azure
• Souplesse dans la création de bases de données
• CREATE DATABASE…et hop !
• Pas de VMs, pas de serveurs
• Paiement à la consommation
• Plus besoin d’une BDD ? => DROP !
• Aucune administration « physique »
• Haute disponibilité, mises à jour, maintenance…
• Copie de bases & SQL Azure Data Sync
CREATE DATABASE abc.prod2clone AS COPY OF xyz.prod2
15
Démonstration
Scale-out avec SQL Azure
16
Le partitionnement
• Scale-Out => Création de partitions
• Plusieurs types de partitions :
• Vertical
• Horizontal
• Hybride
• …
• QUOI ????
17
Partitionnement vertical
18
Partitionnement horizontal
19
• Combine le partitionnement horizontal et vertical
• Ex. ci-dessus :
– Données volumineuses réparties dans Windows Azure Storage (vertical)
– Données restantes partitionnées horizontalement dans SQL Azure
Partitionnement hybride
20
Scale-Out dans un contexte
d’applications mutualisées
• Tout mettre dans une BDD ? Trop gros…
• Créer une base par ‘locataire’ ? Pas mal…
• Sharding Pattern : mieux !!
T1 T2 T3 T4 T5
T6 T7 T8 T9 T10
T11 T12 T13 T14 T15
T16 T17 T18 T19 T20
T1 T2 T3 T4 T5
T6 T7 T8 T9 T10
T11 T12 T13 T14 T15
T16 T17 T18 T19 T20
Toutes mes
données sont dans
une seule BDD
21
Distribution des données
• Partitionnées
• Réparties sur les différentes
machines
• Chaque partie est sur une machine
• Concerne la plupart des données !
• Centralisées
• Accessibles depuis un endroit
unique
• Accès lecture / écriture… mais pas
trop !
• Répliquées
• Copiées sur toutes les machines
• Accès en lecture depuis n’importe où
• Accès en écriture à limiter…
Data1
Config
Data2
Data3
Data4
Data5
22
Code applicatif
Logique de répartition des
données sur le bon serveur
SQL Azure
Impacts applicatifs (1/2)
Objet A Objet B
Objet C Objet D
Base 1
Base 2
Base 3
23
Impacts applicatifs (2/2)
• Adapter le modèle de Sharding à la logique applicative
• Requêtes uni-shard  !
• Requêtes multi-shards  ?
App
24
Démonstration
SQL Sharding
25
• Routing
• Où est le référentiel ?
• Comment le dimensionner et l’utiliser ?
• Gestion des partitions
• Fractionner et fusionner sans baisse de disponibilité
• Répartition auto des requêtes sur les différents Shards (membres)
• Provisionnement
• Elasticité / croissance & diminution
• Administration
• Haute disponibilité, mises à jour, maintenance…
Sharding : aujourd’hui et demain…
SQL Azure
aujourd’hui
Demain !
SQL Azure
Federations
26
SQL Azure Federation
• Une Federation représente les
données fragmentées
• La clé d’une Federation est la
valeur déterminant l’acheminement
d’un bloc de données
• Unité atomique: toutes les lignes
avec la même clé de fédération,
toujours ensemble !
• Un Membre d’une Federation
(Shard)
• Containeur physique pour un ensemble
d’unités atomiques
• La Federation Root correspond à la
BDD hébergeant le référentiel de la
Fédération
Root
Federation “CustData”
Member: [min, 100]
AU
PK=5
AU
PK=25
AU
PK=35
Member: [100, 488]
AU
PK=105
AU
PK=235
AU
PK=365
Member: [488, max]
AU
PK=555
AU
PK=2545
AU
PK=3565
(Federation Key: CustID)
27
Création d’une Federation
• Création de la base racine/référentielle
• CREATE DATABASE SalesDB
• Emplacement de la cartographie des
partitions
• Héberge les données centralisées
• Création de la fédération dans SalesDB
• CREATE FEDERATION Orders_Fed
(RANGE BIGINT)
• Spécifier le nom et la clé de
fédération
• Crée le 1er membre, couvrant
l’intégralité des champs
SalesDB
Federation
“Orders_Fed”
(Federation Key: CustID)
Member: [min,
max]
28
Création du schéma
• Tables de la Fédération
• CREATE TABLE orders (…)
FEDERATE ON (customerId)
• La valeur de la clé déterminera le
membre (shard)
• Tables de référence
• CREATE TABLE zipcodes (…)
• L’absence d’instruction FEDERATE
ON indique qu’il s’agit d’une référence
• Tables centralisées
• Créées dans la DB référentielle
Federation
“Orders_Fed”
(Federation Key: CustID)
Member: [min, max)
SalesDB
orders
Products
zipcode
29
Fractionner et fusionner
• Fractionner un membre
• Quand trop gros ou trop sensible !
• ALTER FEDERATION Orders_Fed
SPLIT (100)
• Crée 2 nouveaux membres
• Fait à chaud / en ligne !
• Fusionner des membres
• Quand trop petit !
• ALTER FEDERATION Orders_Fed
MERGE (200)
• Créé un nouveau membre et supprime
les anciens
Federation
“Orders_Fed”
(Federation Key: CustID)
Member: [min, max]
SalesDB
orders
Products
zipcode
Member: [min, 100]
zipcode
Member: [100, max]
zipcode
orders
orders
30
Récapitulons !
Scénario “up and down” !
• Jour 2 => Mon business croît ! 
 ALTER FEDERATION Orders_Fed SPLIT AT(1000)
• Jour 3 => Passage à Télématin : GO GO GO !  
 ALTER FEDERATION Orders_Fed SPLIT AT(100)
 ALTER FEDERATION Orders_Fed SPLIT AT(200,300,400…)
• Jour 4 => Là c’est sûr, c’est la crise !! 
 ALTER FEDERATION Orders_Fed MERGE AT(100)
• Jour 5 => Encore une baisse : le début de la fin...??   (Rez combat plz)
 ALTER FEDERATION Orders_Fed MERGE AT(200,300,400…)
31
Connexion à la Federation
• Se connecter à l’unité atomique
• USE FEDERATION Orders_Fed (56)
WITH FILTERING=ON
• Se connecter au membre entier
de la federation
• USE FEDERATION Orders_Fed (56)
WITH FILTERING=OFF
Member: [min, 100)
zipcode
AU
PK=5
AU
PK=25
AU
PK=35
App
32
Le futur du futur ! (houla)
• Administration de schéma
• Déploiement de schéma multi-versions et administration au
sein de membres de la fédération
• Requêtes réparties (fan-out)
• Requête unique renvoyant des résultats sur un nombre
important de membres d’une fédération
• Répartitionnement automatique
• SQL Azure auto-administre les BD fédérées en les
fractionnant/fusionnant sur la base de règles prédéfinies
(temps de réponse des requêtes, taille de la base etc.)
• Clés multi-colonnes
33
Le mot de la fin
« Scale Up,
Scale-Out,
Scale-Out for more writes ! »
Bob Mar-laid, Kingston, 1976
34
Quelques pointeurs…
• Site produit : http://www.microsoft.com/en-
us/sqlazure/default.aspx
• Blog SQL Azure Team : http://blogs.msdn.com/b/sqlazure
• MSDN / SQL Azure : http://msdn.microsoft.com/en-
us/windowsazure/sqlazure/default
• « Pro SQL Azure » - Scott Klein & Herve Roggero
(Apress, 2010)

Contenu connexe

Tendances

2009-03-13 SQL Server une plateforme crédible
2009-03-13 SQL Server une plateforme crédible2009-03-13 SQL Server une plateforme crédible
2009-03-13 SQL Server une plateforme crédiblePatrick Guimonet
 
2008-09-30 Présentation Générale SQL Server 2008
2008-09-30 Présentation Générale SQL Server 20082008-09-30 Présentation Générale SQL Server 2008
2008-09-30 Présentation Générale SQL Server 2008Patrick Guimonet
 
Windows Server 2012, quelles évolutions pour les services de stockage et de c...
Windows Server 2012, quelles évolutions pour les services de stockage et de c...Windows Server 2012, quelles évolutions pour les services de stockage et de c...
Windows Server 2012, quelles évolutions pour les services de stockage et de c...Microsoft Décideurs IT
 
Windows server 2012
Windows server 2012Windows server 2012
Windows server 2012Ndim43
 
Support Formation vidéo: MongoDB pour débutant
Support Formation vidéo: MongoDB pour débutantSupport Formation vidéo: MongoDB pour débutant
Support Formation vidéo: MongoDB pour débutantSmartnSkilled
 
Active Directory Sur Windows 2008 R2
Active  Directory Sur  Windows 2008  R2Active  Directory Sur  Windows 2008  R2
Active Directory Sur Windows 2008 R2SIMOES AUGUSTO
 
SQLSaturday Paris 2014 - SQL Server AlwaysOn et les groupes de disponibilités...
SQLSaturday Paris 2014 - SQL Server AlwaysOn et les groupes de disponibilités...SQLSaturday Paris 2014 - SQL Server AlwaysOn et les groupes de disponibilités...
SQLSaturday Paris 2014 - SQL Server AlwaysOn et les groupes de disponibilités...GUSS
 
SQL Server et la sécurité
SQL Server et la sécuritéSQL Server et la sécurité
SQL Server et la sécuritéDavid Barbarin
 
JSS2014 – Azure SQL Database : 1 an après
JSS2014 – Azure SQL Database : 1 an aprèsJSS2014 – Azure SQL Database : 1 an après
JSS2014 – Azure SQL Database : 1 an aprèsGUSS
 
NoSql : conception des schémas, requêtage, et optimisation
NoSql : conception des schémas, requêtage, et optimisationNoSql : conception des schémas, requêtage, et optimisation
NoSql : conception des schémas, requêtage, et optimisationMicrosoft Technet France
 
Les nouveautés stockage dans Windows Server 2012 R2
Les nouveautés stockage dans Windows Server 2012 R2Les nouveautés stockage dans Windows Server 2012 R2
Les nouveautés stockage dans Windows Server 2012 R2Georgeot Cédric
 
GUSS - CRITEO Meetup Scale SQL for the Web
GUSS - CRITEO Meetup Scale SQL for the WebGUSS - CRITEO Meetup Scale SQL for the Web
GUSS - CRITEO Meetup Scale SQL for the WebGUSS
 
DataStax Enterprise et Cas d'utilisation de Apache Cassandra
DataStax Enterprise et Cas d'utilisation de Apache CassandraDataStax Enterprise et Cas d'utilisation de Apache Cassandra
DataStax Enterprise et Cas d'utilisation de Apache CassandraVictor Coustenoble
 
DevOps Day - Infrastructure As A Code
DevOps Day - Infrastructure As A CodeDevOps Day - Infrastructure As A Code
DevOps Day - Infrastructure As A CodeCellenza
 
Les modèles NoSQL
Les modèles NoSQLLes modèles NoSQL
Les modèles NoSQLebiznext
 
Architectures réparties en environnement web
Architectures réparties en environnement webArchitectures réparties en environnement web
Architectures réparties en environnement webAmaury Bouchard
 
Cloud Azure – Services de données et bonnes pratiques
Cloud Azure – Services de données et bonnes pratiquesCloud Azure – Services de données et bonnes pratiques
Cloud Azure – Services de données et bonnes pratiquesMicrosoft
 

Tendances (20)

Oracle Cluster Rac
Oracle Cluster RacOracle Cluster Rac
Oracle Cluster Rac
 
2009-03-13 SQL Server une plateforme crédible
2009-03-13 SQL Server une plateforme crédible2009-03-13 SQL Server une plateforme crédible
2009-03-13 SQL Server une plateforme crédible
 
2008-09-30 Présentation Générale SQL Server 2008
2008-09-30 Présentation Générale SQL Server 20082008-09-30 Présentation Générale SQL Server 2008
2008-09-30 Présentation Générale SQL Server 2008
 
Windows Server 2012, quelles évolutions pour les services de stockage et de c...
Windows Server 2012, quelles évolutions pour les services de stockage et de c...Windows Server 2012, quelles évolutions pour les services de stockage et de c...
Windows Server 2012, quelles évolutions pour les services de stockage et de c...
 
Windows server 2012
Windows server 2012Windows server 2012
Windows server 2012
 
Support Formation vidéo: MongoDB pour débutant
Support Formation vidéo: MongoDB pour débutantSupport Formation vidéo: MongoDB pour débutant
Support Formation vidéo: MongoDB pour débutant
 
Active Directory Sur Windows 2008 R2
Active  Directory Sur  Windows 2008  R2Active  Directory Sur  Windows 2008  R2
Active Directory Sur Windows 2008 R2
 
SQLSaturday Paris 2014 - SQL Server AlwaysOn et les groupes de disponibilités...
SQLSaturday Paris 2014 - SQL Server AlwaysOn et les groupes de disponibilités...SQLSaturday Paris 2014 - SQL Server AlwaysOn et les groupes de disponibilités...
SQLSaturday Paris 2014 - SQL Server AlwaysOn et les groupes de disponibilités...
 
SQL Server et la sécurité
SQL Server et la sécuritéSQL Server et la sécurité
SQL Server et la sécurité
 
Aws vs azure
Aws vs azureAws vs azure
Aws vs azure
 
JSS2014 – Azure SQL Database : 1 an après
JSS2014 – Azure SQL Database : 1 an aprèsJSS2014 – Azure SQL Database : 1 an après
JSS2014 – Azure SQL Database : 1 an après
 
NoSql : conception des schémas, requêtage, et optimisation
NoSql : conception des schémas, requêtage, et optimisationNoSql : conception des schémas, requêtage, et optimisation
NoSql : conception des schémas, requêtage, et optimisation
 
Les nouveautés stockage dans Windows Server 2012 R2
Les nouveautés stockage dans Windows Server 2012 R2Les nouveautés stockage dans Windows Server 2012 R2
Les nouveautés stockage dans Windows Server 2012 R2
 
GUSS - CRITEO Meetup Scale SQL for the Web
GUSS - CRITEO Meetup Scale SQL for the WebGUSS - CRITEO Meetup Scale SQL for the Web
GUSS - CRITEO Meetup Scale SQL for the Web
 
DataStax Enterprise et Cas d'utilisation de Apache Cassandra
DataStax Enterprise et Cas d'utilisation de Apache CassandraDataStax Enterprise et Cas d'utilisation de Apache Cassandra
DataStax Enterprise et Cas d'utilisation de Apache Cassandra
 
Exchange Stockage : Mythes et Réalités
Exchange Stockage : Mythes et RéalitésExchange Stockage : Mythes et Réalités
Exchange Stockage : Mythes et Réalités
 
DevOps Day - Infrastructure As A Code
DevOps Day - Infrastructure As A CodeDevOps Day - Infrastructure As A Code
DevOps Day - Infrastructure As A Code
 
Les modèles NoSQL
Les modèles NoSQLLes modèles NoSQL
Les modèles NoSQL
 
Architectures réparties en environnement web
Architectures réparties en environnement webArchitectures réparties en environnement web
Architectures réparties en environnement web
 
Cloud Azure – Services de données et bonnes pratiques
Cloud Azure – Services de données et bonnes pratiquesCloud Azure – Services de données et bonnes pratiques
Cloud Azure – Services de données et bonnes pratiques
 

En vedette

Identity as a Service (IDaaS), un service prêt à l’usage avec Windows Azure AD
Identity as a Service (IDaaS), un service prêt à l’usage avec Windows Azure ADIdentity as a Service (IDaaS), un service prêt à l’usage avec Windows Azure AD
Identity as a Service (IDaaS), un service prêt à l’usage avec Windows Azure ADMicrosoft
 
L'histoire d'HTML5 pour les développeurs Windows Phone 8
L'histoire d'HTML5 pour les développeurs Windows Phone 8L'histoire d'HTML5 pour les développeurs Windows Phone 8
L'histoire d'HTML5 pour les développeurs Windows Phone 8Microsoft
 
Concevoir des Interfaces Utilisateur efficaces et vendeuses
Concevoir des Interfaces Utilisateur efficaces et vendeusesConcevoir des Interfaces Utilisateur efficaces et vendeuses
Concevoir des Interfaces Utilisateur efficaces et vendeusesMicrosoft
 
FIM pour l’infrastructure de l’entreprise : Les principes de la gestion des i...
FIM pour l’infrastructure de l’entreprise : Les principes de la gestion des i...FIM pour l’infrastructure de l’entreprise : Les principes de la gestion des i...
FIM pour l’infrastructure de l’entreprise : Les principes de la gestion des i...Microsoft Technet France
 
FIM 2010 R2 : Gestion des identités, automatisation des traitements, et gesti...
FIM 2010 R2 : Gestion des identités, automatisation des traitements, et gesti...FIM 2010 R2 : Gestion des identités, automatisation des traitements, et gesti...
FIM 2010 R2 : Gestion des identités, automatisation des traitements, et gesti...Microsoft
 
Responsive Web Design : best practices et retour d'expérience de Backelite et...
Responsive Web Design : best practices et retour d'expérience de Backelite et...Responsive Web Design : best practices et retour d'expérience de Backelite et...
Responsive Web Design : best practices et retour d'expérience de Backelite et...Idean France
 

En vedette (8)

Identity as a Service (IDaaS), un service prêt à l’usage avec Windows Azure AD
Identity as a Service (IDaaS), un service prêt à l’usage avec Windows Azure ADIdentity as a Service (IDaaS), un service prêt à l’usage avec Windows Azure AD
Identity as a Service (IDaaS), un service prêt à l’usage avec Windows Azure AD
 
L'histoire d'HTML5 pour les développeurs Windows Phone 8
L'histoire d'HTML5 pour les développeurs Windows Phone 8L'histoire d'HTML5 pour les développeurs Windows Phone 8
L'histoire d'HTML5 pour les développeurs Windows Phone 8
 
Concevoir des Interfaces Utilisateur efficaces et vendeuses
Concevoir des Interfaces Utilisateur efficaces et vendeusesConcevoir des Interfaces Utilisateur efficaces et vendeuses
Concevoir des Interfaces Utilisateur efficaces et vendeuses
 
FIM pour l’infrastructure de l’entreprise : Les principes de la gestion des i...
FIM pour l’infrastructure de l’entreprise : Les principes de la gestion des i...FIM pour l’infrastructure de l’entreprise : Les principes de la gestion des i...
FIM pour l’infrastructure de l’entreprise : Les principes de la gestion des i...
 
Forefront TMG
Forefront TMGForefront TMG
Forefront TMG
 
Microsoft forefront (TMG)
Microsoft forefront (TMG)Microsoft forefront (TMG)
Microsoft forefront (TMG)
 
FIM 2010 R2 : Gestion des identités, automatisation des traitements, et gesti...
FIM 2010 R2 : Gestion des identités, automatisation des traitements, et gesti...FIM 2010 R2 : Gestion des identités, automatisation des traitements, et gesti...
FIM 2010 R2 : Gestion des identités, automatisation des traitements, et gesti...
 
Responsive Web Design : best practices et retour d'expérience de Backelite et...
Responsive Web Design : best practices et retour d'expérience de Backelite et...Responsive Web Design : best practices et retour d'expérience de Backelite et...
Responsive Web Design : best practices et retour d'expérience de Backelite et...
 

Similaire à Construire des applications supportant la montée en charge avec SQL Azure (300)

[JSS2015] Azure SQL Data Warehouse - Azure Data Lake
[JSS2015] Azure SQL Data Warehouse - Azure Data Lake[JSS2015] Azure SQL Data Warehouse - Azure Data Lake
[JSS2015] Azure SQL Data Warehouse - Azure Data LakeGUSS
 
Les données on-premise et dans le cloud. Quelles options ?
Les données on-premise et dans le cloud. Quelles options ?Les données on-premise et dans le cloud. Quelles options ?
Les données on-premise et dans le cloud. Quelles options ?Microsoft
 
JSS2013 : Haute disponibilité
JSS2013 : Haute disponibilitéJSS2013 : Haute disponibilité
JSS2013 : Haute disponibilitéChristophe Laporte
 
Sql azure performance et montee en charge (1)
Sql azure   performance et montee en charge (1)Sql azure   performance et montee en charge (1)
Sql azure performance et montee en charge (1)Aymeric Weinbach
 
Construire des bases de données qui montent en charge avec SQL Azure Database...
Construire des bases de données qui montent en charge avec SQL Azure Database...Construire des bases de données qui montent en charge avec SQL Azure Database...
Construire des bases de données qui montent en charge avec SQL Azure Database...Microsoft Technet France
 
TechDays 2014 : Cloud Azure – Services de données et bonnes pratiques
TechDays 2014 : Cloud Azure – Services de données et bonnes pratiquesTechDays 2014 : Cloud Azure – Services de données et bonnes pratiques
TechDays 2014 : Cloud Azure – Services de données et bonnes pratiquesMCKLMT
 
SQL Server et les développeurs
SQL Server et les développeurs SQL Server et les développeurs
SQL Server et les développeurs Microsoft
 
Infrastructure as a code
Infrastructure as a codeInfrastructure as a code
Infrastructure as a codeMichel HUBERT
 
Récupération d’un Active Directory: comment repartir en confiance après une c...
Récupération d’un Active Directory: comment repartir en confiance après une c...Récupération d’un Active Directory: comment repartir en confiance après une c...
Récupération d’un Active Directory: comment repartir en confiance après une c...Identity Days
 
AWS Summit Paris - Track 2 - Session 2 - Préparez-vous à l'imprévu
AWS Summit Paris - Track 2 - Session 2 - Préparez-vous à l'imprévuAWS Summit Paris - Track 2 - Session 2 - Préparez-vous à l'imprévu
AWS Summit Paris - Track 2 - Session 2 - Préparez-vous à l'imprévuAmazon Web Services
 
Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...
Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...
Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...Christophe Laporte
 
Cloud Azure -- Services de données et bonnes pratiques
Cloud Azure -- Services de données et bonnes pratiques Cloud Azure -- Services de données et bonnes pratiques
Cloud Azure -- Services de données et bonnes pratiques Microsoft Technet France
 
Windows Azure : Services de données et bonnes pratiques
Windows Azure : Services de données et bonnes pratiquesWindows Azure : Services de données et bonnes pratiques
Windows Azure : Services de données et bonnes pratiquesMCKLMT
 
Monter en charge, tester et surveiller avec une application Windows Azure : l...
Monter en charge, tester et surveiller avec une application Windows Azure : l...Monter en charge, tester et surveiller avec une application Windows Azure : l...
Monter en charge, tester et surveiller avec une application Windows Azure : l...Microsoft Technet France
 
Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...
Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...
Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...Microsoft Technet France
 
alphorm.com - Formation Oracle Database 11g DBA 1 (1Z0-052)
alphorm.com - Formation Oracle Database 11g DBA 1 (1Z0-052)alphorm.com - Formation Oracle Database 11g DBA 1 (1Z0-052)
alphorm.com - Formation Oracle Database 11g DBA 1 (1Z0-052)Alphorm
 
Techdays 2014 - Le fermier azure (2ème partie)
Techdays 2014 - Le fermier azure (2ème partie)Techdays 2014 - Le fermier azure (2ème partie)
Techdays 2014 - Le fermier azure (2ème partie)Jonathan Le Guellec
 
Stockage Cloud : il y en aura pour tout le monde
Stockage Cloud : il y en aura pour tout le mondeStockage Cloud : il y en aura pour tout le monde
Stockage Cloud : il y en aura pour tout le mondeMicrosoft Technet France
 
J1 T1 1 - Azure Data Platform, quelle solution pour quel usage - Charles-Hen...
J1 T1 1 - Azure Data Platform, quelle solution pour quel usage  - Charles-Hen...J1 T1 1 - Azure Data Platform, quelle solution pour quel usage  - Charles-Hen...
J1 T1 1 - Azure Data Platform, quelle solution pour quel usage - Charles-Hen...MS Cloud Summit
 

Similaire à Construire des applications supportant la montée en charge avec SQL Azure (300) (20)

[JSS2015] Azure SQL Data Warehouse - Azure Data Lake
[JSS2015] Azure SQL Data Warehouse - Azure Data Lake[JSS2015] Azure SQL Data Warehouse - Azure Data Lake
[JSS2015] Azure SQL Data Warehouse - Azure Data Lake
 
Les données on-premise et dans le cloud. Quelles options ?
Les données on-premise et dans le cloud. Quelles options ?Les données on-premise et dans le cloud. Quelles options ?
Les données on-premise et dans le cloud. Quelles options ?
 
JSS2013 : Haute disponibilité
JSS2013 : Haute disponibilitéJSS2013 : Haute disponibilité
JSS2013 : Haute disponibilité
 
Sql azure performance et montee en charge (1)
Sql azure   performance et montee en charge (1)Sql azure   performance et montee en charge (1)
Sql azure performance et montee en charge (1)
 
Construire des bases de données qui montent en charge avec SQL Azure Database...
Construire des bases de données qui montent en charge avec SQL Azure Database...Construire des bases de données qui montent en charge avec SQL Azure Database...
Construire des bases de données qui montent en charge avec SQL Azure Database...
 
TechDays 2014 : Cloud Azure – Services de données et bonnes pratiques
TechDays 2014 : Cloud Azure – Services de données et bonnes pratiquesTechDays 2014 : Cloud Azure – Services de données et bonnes pratiques
TechDays 2014 : Cloud Azure – Services de données et bonnes pratiques
 
SQL Server et les développeurs
SQL Server et les développeurs SQL Server et les développeurs
SQL Server et les développeurs
 
Infrastructure as a code
Infrastructure as a codeInfrastructure as a code
Infrastructure as a code
 
Récupération d’un Active Directory: comment repartir en confiance après une c...
Récupération d’un Active Directory: comment repartir en confiance après une c...Récupération d’un Active Directory: comment repartir en confiance après une c...
Récupération d’un Active Directory: comment repartir en confiance après une c...
 
AWS Summit Paris - Track 2 - Session 2 - Préparez-vous à l'imprévu
AWS Summit Paris - Track 2 - Session 2 - Préparez-vous à l'imprévuAWS Summit Paris - Track 2 - Session 2 - Préparez-vous à l'imprévu
AWS Summit Paris - Track 2 - Session 2 - Préparez-vous à l'imprévu
 
Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...
Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...
Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...
 
Cloud Azure -- Services de données et bonnes pratiques
Cloud Azure -- Services de données et bonnes pratiques Cloud Azure -- Services de données et bonnes pratiques
Cloud Azure -- Services de données et bonnes pratiques
 
Windows Azure : Services de données et bonnes pratiques
Windows Azure : Services de données et bonnes pratiquesWindows Azure : Services de données et bonnes pratiques
Windows Azure : Services de données et bonnes pratiques
 
Monter en charge, tester et surveiller avec une application Windows Azure : l...
Monter en charge, tester et surveiller avec une application Windows Azure : l...Monter en charge, tester et surveiller avec une application Windows Azure : l...
Monter en charge, tester et surveiller avec une application Windows Azure : l...
 
Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...
Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...
Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...
 
SQL in the Azure World
SQL in the Azure WorldSQL in the Azure World
SQL in the Azure World
 
alphorm.com - Formation Oracle Database 11g DBA 1 (1Z0-052)
alphorm.com - Formation Oracle Database 11g DBA 1 (1Z0-052)alphorm.com - Formation Oracle Database 11g DBA 1 (1Z0-052)
alphorm.com - Formation Oracle Database 11g DBA 1 (1Z0-052)
 
Techdays 2014 - Le fermier azure (2ème partie)
Techdays 2014 - Le fermier azure (2ème partie)Techdays 2014 - Le fermier azure (2ème partie)
Techdays 2014 - Le fermier azure (2ème partie)
 
Stockage Cloud : il y en aura pour tout le monde
Stockage Cloud : il y en aura pour tout le mondeStockage Cloud : il y en aura pour tout le monde
Stockage Cloud : il y en aura pour tout le monde
 
J1 T1 1 - Azure Data Platform, quelle solution pour quel usage - Charles-Hen...
J1 T1 1 - Azure Data Platform, quelle solution pour quel usage  - Charles-Hen...J1 T1 1 - Azure Data Platform, quelle solution pour quel usage  - Charles-Hen...
J1 T1 1 - Azure Data Platform, quelle solution pour quel usage - Charles-Hen...
 

Plus de Microsoft

Uwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuUwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuMicrosoft
 
La Blockchain pas à PaaS
La Blockchain pas à PaaSLa Blockchain pas à PaaS
La Blockchain pas à PaaSMicrosoft
 
Tester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileTester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileMicrosoft
 
Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Microsoft
 
Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Microsoft
 
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Microsoft
 
Créer un bot de A à Z
Créer un bot de A à ZCréer un bot de A à Z
Créer un bot de A à ZMicrosoft
 
Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft
 
Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Microsoft
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Microsoft
 
Administration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsAdministration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsMicrosoft
 
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Microsoft
 
Plan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryPlan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryMicrosoft
 
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Microsoft
 
Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Microsoft
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Microsoft
 
Introduction à ASP.NET Core
Introduction à ASP.NET CoreIntroduction à ASP.NET Core
Introduction à ASP.NET CoreMicrosoft
 
Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Microsoft
 
Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Microsoft
 
Azure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursAzure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursMicrosoft
 

Plus de Microsoft (20)

Uwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuUwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieu
 
La Blockchain pas à PaaS
La Blockchain pas à PaaSLa Blockchain pas à PaaS
La Blockchain pas à PaaS
 
Tester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileTester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobile
 
Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo
 
Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.
 
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
 
Créer un bot de A à Z
Créer un bot de A à ZCréer un bot de A à Z
Créer un bot de A à Z
 
Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?
 
Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
 
Administration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsAdministration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs Analytics
 
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
 
Plan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryPlan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site Recovery
 
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
 
Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
 
Introduction à ASP.NET Core
Introduction à ASP.NET CoreIntroduction à ASP.NET Core
Introduction à ASP.NET Core
 
Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?
 
Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...
 
Azure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursAzure Service Fabric pour les développeurs
Azure Service Fabric pour les développeurs
 

Construire des applications supportant la montée en charge avec SQL Azure (300)

  • 1. 1 Construire des applications supportant la montée en charge avec SQL Azure Simon Ferquel Access it IDF Adrien Siffermann Imajin Pascal Laforest Access it IDF
  • 2. 2 Access It IdF en quelques mots… • Société de services, conseil / expertise, et formation, exclusivement sur les technologies Microsoft • 20+ collaborateurs spécialisés sur les techno MS, dont 11 MVP • Interventions en mode :  Conseil, expertise, coaching et formation  Réalisation, au forfait ou en Assistance Technique .NET Plateforme Applicative Framework et langages .Net, AZURE, Silverlight, WPF/Surface, VS/TFS, Windows Phone 7,… SQL Server (SSIS, SQL, SSAS, SSRS), PowerPivot, SharePoint & on-line, Office 365,… .NET Collab. BI
  • 3. 3 Agenda • Rappel plateforme Azure • SQL Azure • Montée en charge • Scale Up vs Scale-Out • Aujourd’hui : SQL Sharding • Demain : les Federations de base de données
  • 4. 4 Windows Azure est une plateforme de services à l'échelle d'Internet hébergée et opérée par Microsoft dans des centres de données à travers le monde. Il s'agit d'une plateforme simple, fiable et performante pour créer des applications et services Web. Introduction
  • 5. 5 SQL Azure Concepts familiers Modèle relationnel T-SQL classique Support de librairies et protocoles existants SQL Server Management Studio Valeur différentiée Mutualisé Paiement à la consommation Pas d’administration physique Gestion automatisée Provisionnement simple Haute disponibilité
  • 6. 6 Etendre SQL Server au Cloud Database Data SyncReporting Business Intelligence Modèle de programmation et outils communs SGBD-R basé sur SQL Server 2008 Limité à 50 GB, tailles par paliers Index clustered obligatoire Full-Text Search non-supporté SQL CLR non-supporté Procédures systèmes non- supportées Bientôt • Capacité additionnelle • Services additionnels : • Reporting / BI • Synchronisation de données • Sauvegarde applicative
  • 7. 7 Scénarios d’utilisation On Premise Mixte Azure Sync SQL Azure Microsoft Datacenter SQL Code / Outils Hybride Microsoft Datacenter Windows Azure Application / Navigateur Windows Azure SQL Azure Azure Microsoft Datacenter Code/ Outils SQL Azure Windows Azure SQL Azure Data Sync Microsoft Datacenter
  • 8. 8 Utilisation / Modèle de provisionnement • Chaque Compte représente • Un compte de facturation • Un Serveur virtuel • Chaque Serveur dispose • D’une ou plusieurs bases limitées en taille (1 à 50 Gb) • D’une base maître • D’un ou plusieurs logins • Chaque base a • Un ou plusieurs SQL users Compte Serveur Database Server=server1.data.database.windows.net Database=testDB Login=nigele[@server1] (maps to testuser)
  • 10. 10 Haute disponibilité Replica 1 Replica 2 Replica 3 LB SQL Azure Noeud maître Replica 4 !
  • 11. 11 Application Internet LB TDS (tcp) TDS (tcp) TDS (tcp) Connectivité SQL Standard: ODBC, ADO.Net, PHP, … Répartition de charge ! Zone de sécurité Gateway Gateway Gateway Gateway Gateway Gateway Scalabilité et haute disponibilité, reprise en cas d’incident, réplication et répartition de charge SQL SQL SQL SQL SQLSQL Sous le capot…
  • 12. 12 Partitionnement • Problématiques « traditionnelles » • Volume des données • Trop d’octets ( > 50 GO) • Charge de travail • Trop de transactions / seconde • Nouvelles problématiques liées au Cloud • Coût • Type de stockage en fonction de son prix • Elasticité / extensibilité • Partitionnement ponctuel pour supporter des périodes de forte charge
  • 13. 13 Elasticité / montée en charge : 2 stratégies ! • Scale Up • Acheter un serveur suffisamment puissant • Mais les gros serveurs sont chers ! • Essayer de le charger autant que possible • Quid si la charge change subitement ? • Prévoir les pics de charge est coûteux ! • Scale-Out • Partitionner les données et charger plusieurs serveurs • Les petits serveurs sont bon marché ! • Bénéficier de ressources de calcul distribuées • Grande performance de 800 petits serveurs… • Les pics de charge sont mieux maîtrisés ! • Load balancing sur tout le Data Center
  • 14. 14 Scale-Out avec SQL Azure • Souplesse dans la création de bases de données • CREATE DATABASE…et hop ! • Pas de VMs, pas de serveurs • Paiement à la consommation • Plus besoin d’une BDD ? => DROP ! • Aucune administration « physique » • Haute disponibilité, mises à jour, maintenance… • Copie de bases & SQL Azure Data Sync CREATE DATABASE abc.prod2clone AS COPY OF xyz.prod2
  • 16. 16 Le partitionnement • Scale-Out => Création de partitions • Plusieurs types de partitions : • Vertical • Horizontal • Hybride • … • QUOI ????
  • 19. 19 • Combine le partitionnement horizontal et vertical • Ex. ci-dessus : – Données volumineuses réparties dans Windows Azure Storage (vertical) – Données restantes partitionnées horizontalement dans SQL Azure Partitionnement hybride
  • 20. 20 Scale-Out dans un contexte d’applications mutualisées • Tout mettre dans une BDD ? Trop gros… • Créer une base par ‘locataire’ ? Pas mal… • Sharding Pattern : mieux !! T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 T11 T12 T13 T14 T15 T16 T17 T18 T19 T20 T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 T11 T12 T13 T14 T15 T16 T17 T18 T19 T20 Toutes mes données sont dans une seule BDD
  • 21. 21 Distribution des données • Partitionnées • Réparties sur les différentes machines • Chaque partie est sur une machine • Concerne la plupart des données ! • Centralisées • Accessibles depuis un endroit unique • Accès lecture / écriture… mais pas trop ! • Répliquées • Copiées sur toutes les machines • Accès en lecture depuis n’importe où • Accès en écriture à limiter… Data1 Config Data2 Data3 Data4 Data5
  • 22. 22 Code applicatif Logique de répartition des données sur le bon serveur SQL Azure Impacts applicatifs (1/2) Objet A Objet B Objet C Objet D Base 1 Base 2 Base 3
  • 23. 23 Impacts applicatifs (2/2) • Adapter le modèle de Sharding à la logique applicative • Requêtes uni-shard  ! • Requêtes multi-shards  ? App
  • 25. 25 • Routing • Où est le référentiel ? • Comment le dimensionner et l’utiliser ? • Gestion des partitions • Fractionner et fusionner sans baisse de disponibilité • Répartition auto des requêtes sur les différents Shards (membres) • Provisionnement • Elasticité / croissance & diminution • Administration • Haute disponibilité, mises à jour, maintenance… Sharding : aujourd’hui et demain… SQL Azure aujourd’hui Demain ! SQL Azure Federations
  • 26. 26 SQL Azure Federation • Une Federation représente les données fragmentées • La clé d’une Federation est la valeur déterminant l’acheminement d’un bloc de données • Unité atomique: toutes les lignes avec la même clé de fédération, toujours ensemble ! • Un Membre d’une Federation (Shard) • Containeur physique pour un ensemble d’unités atomiques • La Federation Root correspond à la BDD hébergeant le référentiel de la Fédération Root Federation “CustData” Member: [min, 100] AU PK=5 AU PK=25 AU PK=35 Member: [100, 488] AU PK=105 AU PK=235 AU PK=365 Member: [488, max] AU PK=555 AU PK=2545 AU PK=3565 (Federation Key: CustID)
  • 27. 27 Création d’une Federation • Création de la base racine/référentielle • CREATE DATABASE SalesDB • Emplacement de la cartographie des partitions • Héberge les données centralisées • Création de la fédération dans SalesDB • CREATE FEDERATION Orders_Fed (RANGE BIGINT) • Spécifier le nom et la clé de fédération • Crée le 1er membre, couvrant l’intégralité des champs SalesDB Federation “Orders_Fed” (Federation Key: CustID) Member: [min, max]
  • 28. 28 Création du schéma • Tables de la Fédération • CREATE TABLE orders (…) FEDERATE ON (customerId) • La valeur de la clé déterminera le membre (shard) • Tables de référence • CREATE TABLE zipcodes (…) • L’absence d’instruction FEDERATE ON indique qu’il s’agit d’une référence • Tables centralisées • Créées dans la DB référentielle Federation “Orders_Fed” (Federation Key: CustID) Member: [min, max) SalesDB orders Products zipcode
  • 29. 29 Fractionner et fusionner • Fractionner un membre • Quand trop gros ou trop sensible ! • ALTER FEDERATION Orders_Fed SPLIT (100) • Crée 2 nouveaux membres • Fait à chaud / en ligne ! • Fusionner des membres • Quand trop petit ! • ALTER FEDERATION Orders_Fed MERGE (200) • Créé un nouveau membre et supprime les anciens Federation “Orders_Fed” (Federation Key: CustID) Member: [min, max] SalesDB orders Products zipcode Member: [min, 100] zipcode Member: [100, max] zipcode orders orders
  • 30. 30 Récapitulons ! Scénario “up and down” ! • Jour 2 => Mon business croît !   ALTER FEDERATION Orders_Fed SPLIT AT(1000) • Jour 3 => Passage à Télématin : GO GO GO !    ALTER FEDERATION Orders_Fed SPLIT AT(100)  ALTER FEDERATION Orders_Fed SPLIT AT(200,300,400…) • Jour 4 => Là c’est sûr, c’est la crise !!   ALTER FEDERATION Orders_Fed MERGE AT(100) • Jour 5 => Encore une baisse : le début de la fin...??   (Rez combat plz)  ALTER FEDERATION Orders_Fed MERGE AT(200,300,400…)
  • 31. 31 Connexion à la Federation • Se connecter à l’unité atomique • USE FEDERATION Orders_Fed (56) WITH FILTERING=ON • Se connecter au membre entier de la federation • USE FEDERATION Orders_Fed (56) WITH FILTERING=OFF Member: [min, 100) zipcode AU PK=5 AU PK=25 AU PK=35 App
  • 32. 32 Le futur du futur ! (houla) • Administration de schéma • Déploiement de schéma multi-versions et administration au sein de membres de la fédération • Requêtes réparties (fan-out) • Requête unique renvoyant des résultats sur un nombre important de membres d’une fédération • Répartitionnement automatique • SQL Azure auto-administre les BD fédérées en les fractionnant/fusionnant sur la base de règles prédéfinies (temps de réponse des requêtes, taille de la base etc.) • Clés multi-colonnes
  • 33. 33 Le mot de la fin « Scale Up, Scale-Out, Scale-Out for more writes ! » Bob Mar-laid, Kingston, 1976
  • 34. 34 Quelques pointeurs… • Site produit : http://www.microsoft.com/en- us/sqlazure/default.aspx • Blog SQL Azure Team : http://blogs.msdn.com/b/sqlazure • MSDN / SQL Azure : http://msdn.microsoft.com/en- us/windowsazure/sqlazure/default • « Pro SQL Azure » - Scott Klein & Herve Roggero (Apress, 2010)