Llegamos a ustedes gracias a:



Reportajes y análisis

Es hora de comenzar a planear SQL Server en Linux

[08/02/2017] Traer SQL Server a Linux es uno de los pasos más grandes en el plan de Microsoft para ayudar a los desarrolladores a construir cualquier aplicación para (y desde) cualquier plataforma. Y a pesar de que solo se anunció en la primavera [septentrional] del 2016, no debería pensar que SQL Server en Linux es un subconjunto de la oferta completa de Windows, anota Rohan Kumar, gerente general del grupo de sistemas de bases de datos de Microsoft.

"Es el mismo producto de SQL Server", señala a CIO.com. "Tenemos un solo producto de SQL Server, y Windows y Linux son sus opciones de implementación".

Esto significa que obtendrá características significativas de SQL Server, desde grupos de disponibilidad y autenticación de Active Directory hasta enmascaramiento dinámico de datos, seguridad a nivel de fila y cifrado de datos transparente, además de integraciones de Azure como base de datos elástica y la opción de siempre cifrar. No todas estas características estarán en la primera versión de SQL Server en Linux, advierte Kumar. "Pero a largo plazo, es solo la misma base de datos. Si desea que la base de datos de estiramiento o de copia de seguridad o réplica, la tendrá".

Las áreas donde SQL Server en Linux diferirá más de la versión de Windows Server serán donde las características dependen del propio sistema operativo. Si utiliza el clúster para la alta disponibilidad y la recuperación de desastres (DR, por sus siglas en inglés), depende del clúster de conmutación por error de Windows Server. En Linux, la forma en que se hace la alta disponibilidad y la DR difiere incluso entre RedHat, Ubuntu y SuSE, y SQL Server en Linux usará herramientas de código abierto como Pacemaker para el clustering.

Hay algunas características de nivel de base de datos que también están estrechamente vinculadas a Windows, como FileTable, que permite a las aplicaciones acceder a archivos y documentos almacenados en SQL Server como si estuvieran en el sistema de archivos. "Con FileTable, le damos acceso transaccional a los clientes Windows a través de la API de Win32, para que puedan acceder a blobs de una manera mucho más eficiente y escalable. Si almacena blobs de forma nativa en SQL Server, eso funcionará en Linux, pero la característica de tabla de archivos no lo hará ", explica Kumar.

"Pero hay muy pocas características de este tipo. Conceptualmente, es el mismo que SQL Server: toda la base de datos relacional central, todas las inversiones que hemos hecho en la tienda de la columna y OLTP en memoria -todas ellas funcionan a través de ambos productos", anota Kumar.

