SlideShare a Scribd company logo
1 of 41
Download to read offline
#37 PARMA 2023
SQL Server PaaS
Gianluca Hotz
• Gianluca Hotz | @glhotz | ghotz@ugiss.org
• Independent Consultant
• 25+ years on SQL Server (from 4.21 back in 1996)
• Database modeling & development, sizing & administration,
modernization (upgrades & migrations), performance tuning,
security
• Community
• 25 years Microsoft MVP SQL Server/Data Platform (since 1998)
• VMware Experts SQL Server
• Founder and president UGISS (ex «PASS Chapter»)
Who am I?
Sponsor & Org
«On-premises, IaaS & PaaS»
Virtual Machine in Azure
• Ambienti Windows/Linux, agnostico rispetto a
«engine» che si possono installare
• Marketplace con immagini per i più diffusi
(anche non relazionali)
• Azure Dedicated Host
Diversi servizi per «Container»
• Azure Kubernetes Service (AKS)
• Azure Red Hat OpenShift
• Azure Container Instances
Altri scenari
• Azure Vmware Solution
«Azure & AWS IaaS»
Istanze EC2 in AWS
• Ambienti Windows/Linux, agnostico rispetto a
«engine» che si possono installare
• Marketplace con immagini per i più diffusi
(anche non relazionali)
• Amazon EC2 Dedicated Hosts
Diversi servizi per «Container»
• Amazon Elastic Kubernetes Service (EKS)
• Amazon Elastic Container Service (ECS)
• Red Hat OpenShift Service on AWS
Altri scenari
• VMware Cloud on AWS for SQL Server
SQL
Server
engine
• Azure SQL Database
• Traditional/Hyperscale
• Managed Instance
• Azure Synapse Analytics
• Azure SQL Edge
OSS
Engines
• Azure Database for PostgreSQL
• Azure Database for MySQL
• Azure Database for MariaDB
«PaaS Relational Data Services»
SQL
Server
engine
• Amazon RDS for SQL Server
• Amazon RDS Custom
for SQL Server
OSS
Engines
• Amazon RDS for PostgreSQL
• Amazon RDS for MySQL
• Amazon RDS for MariaDB
Other
Engines
• Amazon RDS for Oracle
• Amazon RDS Custom for Oracle
• Amazon Redshift
Microsoft Azure Amazon AWS
Deployment Azure SQL Database
Elastic Pool
Single
Azure SQL Database
Modello a singolo database con
prestazioni carico di lavoro prevedibili
Modello molteplici database con risorse
condivise, ottimizzato per maggiore
efficienza applicazioni multi-tenant
Best for
applicazioni che richiedono risorse
garantite a livello di database
Best for
Applicazioni in modalità SaaS con
molteplici database che possono
condividere risorse
Best for
modernizzazione su larga
scala con minori sforzi e attriti
Managed Instance
Modello a istanza con elevata compatibilità con
SQL Server IaaS mantenendo i vantaggi di un PaaS
SQL
Service
Tiers
Modelli di acquisto
https://learn.microsoft.com/en-us/azure/azure-sql/database/service-tiers-sql-database-vcore
https://learn.microsoft.com/en-us/azure/azure-sql/database/service-tiers-dtu
Livelli di servizio («Service Tiers»)
Modello
DTU
Standard
Premium
Modello
vCore General Purpose
Provisioned
Serverless
Business Critical Provisioned
Hyperscale
Provisioned
Serverless
(Preview)
https://learn.microsoft.com/en-us/azure/azure-sql/database/sql-database-paas-overview?view=azuresql#service-tiers
Risorse preallocate e scalabilità
S0 S1 S2 S3
Risorse preallocate e scalabilità
S1 S2 S3
S0
• Modifica Livello di servizio
• «Service Tier/Performance Level»
• «Hyperscale» e «Serverless» casi speciali
• Operazione «Online»
• Copia o «attach/detach»
• Database sempre disponibile, interruzione durante «switch»
• Durata dipende dalla dimensione del database
• Attenzione a caratteristiche usate
• Es. dimensione inferiore a massimo spazio disponibile
• Es. fatturazione spazio eccedente quello incluso nel tier
«Scale up» e «Scale down»
https://docs.microsoft.com/en-us/azure/sql-database/sql-database-single-database-scale
• Pool di risorse condivise da più database
• «Auto-Scale» database entro range definiti
• Database aggiunti/rimossi a caldo
«Elastic Database Pools»
«Elastic Database Pools»
https://docs.microsoft.com/en-us/azure/sql-database/sql-database-elastic-pool
Max
Min
• Preallocazione
• efficace con pattern prevedibili
• Inefficienze
• Sovrallocazione in periodi di
utilizzo minore
• Sottoallocazione per ridurre
costi
• Tempo speso a gestirla
Inefficienza preallocazione CPU
• Min/Max vCore in base a SLO
• Es. 0,5-4; 0,75-6; 1-8; 10-80
• Fatturazione al secondo
• «Autopause Delay»
• Costo zero (solo CPU & RAM)
• Al momento solo
• General Purpose (vCore)
• «Hyperscale» in preview
• Gen 5 Hardware
«Serverless»
https://docs.microsoft.com/en-us/azure/sql-database/sql-database-serverless
Database in pausa
• «Autopausing»
• Numero di sessioni = 0, CPU = 0 per carico di lavoro del pool
• Minimo 1 ora, massimo 7 giorni, incrementi da 10 minuti
• Può essere disabilitato
• «Autoresuming»
• In generale a fronte di un login (ma anche altre operazioni)
• Connessione riceve errore, logica di «retry» obbligatoria..
• Latenza: generalmente 1 minuto
Dettagli sulle prestazioni…
• Reattività ridimensionamento
• Raramente risorse non disponibili... necessario «load balacing»
• fino a qualche minuto con chiusura connessioni
• Gestione della memoria
• Cache reclamata più frequentemente, può impattare
• Mai sotto dimensione specifica per numero minimo vCores
Architettura «Hyperscale»
https://learn.microsoft.com/en-us/azure/azure-sql/database/service-tier-hyperscale?view=azuresql#compare-resource-limits
• Opzione di Deployment di SQL Database
• Rappresenta ed espone l’intera istanza di SQL Server
• Molto differente «Azure SQL Database Logical Server»
• Maggiore copertura funzionalità «On-Premise»
• Es. SQL Server Agent, Backup/Restore, CDC, CLR, Broker ecc.
• https://docs.microsoft.com/en-us/azure/azure-sql/database/features-comparison
• Mantiene tutti i vantaggi di un «PaaS»
• Completamente gestita
• «Scale up/down» semplice e «rapido»
• HA/DR inclusi
SQL Database Managed Instance
• Più MI in 1 Virtual Machine
• Possibili istanze con 2 vCore
• «Public Preview»
Managed Instance Instance Pools
• Backup automatici (frequenza e tipo)
• FULL ogni settimana, DIFF ogni 12-24 ore, LOG ogni ~ 10 minuti
• «Retention» 7-35 giorni (default 7)
• «Long-Term Retention» 10 anni ma solo FULL (RPO 1 settimana)
• Ridondanza «Storage Backup»
• LRS, ZRS, GRS, GZRS
• Ripristino «Point in Time»
• Database esistente o cancellato stessa regione (10 minuti RPO)
• «Geo-restore» in altra regione (RPO fino a 1 ora, no PIT)
Azure SQL Database Backups
Ridondanza Backupset «LRS/ZRS»
Locally Redundant Storage Zone-redundant storage
Ridondanza Backupset «GRS/GZRS»
Geo-redundant storage Geo-zone-redundant storage
• Livelli di servizio
• Basic, Standard, General Purpose
• Disaccoppiamento
• Nodi «compute»
• Gestiti da Azure Service Fabric
• Sempre disponibili di scorta
• «Azure Storage» LRS
• Disponibilità/ridondanza «built-in»
• Potenziale degrado prestazioni
• Tempo di transizione
• Cache fredda
HA «Standard»
• Livelli di servizio
• General Purpose
• Simile a modello «Standard»
• Nodi «compute» in più AZ
• «Azure Storage» ZRS
HA «Standard Zone-Redundant»
• Livelli di servizio
• Premium, Business Critical
• Replica «Availability Groups»
• 1 replica primaria
• Fino a 3 repliche secondarie
• 1 in «Read Scale-Out»
HA «Premium»
• Livelli di servizio
• Premium, Business Critical
• Simile a modello «Premium»
• Repliche in più AZ
• Limiti
• Maggiore latenza per OLTP
• No Si «Managed Instance»
• Gen5 HW con Business Critical
HA «Premium Zone-Redundant»
• DR «Cross-Region»
• Basato su «AlwaysOn AG»
• Asincrono
• Failover manuale
• Pianificato o forzato
• Endpoint cambia!
• Fino a 4 repliche secondarie
• Repliche in sola lettura
• Managed Instance
• Non supportate
DR «Active geo-replication»
• DR «Cross-Region»
• Basato su «AlwaysOn AG»
• Asincrono ma…
• Failover automatico
• Endpoint non cambia!
• Possibile perdita di dati!
• Managed Instance supportate
DR «Auto-Failover Groups»
• Ambiente PaaS completamente gestito
• Licenza SQL Server inclusa nel prezzo
• Backup automatici (point-in-time snapshot)
• «Storage Encryption»
• «Enhanced Monitoring»
• Auto-aggiornamento versioni minori
• Finestra di manutenzione (non solo per auto-aggiornamento)
• Supporto «Multi-AZ»
• Database Mirroring o AlwaysOn Availability Groups in base a build/edizione
• «Read Replica» (solo Edizione Enterprise, usa AlwaysOn AG)
Amazon RDS for SQL Server
• Licenza inclusa
• Versioni
• 2014-2019
• Solo alcune «minor build» supportate
• Edizioni
• SQL Server Express Edition
• SQL Server Web Edition
• SQL Server Standard Edition
• SQL Server Enterprise Edition
• Developer Edition? Va scaricata e installata su istanza EC2
Licensing
• Intera istanza tramite Snapshot a livello di storage
• Automatici o manuali (manuali max 100 per regione)
• Retention 0 – 35 giorni, default 7 (da console, 1 da API/CLI)
• Possibilità di replicare copie in altre regioni
• Ripristino
• Ripristino creando una nuova istanza
• Ripristino a qualunque punto del periodo di retention
• Possibile scostamento fino a 1 secondo tra diversi database…
• Transazione cross-database potrebbero essere inconsistenti!!
• Billing
• Solo spazio che eccede la quantità di storage allocato per istanza
• Es. 100 GiB allocati, 50 GiB snapshot manuali, 75 GiB automatici, 25 pagati
Backup Snapshot
• Opzione che deve essere attivata
• Backupset in storage S3 (stessa regione dell’istanza)
• Backup solo FULL e DIFFerenziale
• Attenzione a Snapshot che cambiano base differenziale
• Restore anche dei LOG (es. migrazione)
• Non pensato per sostituire Snapshot (e DR cross-region)
Backup Nativi SQL Server
• Copia sincrona in altra AZ per alta disponibilità
• Scelta automatica in base a build/edizione
• Always On Availability Groups
• Versioni 2016 SP2 CU3+, 2017 CU13+ edizione Enterprise
• Versione 2019+ edizioni Standard/Enterprise
• Database Mirroring (DBM)
• Versioni 2012-2017 edizioni Standard/Enterprise
• Diversa AZ ma nella stessa «Region»
• Login e permessi replicati automaticamente (ma non job e altro)
• Solo una copia di standby
Multi-AZ Deployment
• Fino a 5 repliche secondarie asincrone in sola lettura
• SQL Server 2016 SP2 CU3+ solo Enterprise Edition
• Replica primaria Multi-AZ con Always On Availability Group
Multi-AZ Read-Replica
• SQL Server Analysis Services (solo Tabular)
• SQL Server Integration Services
• SQL Server Reporting Services
• Microsoft Distributed Transaction Coordinator
Altre componenti «managed»
• Servizio gestito RDS con
• accesso all’istanza EC2
sottostante
• configurazione personalizzabile
• con alcuni limiti
• Decision Matrix
• Tra EC2, RDS e RDS Custom
Amazon RDS Custom for SQL Server
Azure Database Fleet Manager
https://techcommunity.microsoft.com/t5/azure-sql-blog/introducing-azure-database-fleet-manager/ba-p/3979576
Fleet Manager Demo
https://techcommunity.microsoft.com/t5/azure-sql-blog/introducing-azure-database-fleet-manager/ba-p/3979576
#37 PARMA 2023
Grazie!!!

