54

2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

Embed Size (px)

Citation preview

Page 1: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS
Page 2: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

2

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

ARC301

Olivier SALLABERRY Philippe LALOUM Jean-Luc BOUCHOArchitecte – MCS France Architecte - MCS France Architecte Winwise

blog.jeanlucboucho.com

Page 3: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

3

Agenda

Problématique de la gestion des données sur AzureQuelques contres exemplesLes 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

Page 4: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

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

Page 5: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

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 » publicModè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)

Page 6: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

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

Page 7: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

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• http://blogs.msdn.com/b/windowsazurestorage/archive/2010/07/09/understanding-

windows-azure-storage-billing-bandwidth-transactions-and-capacity.aspx

Page 8: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

8

Scénario 1: Service de Blob Azure

Blobs - Typologie de donnéesBlobs - 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 serviceBlobs - Démonstration

Page 9: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

9

Blobs Azure – Typologie de données

Stockage hiérarchique à trois niveaux, de données métiers et techniques de type quelconque

BlobContainerCompte

philil01

videos(public)

VID01.JPG

vac/VID02.JPG

mails-CLI01 (privé)

BACKUP01.PST

http://<compte>.blob.core.windows.net/<container>/<blob>

Page 10: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

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, 5 000

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• 1000 entrées ou 5s de délai par page max

Blobs (caractéristiques communes)• Nom valide d’URI de 1 024 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

Page 11: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

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 »

Page 12: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

12

Blobs Azure – Windows Azure Drive

Volume NTFS monté sur une VM Azure depuis un « page blob »• 16 drives par VM

maxLecture avec gestion de cache local

VM

Windows Azure Blob Service

Page Blob

Cache local

OS

Application

Lease

Drive X:

Page 13: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

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

Page 14: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

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

Page 15: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

15

Blob Azure – Coût du service

Paiement à l’usage• Stockage

• 0,1064 € par GB et par mois• 0,0071 € pour 10 000 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• http://www.microsoft.com/france/windows-azure/Offres.aspx

Page 16: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

16

DémoBlob AZURE

Page 17: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

17

Scénario 2: gestion de données structurées en Table Azure

Tables AZURE – Généralités et architecture de stockageTables 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éesTables AZURE – Coût du serviceTables AZURE - Démonstration

Page 18: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

18

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

Page 19: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

19

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

Page 20: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

20

Table AzureArchitecture du stockage Windows Azure : cycle de vie d’une requête

Plus d’infos : : http://blogs.msdn.com/b/windowsazurestorage/archive/2010/12/30/windows-azure-storage-architecture-overview.aspx

Page 21: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

21

Table Azure - Structure et typologie des données

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 + RawkeyLes types supportés par les propriétés des entités sont les suivants:

• String, Binary, Bool, DateTime, GUID, Int, Int64, and Double

Compte deStockage

Stockage

Session 1 Titre Time Sujet

TableEntité(ligne)

Propriété(colonne)

AnnéeSessions

Session 2… Titre Time urlAnnée

Jusque1Mo / Entité

Jusque 252 Propriétés

Partition Key

Row Key

Time Stamp…

Page 22: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

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 http://msdn.microsoft.com/en-us/library/ff966480.aspx

• critères : règlementation , isolation , évolutivité

Non relationnel mais complémentaire à SQL Azure !Consommation à l’usage :

• Cache (Azure App Fabric en CTP) : http://msdn.microsoft.com/en-us/library/gg278356.aspx

• Compression , purges et critères de structuration associés

Page 23: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

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)

Page 24: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

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

performancesOptions 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 :

http://myaccount.table.core.windows.net/Customers()?$filter=LastName%20eq%20'Smith'%20and%20FirstName%20eq%20'John'

• Référence : http://msdn.microsoft.com/en-us/library/dd894031.aspx

Requêtes LINQ (Subset) : • via les API managées: • From , Where , Take (<=1000) supportés

Page 25: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

25

Tables AzureManipulation des données: quelques restrictions actuelles du service

Authentification via le header de la requête• Propriété Credentials du DataServiceContext (*)• http://msdn.microsoft.com/en-us/library/dd179428.aspx

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.• http://msdn.microsoft.com/en-us/library/dd135725.aspx

JSONNon supporté actuellement par le service de Tables Azure

¨Plus d’informations : http://msdn.microsoft.com/en-us/library/dd135720.aspx(*) APis .Net Client Library for WCF Data Services actuellement non supportées

