Announcing Great New SQL Database Capabilities in Azure

Today we are making available several new SQL Database capabilities in Azure that enable you to build even better cloud applications.  In particular:

  • We are introducing two new pricing tiers for our  Elastic Database Pool capability.  Elastic Database Pools enable you to run multiple, isolated and independent databases on a private pool of resources dedicated to just you and your apps.  This provides a great way for software-as-a-service (SaaS) developers to better isolate their individual customers in an economical way.
  • We are also introducing new higher-end scale options for SQL Databases that enable you to run even larger databases with significantly more compute + storage + networking resources.

Both of these additions are available to start using immediately. 

Elastic Database Pools

If you are a SaaS developer with tens, hundreds, or even thousands of databases, an elastic database pool dramatically simplifies the process of creating, maintaining, and managing performance across these databases within a budget that you control. 

image

A common SaaS application pattern (especially for B2B SaaS apps) is for the SaaS app to use a different database to store data for each customer.  This has the benefit of isolating the data for each customer separately (and enables each customer’s data to be encrypted separately, backed-up separately, etc).  While this pattern is great from an isolation and security perspective, each database can end up having varying and unpredictable resource consumption (CPU/IO/Memory patterns), and because the peaks and valleys for each customer might be difficult to predict, it is hard to know how much resources to provision.  Developers were previously faced with two options: either over-provision database resources based on peak usage--and overpay. Or under-provision to save cost--at the expense of performance and customer satisfaction during peaks.

Microsoft created elastic database pools specifically to help developers solve this problem.  With Elastic Database Pools you can allocate a shared pool of database resources (CPU/IO/Memory), and then create and run multiple isolated databases on top of this pool.  You can set minimum and maximum performance SLA limits of your choosing for each database you add into the pool (ensuring that none of the databases unfairly impacts other databases in your pool).  Our management APIs also make it much easier to script and manage these multiple databases together, as well as optionally execute queries that span across them (useful for a variety operations).  And best of all when you add multiple databases to an Elastic Database Pool, you are able to average out the typical utilization load (because each of your customers tend to have different peaks and valleys) and end up requiring far fewer database resources (and spend less money as a result) than you would if you ran each database separately.

The below chart shows a typical example of what we see when SaaS developers take advantage of the Elastic Pool capability.  Each individual database they have has different peaks and valleys in terms of utilization.  As you combine multiple of these databases into an Elastic Pool the peaks and valleys tend to normalize out (since they often happen at different times) to require much less overall resources that you would need if each database was resourced separately:

databases sharing eDTUs

Because Elastic Database Pools are built using our SQL Database service, you also get to take advantage of all of the underlying database as a service capabilities that are built into it: 99.99% SLA, multiple-high availability replica support built-in with no extra charges, no down-time during patching, geo-replication, point-in-time recovery, TDE encryption of data, row-level security, full-text search, and much more.  The end result is a really nice database platform that provides a lot of flexibility, as well as the ability to save money.

New Basic and Premium Tiers for Elastic Database Pools

Earlier this year at the //Build conference we announced our new Elastic Database Pool support in Azure and entered public preview with the Standard Tier edition of it.  The Standard Tier allows individual databases within the elastic pool to burst up to 100 eDTUs (a DTU represents a combination of Compute + IO + Storage performance) for performance. 

Today we are adding additional Basic and Premium Elastic Database Pools to the preview to enable a wider range of performance and cost options.

  • Basic Elastic Database Pools are great for light-usage SaaS scenarios.  Basic Elastic Database Pools allows individual databases performance bursts up to 5 eDTUs.
  • Premium Elastic Database Pools are designed for databases that require the highest performance per database. Premium Elastic Database Pools allows individual database performance bursts up to 1,000 eDTUs.

Collectively we think these three Elastic Database Pool pricing tier options provide a tremendous amount of flexibility and optionality for SaaS developers to take advantage of, and are designed to enable a wide variety of different scenarios.

Easily Migrate Databases Between Pricing Tiers