More Related Content

Similar to Microsoft SQL Server PaaS (Platform as a Service)

SQL Server Failover Cluster Instances con Azure Managed Disks
SQL Server Failover Cluster Instances con Azure Managed DisksSQL Server Failover Cluster Instances con Azure Managed Disks
SQL Server Failover Cluster Instances con Azure Managed DisksGianluca Hotz
 
Azure Day Rome Reloaded 2019 - Python, Azure Cosmos DB, Docker and Azure Cont...
Azure Day Rome Reloaded 2019 - Python, Azure Cosmos DB, Docker and Azure Cont...Azure Day Rome Reloaded 2019 - Python, Azure Cosmos DB, Docker and Azure Cont...
Azure Day Rome Reloaded 2019 - Python, Azure Cosmos DB, Docker and Azure Cont...azuredayit
 
SQL Server Failover Cluster Instances con Amazon FSx in AWS
SQL Server Failover Cluster Instances con Amazon FSx in AWSSQL Server Failover Cluster Instances con Amazon FSx in AWS
SQL Server Failover Cluster Instances con Amazon FSx in AWSGianluca Hotz
 
Infinispan codemotion - Codemotion Rome 2015
Infinispan codemotion - Codemotion Rome 2015Infinispan codemotion - Codemotion Rome 2015
Infinispan codemotion - Codemotion Rome 2015Codemotion
 
