Friday, May 3, 2013

SQL Server–Tiered Server Installs And Automated Deployments

An idea I’ve been playing with for a while and saw at the recent SQL Saturday Pass sessions is with creating Tiered SQL Server installs. For me this comes out of the increasing use of virtualization and the exponentially increasing number of SQL Servers this spawns. Without some sort of system in place it becomes incredibly difficult to standardize our SQL Server installs and we end up with a non-uniform environment.
The idea is relatively simple in theory – in order to standardize our SQL Server environments we define a number of tiers. The tiers should relate to how we use SQL Server in our environments but at the same time we want them to be standard across a tier. Each tier should add to the previous tier in terms of functionality and performance.
Furthermore by standardizing our installs into tiers we can also automate our SQL Server deployments. The approach I’ll be taking will be to develop a template that can be automatically deployed to a base tier. Ideally the server can easily be upgraded to higher tiers through upgrade wizards and by reconfiguring the resources in the hypervisor.
First I’m going to define the tiers I have in mind and how I want them to look.

Tier 3 – Entry-Level SQL Server Platform

The Tier 3 server is more designed with system administrators, developers, and non-DBAs in mind. It may also be necessary if the SQL Server is an application server which needs applications installed that are cannot run on Windows Core.
Operating System Windows Server Standard Edition w/GUI
SQL Server Edition 2012 SP1 CU2 or greater, Standard Edition
Components Installed
  • SQL Engine
  • Replication
  • Full Text Indexing
  • Integration Services
  • Management Studio
Drive Layouts
  • C - Operating System
  • E – Data
  • L – Logs
Processors Start at 1 vCPU. Can be customised higher.
Memory Start at 2GB. Can be customised higher.

Tier 2 – The Mid Range SQL Server Platform

The Tier 2 standard is designed for non-critical business applications and is a compromise between performance and resources.
By using the core editions of SQL and Windows we save on resources. Windows Server 2008 R2 uses 2 to 4GB compared to around 600MB on Windows Server Core. Across many virtual machines this is a huge saving. The core editions also require far fewer patches (and hopefully restarts) compared to the editions with full GUIs.
Operating System Windows Server Standard Edition (Core)
SQL Server Edition 2012 SP1 CU2 or greater, Standard Edition
Components Installed
  • SQL Engine
  • Replication
  • Full Text Indexing
  • Integration Services
Drive Layouts
  • C - Operating System
  • E – Data
  • L – Logs
  • T- TempDB
Processors Start at 1 vCPU. Should be customised higher.
Memory Start at 2GB. Should be customised higher.

Tier 1 –The High Performance SQL Server Platform

The high performance Tier is designed for high performance SQL applications but doesn’t provide for much in the way of high availability. I’ve deliberately left the operating system at Standard Edition as in many virtual environments the high availability is rightly or wrongly provided at the virtualisation layer.
The Enterprise edition of SQL Server provides much better performance over the Standard edition in a number of areas both in terms of internal engine performance and additional features to boost performance.
Of note is that both the processor and memory should be customised to suit the workloads on the server. The figures quoted below are simply a starting point and need to be revised accordingly.
Operating System Windows Server Standard Edition (Core)
SQL Server Edition 2012 SP1 CU2 or greater, Enterprise Edition
Components Installed
  • SQL Engine
  • Replication
  • Full Text Indexing
  • Integration Services
Drive Layouts
  • C - Operating System
  • E – Data
  • L – Logs
  • T – TempDB
Processors Start at 1 vCPU. Should be customised higher.
Memory Start at 2GB. Should be customised higher.


Tier 0 – Ultra-High Performance SQL Server Platform

This tier is very similar to Tier 1 except it has additional features added for High Availability. The main difference is that we’re now using Windows Server Enterprise edition which is mandatory for clustering and AlwaysOn technologies.
Of note is that both the processor and memory should be customised to suit the workloads on the server. The figures quoted below are simply a starting point and need to be revised accordingly.
Operating System Windows Server Enterprise Edition (Core)
SQL Server Edition 2012 SP1 CU2 or greater, Enterprise Edition
Components Installed
  • SQL Engine
  • Replication
  • Full Text Indexing
  • Integration Services
Drive Layouts
  • C - Operating System
  • E – Data
  • L – Logs
  • T- TempDB
Processors Start at 1 vCPU. Should be customised higher.
Memory Start at 2GB. Should be customised higher.

Using SQL Server Templates

Now that we’ve defined the tiers I want to build a SQL Serer template that can easily be deployed into these tiers. It’s a work in progress but I’m working on templates which fit into the Tier 2 and Tier 3 categories. The idea is to build fully sysprepped images(supported by SQL Server 2012 SP1 CU2 and onwards) which can easily and quickly be deployed to the standards.
To upgrade from Tier 2 to Tier 1 we would simply run the SQL Server Edition Upgrade to turn it into a SQL Enterprise server. We could also move the virtual disks to higher performing disk sets to upgrade performance.
Can we upgrade from Tier 1 to Tier 0? There is a tool to upgrade Windows editions by entering the new product key so this should be easy to accomplish.

No comments:

Post a Comment