La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Comment gérer ses données avec la plateforme AZURE

Présentations similaires


Présentation au sujet: "Comment gérer ses données avec la plateforme AZURE"— Transcription de la présentation:

1

2 Comment gérer ses données avec la plateforme AZURE
ARC301 Olivier SALLABERRY Philippe LALOUM Jean-Luc BOUCHO Architecte – MCS France Architecte - MCS France Architecte Winwise blog.jeanlucboucho.com

3 Agenda Problématique de la gestion des données sur Azure
Quelques contres exemples Les dimensions d’étude Typologie de données Gestion de données Modèle de coût des services Scénarios Gestion de Blob Azure Gestion de données structurées en Table Azure Gestion de données relationnelles sous SQL Azure Questions/Réponses

4 Problématique de la gestion des données sur Azure
Toutes les natures de données applicatives ne s’y prêtent pas (encore): Contraintes règlementaires d’externalisation liées à la sensibilité des données Contraintes de proximité réseau aux applications internes Contraintes techniques induites Pour celles qui s’y prêtent, quelles abstractions de données Azure et mécanismes de gestion retenir aujourd’hui pour bien préparer le futur? Blob, Drive ou Table Windows Azure Base de données SQL Azure

5 Contre-exemples Respect de réglementations sur la sécurité et la privauté des données incompatibles avec le modèle de sécurité de « cloud » public de Windows Azure Contrainte sur la localisation de l’hébergement des données Contraintes sur la sensibilité des données Contraintes de performance unitaire des accès aux données incompatibles avec la latence d’accès au « cloud » public Modèle de « cloud » communautaire ou privé Windows Azure Platform Appliance (pas de disponibilité généralisée de cette offre à ce jour) Modèle de « cloud » hybride Données sensibles conservées en interne dans son propre « datacenter » Externalisation des services sur Windows Azure Sécurisation des échanges Windows Azure AppFabric Service Bus Windows Azure Connect (CTP)

6 Gestion de données Définition des structures de données
Schéma de données Dimensionnement et partitionnement des données Indexation des données Manipulation des données Recherche, pagination et streaming de données Insertion, mise à jour et suppression unitaire et par lot de données Exploitation des données Déploiement et mise à jour des sources de données Distribution des données sur les nœuds physiques Réplication des données entre nœuds physiques Synchronisation avec les données internes Sauvegarde et restauration des données Sécurité des données Accès aux données Stockage des données

7 Modèle de coût de service
Facturation de la bande passante Au volume de données transférées en entrée/sortie de l’emplacement d’hébergement du compte de stockage Amérique du Nord/Sud, Europe du Nord/Ouest, Asie de l’Est/Sud-Est Pas de facturation de la bande passante consommée par les services de calcul hébergés au même emplacement Facturation des transactions de stockage réussis ou en échec « prévisible » Facturation au nombre de requêtes REST soumises sur le compte de stockage Certains appels de la librairie de stockage client résultent en plusieurs requêtes REST Certaines transactions en échec « prévisible » sont facturées Facturation de la capacité de stockage Au volume de données moyen mensuel persistées sur le compte de stockage Tenir compte des métadonnées dans l’estimation du volume de stockage Plus de détails Upload de blobs: PutBlock, PutBlockList: découpage en blocs de 4 Mo de blobs de taille supérieure à 32 Mo Lecture de tables: CloudTableQuery Gestion transparente de « Continuation Token » Modification de tables: SaveChanges Par défaut, modification unitaire SaveChangesOptions.Batch: limite de 100 entités par Batch Erreurs applicatives de transaction Throttling du taux de transaction Dépassement de timeout explicitement inférieur au timeout SLA date

8 Scénario 1: Service de Blob Azure
Blobs - Typologie de données Blobs - Gestion de données Structure et manipulation des données Windows Azure Drive Exploitation des données Sécurité des données Blobs – Coût du service Blobs - Démonstration

9 Blobs Azure – Typologie de données
Stockage hiérarchique à trois niveaux, de données métiers et techniques de type quelconque Compte Container Blob VID01.JPG videos (public) philil01 vac/VID02.JPG mails-CLI01 (privé) BACKUP01.PST