JBoss Data Grid Tech Lab
JBoss Data Grid Tech LabJBoss Data Grid Tech Lab
JBoss Data Grid Tech LabUgo Landini
 
Novità di SQL Server 2017
Novità di SQL Server 2017Novità di SQL Server 2017
Novità di SQL Server 2017Gianluca Hotz
 
Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...
Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...
Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...Gianluca Hotz
 
Implementare e mantenere un progetto azure sql database v.2
Implementare e mantenere un progetto azure sql database v.2Implementare e mantenere un progetto azure sql database v.2
Implementare e mantenere un progetto azure sql database v.2Emanuele Zanchettin
 
SQL Saturday 871 - Sardegna 2019 - SQL Server DR on Azure
SQL Saturday 871 - Sardegna 2019 - SQL Server DR on AzureSQL Saturday 871 - Sardegna 2019 - SQL Server DR on Azure
SQL Saturday 871 - Sardegna 2019 - SQL Server DR on AzureMarco Obinu
 
SQL Server Data Virtualization with polybase
SQL Server Data Virtualization with polybaseSQL Server Data Virtualization with polybase
SQL Server Data Virtualization with polybaseGianluca Hotz
 
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL DatabaseEmanuele Zanchettin
 
CCI2019 - SQL Server ed Azure: Disaster Recovery per tutti
CCI2019 - SQL Server ed Azure: Disaster Recovery per tuttiCCI2019 - SQL Server ed Azure: Disaster Recovery per tutti
CCI2019 - SQL Server ed Azure: Disaster Recovery per tuttiwalk2talk srl
 
