Modernize SQL Server with a variety of options

Tarun Agarwal
5 min readJul 18, 2020

Microsoft SQL Server is providing a relational database system over two decades now. SQL Server has become one of the leading databases that offer reliable, consistent, high performing systems at the most optimized price. Through constant innovation, SQL Server is now available on multiple platforms. Customers can use SQL Server in their environment and application ecosystem. Applications do not need to move or compromise on the functionality.

One of the key things that set SQL Server apart from everyone is the same SQL Server engine available on all platforms. Whether you use SQL Server in the cloud or on-premise, it’s the same SQL engine with the same features and tools. From an organization’s point of view, this is a considerable advantage without the need to reskill/upskill the IT resources.

Microsoft provides several options to deploy and modernize the SQL Server database. This article intends to give an overview and the best use case of each of the possibilities.

SQL Server 2019
Organizations still on-premise or use private clouds to get the most benefits by upgrading their existing SQL Servers to the latest 2019 version. With straightforward, upgrade, and migration paths, an application can get many advantages without code refactoring.
SQL Server offers several advantages like data virtualization, integration with Hadoop and Spark, intelligent query performance, data encryption, and database machine learning and AI capabilities.

SQL Server 2019 serves as the hub for all data (internal/external). Data Virtualization allows access and query data from external databases like Oracle, Teradata, SAP, etc. with the need for ETL and data movement. This reduces the lifecycle significantly.

SQL Server on Linux
Historically SQL Server was only supported on Windows. However, using Platform Abstraction Layer “PAL,” SQL Server was able to abstract the SQL engine from the operating system. PAL further enabled Microsoft to make SQL Server available on Linux using the same SQL engine as 2019. Organizations that operate on Linux and want to leverage the best database engine can now use SQL Server on Linux. DBAs and developers continue to use the same tools like SSMS, T-SQL, etc.

SQL Server on Containers

A container is an application packaged with all its dependencies and runs on the same kernel as the other containers and processes. In contrast to a VM, the apps and its dependencies run on its os and kernel. SQL server runs along with its binaries and other dependencies as a container on a host alongside other containers.
Containers are isolated from other containers. Unaffected at run time of other processes.
Portable because already packaged with its dependencies
Ease to use, deploy, start and stop
No installation, ready to run as soon as the image is downloaded
Containers are lightweight, with a reduced disk, CPU, and memory footprint.

SQL Server on Kubernetes

SQL Server instance can be deployed on Kubernetes in Azure Kubernetes Service (AKS), with persistent storage for high availability (HA). The solution provides resiliency. If the SQL Server instance fails, Kubernetes automatically re-creates it in a new pod. Kubernetes also provides resiliency against node failure. We can create and manage your SQL Server instances natively in Kubernetes.

SQL Server 2019 Big Data Cluster
Big Data Cluster allows big data analytics to be performed using SQL Server 2019. It combines HDFS, and Spark along with SQL deployed in Kubernetes PODs.

Azure SQL VM
Running SQL Server in Azure VM is best for applications that require custom VM or SQL config. This could be an excellent option for situations like data center lease expiry, or end of SQL 2008 support to quickly move to Azure. These can then be migrated to AQL MI as step 2.

Azure SQL managed Instance
SQL MI provides instance level features running in PaaS. This is the best option for organizations looking for “SQL Server” in the cloud. MI provides the most features of on-premise Instance, but still offer a fully managed cloud platform

Azure SQL Database
Azure SQL DB is like a database as a service option in the Azure cloud. SQL DB provides the database engine running on the latest SQL version without worrying about the Instance it is running on. This fully managed cloud database service is best to get up and run to build new cloud-based applications with SQL database as back-end. Most of the DBA features like backup, HA, DR, upgrade, patching, etc. are managed by the Azure platform.

SQL Server provides several options to run a database engine with the latest and up-to-date version. Depending on the use case and needs, organizations can customize their environment. While the SQL engine is the same, and DBAs and developers have minimum upskilling requirements, some options like Kubernetes and containers require organizational level maturity. These are compelling technologies that offer significant potential. They should be first considered for POC, sandbox, and dev environment, before migrating production workloads.

--

--

Tarun Agarwal

Out Shine with Data Mine. Data Analytics thought leader, data driven transformation initiative, strategic modern data platform using cloud, data and AI/ML