SQL Server irrumpe en el mundo Linux y lo hace con paso firme. En esta sesión nos introduciremos en las funcionalidades presentes en SQL Server 2017 para Linux y revisaremos las plataformas en las que podemos correr este magnífico motor de base de datos.
2. Fernando Pérez Gay
Developer advisor
At Plain Concepts – Bilbao
Ligado a los entornos y comunidades Agile, este Zaragozano trabaja desde
hace más de 5 años en la oficina de Bilbao de Plain Concepts.
Con más de 25 años de experiencia en distintos entornos de desarrollo de
software y de los departamentos de IT y administración de Sistemas, en los
últimos años ha centrado toda su actividad en el ámbito de las tecnologías
Microsoft.
@ferpega_
fperez@plainconcepts.com
3. 9:30-10:25 ¿SQL Server sobre Linux? WTF! - Fernando Pérez Gay
10:30-11:25 Alta disponibilidad y balanceo de carga con Linux y nginx – Rodrigo Corral González
11:30 Break
11:45-12:40 Microservicios y contenedores Docker - Carlos Fernández Llamas
12:45-13:40 CI/CD usando Visual Studio Team Services para proyectos en Linux - Alberto Varela Sánchez
7. ¿Sql server sobre linux? Wtf!
Características no disponibles (por el momento)
La gran mayoría (un 90% aproximadamente) de las características disponibles en windows ya lo están en linux también.
No obstante, conviene echar un vistazo a las que todavía no están disponibles:
https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-release-notes#Unsupported
En ocasiones son más bien detalles sobre características.
8. ¿Sql server sobre linux? Wtf!
Características no disponibles (por el momento)
Database Engine
• Replicación transaccional
• Polybase
• FILESTREAMS
High Availability
• Database mirroring
Services
• StreamInsight
• Reporting Services
https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-release-notes#Unsupported
10. ¿Sql server sobre linux? Wtf!
El proceso - Cuando
Primer anuncio a principios de 2016
El proyecto se llamó SQL Server vNext
11. ¿Sql server sobre linux? Wtf!
El proceso – Requisitos/Objetivos
• Calidad y securidad al mismo nivel que en SQL Windows
• Mismo valor en términos de funcionalidad, rendimiento y escalabilidad
• Compatiblidad de aplicación complete entre SQL Server en Windows y Linux
• Nuevas caracteristicas y correcciones deben aparecer en ambos sistemas de forma simultánea
• Establecer los fundamentos para los nuevos servicios de la suite no disponibles al principio.
12. ¿Sql server sobre linux? Wtf!
El proceso – Parecía imposible
• Remover y abstraer todas las dependencias de Windows.
• Décadas de desarrollo invertidas en el desarrollo actual.
• Decenas de millones de lineas de código
• Muchas dependencias de librerias concretas.
• SQL Server XML
• SQLCLR
• Algunos components COM (para backups, por ejemplo).
• Etc..
No se desea reimplementar la funcionalidad dos veces, puesto que eso implicaría un ‘gap’ entre las dos versiones
¿IMPOSIBLE SIN UN DESARROLLO
COMPLETAMENTE NUEVO?
13. ¿Sql server sobre linux? Wtf!
El proceso – Las alternativas
La solución pasaba por el desarrollo de una clase de PAL (Platform Abstraction Layer)
• Para ello había dos opciones ya existentes.
• SOS / SQLOS
https://blogs.msdn.microsoft.com/slavao/2005/07/20/platform-layer-for-sql-server/
Una librería desarrollada en SQL Server 2005
• Incluia una capa de abstracción muy optimizada
• Pero exponia muchas cosas del OS a la DB.
• DrawBridge
https://www.microsoft.com/en-us/research/project/drawbridge/
Este Proyecto estaba centrado en reducer la carga de virtualizar muchas máquinas
en un mismo hardware
• Picoprocess (no necesario)
• LibOS (con 1500+ Win32 ABIs/Stubs).
14. ¿Sql server sobre linux? Wtf!
El proceso – La decisión
La solución pasaba por un entorno hibrido de SQLOS y DrawBridge
• SQLOS
• Eliminar todas las llamadas a las API’s del OS (Win32/Nt syscalls)
• Gestionar todos los subsistemas como
• Storage
• Resource Management
• Etc.
• DrawBridge
• Gestionar todas las llamadas de bajo nivel ya implementadas.
• Se implementan las nuevas.
Llamamos a este hibrido: SQLPAL
https://blogs.technet.microsoft.com/datapla
tforminsider/2016/12/16/sql-server-on-
linux-how-introduction/
15. ¿Sql server sobre linux? Wtf!
El proceso – El funcionamiento
La ‘Host Extension” es, simplemente, una aplicación nativa.
Cuando se inicia la ‘host extension’, se carga e inicializa SQLPAL que, a su vez, se
encarga de levantar SQL Server.
16. ¿Sql server sobre linux? Wtf!
El proceso – Instalacion
https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-overview
18. ¿Sql server sobre linux? Wtf!
Donde funciona
Actualmente SQL Server 2017 corre en las principales plataformas de OS (o
contenedores) que existen en el Mercado.
• Windows
• Linux
• Red Hat (7.3) / File System: xfs/ext4
• SUSE (v12 SP2) / File System: ext4
• Ubuntu (16.04) / File System: ext4
• ¿?
• Containers
• Docker Windows/Mac/Linux (1.8+)
• OpenShift, Red Hat OpenStack, Kubernetes
• Cloud
• Azure
• AWS
• Google Cloud Engine
Linux
Choice of platform
19. ¿Sql server sobre linux? Wtf!
Donde funciona
Mismo sistema de licenciamiento.
LICENSE
20. ¿Sql server sobre linux? Wtf!
Donde funciona
¿Y como me conecto?
Los clientes y drivers de una base de datos son tan importantes como la base de datos en si.
BUENAS NOTICIAS
21. ¿Sql server sobre linux? Wtf!
Donde funciona
¿Y como me conecto?
• SSMS
22. ¿Sql server sobre linux? Wtf!
Donde funciona
¿Y como me conecto?
• SSMS
• Sqlcmd
23. ¿Sql server sobre linux? Wtf!
Donde funciona
¿Y como me conecto?
• SSMS
• Sqlcmd
• SQL Operation Studio
24. ¿Sql server sobre linux? Wtf!
Donde funciona
¿Y como me conecto?
• SSMS
• Sqlcmd
• SQL Operations Studio
• Visual Studio Code
25. ¿Sql server sobre linux? Wtf!
Donde funciona
¿Y como me conecto?
• SSMS
• Sqlcmd
• SQL Operations Studio
• Visual Studio Code
• …
27. ¿Sql server sobre linux? Wtf!
Alternativas
https://azure.microsoft.com/es-es/services/postgresql/ https://azure.microsoft.com/es-es/services/mysql/