Azure Day Rome 2019 Reloaded - Utilizzare Azure Kubernetes Service per i nost...
Azure Day Rome 2019 Reloaded - Utilizzare Azure Kubernetes Service per i nost...Azure Day Rome 2019 Reloaded - Utilizzare Azure Kubernetes Service per i nost...
Azure Day Rome 2019 Reloaded - Utilizzare Azure Kubernetes Service per i nost...azuredayit
 
Codemotion fuse presentation
Codemotion fuse presentationCodemotion fuse presentation
Codemotion fuse presentationUgo Landini
 
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL DatabaseEmanuele Zanchettin
 
Best Practices on SQL Server
Best Practices on SQL ServerBest Practices on SQL Server
Best Practices on SQL ServerGianluca Hotz
 
Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...
Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...
Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...Meet Magento Italy
 

Similar to Microsoft SQL Server PaaS (Platform as a Service) (20)

SQL Server Failover Cluster Instances con Azure Managed Disks
SQL Server Failover Cluster Instances con Azure Managed DisksSQL Server Failover Cluster Instances con Azure Managed Disks
SQL Server Failover Cluster Instances con Azure Managed Disks
 
SQL Server in AWS
SQL Server in AWSSQL Server in AWS
SQL Server in AWS
 
Azure Day Rome Reloaded 2019 - Python, Azure Cosmos DB, Docker and Azure Cont...
Azure Day Rome Reloaded 2019 - Python, Azure Cosmos DB, Docker and Azure Cont...Azure Day Rome Reloaded 2019 - Python, Azure Cosmos DB, Docker and Azure Cont...
Azure Day Rome Reloaded 2019 - Python, Azure Cosmos DB, Docker and Azure Cont...
 
SQL Server Failover Cluster Instances con Amazon FSx in AWS
SQL Server Failover Cluster Instances con Amazon FSx in AWSSQL Server Failover Cluster Instances con Amazon FSx in AWS
SQL Server Failover Cluster Instances con Amazon FSx in AWS
 
Infinispan codemotion - Codemotion Rome 2015
Infinispan codemotion - Codemotion Rome 2015Infinispan codemotion - Codemotion Rome 2015
Infinispan codemotion - Codemotion Rome 2015
 
JBoss Data Grid Tech Lab
JBoss Data Grid Tech LabJBoss Data Grid Tech Lab
JBoss Data Grid Tech Lab
 
Novità di SQL Server 2017
Novità di SQL Server 2017Novità di SQL Server 2017
Novità di SQL Server 2017
 
Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...
Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...
Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...
 
Implementare e mantenere un progetto azure sql database v.2
Implementare e mantenere un progetto azure sql database v.2Implementare e mantenere un progetto azure sql database v.2
Implementare e mantenere un progetto azure sql database v.2
 
SQL Saturday 871 - Sardegna 2019 - SQL Server DR on Azure
SQL Saturday 871 - Sardegna 2019 - SQL Server DR on AzureSQL Saturday 871 - Sardegna 2019 - SQL Server DR on Azure
SQL Saturday 871 - Sardegna 2019 - SQL Server DR on Azure
 
SQL Server Data Virtualization with polybase
SQL Server Data Virtualization with polybaseSQL Server Data Virtualization with polybase
SQL Server Data Virtualization with polybase
 
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
 
CCI2019 - SQL Server ed Azure: Disaster Recovery per tutti
CCI2019 - SQL Server ed Azure: Disaster Recovery per tuttiCCI2019 - SQL Server ed Azure: Disaster Recovery per tutti
CCI2019 - SQL Server ed Azure: Disaster Recovery per tutti
 
Azure Day Rome 2019 Reloaded - Utilizzare Azure Kubernetes Service per i nost...
Azure Day Rome 2019 Reloaded - Utilizzare Azure Kubernetes Service per i nost...Azure Day Rome 2019 Reloaded - Utilizzare Azure Kubernetes Service per i nost...
Azure Day Rome 2019 Reloaded - Utilizzare Azure Kubernetes Service per i nost...
 
Data grid
Data gridData grid
Data grid
 
Codemotion fuse presentation
Codemotion fuse presentationCodemotion fuse presentation
Codemotion fuse presentation
 
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
 
Best Practices on SQL Server
Best Practices on SQL ServerBest Practices on SQL Server
Best Practices on SQL Server
 
OCP Paas_ultima
OCP Paas_ultimaOCP Paas_ultima
OCP Paas_ultima
 
Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...
Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...
Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...
 

More from Gianluca Hotz

SQL Server 2022 Programmability & Performance
SQL Server 2022 Programmability & PerformanceSQL Server 2022 Programmability & Performance
SQL Server 2022 Programmability & PerformanceGianluca Hotz
 