10 Blobs Azure – Structure et manipulation (1/2)
Compte de stockage Unité de géolocalisation des containers et blobs Max: 300 TB de données, 3 Gb.s-1 de bande passante, transactions.s-1 Enumération filtrée par préfixe et paginée des containers d’un compte 1000 entrées ou 5s de délai par page max Containers Nom compatible DNS de 63 caractères de longueur max Enumération filtrée par préfixe et/ou délimiteur et paginée des blobs d’un container et de leur métadonnées Blobs (caractéristiques communes) Nom valide d’URI de caractères de long max Simulation de hiérarchie de répertoire par utilisation d’un caractère délimiteur Verrouillage pour accès exclusif en écriture par « Lease » 1 mn renouvelable 60 MB.s-1 de bande passante max par blob (et autres objets de stockage Windows Azure) Container spécial $root Caractère / usuellement (e.g: vac/ete/VID02.JPG) date

11 Blobs Azure – Structure et manipulation (2/2)
Block Blobs Un «block blob» se décompose en un ensemble de bloc à identifiant relatif unique de taille max de 4 MB et totalisant une taille max de 200 GB Ecriture par « commit » et lecture parallèles et non ordonnées possible des blocs Reprise efficace en cas d’erreur Recomposition ordonnée du blob après lecture/écriture de ses blocs Adapté au « streaming » de données Page Blobs Un «page blob » se décompose en une série de page de 512-byte totalisant une taille max de 1 TB Ecriture immédiate et lecture possible d’un ensemble de pages séquentielles de taille max de 4 MB à partir d’un indice de page quelconque Adapté à l’accès aux données en lecture/écriture aléatoire Support de stockage du « Windows Azure Drive »

12 Blobs Azure – Windows Azure Drive
VM Volume NTFS monté sur une VM Azure depuis un « page blob » 16 drives par VM max Lecture avec gestion de cache local Application Drive X: OS Cache local Lease Windows Azure Blob Service Page Blob

13 Blobs Azure – Exploitation de données
Sauvegarde/restauration de blobs Sauvegarde par génération de « snapshot » Copie logique en lecture seule à un point dans le temps d’un blob de base Duplication des données uniquement lors de la modification du blob de base Restauration par copie locale d’un « snapshot » sur son blob de base Partitionnement et distribution des blobs La combinaison « nom de container + nom de blob » constitue la clef de partitionnement Un blob et l’ensemble de ses « snapshots » constituent une unique partition Un serveur de partition sert un ensemble ordonné de partitions Les partitions sont automatiquement redistribuées sur les serveurs de partition Réseau de distribution de contenu (Windows Azure CDN) Activation au niveau du compte de stockage Mise en cache des blobs pour une durée par défaut de 72 heures Redirection des requêtes vers le nœud de cache le plus proche du lieu d’origine de la requête Les données sont répliquées au moins trois fois sur des serveurs DFS Mapping possible des URLs Windows Azure et Windows Azure CDN sur un nom de domaine date

14 Blobs Azure – Sécurité des données
Container ACLs « Full public read access » Accès anonyme illimité au container et aux blobs qu’il contient « Public read access for blobs only » Accès anonyme illimité aux blobs d’un container, sans permission de les énumérer « No public read access » Seul un accès authentifié par le détenteur de la clef du compte de stockage est autorisé Shared access signatures Paramètres de requêtes d’URL permettant un accès anonyme contrôlé à un blob ou container Distribution confidentielle aux utilisateurs concernés Confèrent des permissions sélectives sur un blob/container pour une durée limitée Associables à une stratégie d’accès container Permet la modification ou la révocation d’accès à la ressource en cas de fuite

15 Blob Azure – Coût du service
Paiement à l’usage Stockage 0,1064 € par GB et par mois 0,0071 € pour transactions de stockage Réseau de distribution de contenu 0,1064 € par gigaoctet pour les transferts de données depuis l'Europe et l'Amérique du Nord 0,1419 € par gigaoctet pour les transferts de données depuis tout autre pays 0,0071 € pour 10 000 transactions Transfert de données Régions Amérique du Nord et Europe 0,071 € par gigaoctet entrant 0,1064 € par gigaoctet sortant Offres

16 Démo Blob AZURE

17 Scénario 2: gestion de données structurées en Table Azure
Tables AZURE – Généralités et architecture de stockage Tables AZURE – Gestion des données Structure et typologie des données Manipulation des données Exploitation des données Tables AZURE – Sécurité des données Tables AZURE – Coût du service Tables AZURE - Démonstration

