What’s new with Azure SQL Database? Marco Parenzan @marco_parenzan
Sponsors
Organizers
Marco Parenzan | @marco_parenzan Community Lead 1nn0va – Pordenone Microsoft Azure MVP 2016 Microsoft Azure Trainer Curious about Retrogaming and IoT
The building block PaaS evolution
PaaS You decide the size of the resources you always overprovision, you can scale elastic You don’t handle the resources’ infrastructure CPU+Memory+I/O(=tier) Unit of Measure
Where you decide the CPU on these? Function Logic App Storage Media Services Cortana Management Suite Traffic Manager Document DB Machine Learning OMS Management Suit Visual Studio Services CDN Search Active Directory Key Vault App Insights Cognitive Services Embedded Power BI Scheduler IoT Hub Service Bus Notification Hub Stream Analytics Hockey App
Serverless Architectures Serverless architectures refer to applications that significantly depend on third-party services (knows as Backend as a Service or "BaaS") or on custom code that's run in ephemeral containers (Function as a Service or "FaaS"), the best known vendor host of which currently is AWS Lambda. By using these ideas, and by moving much behavior to the front end, such architectures remove the need for the traditional 'always on' server system sitting behind an application. Depending on the circumstances, such systems can significantly reduce operational cost and complexity at a cost of vendor dependencies and (at the moment) immaturity of supporting services. From Martin Fowler [https://martinfowler.com/articles/serverless.html]
Serverless vs. PaaS PaaS Serverless You decide the size of the resources you always overprovision, you can scale elastic You don’t handle the resources’ infrastructure CPU+Memory+I/O(=tier) Unit of Measure Serverless You consume «blended» Unit of Measure
Database Transaction Unit (DTU) DTUs provide a way to describe the relative capacity of a performance level based on a blended measure of CPU, memory, and read and write rates offered by each performance level. Documented here: https://azure.microsoft.com/en-us/documentation/articles/sql-database-benchmark-overview https://azure.microsoft.com/en-us/documentation/articles/sql-database-service-tiers https://azure.microsoft.com/en-us/documentation/articles/sql-database-benchmark-overview http://dtucalculator.azurewebsites.net
Azure SQL Database Fully managed SQL database service that lets you focus on your business Database provisioning on-demand Predictable performance for enterprise workloads Elastic database pools for unpredictable SaaS workloads 99.99% availability SLA Geo-replication and restore services for data protection Secure and compliant to protect sensitive data Compatible with SQL Server 2016 databases
Predictable performance Build 2015 11/28/2018 10:31 AM Predictable performance Isolated databases are allocated isolated resources Basic, Standard, and Premium tiers provide increasing performance levels Scale up/down in response to actual or predicted change in workload Databases remain online while scaling Hourly billing at highest rate that hour © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Azure SQL Database Virtual Logical Server Logic container «Database», «Elastic Pool» and «Data Warehouse» Context «Endpoint» for connection (es. dbdemo.database.windows.net) Users that can access to these databases «Policy» (es. «Audit», «Threat detection») You loose ALL the typical functionalities at server level https://docs.microsoft.com/en-us/azure/sql-database/sql-database-server-overview
JSON SUPPORT
Built-in functions for JSON ISJSON - valid JSON ? JSON_VALUE extracts scalar value JSON_QUERY extracts an object or array
OPENJSON
FOR JSON In PATH mode dot syntax - 'Item.Price' – formats nested output.
TEMPORAL TABLES
Temporal Tables Automatically keeps track of changed data Available in SQL Azure Transparent to existing applications (if needed)
Temporal Queries AS OF <date_time> FROM <start_date_time> TO <end_date_time> BETWEEN <start_date_time> AND <end_date_time> CONTAINED IN (<start_date_time> , <end_date_time>) ALL
Temporal Tables Some limitations compared to “classic” tables No TRUNCATE TABLE support INSTEAD OF triggers not supported Temporal tables *can* be ALTERed A few limitations: Cannot add a computed columns Cannot add an Identity column Versioning can be turned on/off as we wish There is *no* automatic cleanup of versioning Stretch Database offer “a sort of” automatic archival (but still no cleaning!) Tips: https://msdn.microsoft.com/library/mt637341.aspx
ROW LEVEL SECURITY
Row-level security Protect data privacy by ensuring the right access across rows Give users access only the rows applicable to their role Simplify the design and coding of security in your apps Administer with SQL Server Management Studio or SQL Server Data Tools
DYNAMIC DATA MASKING
Dynamic data masking Limit the exposure of sensitive data by hiding it from users Auto-discovery of potentially sensitive data to mask Configurable masking policy from the Azure portal or via DDL in the server On-the-fly obfuscation of data in query results Flexibility to define a set of privileged users for un-masked data access
GEO REPLICATION
High-availability platform Single logical database DB P S Ack Read value write S S P P Ack Write Critical capabilities: Create new replica Synchronize data Stay consistent Detect failures Failover 99.99% availability S S Write Ack Reads are completed at the primary Writes are replicated to secondaries
«Active Geo-Replication» Fino a 4 copie secondarie Accessibile in sola lettura Supportati scenari di aggiornamento e trasferimento «Failover» manuale «Estimated Recovery Time»: <30 secondi «Recovery Point Objective»: <5 secondi Disponibile per tutti i «Service Tier»! https://docs.microsoft.com/en-us/azure/sql-database/sql-database-geo-replication-overview https://azure.microsoft.com/en-us/blog/azure-sql-database-now-supports-powerful-geo-replication-features-on-all-service-tiers
SCALABILITY
Scalability patters [1] Monolithic database ERP
«Scale up» e «Scale down» Change the service level «Service Tier/Performance Level» Copy by replica operation Interruption during switch Check compatibility with feature used (ex. Database size) https://azure.microsoft.com/en-us/documentation/articles/sql-database-scale-up https://docs.microsoft.com/en-us/azure/sql-database/sql-database-faq
Predictable performance Build 2015 11/28/2018 10:31 AM Predictable performance Isolated databases are allocated isolated resources Basic, Standard, and Premium tiers provide increasing performance levels Scale up/down in response to actual or predicted change in workload Databases remain online while scaling Hourly billing at highest rate that hour © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
«Query Performance Insight» https://docs.microsoft.com/en-us/azure/sql-database/sql-database-query-performance
SaaS issues Customers with different requirements (performances) Customers in different regions Overprovisioning
Scalability patters [2] Monolithic database ERP Tenant partitioning (1 db per customer) Root Cust.#1 Cust.#n Cust.#2 https://azure.microsoft.com/en-us/documentation/articles/sql-database-elastic-scale-introduction https://docs.microsoft.com/en-us/azure/sql-database/sql-database-design-patterns-multi-tenancy-saas-applications
Scenario IoT, device syncronization Multiple customers Monthly subscription
Failure scenario Bad performance on a query (timeout) Need time to check No time to check immediatly Immediate reaction: scale up (BasicS0) Time: 5minutes Time to check: 2 weeks Costs of DB: 12€/2=6€ Fixed query Scale down (S0Basic)
Scalability patters [4] Monolithic database ERP Root Cust.#2 Tenant partitioning (1 db per customer) Cust.#1 Cust.#n Inventory Order Invoice Vertical partitioning (architectural) https://azure.microsoft.com/en-us/documentation/articles/sql-database-elastic-scale-introduction https://docs.microsoft.com/en-us/azure/sql-database/sql-database-design-patterns-multi-tenancy-saas-applications Root Shard #1 Shard #2 Shard #n Sharding (No SQL)
«Sharding» Molteplici database condivisi da più «tenant»? Tecnica «Scale out» distribuzione dati Strutturati in maniera identica In più database indipendenti In base a «Sharding Key» Mappature per intervallo di valori o lista
«Elastic Database client library» «Shard Map Management» Mappatura «Shard Keys» e database «Shard Keys» liste o intervalli di valori «Data Dependent Routing» Supporto apertura connessione in base a «Shard Key» «Multi-Shard Queries» Supporto Query che coinvolge più «Shard» Fusione unico «Result Set» con Semantica UNION ALL Image source: https://docs.microsoft.com/en-us/azure/sql-database/sql-database-elastic-scale-shard-map-management https://azure.microsoft.com/en-us/documentation/articles/sql-database-elastic-database-client-library https://docs.microsoft.com/en-us/azure/sql-database/sql-database-elastic-scale-shard-map-management
«Elastic Database Pools» DTU Pool (eDTUs) and Storage Pool (GBs) shared Minimal guaranteed Maximum set «Auto-Scale» You can add/remove during lifetime https://docs.microsoft.com/en-us/azure/sql-database/sql-database-elastic-pool https://azure.microsoft.com/en-us/documentation/articles/sql-database-elastic-pool-guidance Image source: https://docs.microsoft.com/en-us/azure/sql-database/sql-database-what-is-a-dtu
BACKUP
Point-in-time restore Programmatic “oops recovery” of data deletion or alteration Auto backups «Full» weekly «Differenziale» some hours «Log» every 5-10 minutes Backups in Azure Storage and geo-replicated Creates a side-by-side copy, non-disruptive REST API, PowerShell or Azure Portal Backups retention policy: Basic, up to 7 days Standard, up to 14 days Premium, up to 35 days (preview 10 years) Automated export of logical backups for long- term backup protection Azure Storage sabcp01bl21 SQL Database Backups sabcp01bl21 Geo- replicated Restore from backup
Conclusions
Conclusions Almost complete alignment with IaaS/On Premise SQL Server 20016 Think PaaS Think about alternatives to Management System
Funzionalità rispetto versione «on-premise» Not everything on Azure SQL Database Es. CDC, CLR, FILESTREAM, PBM, Service Broker Different implementation Es. AwaysOn AG/Active Geo Replication, SSIS/Azure Data Factory Some in preview Es. Row-Level Security, Data Masking, Temporal Tables https://docs.microsoft.com/en-us/azure/sql-database/sql-database-features https://azure.microsoft.com/en-us/updates/?product=sql-database
HIPAA business associate agreement (BAA) Compliance ISO/IEC 27001 FedRAMP/FISMA PCI DSS Level 1 SOC 1 Type 2 and SOC 2 Type 2 HIPAA business associate agreement (BAA) EU Model Clauses
#sqlsat589 Thanks! Q&A