SQL Server 2022 Intelligent Query Processing
SQL Server 2022 Intelligent Query ProcessingSQL Server 2022 Intelligent Query Processing
SQL Server 2022 Intelligent Query ProcessingGianluca Hotz
 
Le novità di SQL Server 2022
Le novità di SQL Server 2022Le novità di SQL Server 2022
Le novità di SQL Server 2022Gianluca Hotz
 
Data Integrity with SQL Database Ledger
Data Integrity with SQL Database LedgerData Integrity with SQL Database Ledger
Data Integrity with SQL Database LedgerGianluca Hotz
 
Azure SQL Database Ledger
Azure SQL Database LedgerAzure SQL Database Ledger
Azure SQL Database LedgerGianluca Hotz
 
Best Practices for Running Microsoft SQL Server on AWS
Best Practices for Running Microsoft SQL Server on AWSBest Practices for Running Microsoft SQL Server on AWS
Best Practices for Running Microsoft SQL Server on AWSGianluca Hotz
 
Azure SQL Database Ledger
Azure SQL Database LedgerAzure SQL Database Ledger
Azure SQL Database LedgerGianluca Hotz
 
SQL Server Modern Query Processing
SQL Server Modern Query ProcessingSQL Server Modern Query Processing
SQL Server Modern Query ProcessingGianluca Hotz
 
SQL Server Back to Basics: Sicurezza
SQL Server Back to Basics: SicurezzaSQL Server Back to Basics: Sicurezza
SQL Server Back to Basics: SicurezzaGianluca Hotz
 
SQL Server Data Virtualization with Polybase
SQL Server Data Virtualization with PolybaseSQL Server Data Virtualization with Polybase
SQL Server Data Virtualization with PolybaseGianluca Hotz
 
SQL Server Modern Query Processing
SQL Server Modern Query ProcessingSQL Server Modern Query Processing
SQL Server Modern Query ProcessingGianluca Hotz
 
SQL Server Modernization
SQL Server ModernizationSQL Server Modernization
SQL Server ModernizationGianluca Hotz
 
Le novità di sql server 2019
Le novità di sql server 2019Le novità di sql server 2019
Le novità di sql server 2019Gianluca Hotz
 
SQL Server Workload Profiling
SQL Server Workload ProfilingSQL Server Workload Profiling
SQL Server Workload ProfilingGianluca Hotz
 
SQL Server 2019 CTP 2.5
SQL Server 2019 CTP 2.5SQL Server 2019 CTP 2.5
SQL Server 2019 CTP 2.5Gianluca Hotz
 
Azure PaaS databases
Azure PaaS databasesAzure PaaS databases
Azure PaaS databasesGianluca Hotz
 
Mettere in sicurezza ambienti sql server
Mettere in sicurezza ambienti sql serverMettere in sicurezza ambienti sql server
Mettere in sicurezza ambienti sql serverGianluca Hotz
 
SQL Server 2019 CTP2.4
SQL Server 2019 CTP2.4SQL Server 2019 CTP2.4
SQL Server 2019 CTP2.4Gianluca Hotz
 
SQL Server 2019 ctp2.2
SQL Server 2019 ctp2.2SQL Server 2019 ctp2.2
SQL Server 2019 ctp2.2Gianluca Hotz
 

More from Gianluca Hotz (19)

SQL Server 2022 Programmability & Performance
SQL Server 2022 Programmability & PerformanceSQL Server 2022 Programmability & Performance
SQL Server 2022 Programmability & Performance
 
SQL Server 2022 Intelligent Query Processing
SQL Server 2022 Intelligent Query ProcessingSQL Server 2022 Intelligent Query Processing
SQL Server 2022 Intelligent Query Processing
 
Le novità di SQL Server 2022
Le novità di SQL Server 2022Le novità di SQL Server 2022
Le novità di SQL Server 2022
 
Data Integrity with SQL Database Ledger
Data Integrity with SQL Database LedgerData Integrity with SQL Database Ledger
Data Integrity with SQL Database Ledger
 
Azure SQL Database Ledger
Azure SQL Database LedgerAzure SQL Database Ledger
Azure SQL Database Ledger
 
Best Practices for Running Microsoft SQL Server on AWS
Best Practices for Running Microsoft SQL Server on AWSBest Practices for Running Microsoft SQL Server on AWS
Best Practices for Running Microsoft SQL Server on AWS
 
Azure SQL Database Ledger
Azure SQL Database LedgerAzure SQL Database Ledger
Azure SQL Database Ledger
 
SQL Server Modern Query Processing
SQL Server Modern Query ProcessingSQL Server Modern Query Processing
SQL Server Modern Query Processing
 
SQL Server Back to Basics: Sicurezza
SQL Server Back to Basics: SicurezzaSQL Server Back to Basics: Sicurezza
SQL Server Back to Basics: Sicurezza
 
SQL Server Data Virtualization with Polybase
SQL Server Data Virtualization with PolybaseSQL Server Data Virtualization with Polybase
SQL Server Data Virtualization with Polybase
 
SQL Server Modern Query Processing
SQL Server Modern Query ProcessingSQL Server Modern Query Processing
SQL Server Modern Query Processing
 
