dat306 construire des applications supportant la montée en charge avec sql azure
DESCRIPTION
DAT306 Construire des applications supportant la montée en charge avec SQL Azure. Simon Ferquel Access it IDF. Pascal Laforest Access it IDF. Adrien Siffermann Imajin. Access It IdF en quelques mots…. - PowerPoint PPT PresentationTRANSCRIPT
2
DAT306Construire des applications supportant la montée en charge avec SQL Azure
Simon FerquelAccess it IDF
Adrien Siffermann
Imajin
Pascal LaforestAccess it IDF
3
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
4
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
5
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
6
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é
7
Etendre SQL Server au Cloud
Database
Data SyncReporting
Business Intelligence
Modèle de programmation et outils communs
SGBD-R basé sur SQL Server 2008Limité à 50 GB, tailles par paliersIndex clustered obligatoireFull-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
8
Scénarios d’utilisationOn Premise Mixte Azure Sync
SQL Azure
MicrosoftDatacent
er
SQL
Code / Outils
Hybride
Microsoft Datacente
r
SQL Server
Windows Azure
Application / Navigateur
Windows Azure
SQL Azure
Azure
Microsoft Datacenter
Code/ Outils
SQL Azure
Windows Azure
SQL Azure Data Sync
MicrosoftDatacent
er
9
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.netDatabase=testDBLogin=nigele[@server1] (maps to testuser)
10
Démonstration
Premiers pas avec SQL Azure
11
Haute disponibilité
Replica 1
Replica 2
Replica 3
LB
SQL Azure
Noeud maître
Replica 4
!
12
Application
Internet
LBTDS (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…
13
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
14
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
15
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 SyncCREATE DATABASE abc.prod2clone AS COPY OF xyz.prod2
16
Démonstration
Scale-out avec SQL Azure
17
Le partitionnement
• Scale-Out => Création de partitions
• Plusieurs types de partitions :• Vertical• Horizontal• Hybride• …• QUOI ????
? ?
18
Partitionnement vertical
19
Partitionnement horizontal
20
• 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
21
Scale-Out dans un contexted’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
22
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
Ref
ConfigData2
Ref
Data3
Ref
Data4
Ref
Data5
Ref
23
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
24
Impacts applicatifs (2/2)
• Adapter le modèle de Sharding à la logique applicative
• Requêtes uni-shard !
• Requêtes multi-shards ?
App
25
Démonstration
SQL Sharding
26
• 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
27
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]
AUPK=5
AUPK=25
AUPK=35
Member: [100, 488]
AUPK=105
AUPK=235
AUPK=365
Member: [488, max]
AUPK=555
AUPK=2545
AUPK=3565
(Federation Key: CustID)
28
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]
29
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
30
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
31
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…)
32
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
AUPK=5
AUPK=25
AUPK=35
App
33
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
34
Le mot de la fin
« Scale Up,Scale-Out,
Scale-Out for more writes ! »
Bob Mar-laid, Kingston, 1976
35
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)
36
Testez la plateforme Windows Azure
Explorez l’infini en 24h au travers de 3 exercices et repartez avec un Pass qui vous permet d’accéder à un vrai compte Windows Azure gratuitement pendant 30 jours.
Les abonnés MSDN bénéficient d’avantages pour tirer profit de la plateforme Windows Azure tels que 750 heures/mois, base de données SQL Azure…
Offre de Découverte “Windows Azure Platform Introductory Special” — Cette offre promotionnelle vous permet d'essayer gratuitement la plateforme Windows Azure. L'abonnement comprend un niveau de base de 25h de calcul/mois, du stockage, du transfert de données...
www.windowsazure.fr
Dès maintenant dans votre kit Windows Azure
Ou rendez-vous sur le stand cloud, C41, pour en récupérer un
Certifié sans
carte bleue
37
« Le meilleur des formations Microsoft en France »
Accédez à plus de 90 cours de qualité sur les technologies de développement Microsoft en ligne ou avec un formateur SoftFluent.
Une carte d’accès Gratuite 1 mois vous attend au stand SoftFluent W5 !
4 cours AZURE vous attendent…
Windows Azure Fundamentals
&
Introduction to Windows Azure
SQL Azure
Windows Azure AppFabric
Partenaire exclusif en France
38
Devenez « Powered by Windows Azure »
• Pour les développeurs, les éditeurs de logiciels… tous ceux qui créent des logiciels
• Gratuit et en français
• En « libre service »
• Accompagnement en 3 étapes:
• Aide au Développement avec des outils tels que SDK, codes sources, formations techniques…
• Aide au test de compatibilité grâce au kit de certification logicielle mis à disposition gratuitement.
• Visibilité sur le marché: ressources marketing à disposition (PinPoint, logo « Powered by Windows Azure »,…)
Rendez-vous sur le stand cloud, C41, pour en savoir plus