Guss sql IaaS PaaS 20131202

422 vues

Publié le

Presentation I did @Microsoft about our use of Sql Azure

Publié dans : Logiciels
0 commentaire
0 j’aime
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Nombre de vues
Sur SlideShare
Issues des intégrations
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • Not only can Cloud OS help you optimize your database applications, but it can also support all of your deployment environments from Traditional (non-virtualized) to Private and Public cloud weather it is on-premise, Microsoft cloud or Service provider cloud. Our enterprise customers have shared consistently some rationale as to why they will have a mixed or Hybrid deployment environment for the applications. Given the how powerful hyper-visors have become for example WS 2012 Hyper-V can now support 64 vCPUs per VM and provide you 1 TB of memory per VM, customers are looking to gain the economic benefits of a Private Cloud for even their mission critical applications, not just Tier 2 and Tier 3 apps.

    Still customers see many of their legacy applications remaining in a Traditional environment either due to complexity or lack of skilled resources to modify the application.

    The public cloud takes the economic benefits of a Private Cloud, but at an even greater scale via economies of scale (e.g. a public cloud vendor may buy 100,000 servers for global datacenters, which further brings down pricing of compute, network and storage). Other key value props include rapid development to platform as a service offers such as SQL Database service where both the infrastructure and the platform are fully managed so you can simply develop applications quickly.
  • Les lectures sont réalisées par le serveur primaire
    Les écritures sont dupliquées sur un quorum de serveurs secondaires
    Slide Objectives:
    Understand the key differentiators of SQL Azure
    Understand where a user has control and where the cloud runs things

    Speaking Points:
    SQL Azure provides highly available SQL Server.
    Appears to be a SQL Server to the client.
    In reality is 3 transitionally consistent copies of the database that are fronted by a Gateway that appears to be a SQL server
    Simple to provision- create a logical server in the Portal, execute a create DB Command to create a new database
    Can add and remove DBs easily from application to scale up and down
    Customers look after logical optimizations like indexes
    SQL Azure manages the physical database
    No need to install or patch software or other physical administration
    Automatic high availability and fault tolerance
    Simple provisioning and deployment of multiple databases
    Scale databases up or down based on business needs
    Integration with SQL Server and tooling including Visual Studio
    Support for T-SQL based familiar relational database model

    Now let’s take a closer look at some of the key capabilities of SQL Database. One of the unique features of Windows Azure SQL Database is its built-in high availability backed by a 99.9% database uptime SLA. Built-in means you don’t have to code this into your application. It just works.
    It works by having one primary node with a single logical database and two online replicas. Writes to the database are synchronously replicated to online secondaries. This means your data is constantly replicated across multiple physical replicas. The result is no database downtime, even as Windows Azure systems are patched and upgraded.

    BetOnSoft develops and manages over 100 online casino games played everyday by thousands of players worldwide. With their core gaming systems on-premises, BetOnSoft needed a way to scale parts of their business to the cloud. Their error monitoring and reporting application collects statistics on the quality of connections to the company’s games and sends alerts. For this, they required the system to be online and available at all times and found it made more sense to have this application reside outside their datacenters.

  • Throttling in windows azure:
    Azure is a multi-tenant environment
    Our services reside on same machines as others
    Resources might become unavailable
    Services which throttle
    Sql Database (notre cas du jour)
    Windows Azure Storage
    Service Bus
    Throttling in Sql Database
    Throttle the busiest DBs first (soft throttle)
    Throttle every DB if necessary (hard throttle) (not predictible)
    Throttling shown as specific connection error (e.g.: 40501) « the service is currently busy. Retry the request after 10 secondes. Code %d. » (allows to know the type of throttling (CPU, DataReadIODelay, Database Size…)
  • Throttling in windows azure:
    Azure is a multi-tenant environment
    Our services reside on same machines as others
    Resources might become unavailable
    Services which throttle
    Sql Database (notre cas du jour)
    Windows Azure Storage
    Service Bus
    Throttling in Sql Database
    Throttle the busiest DBs first (soft throttle)
    Throttle every DB if necessary (hard throttle) (not predictible)
    Throttling shown as specific connection error (e.g.: 40501) « the service is currently busy. Retry the request after 10 secondes. Code %d. » (allows to know the type of throttling (CPU, DataReadIODelay, Database Size…)
  • Ajout d’une colonne TenantId pour faire la distinction
  • Chaque schéma est un tenant
  • Chaque base de données est un tenant
  • Support des images SQL Server images dans Azure
    Permet un provisionning en mode IaaS de SQL Server
    La configuration de SQL Server devient une part intégrante du mécanisme de provisionning
    Beaucoup plus rapide qu’une installation complète
    Supprime les limitations actuelles
    Fonctionnalité longtemps demandée par nos clients
    Microsoft does not support using Sysprep with SQL Server 2008 Express and several other products : you can use Sysprep to clone the Windows Operating system as long as you verify that no non-supported roles are enabled prior to cloning.
    For Server 2008R2 only certain roles of the operating system support using Sysprep.
    MSDN article explaining how to install SQL on a Sysprep'd image
  • Le changement des dimensions de la machine virtuelle entraîne le renouvellement de son deploiement et dans le cas d’un serveur SQL standalone, une interruption de service.
    Il est très probable que la machine nouvellement provisionnée prenne alors une nouvelle adresse IP.
    Si la ou les bases de données sont localisées sur un disque attaché, ce disque sera lié à la nouvelle instance et les bases de données seront donc remontées sans difficulté sur la nouvelle instance de machine virtuelle.
  • 1 compte de stockage par disque
    Utilisez la compression de page pour vos données. Cela est conforme à la spécification Fast Track pour les entrepôts de données pouvant atteindre 400 Go.
    Utilisez un seul fichier par groupe de fichiers pour empêcher l'agrégation par bandes à plusieurs niveaux qui peut avoir des effets négatifs sur le débit.
    Utilisez des pools de stockage Windows Server pour exposer plusieurs disques de données à SQL Server comme seul point de montage c:\Mount\Data. Pour utiliser le point de montage, stockez les bases de données sous c:\Mount\Data qui est également l'emplacement par défaut de vos objets de base de données.
    Pour la majorité des bases de données d'une taille inférieure à 1 To, utilisez un groupe de fichiers et enregistrez-le sous c:\Mount\Data. Il s'agit de l'emplacement du fichier par défaut. Pour utiliser un autre emplacement, vous devez attacher un autre disque ou créer un fichier sur le lecteur c: ou d:.
    Pour bénéficier d'avantages supplémentaires, explorez à l'aide de plusieurs groupes de fichiers :
    Chargez les données plus rapidement en chargeant plusieurs tables ou partitions en même temps. Le fait de placer ces tables dans des groupes de fichiers distincts empêche la fragmentation pendant les charges parallèles. Utilisez la technique de fenêtre glissante pour archiver des partitions de données. Enregistrez les données mises en lots séparément des données de production. Enregistrez les données qui évoluent rapidement et celles qui évoluent lentement dans différents emplacements.
  • Bonnes pratiques de configuration de SQL serveur, sur du materiel pré testé, pré configuré et optimisé pour SQL server
    Fast Rack
    The script is specifically designed for quickly spinning up a starting infrastructure for *Data Warehousing* workloads in Windows
    # Use locally saved publish settings file to deploy a VM of size A6 running SQL server 2012 DW optimized image, at affinity group named DwAffinityGroup1, using storage account StorageAccount1, VM name is A6-SQL2012-01, service name A6-SQL2012 

    The Power Shell script is really nice, since it will take care of (almost) everything:
    Import Windows Azure module (needed to use Windows Azure PowerShell cmdlet)
    Import Azure publish settings (user account info etc.)
    Create Azure Affinity Group
    Create Azure storage account with geo-replication check
    Set Azure Subscription
    Get the latest (and correct SQL image)
    Create New Azure VM with additional empty Azure disks (and caching disabled)
    Since the script will not do it automatically, if you use Power Shell instead of the Azure Portal, remember to:
    Create an endpoint for incoming SQL traffic;
    Create an Azure Virtual Network and join the VM to it, if required;
    Create an Azure Availability Set and join the VM to it, if required for multi-VM high availability;

    This script allows a user to create a Data Warehousing optimized VM on Azure running SQL Server 2012 or SQL Server 2014, script will also attach empty disks to the VM to be used for Sql server data and log files.
    Attached disks are 1023GB each, size is not configurable, Azure subscriber will only get billed for used capacity.
    New-AzureSqlDwIaasVM.ps1 implements the following:
    Import Windows Azure module (Needed to use Windows Azure PowerShell cmdlets)
    Import Azure publish settings (User account info etc.)
    Create Azure affinity group
    Create Azure storage account
    Set Azure subscription
    Create New Azure VM with additional empty Azure disks
    For more details on SQL Server DW IaaS (also known as SQL Server Data Warehouse in Windows Azure Virtual Machines), please check:
    For more information about this script, please check

  • Avec AlwaysOn, il est donc possible de déployer un ou plusieurs base(s) de données secondaire(s), ce qui non seulement améliore la disponibilité des serveurs SQL, mais optimise leur usage en permettant de les décharger des tâches de reporting BI et de sauvegardes.

    Cette nouveauté requiert le déploiement d'un correctif de Windows Server 2012, qu’il faut installer à l'intérieur de chaque VM Azure hébergeant un réplica de groupe de disponibilité dans le Cluster. Ce hotfix modifie le fichier CLUSRES.DLL et peut être téléchargé depuis l'adresse suivante :
    Grâce à ce correctif, le Cluster de serveurs Windows modifié la logique de la ressource « adresse IP », afin de répondre aux sondes personnalisées (custom probes) du Load Balancer Azure puis de rediriger le trafic entrant uniquement vers la VM correspondant au nœud actif hébergeant le réplica primaire du groupe de disponibilité de la base de données.

    SQL Server AlwaysOn within Windows Azure Virtual Machines to achieve high availability and global business continuity.  As part of this support you can now deploy one or more readable database secondaries – which not only improves availability of your SQL Servers but also improves efficiency by allowing you to offload BI reporting tasks and backups to the secondary machines.
    Today’s Windows Azure release includes changes to better support SQL Server AlwaysOn functionality with our Windows Azure Network Load Balancers.  With today’s update you can now connect to your SQL Server deployment with a single client connection string using the Availability Group Listener endpoint.  This will automatically route database connections to the primary replica node – and our network load balancer will automatically update to route requests to a secondary replica node in the event of an automatic or manual failover scenario:
    This new SQL Server Availability Group Listener support enables you to easily deploy SQL Databases in Windows Azure Virtual Machines in a high-availability configuration, and take full advantage of the full SQL Server feature-set.  It can also be used to ensure no downtime during upgrade operations or when patching the virtual machines.
    High Availability and Disaster Recovery for SQL Server in Windows Azure Virtual Machines

    Mirroring : 2 scénarios
    SQL Standard rend possible le mirroring mais uniquement en mode synchrone (« Safety Full Only » pour la standard) : l’opération de redo n'est faite que sur un seul thread
    SQL Entreprise
    Dans les 2 cas, il est possible d’utiliser SQL Express en witness :
  • Guss sql IaaS PaaS 20131202

    1. 1. #JSS2013 Les journées SQL Server 2013 Un événement organisé par GUSS
    2. 2. #JSS2013 Les journées SQL Server 2013 Cloud OS Data Platform : Azure & SQL Julien PLEE Stéphane GOUDEAU Un événement organisé par GUSS
    3. 3. #JSS2013 Merci à nos sponsors
    4. 4. SQL : Quelles options aujourd’hui ? A demeure ou dans le Cloud? IaaS ou PaaS ? WA SQL Database Premium - PaaS #JSS2013 WA SQL Database - PaaS Délégation du contrôle Ressources partagées Coût moins élevé Ressources dédiées Coût plus élevé • Contrôle total du matériel • Gestion de votre solution de PRA Contrôle direct • 100% Compatible • Rapidité de mise en service SQL Server dans WA VM - IaaS Machine virtuelle SQL Server Machine physique • Service de base de données • Peu d’administration technique Base de données virtualisée • Service de base de données • Peu d’administration technique Capacité réservée de ressources Prévisibilité des performances
    5. 5. #JSS2013 Azure SQL Database SQL PAAS
    6. 6. #JSS2013 Azure Sql Database Contexte TalentSoft Azure SQL Database Azure Throttling ScaleUp Sql Db Premium ScaleOut avec Azure Federation
    7. 7. #JSS2013 Le contexte TalentSoft: HelloTalent
    8. 8. #JSS2013 Les raisons du choix Azure Sql Database • Un service de base de données présent sur l’ensemble des régions sur lesquelles sont implantés les DC Azure • Haute disponibilité automatique et redondance – Les données SQL sont automatiquement répliquées 3 fois avec conservation de l’intégrité transactionnelle • Outils et technologies de développement connus maîtrisés Une seule base de données logique Plusieurs réplicas physiques Primaire unique Plusieurs cibles secondaires Réplica 3 Réplica 2 Réplica 1
    9. 9. #JSS2013 Support des outils utilisés à demeure…
    10. 10. #JSS2013 Azure Throttling et Transient Fault Handling • Throttling – Soft Throttling / Hard Throttling • Services avec Throttling dans Azure – Windows Azure Database, Caching Service, Service Bus, Storage • Gérer le Sql Database Throttling • Throttling: (e.g.: 40501) « the service is currently busy. Retry the request after 10 secondes. Code %d. » (allows to know the type of throttling (CPU, DataReadIODelay, Database Size…)
    11. 11. #JSS2013 Transient Fault Handling AZURE THROTTLING
    12. 12. Azure Sql Database Premium • Le service SQL Database propose un modèle de base de données Premium qui permet le choix de différentes configurations fondé sur le niveau d'isolement souhaité pour un client. • Ces paramètres permettent de ne payer que la capacité réservée et #JSS2013 d’adapter cette capacité à la charge anticipée sur le serveur Reservation Size CPU Cores Worker Threads Active Sessions Disk IO (IOPS) Memory (GB) P1 1 200 2000 150 8 P2 2 400 4000 300 16
    13. 13. #JSS2013 Multi-Tenant Data Architecture Schéma & Base partagés TenantId StatusId Date 411 7 2013-12-02 56 5 2013-12-02 56 4 2013-12-02 TenantId LastName FirstName 411 Plée Julien 203 Goudeau Stéphane
    14. 14. #JSS2013 Multi-Tenant Data Architecture Base partagée, Schéma séparé Database Tenant 56 Tenant 203
    15. 15. #JSS2013 Multi-Tenant Data Architecture Bases séparées Tenant 56 Tenant 203
    16. 16. #JSS2013 Azure Multi-Tenancy avec Sharding SQL Azure Gateway HelloTalent Application Instances SQL Azure Gateway TenantFederation on Tid Root Db Federation 1 Federation X Federation 2 Tid 0 - 100 Tid 101 - 200 Tid XXX - Max
    17. 17. #JSS2013 Mutli-tenancy with AZURE FEDERATION
    18. 18. #JSS2013 SQL Server hébergé sur une machine virtuelle Azure SQL SERVER IAAS
    19. 19. #JSS2013 SQL Server dans Windows Azure Services d’infrastructure Azure Provisionning SQL Server dans Azure Scalabilité Performances Haute Disponibilité
    20. 20. #JSS2013 Services d’infrastructure Azure • Des services de stockage • Des services de réseaux virtuels – Avec en option la possibilité d’établir des liens VPN • Des machines virtuelles persistantes dans le Cloud – Des Images fournies avec la plateforme Azure – Des Images personnalisées – Choix de dimensionnement : jusqu’à 8 coeurs et 56GB de RAM et 16 Data Disks (max 1TB, soit 16 TBs max) • Hébergement sur du matériel de « commodité »
    21. 21. #JSS2013 SQL Server dans une VM Windows Azure • Versions supportées : – SQL Server 2012, 2008 R2, 2008 – Toutes les fonctionnalités supportées à l’exception du failover clustering • Stockage : – 2 possibilités avec SQL 2014 • Disques associés à des objets blob de stockage • Fichiers de base de données SQL Server pointant directement sur des objets blob de stockage : SQL XI (XStore Integration) – Options de stockage fondées sur la taille de la VM • Facturation à l’usage ou mobilité de licence via la Software Assurance
    22. 22. #JSS2013 Création à partir de la galerie d’images • Beaucoup plus rapide qu’une installation complète • Multiples éditions SQL Server : – Enterprise Edition – Standard Edition – Web Edition • Facturation à l’usage • Services de BI installés par défaut – SQL Server Analysis Services – SQL Server Reporting Services • Stockage : – Disque C : 127GB – Média d’installation de SQL Server sur le disque C:
    23. 23. Création d’images personnalisées • Machines virtuelles construites à demeure (ou obtenue à #JSS2013 partir de machines physiques – P2V) – Sysprep si l’on souhaite créer plusieurs VM à partir d’une image • – Sysprep non requis pour une instance unique • Machines virtuelles construites dans le Cloud – A partir de la galerie d’images – Installation en se basant sur une image OS • Mobilité des licences
    24. 24. Dimensionnement des VMs IaaS SQL Server #JSS2013 Size CPU cores Memory Disk sizes – virtual machine Max. data disks (1 TB each) Max. IOPS (500 per disk) Bandwidth ExtraSmall Shared 768 MB OS = 127 GB Temporary = 20 GB 1 1x500 5 (Mb/s) Small 1 1.75 GB OS = 127 GB Temp = 70 GB 2 2x500 100 (Mb/s) Medium 2 3.5 GB OS = 127 GB Temp = 135 GB 4 4x500 200 (Mb/s) Large 4 7 GB OS = 127 GB Temporary = 285 GB 8 8x500 400 (Mb/s) ExtraLarge 8 14 GB OS = 127 GB Temporary = 605 GB 16 16x500 800 (Mb/s) A5 2 14 GB OS = 127 GB Temporary = 135 GB 4 4X500 400 A6 4 28 GB OS = 127 GB Temporary = 285 GB 8 8x500 800 A7 8 56 GB OS = 127 GB Temporary = 605 GB 16 16x500
    25. 25. #JSS2013 Scale-up, Scale-down Serveur SQL IaaS • « Scale-up » ou « scale-down » en modifiant directement la taille de la machine virtuelle hébergeant le serveur SQL : – Soit depuis le portail Azure – Soit avec la Cmdlet Set-AzureVMSize + Update- AzureVM. – library/windowsazure/jj152814.aspx • Renouvellement du déploiement (et de l’adresse IP) et dans le cas d’un serveur SQL standalone, interruption de service. • Impact positif de l’intégration du XStore
    26. 26. #JSS2013 Performances de SQL Server dans une VM Azure • Localisation des fichiers • Utilisation de disques de données : – 1 disque Data par base – Distribution des fichiers de données en filegroups • Disque d’installation des binaires SQL • Cache Settings • Warmup Effects : les prendre en compte si tests de charge… • Compression de données • Impact positif de l’intégration du XStore • Performance Guidance for SQL Server in Windows Azure Virtual Machines ▪ FEF9550EFD44/Performance%20Guidance%20for%20SQL%20Server%20in%20Windows% 20Azure%20Virtual%20Machines.docx
    27. 27. #JSS2013 SQL Server Data Warehousing dans Azure • Images de la galerie – – Avec finalisation (manuelle) du setup – • Script de déploiement automatisé – .New-AzureSqlDwIaasVM.ps1 -PublishSettingsFile C:stephgou.publishsettings -InstanceSize A6 ---- SqlVersion SQL2014 -AzureAffinityGroup DwAffinityGrp1 -StorageAccountName StorageAccount1 --- VMName A6-SQL2014 -ServiceName A6-SQL2014 -AdminAccount sa -AdminPassword xxx ---------- Location " West Europe" • Deep-dive on New Azure FastTrack VM image – aspx
    28. 28. #JSS2013 SQL Server Data Warehousing dans Azure • Post-configuration (SQL Server inclus) dans la VM via un le Task Scheduler et un script PowerShell • Power Shell configuration script: – C:WindowsSystem32WindowsPowerShellv1.0powershell.exe - ExecutionPolicy Bypass -File "C:Program FilesMicrosoft SQL ServerDwIaasConfigDwIaaSVM.ps1" • SQL Server Setup command line (default instance installation): – C:Program FilesMicrosoft SQL Server110Setup BootstrapSQLServer2012setup.exe /ACTION=CONFIGUREIMAGE /IACCEPTSQLSERVERLICENSETERMS /INSTANCENAME="MSSQLSERVER" /Q
    29. 29. #JSS2013 Configuration SQL Server optimisée pour le Data Warehousing dans Azure OPTIMISATION SQL IAAS
    30. 30. #JSS2013 Haute disponibilité de SQL Server dans Azure • LogShipping, Mirroring, AlwaysOn • AlwaysOn requiert SQL Entreprise – Repose sur un cluster WSFC (Windows Server Failover Clustering) – 8 secondaires (SQL 2014) : • 2 Synchrones, 6 Asynchrones – Secondaires actifs pour : • Backup, reporting…. – Niveau de protection : • Base ou groupe de bases – Notion de « Listener » : • Redirection automatique High Availability and Disaster Recovery for SQL Server in Windows Azure Virtual Machines
    31. 31. #JSS2013 Automatisation d’une configuration AlwaysOn • Deploy a SQL Server AlwaysOn Availability Group in Windows Azure – SQL-Server-794bc810 • Create WSFC Cluster for AlwaysOn Availability Groups in Windows Azure VM – WSFC-Cluster-for-7c207d3a • Create Availability Group Listener in Windows Azure VMs (Cloud-Only) – Availability-Group-fff94cd5 • SharePoint 2013 Automated Deployment Master Scripts –
    32. 32. #JSS2013 Automatisation du déploiement d’une configuration AlwaysOn HAUTE DISPONIBILITÉ SQL IAAS
    33. 33. #JSS2013 Quelle solution choisir ? Sur quels critères SQL SERVER IAAS VS AZURE SQL DATABASE
    34. 34. #JSS2013 SQL Server IaaS vs Azure SQL Database • Critères à prendre en compte : – Taille de la base, scalabilité, performance, coût, disponibilité, gestion opérationnelle • Windows Azure SQL Database : – Optimisé pour réduire les coûts. – Mise à disposition simple et rapide d’une infrastructure hautement disponible. • SQL Server IaaS : – La solution à privilégier pour la reprise de l’existant et pour les applications hybrides. – Un contrôle total d’une instance dédiée SQL Server. – in-windows-azure-virtual-machine-vs-sql-database.aspx
    35. 35. ##JJSSSS22001133