SQL Server Modernization
SQL Server ModernizationSQL Server Modernization
SQL Server Modernization
 
Le novità di sql server 2019
Le novità di sql server 2019Le novità di sql server 2019
Le novità di sql server 2019
 
SQL Server Workload Profiling
SQL Server Workload ProfilingSQL Server Workload Profiling
SQL Server Workload Profiling
 
SQL Server 2019 CTP 2.5
SQL Server 2019 CTP 2.5SQL Server 2019 CTP 2.5
SQL Server 2019 CTP 2.5
 
Azure PaaS databases
Azure PaaS databasesAzure PaaS databases
Azure PaaS databases
 
Mettere in sicurezza ambienti sql server
Mettere in sicurezza ambienti sql serverMettere in sicurezza ambienti sql server
Mettere in sicurezza ambienti sql server
 
SQL Server 2019 CTP2.4
SQL Server 2019 CTP2.4SQL Server 2019 CTP2.4
SQL Server 2019 CTP2.4
 
SQL Server 2019 ctp2.2
SQL Server 2019 ctp2.2SQL Server 2019 ctp2.2
SQL Server 2019 ctp2.2
 

Microsoft SQL Server PaaS (Platform as a Service)

  • 1. #37 PARMA 2023 SQL Server PaaS Gianluca Hotz
  • 2. • Gianluca Hotz | @glhotz | ghotz@ugiss.org • Independent Consultant • 25+ years on SQL Server (from 4.21 back in 1996) • Database modeling & development, sizing & administration, modernization (upgrades & migrations), performance tuning, security • Community • 25 years Microsoft MVP SQL Server/Data Platform (since 1998) • VMware Experts SQL Server • Founder and president UGISS (ex «PASS Chapter») Who am I?
  • 5. Virtual Machine in Azure • Ambienti Windows/Linux, agnostico rispetto a «engine» che si possono installare • Marketplace con immagini per i più diffusi (anche non relazionali) • Azure Dedicated Host Diversi servizi per «Container» • Azure Kubernetes Service (AKS) • Azure Red Hat OpenShift • Azure Container Instances Altri scenari • Azure Vmware Solution «Azure & AWS IaaS» Istanze EC2 in AWS • Ambienti Windows/Linux, agnostico rispetto a «engine» che si possono installare • Marketplace con immagini per i più diffusi (anche non relazionali) • Amazon EC2 Dedicated Hosts Diversi servizi per «Container» • Amazon Elastic Kubernetes Service (EKS) • Amazon Elastic Container Service (ECS) • Red Hat OpenShift Service on AWS Altri scenari • VMware Cloud on AWS for SQL Server
  • 6. SQL Server engine • Azure SQL Database • Traditional/Hyperscale • Managed Instance • Azure Synapse Analytics • Azure SQL Edge OSS Engines • Azure Database for PostgreSQL • Azure Database for MySQL • Azure Database for MariaDB «PaaS Relational Data Services» SQL Server engine • Amazon RDS for SQL Server • Amazon RDS Custom for SQL Server OSS Engines • Amazon RDS for PostgreSQL • Amazon RDS for MySQL • Amazon RDS for MariaDB Other Engines • Amazon RDS for Oracle • Amazon RDS Custom for Oracle • Amazon Redshift Microsoft Azure Amazon AWS
  • 7. Deployment Azure SQL Database Elastic Pool Single Azure SQL Database Modello a singolo database con prestazioni carico di lavoro prevedibili Modello molteplici database con risorse condivise, ottimizzato per maggiore efficienza applicazioni multi-tenant Best for applicazioni che richiedono risorse garantite a livello di database Best for Applicazioni in modalità SaaS con molteplici database che possono condividere risorse Best for modernizzazione su larga scala con minori sforzi e attriti Managed Instance Modello a istanza con elevata compatibilità con SQL Server IaaS mantenendo i vantaggi di un PaaS SQL Service Tiers
  • 9. Livelli di servizio («Service Tiers») Modello DTU Standard Premium Modello vCore General Purpose Provisioned Serverless Business Critical Provisioned Hyperscale Provisioned Serverless (Preview) https://learn.microsoft.com/en-us/azure/azure-sql/database/sql-database-paas-overview?view=azuresql#service-tiers
  • 10. Risorse preallocate e scalabilità S0 S1 S2 S3
  • 11. Risorse preallocate e scalabilità S1 S2 S3 S0
  • 12. • Modifica Livello di servizio • «Service Tier/Performance Level» • «Hyperscale» e «Serverless» casi speciali • Operazione «Online» • Copia o «attach/detach» • Database sempre disponibile, interruzione durante «switch» • Durata dipende dalla dimensione del database • Attenzione a caratteristiche usate • Es. dimensione inferiore a massimo spazio disponibile • Es. fatturazione spazio eccedente quello incluso nel tier «Scale up» e «Scale down» https://docs.microsoft.com/en-us/azure/sql-database/sql-database-single-database-scale
  • 13. • Pool di risorse condivise da più database • «Auto-Scale» database entro range definiti • Database aggiunti/rimossi a caldo «Elastic Database Pools»
  • 15. • Preallocazione • efficace con pattern prevedibili • Inefficienze • Sovrallocazione in periodi di utilizzo minore • Sottoallocazione per ridurre costi • Tempo speso a gestirla Inefficienza preallocazione CPU
  • 16. • Min/Max vCore in base a SLO • Es. 0,5-4; 0,75-6; 1-8; 10-80 • Fatturazione al secondo • «Autopause Delay» • Costo zero (solo CPU & RAM) • Al momento solo • General Purpose (vCore) • «Hyperscale» in preview • Gen 5 Hardware «Serverless» https://docs.microsoft.com/en-us/azure/sql-database/sql-database-serverless
  • 17. Database in pausa • «Autopausing» • Numero di sessioni = 0, CPU = 0 per carico di lavoro del pool • Minimo 1 ora, massimo 7 giorni, incrementi da 10 minuti • Può essere disabilitato • «Autoresuming» • In generale a fronte di un login (ma anche altre operazioni) • Connessione riceve errore, logica di «retry» obbligatoria.. • Latenza: generalmente 1 minuto
  • 18. Dettagli sulle prestazioni… • Reattività ridimensionamento • Raramente risorse non disponibili... necessario «load balacing» • fino a qualche minuto con chiusura connessioni • Gestione della memoria • Cache reclamata più frequentemente, può impattare • Mai sotto dimensione specifica per numero minimo vCores
  • 20. • Opzione di Deployment di SQL Database • Rappresenta ed espone l’intera istanza di SQL Server • Molto differente «Azure SQL Database Logical Server» • Maggiore copertura funzionalità «On-Premise» • Es. SQL Server Agent, Backup/Restore, CDC, CLR, Broker ecc. • https://docs.microsoft.com/en-us/azure/azure-sql/database/features-comparison • Mantiene tutti i vantaggi di un «PaaS» • Completamente gestita • «Scale up/down» semplice e «rapido» • HA/DR inclusi SQL Database Managed Instance
  • 21. • Più MI in 1 Virtual Machine • Possibili istanze con 2 vCore • «Public Preview» Managed Instance Instance Pools
  • 22. • Backup automatici (frequenza e tipo) • FULL ogni settimana, DIFF ogni 12-24 ore, LOG ogni ~ 10 minuti • «Retention» 7-35 giorni (default 7) • «Long-Term Retention» 10 anni ma solo FULL (RPO 1 settimana) • Ridondanza «Storage Backup» • LRS, ZRS, GRS, GZRS • Ripristino «Point in Time» • Database esistente o cancellato stessa regione (10 minuti RPO) • «Geo-restore» in altra regione (RPO fino a 1 ora, no PIT) Azure SQL Database Backups
  • 23. Ridondanza Backupset «LRS/ZRS» Locally Redundant Storage Zone-redundant storage
  • 24. Ridondanza Backupset «GRS/GZRS» Geo-redundant storage Geo-zone-redundant storage
  • 25. • Livelli di servizio • Basic, Standard, General Purpose • Disaccoppiamento • Nodi «compute» • Gestiti da Azure Service Fabric • Sempre disponibili di scorta • «Azure Storage» LRS • Disponibilità/ridondanza «built-in» • Potenziale degrado prestazioni • Tempo di transizione • Cache fredda HA «Standard»
  • 26. • Livelli di servizio • General Purpose • Simile a modello «Standard» • Nodi «compute» in più AZ • «Azure Storage» ZRS HA «Standard Zone-Redundant»
  • 27. • Livelli di servizio • Premium, Business Critical • Replica «Availability Groups» • 1 replica primaria • Fino a 3 repliche secondarie • 1 in «Read Scale-Out» HA «Premium»
  • 28. • Livelli di servizio • Premium, Business Critical • Simile a modello «Premium» • Repliche in più AZ • Limiti • Maggiore latenza per OLTP • No Si «Managed Instance» • Gen5 HW con Business Critical HA «Premium Zone-Redundant»
  • 29. • DR «Cross-Region» • Basato su «AlwaysOn AG» • Asincrono • Failover manuale • Pianificato o forzato • Endpoint cambia! • Fino a 4 repliche secondarie • Repliche in sola lettura • Managed Instance • Non supportate DR «Active geo-replication»
  • 30. • DR «Cross-Region» • Basato su «AlwaysOn AG» • Asincrono ma… • Failover automatico • Endpoint non cambia! • Possibile perdita di dati! • Managed Instance supportate DR «Auto-Failover Groups»
  • 31. • Ambiente PaaS completamente gestito • Licenza SQL Server inclusa nel prezzo • Backup automatici (point-in-time snapshot) • «Storage Encryption» • «Enhanced Monitoring» • Auto-aggiornamento versioni minori • Finestra di manutenzione (non solo per auto-aggiornamento) • Supporto «Multi-AZ» • Database Mirroring o AlwaysOn Availability Groups in base a build/edizione • «Read Replica» (solo Edizione Enterprise, usa AlwaysOn AG) Amazon RDS for SQL Server
  • 32. • Licenza inclusa • Versioni • 2014-2019 • Solo alcune «minor build» supportate • Edizioni • SQL Server Express Edition • SQL Server Web Edition • SQL Server Standard Edition • SQL Server Enterprise Edition • Developer Edition? Va scaricata e installata su istanza EC2 Licensing
  • 33. • Intera istanza tramite Snapshot a livello di storage • Automatici o manuali (manuali max 100 per regione) • Retention 0 – 35 giorni, default 7 (da console, 1 da API/CLI) • Possibilità di replicare copie in altre regioni • Ripristino • Ripristino creando una nuova istanza • Ripristino a qualunque punto del periodo di retention • Possibile scostamento fino a 1 secondo tra diversi database… • Transazione cross-database potrebbero essere inconsistenti!! • Billing • Solo spazio che eccede la quantità di storage allocato per istanza • Es. 100 GiB allocati, 50 GiB snapshot manuali, 75 GiB automatici, 25 pagati Backup Snapshot
  • 34. • Opzione che deve essere attivata • Backupset in storage S3 (stessa regione dell’istanza) • Backup solo FULL e DIFFerenziale • Attenzione a Snapshot che cambiano base differenziale • Restore anche dei LOG (es. migrazione) • Non pensato per sostituire Snapshot (e DR cross-region) Backup Nativi SQL Server
  • 35. • Copia sincrona in altra AZ per alta disponibilità • Scelta automatica in base a build/edizione • Always On Availability Groups • Versioni 2016 SP2 CU3+, 2017 CU13+ edizione Enterprise • Versione 2019+ edizioni Standard/Enterprise • Database Mirroring (DBM) • Versioni 2012-2017 edizioni Standard/Enterprise • Diversa AZ ma nella stessa «Region» • Login e permessi replicati automaticamente (ma non job e altro) • Solo una copia di standby Multi-AZ Deployment
  • 36. • Fino a 5 repliche secondarie asincrone in sola lettura • SQL Server 2016 SP2 CU3+ solo Enterprise Edition • Replica primaria Multi-AZ con Always On Availability Group Multi-AZ Read-Replica
  • 37. • SQL Server Analysis Services (solo Tabular) • SQL Server Integration Services • SQL Server Reporting Services • Microsoft Distributed Transaction Coordinator Altre componenti «managed»
  • 38. • Servizio gestito RDS con • accesso all’istanza EC2 sottostante • configurazione personalizzabile • con alcuni limiti • Decision Matrix • Tra EC2, RDS e RDS Custom Amazon RDS Custom for SQL Server
  • 39. Azure Database Fleet Manager https://techcommunity.microsoft.com/t5/azure-sql-blog/introducing-azure-database-fleet-manager/ba-p/3979576