Page 26: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

26

Tables AzureSynthèse de quelques chiffres..

Dimensionnement : 100 To (quota d’un compte de stockage Azure)

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

Page 27: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

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)

Page 28: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

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

• http://msdn.microsoft.com/en-us/library/ee395415.aspx• 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: http://msdn.microsoft.com/en-us/library/dd179428.aspx

Stockage• Pas de mécanisme d’encryptage intégré• Mécanisme applicatif possible prenant en compte les critères de filtrage des

requêtes

Page 29: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

29

Tables AzureTarification à 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)

• http://www.microsoft.com/windowsazure/offers/popup/popup.aspx?lang=fr&locale=fr-fr&offer=MS-AZR-0003P

Page 30: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

30

DémoTables AZURE

Page 31: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

33

Scénario 3: gestion de données relationnelles sous SQL Azure

GénéralitésTypologie des donnéesGestion des données Coût du serviceDémo

Page 32: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

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

Page 33: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

35

SQL Azure - Typologie

Fortement typéesPrimitif : numeric, int, uniqueidentifier, date, timestamp…Texte : char, nvarchar…Hiérarchie : hierarchyidGéo-spatial : geography, geometry ! Non supporté : type utilisateur CLR

Faiblement typéesVariant : sql_variantBinaire : binary, imageXml ! Non supporté : FileStream ! Envisager Windows Azure Storage pour le stockage de gros documents (GIF, JPG, PDF, XPS XML…)

Page 34: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

36

SQL Azure - Structure

DimensionnementT-SQL : CREATE DATABASE… EDITION = {'web' | 'business'}MAXSIZE = 1, 5, 10, 20, 30, 40, 50 Go

SchémaT-SQL : CREATE TABLE… ! Pas d’élément physique : FileGroup, FileStream, Partition…

IndexationT-SQL : CREATE INDEX… ! Chaque table DOIT avoir un index CLUSTERED ! Pas d’index XML ! Pas de recherche Full-Text

Page 35: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

37

SQL Azure - Distribution...

! Pas de partitionnement physique de niveau fichierPour absorber une forte montée en charge

! Un serveur plus puissant ne suffit pas (= scale-up)

Le sharding = scale-outTechnique de répartition horizontale des donnéesPlusieurs bases (shards) ayant le même schémaSous-ensembles indépendants de données associés à une clé de répartition

ProblématiquesGénération de l’identifiant de la cléGestion des connexionsAjout/Suppression de bases, modification de schémaTables de références, transactions distribuéesOpérations entre bases : relation, jointure, agrégation, tri…

Page 36: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

38

SQL Azure - Distribution

SQL Azure Federation (CTP 2011)Sera disponible en 2011 en CTPRésout une partie des problématiques

dont la redistribution online

Trois étapes1. Choisir la clé de fédération2. Dénormaliser le schéma3. Adapter l’application

ExempleCREATE FEDERATION Orders_Federation(RANGE BIGINT)CREATE TABLE orders(...) FEDERATE ON (customerid)USE FEDERATION Orders_Federation(0) WITH RESETSELECT * FROM orders WHERE customerid = @id

Page 37: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

39

SQL Azure - Manipulation

C.R.U.D. : T-SQL classiqueConnexion

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.NETData Source: tcp:server.database.windows.netUser ID: login@server ! Pas de serveur lié, d’ OleDb (mais ODBC disponible)

TransactionDisponible dans une connexion à une base ! Pas de transaction distribuée

Files d’attente : Pas de Service Broker

Page 38: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

40

SQL Azure - Migration...

Import / Export du schémaSQL 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.SqlBulkCopyBCP.exe (Bulk Copy Program, Ne migre pas le schéma)bcp.exe dbname.dbo.table out  directory\table.tbl  -c-U login@server -S server.database.windows.net  -t "|"

SQL Server Integration Services 2008 R2 (SSIS)

Page 39: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

41

SQL Azure - Migration

Outils de migrationSQL Server Migration Assistant (SSMA)

Support de SQL Azure, SQL Server 2005+, Access 97+, MySQL 4.1+

SQL Azure Migration Wizard (sqlazuremw.codeplex.com)

SynchronisationMicrosoft Sync Framework 2.1SQL Azure Data Sync

Entre bases SQL Azure (CTP1 - 2010)Entre bases SQL Azure et SQL Server (CTP2 - 2011)