One of the cool capabilities we support is the ability to easily migrate an individual database between different Elastic Database Pools (including ones with different pricing tiers).  For example, if you were a SaaS developer you could start a customer out with a trial edition of your application – and choose to run the database that backs it within a Basic Elastic Database Pool to run it super cost effectively.  As the customer’s usage grows you could then auto-migrate them to a Standard database pool without customer downtime.  If the customer grows up to require a tremendous amount of resources you could then migrate them to a Premium Database Pool or run their database as a standalone SQL Database with a huge amount of resource capacity.

This provides a tremendous amount of flexibility and capability, and enables you to build even better applications.

Managing Elastic Database Pools

One of the the other nice things about Elastic Database Pools is that the service provides the management capabilities to easily manage large collections of databases without you having to worry about the infrastructure that runs it.   

You can create and mange Elastic Database Pools using our Azure Management Portal or via our Command-line tools or REST Management APIs.  With today’s update we are also adding support so that you can use T-SQL to add/remove new databases to/from an elastic pool.  Today’s update also adds T-SQL support for measuring resource utilization of databases within an elastic pool – making it even easier to monitor and track utilization by database.

image

Elastic Database Pool Tier Capabilities

During the preview, we have been and will continue to tune a number of parameters that control the density of Elastic Database Pools as we progress through the preview.

In particular, the current limits for the number of databases per pool and the number of pool eDTUs is something we plan to steadily increase as we march towards the general availability release.  Our plan is to provide the highest possible density per pool, largest pool sizes, and the best Elastic Database Pool economics while at the same time keeping our 99.99 availability SLA.

Below are the current performance parameters for each of the Elastic Database Pool Tier options in preview today:

 

Basic Elastic

Standard Elastic

Premium Elastic

Elastic Database Pool

eDTU range per pool (preview limits)

100-1200 eDTUs

100-1200 eDTUs

125-1500 eDTUs

Storage range per pool

10-120 GB

100-1200 GB

63-750 GB

Maximum database per pool (preview limits)

200

200

50

Estimated monthly pool and add-on  eDTU costs (preview prices)

Starting at $0.2/hr (~$149/pool/mo).

Each additional eDTU $.002/hr (~$1.49/mo)

Starting at $0.3/hr (~$223/pool mo). 

Each additional eDTU $0.003/hr (~$2.23/mo)

