1 / 39

DAT306 Construire des applications supportant la montée en charge avec SQL Azure

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….

doane
Download Presentation

DAT306 Construire des applications supportant la montée en charge avec SQL Azure

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. DAT306Construire des applications supportant la montée en charge avec SQL Azure Simon Ferquel Access it IDF Pascal Laforest Access it IDF Adrien Siffermann Imajin

  2. Access It IdFen 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. Introduction 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.

  5. SQL Azure Concepts familiers Valeur différentiée • Modèle relationnel • T-SQL classique • Support de librairies et protocoles existants • SQL Server Management Studio • Mutualisé • Paiement à la consommation • Pas d’administration physique • Gestion automatisée • Provisionnement simple • Haute disponibilité

  6. Etendre SQL Server au Cloud Data Sync Reporting Business Intelligence Database Modèle de programmation et outilscommuns SGBD-R basé sur SQL Server 2008 Limité à 50 GB, tailles par paliers Index clustered obligatoire Full-TextSearch 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 Windows Azure On Premise Mixte Azure Sync SQL Server Application / Navigateur Code/ Outils Code / Outils Microsoft Datacenter Windows Azure SQL Azure Data Sync MicrosoftDatacenter MicrosoftDatacenter Windows Azure SQL Azure SQL Azure Microsoft Datacenter Azure SQL Azure SQL Hybride

  8. Utilisation /Modèle de provisionnement • ChaqueComptereprésente • Un compte de facturation • Un Serveurvirtuel • ChaqueServeurdispose • D’uneouplusieursbases limitéesen taille (1 à 50 Gb) • D’unebase maître • D’un ouplusieurslogins • Chaquebase a • Un ouplusieursSQL 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é Noeud maître SQL Azure Replica 1 LB Replica 2 Replica 3 Replica 4

  11. Sous le capot… Application Connectivité SQL Standard: ODBC, ADO.Net, PHP, … Internet Répartition de charge ! LB TDS (tcp) TDS (tcp) Zone de sécurité Gateway Gateway Gateway Gateway Gateway Gateway SQL SQL SQL SQL SQL SQL TDS (tcp) Scalabilité et haute disponibilité, reprise en cas d’incident, réplication et répartition de charge

  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 ! • Loadbalancing 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. Partitionnement hybride • 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

  20. Scale-Out dans un contexted’applicationsmutualisées • Tout mettredansune BDD ? Trop gros… • Créerune base par ‘locataire’ ? Pas mal… • Sharding Pattern : mieux !! Toutesmesdonnéessontdansuneseule BDD T1 T2 T3 T4 T5 T1 T5 T2 T3 T4 T6 T7 T8 T9 T10 T6 T10 T7 T8 T9 T11 T12 T13 T14 T15 T11 T15 T12 T13 T14 T16 T17 T18 T19 T20 T16 T20 T17 T18 T19

  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 Ref Data4 Config Data2 Ref Ref Data5 Data3 Ref Ref

  22. Impacts applicatifs (1/2) Code applicatif Logique de répartition des données sur le bon serveur SQL Azure Base 1 Objet A Objet B Base 2 Base 3 Objet C Objet D

  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. Sharding : aujourd’hui et demain… • Provisionnement • Elasticité / croissance & diminution • Administration • Haute disponibilité, mises à jour, maintenance… SQL Azure aujourd’hui • 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) Demain ! SQL Azure Federations

  26. SQL Azure Federation Root • 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 FederationRoot correspond à la BDD hébergeant le référentiel de la Fédération Federation “CustData” (Federation Key: CustID) 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

  27. Créationd’uneFederation • 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 SalesDB • 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 Products Federation “Orders_Fed”(Federation Key: CustID) Member: [min, max) orders zipcode

  29. Fractionner et fusionner SalesDB • 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 Products Federation “Orders_Fed”(Federation Key: CustID) Member: [min, max] orders zipcode Member: [min, 100] orders zipcode Member: [100, max] orders zipcode

  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 GOGO !   • ALTER FEDERATION Orders_Fed SPLIT AT(100) • ALTER FEDERATION Orders_Fed SPLIT AT(200,300,400…) • Jour 4 => Làc’estsûr, c’est la crise !!  • ALTER FEDERATION Orders_Fed MERGE AT(100) • Jour 5 => Encore unebaisse : 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 App Member: [min, 100) AUPK=5 AUPK=25 AUPK=35 zipcode

  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êtesréparties (fan-out) • Requête unique renvoyant des résultatssur un nombre important de membresd’unefédération • Répartitionnementautomatique • SQL Azure auto-administre les BD fédérées en les fractionnant/fusionnantsur la base de règlespré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)

  35. Testez la plateforme Windows Azure • www.windowsazure.fr Certifié sanscarte bleue • Dès maintenant dans votre kit Windows Azure • Ou rendez-vous sur le stand cloud, C41, pour en récupérer un

  36. & Partenaire exclusif en France « 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. 4 cours AZURE vous attendent… Introduction to Windows Azure Windows Azure Fundamentals SQL Azure Windows Azure AppFabric Une carte d’accès Gratuite 1 mois vous attend au stand SoftFluentW5 !

  37. 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 avecdes 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

More Related