18 Tables Azure – Généralités (1/2)
TechReady11 4/2/2017 Tables Azure – Généralités (1/2) Un service de stockage REST Azure , noSQL (not only SQL) , Un service de stockage structuré , disponible et durable , supportant la montée en charge massive Plus de données et aussi plus de consommateurs de ces données Montée en charge automatisée via clef de partitionnement (“partition key”) N’est pas une base de données relationnelle Pas de schéma fixe , de clefs étrangères , de contrôle d’intégrité référentielle.. Un seul Index par table Capacité transactionnelle au sein d’une partition , mais non entre tables ou partitions Complémentaire au stockage relationnel Capacité , Cout , dénormalisation.. © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

19 Table Azure – Généralités (2/2)
TechReady11 4/2/2017 Table Azure – Généralités (2/2) Environ 50 fois moins cher au Go qu’une base de données SQL Azure Cout des transactions REST en plus pour le stockage REST Facturation de la bande passante (hors datacenter) pour les deux Des interfaces de programmation familières APIs REST : Windows Azure Storage Services REST API Reference APIs de plus haut niveau comme celles pour Java, pour PHP, API managée (Windows Azure Managed Library Reference) permettant notamment le requêtage via LINQ Accès HTTP/HTTPS depuis des services s’exécutant dans Windows Azure ou directement depuis n’importe quelle application à même de transmettre et de recevoir des données via HTTP/HTTPS Stockage $0.15 par gigaoctet et par mois $0.01 pour 10 000 transactions de stockage Transferts de données Régions Amérique du Nord et Europe $0.10 par gigaoctet entrant $0.15 par gigaoctet sortant Région Asie-Pacifique $0.20 par gigaoctet sortant •Les transferts de données entrantes en période creuse sont gratuits jusqu'au 31 mars 2011. Après cette date, les tarifs habituels seront appliqués. Ressources © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

20 TechReady11 4/2/2017 Table Azure Architecture du stockage Windows Azure : cycle de vie d’une requête Plus d’infos : : © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