! PerformancesEn général : réduire le nombre d’indexes, désactiver les contraintes avant le transfert, pré-trier selon l’index clusteredBCP / SSIS : paralléliser si possible, ajuster la taille des paramètres : batch / packet / buffer

Page 40: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

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

Page 41: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

43

SQL Azure - Sécurité

ServeurTCP : utilisation du port 1433, SSL obligatoireFirewall SQL Azure : paramétrer les adresses IP autoriséesAuthentification

SQL : définir les utilisateurs (login / mot de passe / rôles) ! Pas d’authentification Windows

Chaîne de connexion ADO.NETValidation des certificats par ADO.NET en ajoutant les options : Encrypt=True et TrustServerCertificate=FalseWeb.config : cryptage possible avec les certificats Windows Azure

Données ! Pas de cryptage natif : Transparent Data Encryption, cryptage de niveau colonneSi nécessaire : réaliser un cryptage au niveau applicatif

Page 42: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

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’utilisateurExemple : Liste des utilisateurs connectésSELECT login_name, COUNT(session_id) AS session_countFROM sys.dm_exec_sessions GROUP BY login_name

Exemple : Suivi de la facturationsys.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

Page 43: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

45

SQL Azure - Tarification

Edition Web 7,085 € par mois et par base de données, jusqu'à 1 Go35,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 Go141,826 € par mois et par base de données, jusqu'à 20 Go212,739 € par mois et par base de données, jusqu'à 30 Go283,652 € par mois et par base de données, jusqu'à 40 Go354,565 € par mois et par base de données, jusqu'à 50 Go

TransfertsRégions Amérique du Nord et Europe

0,071 € par Go entrant / 0,1064 € par Go sortantRégion Asie-Pacifique

0,071 € par Go entrant / 0,1419 € par Go sortant

Page 44: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

46

SQL Azure - Scénarios futurs

SQL Azure LabsOData ServiceData Sync (CTP1)Project Houston (CTP1)

2011Data Sync (CTP2)Database Manager for SQL Azure Federation (CTP)

... Une meilleure symétrie avec SQL Server

Page 45: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

47

DémoSQL AZURE

Page 46: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

48

Synthèse

Blobs Azure• Stockage « banalisé » de données binaires ou

texteAzure 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

Page 47: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

49

Ressources (1/2)

Ressources Windows Azure StorageBlog : http://blogs.msdn.com/windowsazurestorage/ Wiki : http://social.technet.microsoft.com/wiki/contents/articles/understanding-data-storage-offerings-on-the-windows-azure-platform.aspx

Ressources SQL AzureBlog : http://blogs.msdn.com/sqlazureTwitter : SQLAzureWiki : http://social.technet.microsoft.com/wiki/contents/articles/sql-azure-resources.aspx Training Kit : http://msdn.microsoft.com/en-us/gg271268

Page 48: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

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

Page 49: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

51

MSDN et TechNet : l’essentiel des ressources techniques à portée de clic

http://technet.com http://msdn.com

Portail administration et infrastructure pour informaticiens

Portail de ressources technique pour développeurs

Page 50: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

525252

Microsoft Services:Un accompagnement global de nos clients

Architecture & PlanningPlanification

Conseil et ProjetsDéploiement et adoption

SupportOptimisation et Opération

Evaluation

Planification

Développement

Déploiement

Stabilisation

Opérations

Support

Support Premier

Enterprise StrategyConsulting 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

www.microsoft.fr/services

Division Services Monde 2010

• 82 pays couverts• 18 000 employés• 35 000 partenaires• 44 langues parlées par nos ingénieurs

Page 51: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

535353

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%

Notre positionnement est d’intervenir sur les projets critiques et les technologies récentes

Page 52: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

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’expertiseConseil & AuditRéalisation de projets à engagement de résultats

Une offre couvrant l’ensemble du cycle de vie des applications :Travail collaboratif, portail d’entreprise et WorkflowBusiness Intelligence & Data Management Interfaces utilisateurs, Rich Internet Application & desktop application Architecture d’entreprise et Architecture Life cycle ManagementInfrastructure, Sécurité et RéseauxCentre 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 92100 Boulogne-Billancourt www.winwise.com

Page 53: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS

55

Restons en contact

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.

http://bit.ly/archiappms

Page 54: 2 Comment gérer ses données avec la plateforme AZURE ARC301 Olivier SALLABERRYPhilippe LALOUM Jean-Luc BOUCHO Architecte – MCS FranceArchitecte - MCS