Editor's Notes

  1. https://learn.microsoft.com/en-us/azure/azure-sql/azure-sql-iaas-vs-paas-what-is-overview?view=azuresql#comparison-table
  2. https://learn.microsoft.com/en-us/azure/azure-sql/azure-sql-iaas-vs-paas-what-is-overview?view=azuresql#comparison-table
  3. 7
  4. https://learn.microsoft.com/en-us/azure/azure-sql/database/sql-database-paas-overview?view=azuresql&source=docs#purchasing-models
  5. https://docs.microsoft.com/en-us/azure/sql-database/sql-database-elastic-pool https://docs.microsoft.com/en-us/azure/sql-database/sql-database-service-tiers-dtu#elastic-pool-edtu-storage-and-pooled-database-limits https://docs.microsoft.com/en-us/azure/sql-database/sql-database-vcore-resource-limits-elastic-pools#elastic-pool-storage-sizes-and-compute-sizes
  6. https://docs.microsoft.com/en-us/azure/sql-database/sql-database-elastic-pool https://docs.microsoft.com/en-us/azure/sql-database/sql-database-service-tiers-dtu#elastic-pool-edtu-storage-and-pooled-database-limits https://docs.microsoft.com/en-us/azure/sql-database/sql-database-vcore-resource-limits-elastic-pools#elastic-pool-storage-sizes-and-compute-sizes
  7. https://docs.microsoft.com/en-us/azure/sql-database/sql-database-serverless#autopausing-and-autoresuming
  8. https://docs.microsoft.com/en-us/azure/sql-database/sql-database-serverless#autopausing-and-autoresuming
  9. https://docs.microsoft.com/en-us/azure/sql-database/sql-database-serverless
  10. https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html
  11. https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html https://aws.amazon.com/about-aws/whats-new/2019/06/rds-storage-auto-scaling https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.StorageTypes.html
  12. https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.StorageTypes.html
  13. https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html#MySQL.Concepts.VersionMgmt https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html#Concepts
  14. https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReplicateBackups.html https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIT.html https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/SQLServer.Procedural.Importing.html
  15. https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.Options.BackupRestore.html https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/SQLServer.Procedural.Importing.html
  16. https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.MultiAZ.html https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_SQLServerMultiAZ.html
  17. https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/SQLServer.ReadReplicas.html https://aws.amazon.com/blogs/database/using-in-region-read-replicas-in-amazon-rds-for-sql-server
  18. https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.FeatureNonSupport