Starting at $0.937/hr (`$697/pool/mo).

Each additional eDTU $0.0075/hr (~$5.58/mo)

Storage per eDTU

0.1 GB per eDTU

1 GB per eDTU

.5 GB per eDTU

Elastic Databases

eDTU max per database (preview limits)

0-5

0-100

0-1000

Storage max per DB

2 GB

250 GB

500 GB

Per DB cost (preview prices)

$0.0003/hr (~$0.22/mo)

$0.0017/hr (~$1.26/mo)

$0.0084/hr (~$6.25/mo)

We’ll continue to iterate on the above parameters and increase the maximum number of databases per pool as we progress through the preview, and would love your feedback as we do so.

New Higher-Scale SQL Database Performance Tiers

In addition to the enhancements for Elastic Database Pools, we are also today releasing new SQL Database Premium performance tier options for standalone databases. 

Today we are adding a new P4 (500 DTU) and a P11 (1750 DTU) level which provide even higher performance database options for SQL Databases that want to scale-up. The new P11 edition also now supports databases up to 1TB in size.

Developers can now choose from 10 different SQL Database Performance levels.  You can easily scale-up/scale-down as needed at any point without database downtime or interruption.  Each database performance tier supports a 99.99% SLA, multiple-high availability replica support built-in with no extra charges (meaning you don’t need to buy multiple instances to get an SLA – this is built-into each database), no down-time during patching, point-in-time recovery options (restore without needing a backup), TDE encryption of data, row-level security, and full-text search.

image

Learn More

You can learn more about SQL Databases by visiting the http://azure.microsoft.com web-site.  Check out the SQL Database product page to learn more about the capabilities SQL Databases provide, as well as read the technical documentation to learn more how to build great applications using it.

Summary

Today’s database updates enable developers to build even better cloud applications, and to use data to make them even richer more intelligent.  We are really looking forward to seeing the solutions you build.

Hope this helps,

Scott

13 Comments

  • Anyone know what software/shapes are used to put some of Scott's presentations together?

    Example: https://aspblogs.blob.core.windows.net/media/scottgu/Media/image_161995EF.png

  • Micah B - Microsoft Architecture Blueprints are available in Visio formats at https://azure.microsoft.com/en-us/documentation/articles/architecture-overview/

  • Price rockets up rapidly S2->P2, disproportionally with the scale of use. Any chance there might be a pricing revision with the introduction of these new premium tiers?

  • When I first saw this post, I got quite excited, but then on going to the pricing page I became really disappointed. Databases are already substantially more expensive than the old web/business tiers, and while I appreciate that people should pay for what they use, I don't think any of the new options really address the issues of those migrating from web and business databases.

    The minimum entry price for Standard Elastic DBs is $233/month at *preview* pricing which gets you 100 eDTU over your databases - an S3 database is $150/month - how can that possibly be justified?

    I only have 5 databases on Azure at the moment, but I've now had to over-provision capacity on each of them as I sometimes burst to a higher level than I generally use (about once a month). I would have loved to just be able to buy capacity (I'd probably only need about 30 eDTUs) and have this run across all my databases. but the current pricing just doesn't make this a valid option. The thing is, I know at some point I will need to move to Elastic Database Pools as my requirement for databases grows, but there really don't seem to be a decent on-ramp to make this work.

    Are there any plans to reduce the minimum eDTU requirements for an Elastic Pool, or any plans to address users who just need occasional burst capacity over their normal plan?


  • 10 different pricing tiers, but the first 4 are useless, and the rest cost a fortune.
    Has anyone at Microsoft actually tried to use the basic tier through S2 tiers?
    S3 is barely usable at 150/mo.
    Such as shame, with the features it has great potential, but simply not cost efficient at this time.
    http://feedback.azure.com/forums/217321-sql-database/suggestions/6848339-please-reconsider-the-new-db-pricing-tiers

  • Nathan, I have a SAAS running on an S2 database with hundreds of users and it hovers around %20 of the DTU capacity.

    Martin, The price from S to P level does jump quite a bit I agree. But you are basically getting twice as much because you get a failover database as well. And the P performance levels are much better than S even though it is not obvious by looking at the DTU levels on the website.

  • If Azure SQL can be scaled automatically by CPU/DTU cost, that's the feature I am really looking for.

  • @Tim, I'd love to help.

    I can think of a couple of ways of solving your problem. You could choose to use Azure Automation to scale your 5 x individual DBs up for that monthly peak. Another option would be to put all 5 of those DBs in to a Standard 100 DTU pool at $225/month in preview pricing - this would be significantly cheaper than 5X$150.

    Today unfortunately the entry point for a Standard Elastic database pool is 100 eDTUs. We are evaluating if we can decrease this to 50 eDTUs which would be closer to your 30 eDTU requirement.
    I hope this help.s
    Guy

  • @Andy, I'd love to help.

    One of the specific benefits of Elastic Database pools is that databases in the pool can dynamically scale from no eDTU consumption to the max eDTUs available in the pool (either pool burst max which for Standard Elastic database pools is 100, or the max eDTU that you can configure). In addition the eDTUs are shared across all of the databases in the pool. We do ask you to pay for the total size of the pool and you can dynamically adjust this nearly instantaneously as the aggregate load changes. You can re-size the pool in http://portal.azure.com or using Azure Automation. Just putting the database in the pool is all you need to do for the per database dynamic eDTU consumption.

    I hope this helps.
    Thanks Guy

  • Looking at the competition in the cloud space, what is the closest analogue between this offering and the RDBMS-centric technologies offered on _mazon AWS?

  • Still can't consider Azure as an option until infinitely scalable storage is available. 1TB limit is a ridiculously low limit for customers who actually need that level of compute / RAM.

  • There are tons of complaints about the new tiers. Many reports 10x-200x price increase to get the same performance in the new tiers as the old web/business.

    http://feedback.azure.com/forums/217321-sql-database/suggestions/6848339-please-reconsider-the-new-db-pricing-tiers?page=4&per_page=20

    Why are you completely ignore all of these complaints?!

    Please stop the forced upgrade of web/business and leave as is.
    Thank you.

  • Why can't Microsoft make a NewSQL product so we don't have to deal with this scalability mess? SQL Server is legacy at this moment, and perhaps there should be a new solution instead of trying to build atop what you already have.

Comments have been disabled for this content.