La nueva versión de SQL Server del 2017 se enviará tanto para Windows y Linux. Después de la liberación significativa del 2016, las versiones de Windows tendrán un puñado de mejoras. "Vamos a empujar los límites de la base de datos inteligente con R", indica Kumar (que es la forma en que Microsoft está poniendo funciones "cognitivas" basadas en el aprendizaje automático, como el reconocimiento facial y de OCR en la base de datos en sí, y no habrá mejoras en polybase. "Pero la mayoría del foco de esta versión está en torno a hacer funciones de primera clase en Linux".

Escoja su base de datos no su sistema operativo

SQL Server para Linux le permite desacoplar sus decisiones de bases de datos de sus decisiones de plataforma. "Se trata de elegir", señala Kumar. "Los entornos mixtos son muy comunes; casi todas las grandes empresas tienen Windows Server y Linux. Una de las cosas que hemos escuchado constantemente de los CIO es 'cuando recogemos SQL Server, tenemos que decidir sobre nuestras inversiones en el sistema operativo en ese momento, y eso es muy diferente de otras bases de datos'".

El analista de Gartner, Donald Feinberg señala a CIO.com que oye mensajes similares de empresas, y espera que SQL Server en Linux atraiga tanto a los clientes nuevos y a los existentes. "Históricamente, hay muchos clientes que decidieron no utilizar SQL Server, ya que solo se ejecutaba en Windows Server. A pesar de que muchos elegirán utilizar Windows Server ahora, ya tienen el conocimiento de que SQL Server se ejecuta en Linux como otra opción de plataforma. Así, a pesar de que no pueden utilizar Linux ahora, lo tienen como una opción a futuro".

La demanda de la opción se ha incrementado en los últimos dos o tres años, indica Kumar, y con frecuencia tiene menos que ver con la filosofía, sino más bien con la estructura operativa. "Por lo general, hay dos equipos diferentes que gestionan el sistema operativo y SQL Server, y esa coordinación se convierte en un punto de fricción. No queremos ser rígidos y crear fricciones".

Feinberg espera que SQL Server en Linux sea de mayor interés para la empresa, en vez de soluciones a nivel de departamento de SQL Server; aunque señala que "permite a las organizaciones otra opción para la consolidación de las implementaciones departamentales más pequeñas para servidores más grandes que ejecutan Linux". También podría significar que SQL Server se vuelve una oferta de base de datos alojada en la nube más común, sugiere. "Permite a los proveedores de servicios de nube la opción de utilizar Linux para SQL Server, si prefieren no apoyar Windows Server".

Ajustarse a los desarrolladores de Linux y los flujos de trabajo de administración

La clave para hacer que SQL Server en Linux sea fácil de adoptar, es integrarla bien tanto con el entorno Linux y las implementaciones de servidor SQL existentes. Se puede utilizar un clúster de Windows y Linux mezclado para migrar una base de datos SQL Server de Windows a Linux sin ningún tiempo de inactividad, e incluso se puede ejecutar un conjunto mixto en la producción. Los primeros usuarios en la vista previa privada de SQL Server en Linux (que incluyó a más de la mitad de las empresas Fortune 500) han estado haciendo precisamente eso.

"Los clientes también han dicho que quieren ser capaces de realizar copias de seguridad desde Windows, restaurar en Linux y adjuntarlas a su base de datos. Todo esto hace que a SQL en Linux le sea fácil deslizarse en su entorno", indica Kumar.

Los desarrolladores serán capaces de trabajar en contra de SQL Server en Linux, de la misma manera que lo hacen con SQL Server en Windows, utilizando SQL Server Management Studio o herramientas de datos de servidor SQL de Visual Studio. Pero los desarrolladores que están acostumbrados a trabajar de una manera diferente, también pueden utilizar código de Visual Studio en Linux o Mac para conectarse a SQL Server e incluso editar T-SQL. Haciendo que SQL Server encaje bien en ese mundo hace que el desarrollo de SQL Server se abra a un mundo mucho más amplio que el enfoque tradicional de Windows.

"Como entorno de desarrollo, VS Code trae una gran cantidad de énfasis en los drivers que no son de Microsoft", señala Kumar. "Si eres un desarrollador de Java, un desarrollador de Python, un desarrollador de R, estamos haciendo que todos estos stacks sean de primera clase, no solo ADO.NET. Queremos estar muy centrados ante los desarrolladores que tradicionalmente no han examinado SQL Server, ya que se limita a Windows. Estamos abriendo eso. Abrimos nuestra biblioteca JDBC, y eso nos permitió entrar en el marco de Maven, por lo que es muy fácil que un desarrollador de Java obtenga hilos de SQL Server desplegados en Linux ".

Mantener las cosas familiares para aquellos desarrolladores que no son de Microsoft y para los administradores de Linux es una solicitud que Kumar está escuchando de muchos CIO. "No es solo que las copias de seguridad de SQL Server se ejecuten y desempeñen bien en Linux, sino que tienen que funcionar en un entorno donde la manejabilidad y las herramientas entren en juego.

En Windows Server, las herramientas y la experiencia de gestión son, en su mayoría, de la interfaz gráfica de usuario. "En el mundo de Linux y ajeno a Miscrosoft, hay mucho más énfasis en la interfaz de línea de comandos", señala Kumar. "La gente piensa en poder ejecutar scripts Bash, siendo capaz de hacer scripts de la infraestructura de gestión, por lo que una parte importante de las inversiones de herramientas que estamos realizando están alrededor de eso. Queremos hacer que la capacidad de administración de SQL Server se sienta muy nativa para los administradores de Linux".

Hacer que SQL Server se sienta nativo para los administradores de Linux significa que varias herramientas de línea de comandos trabajen con SQL Server, en la parte superior de la capacidad de desplegar por completo de la línea de comandos de Docker. Por ejemplo, DMVTOOL le permite ver las vistas de administración dinámica de SQL Server desde la línea de comandos, por lo que se puede obtener información sobre el rendimiento de la base de datos. También hay soporte para scripts de PowerShell. "PowerShell está recibiendo en .NET Core y eso se ejecuta en Linux. Estamos trabajando en otro soporte de scripting como Bash, pero hay mucho apoyo a PowerShell", indica Kumar.

A pesar de la clara demanda de herramientas de línea de comandos, Kumar señala que los catadores que ya no estaban familiarizados con SQL Server, se han impresionado por las herramientas gráficas como SQL Server Management Studio. "Por lo tanto, estamos buscando la manera de conseguir algunas de las capacidades de gestión básicos de extremo a extremo expuesto a través de una interfaz de usuario", añade.

SQL Server no trae Windows a Linux

La forma en que Microsoft ha traído SQL Server para Linux no trae un subsistema de Windows, sino que también significa que no tiene que volver a escribir algo de código básico.

"Cualquier software que se ejecuta en múltiples plataformas tiene que crear una capa de abstracción, por lo que el código que se ejecuta no es consciente de que el sistema operativo subyacente se está ejecutando", explica Kumar. De hecho, SQL Server ha tenido durante mucho tiempo una capa del sistema operativo del servidor SQL en Windows que abstrae muchas de las construcciones de Windows. "Necesitamos un tamaño de página más alto del que Windows admite, necesitamos que la construcción programada sea más sofisticada de lo que permite Windows", señala.

"Lo que hemos construido es una capa de abstracción de plataforma SQL que expone las API de gestión de memoria, gestión de seguridad, gestión de procesos o programación ... todas las tareas que se ejecutan por encima, que son agnósticas al sistema operativo que se está ejecutando", señala Kumar. "Escogimos un cierto código de los sistemas principales de Windows para hacer que SQL Server funcione. Nos estamos quedando con menos del uno por ciento de Windows de la capa de abstracción de plataforma; y la razón por la que lo hacemos es porque hay ciertas bibliotecas que tenemos en SQL Server que vienen desde Windows, como XML SQL Server, que depende de Microsoft XML Core Services, que viene con Windows".

Lo que el equipo de SQL Server hizo fue combinar ese menos del uno por ciento de Windows con la tecnología de un proyecto de investigación de Microsoft llamado Drawbridge, originalmente diseñado como un sistema operativo de la biblioteca para crear muy pequeños contenedores virtualizados y ejecutar aplicaciones de Windows en un sistema operativo host de Windows (Kumar dice que Drawbridge tiene una sobrecarga de aproximadamente 8MB). "Eso nos abre un camino en el que podemos implementar 30 o 40 interfaces de aplicaciones binarias que sean muy específicas para un sistema operativo, y las fusionamos con la capa del sistema operativo SQL para crear SQL PAL".

SQL PAL es autónomo y, lo más importante, no afectará la forma de parchar y actualizar sus servidores Linux. "Si cambia el horario de ponerle parches a un cliente, debería pensarlo dos veces", indica Kumar.

Preparándose para SQL Server en Linux

Si está interesado en ejecutar SQL Server en Linux, tendrá que probar la versión previa pública -no tanto para tratar las características, que debe conocer, sino para comprender el entorno de gestión y despliegue.

Si los CIO tienen preguntas acerca de la implementación en su propio entorno o sobre las funciones específicas que quieren soportar, Kumar les anima a hablar con Microsoft ahora. "Entre febrero y marzo del 2017 vamos a cerrar la firma de plan para el conjunto de características, basado en la retroalimentación del cliente, y compartir el mensaje de la forma más amplia", indica.

El siguiente paso será Customer Technology Preview, y Microsoft trabajará con los primeros usuarios para obtener varios despliegues de producción de SQL Server en Linux el próximo año, para que puedan aprender desde antes del lanzamiento.

Hay claramente una oportunidad para que SQL Server en Linux se haga cargo de algunas funciones de SQL Server en Windows, algo que también se simplifica por la nueva superficie de programación coherente entre las diferentes ediciones, por lo que es más fácil desarrollar el uso de las características de SQL Server como siempre cifradas y elegir la edición y plataforma correctas cuando se trata de la implementación. "En términos de licencias y precios, es solo un punto de implementación", enfatiza Kumar. "No hay ningún cambio en el precio. Todo el Software Assurance que tiene, todas las licencias que ha acumulado con esta opción de implementación".

Pero también querrá buscar en áreas en las que SQL Server está recién siendo relevante. "Es la misma superficie de programación en todas las ediciones, incluso la edición gratuita de SQL Server Express en Linux, y que resuena muy bien con los desarrolladores", anota Kumar. "Con la superficie de programación coherente y la opción de desplegar en Linux, nunca antes han tenido una elección así", finaliza.

Mary Branscombe, CIO (EE.UU.)