Skip to content

Commit 260c4a0

Browse files
committed
read me's
1 parent 4a60338 commit 260c4a0

File tree

3 files changed

+56
-18
lines changed

3 files changed

+56
-18
lines changed

samples/manage/README.md

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,13 @@ Contains samples for managing Microsoft's SQL databases including SQL Server, Az
55
Samples are coming soon!
66

77

8-
+## Collect and monitor resource usage data across multiple pools in a subscription
9-
22 +
10-
23 +This Solution QuickStart provides a solution for collecting and monitoring Azure SQL Database resource usage accross multiple pools in a subscription. When you have a large number of databases in a subscription, it is cumbersome to monitor each elastic pool separately. To solve this, you can combine SQL database PowerShell cmdlets and T-SQL queries to collect resource usage data from multiple pools and their databases for monitoring and analysis of resource usage.
11-
24 +
12-
25 +[Manage Mulitiple Elastic Pools in SQL Database Using PowerShell and Power BI](https://github.com/Microsoft/sql-server-samples/tree/master/samples/manage/azure-sql-db-elastic-pools) in the GitHub SQL Server samples repository provides a set of powershell scripts and T-SQL queries along with documentation on what it does and how to use it.
13-
26 +
14-
27 +## Get started using Elastic Pools in a SaaS scenario
15-
28 +
16-
29 +This Solution QuickStart provides a solution for a Softwware-as-a-Solution (SaaS) scenario that leverages Elastic Pools to provide a cost-effective, scalable database back-end of a SaaS application. In this solution, you will walk-though the implementation of a web app that lets you visualize the load created on an Elastic Pool by a load generator using a custom dashboard that supplements the Azure Portal.
17-
30 +
18-
31 +[saas-scenario-with-elastic-pools](https://github.com/Microsoft/sql-server-samples/tree/master/samples/manage/azure-sql-db-elastic-pools-custom-dashboard) in the GitHub SQL Server samples repository provides a load generator and monitoring web app along with the documentation on what it does and how to use it.
8+
## Collect and monitor resource usage data across multiple pools in a subscription
9+
This Solution Quick Start provides a solution for collecting and monitoring Azure SQL Database resource usage accross multiple pools in a subscription. When you have a large number of databases in a subscription, it is cumbersome to monitor each elastic pool separately. To solve this, you can combine SQL database PowerShell cmdlets and T-SQL queries to collect resource usage data from multiple pools and their databases for monitoring and analysis of resource usage.
10+
11+
[Manage Mulitiple Elastic Pools in SQL Database Using PowerShell and Power BI](https://github.com/Microsoft/sql-server-samples/tree/master/samples/manage/azure-sql-db-elastic-pools) in the GitHub SQL Server samples repository provides a set of powershell scripts and T-SQL queries along with documentation on what it does and how to use it.
12+
13+
## Get started using Elastic Pools in a SaaS scenario
14+
15+
This Solution Quick Start provides a solution for a Softwware-as-a-Solution (SaaS) scenario that leverages Elastic Pools to provide a cost-effective, scalable database back-end of a SaaS application. In this solution, you will walk-though the implementation of a web app that lets you visualize the load created on an Elastic Pool by a load generator using a custom dashboard that supplements the Azure Portal.
16+
17+
[saas-scenario-with-elastic-pools](https://github.com/Microsoft/sql-server-samples/tree/master/samples/manage/azure-sql-db-elastic-pools-custom-dashboard) in the GitHub SQL Server samples repository provides a load generator and monitoring web app along with the documentation on what it does and how to use it.

samples/manage/azure-sql-db-elastic-pools-custom-dashboard/readme.md

Lines changed: 37 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,36 @@ This readme applies to:
1313

1414
## About this sample
1515

16-
***Applies to:*** Azure SQL Database
17-
*** Key features:*** Elastic Pools
18-
***Workload:*** SaaS workload generator
19-
***Programming Language:*** ADO.NET, XML, C#, Transact-SQL
20-
***Authors:*** Zoiner Tejada, Carl Rabeler, Srini Acharya
21-
***Update history:*** n/a
16+
- ***Applies to:*** Azure SQL Database
17+
- *** Key features:*** Elastic Pools
18+
- ***Workload:*** SaaS workload generator
19+
- ***Programming Language:*** ADO.NET, XML, C#, Transact-SQL
20+
- ***Authors:*** Zoiner Tejada, Carl Rabeler, Srini Acharya
21+
- ***Update history:*** n/a
2222

23-
## Solution Quick Start
23+
## Solution Quick Start Overview
2424

2525
The Solution Quick Start consists of a single Visual Studio 2015 solution with two projects, as follows:
2626

2727
- LoadGeneratorConsole: A console application that creates a configurable load against a specified set of databases.
2828
- MonitoringWeb: A Web App that shows gathering and reporting on telemetry collected from Elastic Pools and Database instances.
2929

30+
### Contents
31+
32+
[Scenario](#scenario)<br/>
33+
[Solution Overview](#solution-overview)<br/>
34+
[Scenario Guidance](#scenario-guidance)<br/>
35+
[Performing Schema Maintenance on Pooled Databases](#schema-maintenance)<br/>
36+
[Monitoring & Alerting](#monitoring-alerting)<br/>
37+
[Database Recovery](#database-recovery)<br/>
38+
[Summary](#summary)<br/>
39+
[Learn More](#learn-more)<br/>
40+
41+
42+
43+
44+
45+
<a name=scenario></a>
3046

3147
## Scenario
3248

@@ -36,6 +52,8 @@ The fundamentals behind the architecture of ShopKeeper are resource sharing amon
3652

3753
<! [Architecture1](./media/azure-sql-db-elastic-pools-custom-dashboard-architecture-1.png)
3854

55+
<a name=solution-overview></a>
56+
3957
## Solution Overview
4058

4159
The focus of this Solution Quick Start is on leveraging Elastic Pools and understanding how the support the backend for a SaaS application like Contoso ShopKeeper, the design and implementation of the App Services component is considered out of scope.
@@ -53,6 +71,8 @@ After that, we will introduce how you would apply a schema change to all the dat
5371

5472
<! [Architecture3](./media/azure-sql-db-elastic-pools-custom-dashboard-architecture-3.png)
5573

74+
<a name=scenario-guidance></a>
75+
5676
## Scenario Guidance
5777

5878
Before exploring Elastic Pools “hands-on” by running the load generator and Monitoring Web App in the ShopKeeper scenario, you should review the following guidance.
@@ -92,6 +112,8 @@ The provisioning of new Pools, adjusting the eDTU’s assigned to a Pool or the
92112

93113
> [AZURE.NOTE] Examples of Pool Management: For examples of management with the above options, see https://azure.microsoft.com/en-us/documentation/articles/sql-database-elastic-pool-manage-portal/
94114
115+
<a name=schema-maintenance></a>
116+
95117
## Performing Schema Maintenance on Pooled Databases
96118

97119
The Contoso ShopKeeper solution demonstrates an example of the challenge faces by SaaS solutions with regards to managing schemas. In this Solution Quick Start, it deploys an instance of the AdventureWorks database for each tenant. Therefore, Contoso would have many copies of a database with the same schema, albeit different data. This raises the question, how should Contoso roll out schema updates when required (e.g., because of application updates), without affecting the per tenant data?
@@ -101,6 +123,8 @@ Using the Azure Portal, as illustrated in this Solution Quick Start, Contoso can
101123
Besides using the Portal, Contoso may consider using PowerShell to control the execution of Elastics Database Jobs. In addition to the automation opportunities this allows for the deployment of updates, using PowerShell has one characteristic that is not present in the Portal: custom groups. With custom groups Contoso can target its T-SQL script to execute on a specific set of databases, instead of all the databases within the Pool.
102124
NOTE: For examples of using PowerShell to create and manage Elastic Database jobs, see https://azure.microsoft.com/en-us/documentation/articles/sql-database-elastic-jobs-overview/
103125

126+
<a name=monitoring-alerting></a>
127+
104128
## Monitoring & Alerting
105129

106130
For Contoso, balancing performance versus cost is critical, and for their ShopKeeper application the cost is directly correlated with the number of Elastic Pools they have allocated. Therefore, they want to monitor their Pools closely so they know when to take actions such as creating new Pools or moving databases between Pools.
@@ -113,16 +137,22 @@ For both Pool alerts and per Database alerts, Contoso can configure Web Hooks th
113137

114138
When it comes to monitoring the Pool and the databases Contoso can choose to use the Azure Portal as well as T-SQL, as we show in this Solution Quick Start with the Monitoring Web App. They can use the T-SQL options to collect the telemetry from Azure and store it in their own log analytics solution. This would enable them to perform analysis on the telemetry that spans much longer periods of time than that permitted by the retention policy of the data when it is managed by Azure—for example, enabling them to review pool usage over the course of months instead of the 14 days that is maintained by Azure.
115139

140+
<a name=database-recovery></a>
141+
116142
## Database Recovery
117143

118144
By utilizing Elastic Pools, Contoso gets an improved ability to juggle cost versus tenant performance, but does not lose any of the features supporting availability and disaster recovery that are available to SQL Databases outside of a Pool. For example, they can use Point in Time Restore to recover from user error, such as a DBA accidentally dropping the customers table in a tenant’s database. To accomplish this with minimal down-time, they would ensure Pool to which they will restore has capacity for another database instance, rename the original Database to a temporary name and then restore to new database with same name as original. In this fashion, they could restore the database without having to make any application level changes, such as altering connection strings, because the restored database name would be unchanged.
119145

120146
They also get to benefit from the restore deleted database feature to provide a window of time during which their system could actually delete the database when a merchant cancels, but be able to restore that database should the customer re-join within the retention window. This retention window is controlled by the service tier of the pool: 7 days for Basic, 14 days for Standard and 35 days for Premium.
121147

148+
<a name=summary></a>
149+
122150
## Summary
123151

124152
This Solution Quick Start provides guidance on how to leverage Elastic Pools to support the backend of a SaaS application. In addition, this Solution Quick Start provides a tool to simulate load on elastic databases so that you can understand how the effects of load on a database affect the Elastic Pool. Finally, this solution Quick Start demonstrates how you can build collect your Elastic Pool and database telemetry programmatically so that you can implement a monitoring solution that suites the needs of your application.
125153

154+
<a name=learn-more></a>
155+
126156
## Learn More
127157

128158
- SQL Database Forum on MSDN: https://social.msdn.microsoft.com/Forums/azure/en-US/home?forum=ssdsgetstarted

samples/manage/azure-sql-db-elastic-pools/readme.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,15 @@ This Solution Quick Start sample provides a set of PowerShell scripts for off-lo
66

77
This readme applies to the PowerShell scripts: PoolTelemetryJobRunner.ps1 and PoolTelemetry.ps1.
88

9+
## About this sample
10+
11+
- ***Applies to:*** Azure SQL Database
12+
- *** Key features:*** Elastic Pools
13+
- ***Workload:*** n/a
14+
- ***Programming Language:*** PowerShell, Transact-SQL, DAX
15+
- ***Authors:*** Carl Rabeler, Srini Acharya
16+
- ***Update history:*** n/a
17+
918
### Contents
1019

1120
[What do the PowerShell scripts do?](#what-do-the-powershell-scripts-do?)<br/>

0 commit comments

Comments
 (0)