Containers and SQL on Linux

The introduction of virtualization provided a boost in the possible implementation scenarios for a range of different IT systems. As virtualization technology has matured, it has increased the flexibility of IT departments, allowing them to speed up deployments of new systems and separate logical services from physical infrastructure, leading to the ability to react to business changes at a much greater pace than even a few decades ago.

The classic virtualization strategy was to implement virtual machines—an entire operating system hosted on big-iron in the background. This simple but effective system was the first major step towards encapsulating IT services into logical, mobile units that no longer relied on a permanent connection to a specific piece of hardware. The rise of VMWare, Hyper-V, Xen Server, and other virtual machine hosting environments brought about major advances in software virtualization technologies. The largest implementations of virtualized (software-based) infrastructure can be witnessed in the globally available and global-scale Cloud offerings from Microsoft, Amazon, Google, and so on. These cloud providers rely heavily on virtualization technologies to provide customers with their computing capacity.

As powerful and flexible as virtualization is, when viewed as service hosting solutions Virtual Machines have a non-trivial overhead associated with them. Namely, each Virtual Machine is an entire server in an encapsulated unit; this includes hardware configurations, operating systems, and applications. As mobile and flexible as they are, these moving parts all require care and attention in the form of patches and general maintenance, which can result in a rather overwhelming amount of work when the number of machines is scaled to hundreds or thousands (or even millions, in the case of the aforementioned cloud suppliers).

Containerization and containers were designed to help counteract this administrative overhead by encapsulating applications into a more efficient subset of code and infrastructure modules. The aim of containers is to increase the portability of the packaged application by removing as many dependencies on the hosting environment as possible, while at the same time trying to keep the administration (patching and maintenance) of the contained modules/applications to a minimum.

In this chapter, we will look at how Microsoft has implemented containers in the Windows operating system and how SQL Server 2017 leverages this native container support. We will also investigate how it is now possible to host SQL Server natively on Linux, allowing the implementation of SQL Server to no longer be constrained by the operating system that it runs on.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.144.97.187