21 Table Azure - Structure et typologie des données
TechReady11 Table Azure - Structure et typologie des données 4/2/2017 Compte de Stockage Table Entité (ligne) Propriété (colonne) Sessions Session 1 Année Titre Time Sujet Stockage Session 2 Année Titre Time url Partition Key Row Key Time Stamp Jusque 252 Propriétés Jusque 1Mo / Entité Pas de schéma fixe mais un schéma “flexible” : Chaque ligne ou entité peut voir sa structure (ses propriétés) varier au sein d’une même table. Les trois propriétés obligatoires pour chaque entité PartitionKey – Première Colonne (Performance des requêtes & Montée en charge) RowKey – Identifie de manière unique l’entité dans la partition Timestamp - Read Only - Optimistic Concurrency Un Index par table = Partitionkey + Rawkey Les types supportés par les propriétés des entités sont les suivants: String, Binary, Bool, DateTime, GUID, Int, Int64, and Double ( © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

22 Tables Azure - structuration des données
Partition Key Plus de partitions = plus de serveurs de partition , de capacité à monter en charge Les transactions ensemblistes s’exécutent au sein d’une même partition Impact sur le cout par transaction et les performances Dimensionnement : Une limite de 100 To Schéma flexible: 3 propriétés obligatoires , 252 autres au choix , par entité Indexation : un index par table mais multiplication des données possible.. Delete Delete Table versus delete de millier d’entités Multitenancy critères : règlementation , isolation , évolutivité Non relationnel mais complémentaire à SQL Azure ! Consommation à l’usage : Cache (Azure App Fabric en CTP) : Compression , purges et critères de structuration associés Partition Key Plus de partitions = plus de serveurs de partition et de capacité à monter en charge (!) Les transactions ensemblistes s’exécutent au sein d’une même partition impactant cout par transaction et performances Dimensionnement : Une limite de 100 To.. Schéma flexible: 3 propriétés obligatoires , 252 autres au choix , par entité Indexation : un index par table: Partition Key + Raw Key Multiplication des données (tables) => plus d’index , plus de capacité à monter en charge Delete Préferer le Delete Table versus le delete de millier d’entités (couts et performances) Multitenancy critères : règlementation , isolation , évolutivité Non relationnel mais complémentaire à SQL Azure ! Consommation à l’usage : Cache (Azure App Fabrik en CTP) : Compression (en prenant en compte les propriétés critères de recherche..) Prévoir les purges , les critères associés. date

23 Tables Azure - Manipulation des données
Les opérations Standards sont les suivantes: Tables : Create , Query , Delete Entités : Insert , Update , Delete, Query , Entity Group Transactions Quelques point clefs de la manipulation des données Throttling : atteinte des limites à l’instant t d’un serveur de partition Exponential Back off : bonne pratique en situation de Throttling. Continuation Token: impacte le cout et les performances. >1000 entités , >5 secondes , limites de partitionnement , pagination. Opérations par lots (moins en cout , plus en performances) 100 entités par batch transaction sur la même partition seulement Delete : préférer le DELETE Table au DELETE de milliers d’entités. Emulateur local : Permet de tester les accès au service sans latence et sans facturation (Windows Azure SDK 1.3) Les opérations Standards sont les suivantes: Tables : Create , Query , Delete Entités : Insert , Update , Delete, Query , Entity Group Transactions Quelques point clefs de la manipulation des données Throttling => atteinte des limites à l’instant t d’un serveur de partition Exponential Back off = bonne pratique en situation de Throttling. Continuation Token: 1000 entités , 5 seconds , limites de partionnement , pagination. Opérations par lots (moins en cout ,plus en performances) (!) 100 entités par batch transaction (!) sur la même partition seulement Delete : préférer le DELETE Table au DELETE de milliers d’entités. (!)L’émulateur local (DevFabric) permet de tester les accès au service sans latence et sans facturation (Windows Azure SDK 1.3) Quelques écarts cependant: Recherche : Un index par table : PartitionKey + RowKey. Préciser le partitionKey dans les requête impacte positivement les performances : permet d’éviter d’adresser n serveurs de partitions Options de syntaxe des requêtes REST : $filter , $top Opérateurs de comparaisons dans une clause $filter: Equal (eq), GreaterThan (gt), GreaterThanOrEqual (ge),LessThan (lt) LessthanorEqual (le),NotEqual (ne) And (and) , Not(not) , Or (or) pour les expression booléennes. (Uri expression) Exemple : Référence : Requêtes LINQ (Subset) via les API managées: From , Where , Take (<=1000) supportés date

24 Tables Azure - Manipulation des données
Recherche : Un index par table : PartitionKey + RowKey. Les données sont triées selon l’index Préciser la clef de partition dans les requêtes = meilleures performances Options de syntaxe des requêtes REST : $filter , $top Opérateurs de comparaisons dans une clause $filter: eq, gt, ge,lt le,ne (égal à, supérieur/inférieur ou égal à, différent de) and , not , or pour les expression booléennes. Exemple : Référence : Requêtes LINQ (Subset) : via les API managées: From , Where , Take (<=1000) supportés Les opérations Standards sont les suivantes: Tables : Create , Query , Delete Entités : Insert , Update , Delete, Query , Entity Group Transactions Quelques point clefs de la manipulation des données Throttling => atteinte des limites à l’instant t d’un serveur de partition Exponential Back off = bonne pratique en situation de Throttling. Continuation Token: 1000 entités , 5 seconds , limites de partionnement , pagination. Opérations par lots (moins en cout ,plus en performances) (!) 100 entités par batch transaction (!) sur la même partition seulement Delete : préférer le DELETE Table au DELETE de milliers d’entités. (!)L’émulateur local (DevFabric) permet de tester les accès au service sans latence et sans facturation (Windows Azure SDK 1.3) Quelques écarts cependant: Recherche : Un index par table : PartitionKey + RowKey. Préciser le partitionKey dans les requête impacte positivement les performances : permet d’éviter d’adresser n serveurs de partitions Options de syntaxe des requêtes REST : $filter , $top Opérateurs de comparaisons dans une clause $filter: Equal (eq), GreaterThan (gt), GreaterThanOrEqual (ge),LessThan (lt) LessthanorEqual (le),NotEqual (ne) And (and) , Not(not) , Or (or) pour les expression booléennes. (Uri expression) Exemple : Référence : Requêtes LINQ (Subset) via les API managées: From , Where , Take (<=1000) supportés date

25 Tables Azure Manipulation des données: quelques restrictions actuelles du service
Authentification via le header de la requête Propriété Credentials du DataServiceContext (*) Opérations concernant les liens A ce jour les liens (références relationnelles) entre tables ne sont pas supportés Addlink,AttachLink,DeleteLink,DetachLink,SetLink (*) Opérations relatives aux propriétés Pas d’opérations spécifiques aux propriétés : manipuler les entités. BeginLoadProperty , EndLoadProperty, LoadProperty (*) Opérateurs LINQ From , Where , Take (<=1000) supportés. JSON Non supporté actuellement par le service de Tables Azure ¨Plus d’informations : (*) APis .Net Client Library for WCF Data Services actuellement non supportées

26 Tables Azure Synthèse de quelques chiffres..
Dimensionnement : 100 To (quota d’un compte de stockage Azure) Cout Le stockage REST Azure est à ce jour 66 fois moins cher au Go (0,15$) que le stockage SQL Azure (10$) . (!) le cout des transactions REST est en plus (0,10$ / 10000) Cible de montée en charge : compter 500 Entity transactions par seconde par partition , et plusieurs milliers avec un partitionnement adapté.. L’architecture est contrainte et le système présente plusieurs bornes quantifiées… 100 entités par Entity Group Transaction et 4 Mo pour la requête associée. 1,000 entités retournés à la fois , Limite d’exécution de la requête à 5 secondes 255 propriétés (colonnes) par entité , incluant les 3 pré-requises. 4 Mo pour la taille de la requête d’une transaction batch 1 Mo par entité 1 ko pour PartitionKey et pour RowKey qui sont de type string. De 3 à 63 caractères pour le nom des tables 255 caractères pour le nom des propriétés.

27 Tables Azure - Exploitation des données
Déploiement et mise à jour des sources de données Le déploiement est effectif en un click sur le portail ou via les APIs de management La mise à jour des serveurs (patchs …) est prise en charge dans le service Distribution des données sur les nœuds physiques Pré-requis = clef de partition différente Puis distribution automatique en fonction de la charge Réplication des données entre nœuds physiques Prise en charge par les serveurs DFS Réplications sur plusieurs nœuds à l’insert/update/delete Sauvegarde et restauration des données La durabilité des données est gérée par le service Des sauvegardes fonctionnelles peuvent être effectuées par différents moyens applicatifs sur la base des accès standards REST Utilisables applicativement pour des backups SQL Azure (fonctionnels , historisation)

28 Tables Azure - Sécurité des données
Accès Chaque requête est authentifiée (header HTTP) au moyen des clefs associées au compte de stockage Les clefs sont générées aléatoirement à la création du compte et régénérable sur demande. Un compte de stockage a en permanence deux clefs actives (support du roll-over) Les clefs sont utilisées pour signer en HMAC (Hash based Message Authentication Code) chaque requête d’accès Pas de « Shared Access Signature » pour les tables Donner l’accès aux clefs côté client revient à donner l’accès à votre compte de stockage (100 To à $0,15 le Go..) : préférer les accès côté serveur et par exemple exposer des services WCF avec la protection associé (STS) Référence: Stockage Pas de mécanisme d’encryptage intégré Mécanisme applicatif possible prenant en compte les critères de filtrage des requêtes

29 Tables Azure Tarification à l’usage
Stockage 0,1064 € par gigaoctet et par mois 0,0071 € pour 10 000 transactions de stockage Transfert des données (Amérique du Nord et Europe) 0,071 € par gigaoctet entrant 0,1064 € par gigaoctet sortant Pricing , SLAs , Quotas (en français et en Euro)

30 Démo Tables AZURE

31 Azure Table and SQL Azure Table
TechReady11 4/2/2017 Azure Table and SQL Azure Table Feature Azure Table SQL Azure Table Partitioning & Scale Implicit based on Partition Key Explicitly managed by the Application (Sharding – future feature) Index Capabilities Table indexed on Partition Key + Row Key 0 Secondary Indexes 1 Clustered Index on any column 999 Secondary Indexes Table Limits Row Size – 1 MB Column Limit – 255 Table Limit – 100TB Row Size – 8MB Column Limit – 1024 Table Limit - ~50GB Transactions Transactions on entities within partition No Transactions across tables or partitions Up to 100 operations in a Transaction Payload upto 4MB per Transaction Fully compatible transactional semantics with SQL Server. No cross Database transactions Consistency Model Transactionally Consistent Concurrency Single Optimistic Concurrency Strategy Full range of isolation and concurrency models as supported by RDBMS © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

32 Azure Table and SQL Azure Table
TechReady11 4/2/2017 Azure Table and SQL Azure Table Feature Azure Table SQL Azure Data Access REST API, ADO .NET, Client Library SDK Standard tools and APIs apply SSMS, Visual Studio, ADO .NET, ODBC Column Types Basic Types Usual SQL Server Data Types Portability Data portability coming with Windows Azure Appliance Data in SQL Azure similar to SQL Server Easy migration in and out of the cloud Use multi stream transfer to mitigate network latency. Queries Upto 1000 entities [token pagination] Beyond 5 sec – return continuation token Queries by partition & row key are fast No Custom Indexes Today (future release) Non key queries are scans Query capabilities as per standard SQL Server database expectations Offer Server Side Processing through Stored Procedures and Complex Queries (Aggregation, Joins, Sorts, Filters, etc.) © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

33 Scénario 3: gestion de données relationnelles sous SQL Azure
Généralités Typologie des données Gestion des données Coût du service Démo

34 SQL Azure - Généralités
SQL Azure = Base de données relationnelle dans le Cloud Self-service (gestion de la mise à disposition) Haute disponibilité (trois réplicas par base, failover automatique) Capable de monter en charge Techniquement, SQL Azure Se base sur SQL Server 2008 R2 et son protocole TDS (Tabular Data Stream) Se manipule avec les mêmes environnements, outils et frameworks que SQL Server : Visual Studio, SQL Server Management Studio… ADO.NET, Entity Framework… Paiement à l’usage SLA de haut niveau We use a quorum based commit scheme where data is written to the primary and one secondary replica before we consider the transaction committed.

35 SQL Azure - Typologie Fortement typées Faiblement typées
Primitif : numeric, int, uniqueidentifier, date, timestamp… Texte : char, nvarchar… Hiérarchie : hierarchyid Géo-spatial : geography, geometry ! Non supporté : type utilisateur CLR Faiblement typées Variant : sql_variant Binaire : binary, image Xml ! Non supporté : FileStream ! Envisager Windows Azure Storage pour le stockage de gros documents (GIF, JPG, PDF, XPS XML…)

36 SQL Azure - Structure Dimensionnement Schéma Indexation
T-SQL : CREATE DATABASE… EDITION = {'web' | 'business'} MAXSIZE = 1, 5, 10, 20, 30, 40, 50 Go Schéma T-SQL : CREATE TABLE… ! Pas d’élément physique : FileGroup, FileStream, Partition… Indexation T-SQL : CREATE INDEX… ! Chaque table DOIT avoir un index CLUSTERED ! Pas d’index XML ! Pas de recherche Full-Text

37 SQL Azure - Distribution...
! Pas de partitionnement physique de niveau fichier Pour absorber une forte montée en charge ! Un serveur plus puissant ne suffit pas (= scale-up) Le sharding = scale-out Technique de répartition horizontale des données Plusieurs bases (shards) ayant le même schéma Sous-ensembles indépendants de données associés à une clé de répartition Problématiques Génération de l’identifiant de la clé Gestion des connexions Ajout/Suppression de bases, modification de schéma Tables de références, transactions distribuées Opérations entre bases : relation, jointure, agrégation, tri

38 SQL Azure - Distribution
SQL Azure Federation (CTP 2011) Sera disponible en 2011 en CTP Résout une partie des problématiques dont la redistribution online Trois étapes Choisir la clé de fédération Dénormaliser le schéma Adapter l’application Exemple CREATE FEDERATION Orders_Federation(RANGE BIGINT) CREATE TABLE orders(...) FEDERATE ON (customerid) USE FEDERATION Orders_Federation(0) WITH RESET SELECT * FROM orders WHERE customerid

39 SQL Azure - Manipulation
C.R.U.D. : T-SQL classique Connexion TCP uniquement : ! Pas de Named Pipes, Shared Memory… Peut être rompue : par le serveur, par l’infra, sur le chemin... Consommation excessive (Lock, Log, TempDB, Mémoire…) Attaque (Denial of Service…) Failover… ! Implémenter une logique de tentatives successives Format chaine de connexion ADO.NET Data Source: tcp:server.database.windows.net User ID: ! Pas de serveur lié, d’ OleDb (mais ODBC disponible) Transaction Disponible dans une connexion à une base ! Pas de transaction distribuée Files d’attente : Pas de Service Broker

40 SQL Azure - Migration... Import / Export du schéma
SQL Server Management Studio 2008 R2 (SSMS) Assistant de génération de scripts T-SQL (option: “Engine Type = SQL Azure”) Visual Studio 2010 (toutes éditions) SQL Server Data-tier Application (DAC Package) Import / Export des données .NET : classe System.Data.SqlClient.SqlBulkCopy BCP.exe (Bulk Copy Program, Ne migre pas le schéma) bcp.exe dbname.dbo.table out  directory\table.tbl  -c -S server.database.windows.net  -t "|" SQL Server Integration Services 2008 R2 (SSIS)

41 SQL Azure - Migration Outils de migration Synchronisation
SQL Server Migration Assistant (SSMA) Support de SQL Azure, SQL Server 2005+, Access 97+, MySQL 4.1+ SQL Azure Migration Wizard (sqlazuremw.codeplex.com) Synchronisation Microsoft Sync Framework 2.1 SQL Azure Data Sync Entre bases SQL Azure (CTP ) Entre bases SQL Azure et SQL Server (CTP ) ! Performances En général : réduire le nombre d’indexes, désactiver les contraintes avant le transfert, pré-trier selon l’index clustered BCP / SSIS : paralléliser si possible, ajuster la taille des paramètres : batch / packet / buffer Microsoft Sync Framework : ~30 lignes de code

42 SQL Azure - Backup ! Pas de backup physique de niveau fichier, Windows Azure le fait pour vous ! Pas de service : SQL Server Agent Snapshot / Réplique Copie asynchrone CREATE DATABASE destination_database_name AS COPY OF [source_server_name.]source_database_name Suivi de l’avancement et le passage à l’état online SELECT * FROM sys.dm_database_copies SELECT * FROM sys.databases Niveau applicatif Synchronisation : SQL Azure Data Sync, Sync Framework Import / Export : SSIS, BCP.exe Outils tiers : Redgate, Cerebrata… ! Performances : préférer une période de faible activité de la base

43 SQL Azure - Sécurité Serveur Chaîne de connexion ADO.NET Données
TCP : utilisation du port 1433, SSL obligatoire Firewall SQL Azure : paramétrer les adresses IP autorisées Authentification SQL : définir les utilisateurs (login / mot de passe / rôles) ! Pas d’authentification Windows Chaîne de connexion ADO.NET Validation des certificats par ADO.NET en ajoutant les options : Encrypt=True et TrustServerCertificate=False Web.config : cryptage possible avec les certificats Windows Azure Données ! Pas de cryptage natif : Transparent Data Encryption, cryptage de niveau colonne Si nécessaire : réaliser un cryptage au niveau applicatif TrustServerCertificate=False : évite l’attaque man-in-the-middle

44 SQL Azure - Diagnostique
Dynamic Management Views (vues systèmes) Informations sur : Les transactions, lock… Les requêtes : plan d’exécution, statistiques, utilisation des IO… La base : connexions, sessions, requêtes longues… ! Attribuer le droit VIEW DATABASE STATE à l’utilisateur Exemple : Liste des utilisateurs connectés SELECT login_name, COUNT(session_id) AS session_count FROM sys.dm_exec_sessions GROUP BY login_name Exemple : Suivi de la facturation sys.database_usage : taille et type de base (Web / Business) sys.bandwidth_usage : bande passante (entrant / sortant) ! Pas de logs SQL, compteurs de performance, SQL Profiler Dynamic Management Views : support partiel

45 SQL Azure - Tarification
Edition Web  7,085 € par mois et par base de données, jusqu'à 1 Go 35,425 € par mois et par base de données, jusqu'à 5 Go Business Edition 70,913 € par mois et par base de données, jusqu'à 10 Go 141,826 € par mois et par base de données, jusqu'à 20 Go 212,739 € par mois et par base de données, jusqu'à 30 Go 283,652 € par mois et par base de données, jusqu'à 40 Go 354,565 € par mois et par base de données, jusqu'à 50 Go Transferts Régions Amérique du Nord et Europe 0,071 € par Go entrant / 0,1064 € par Go sortant Région Asie-Pacifique 0,071 € par Go entrant / 0,1419 € par Go sortant

46 SQL Azure - Scénarios futurs
SQL Azure Labs OData Service Data Sync (CTP1) Project Houston (CTP1) 2011 Data Sync (CTP2) Database Manager for SQL Azure Federation (CTP) ... Une meilleure symétrie avec SQL Server

47 Démo SQL AZURE SQL Server Management Studio SQL Azure Migration Wizard
Migration d’une base SQL Server SQL Server Management Studio SQL Azure Migration Wizard Utilisation SQL Azure avec EntityFramework Exploitation Copie de la base Usage de la bande passante date

48 Synthèse Blobs Azure Stockage « banalisé » de données binaires ou texte Azure Drives Volume NTFS au-dessus d’un blob Azure accessible uniquement depuis un rôle applicatif Azure Tables Azure Stockage « structuré » de données « non-relationnelles » SQL Azure Stockage de données relationnelles

49 Ressources (1/2) Ressources Windows Azure Storage Ressources SQL Azure
Blog : Wiki : Ressources SQL Azure Blog : Twitter : SQLAzure Wiki : Training Kit :

50 Ressources (2/2) Sessions tech.days 2011 en rapport avec le sujet
Mardi 8 Février noSQL, typologie et panorama 14h30, salle 341 Construire des applications supportant la montée en charge avec SQL Azure 17h30, amphi Bordeaux Mercredi 9 Février SQL Azure: la base de données dans le Cloud 09h00, amphi Bleu

51 MSDN et TechNet : l’essentiel des ressources techniques à portée de clic
Portail administration et infrastructure pour informaticiens Portail de ressources technique pour développeurs

52 Microsoft Services: Un accompagnement global de nos clients
Architecture & Planning Planification Conseil et Projets Déploiement et adoption Support Optimisation et Opération Evaluation Développement Déploiement Stabilisation Opérations Support Premier Enterprise Strategy Consulting Services Division Services France 2010 180 Consultants 125 Technical Account Managers 190 Ingénieurs Support 17 Responsables de Mission 41 Partenaires référencés Division Services Monde 2010 82 pays couverts employés partenaires 44 langues parlées par nos ingénieurs

53 Nos clients et partenaires sont particulièrement satisfaits par…
Notre positionnement est d’intervenir sur les projets critiques et les technologies récentes Criticité du projet Maturité de la technologie Partenaires Notre engagement auprès de nos partenaires est : De leur assurer un transfert d’expertise, De leur apporter notre support sur les dernières technologies, De leur donner accès aux meilleures pratiques de mise en œuvre et de support. Nos clients et partenaires sont particulièrement satisfaits par… Le niveau d’engagement des consultants : 94% La gestion de l’équipe de projet : 92% Les compétences techniques des consultants : 91% La relation avec les équipes du client : 90%

54 L’expert de référence ! Société d’expertise sur les technologies Microsoft Partenaire historique et stratégique de Microsoft Plus de 90 collaborateurs certifiés interviennent sur des missions à forte valeur ajoutée : Missions d’expertise Conseil & Audit Réalisation de projets à engagement de résultats Une offre couvrant l’ensemble du cycle de vie des applications : Travail collaboratif, portail d’entreprise et Workflow Business Intelligence & Data Management Interfaces utilisateurs, Rich Internet Application & desktop application Architecture d’entreprise et Architecture Life cycle Management Infrastructure, Sécurité et Réseaux Centre de formation et de Certification Microsoft WINWISE est le pôle d’expertise MICROSOFT du Groupe ALTEN et bénéficie de la puissance financière d’un leader incontesté WINWISE 130/136 Rue de Silly Boulogne-Billancourt

55 Restons en contact http://bit.ly/archiappms
groupe LinkedIn: Forum des Architectures Applicatives Microsoft Ce forum regroupe des architectes en informatique qui ont des choix de technologies à faire dans les projets pour lesquels ils travaillent. L’architecte applicatif, en situation de projet, travaille typiquement aux côtés de la direction de projet pour choisir et assumer des choix techniques en fonction des contraintes du projet (fonctionnalités, délais, ressources). Pour effectuer ces choix à bon escient, il doit connaître ce que le marché offre en termes de technologies. Cela peut prend typiquement deux formes : veille technologique continue, recherches dans le cadre du projet. L’architecte applicatif a aussi pour rôle de faire le lien entre les équipes de développement et les équipes d’infrastructure et d’exploitation de la future application. Il doit également veiller à ce que ses choix soient bien mis en œuvre pendant le développement. Ce forum, à l’initiative de Microsoft France, a pour but d’aider les architectes applicatifs à faciliter la connaissance de l’offre de Microsoft pour les projets en entreprise (envoi de liens vers des présentations, documents, webcasts, conférences, …), mais également à échanger sur des problématique d’architecture ayant un rapport, même partiel, avec la plateforme Microsoft (est-ce que ADFS V2 fonctionne dans un environnement SAML2, comment se passe la réversibilité d’une application développée pour l’informatique en nuage, quelles sont les implications d’un déploiement sur une ferme Web, …). Cet espace est le vôtre, faites le vivre, nous sommes aussi et surtout là pour vous lire.

56


Télécharger ppt "Comment gérer ses données avec la plateforme AZURE"

Présentations similaires


Annonces Google