Durante l’Ignite 2017 (25-29 settembre 2017), importante evento organizzato da Microsoft, SQL Server 2017 è entrato finalmente in disponibilità generale. La novità più rilevante dell’ultima incarnazione dell’apprezzato database è il supporto a varie distribuzioni Linux (Red Hat Enterprise Linux 7.3, Ubuntu Linux 16.04, Suse Linux Enterprise Server v12 SP2), una caratteristica che alcuni anni fa anche il più esperto degli analisti avrebbe faticato a prevedere.
“E’ un grande traguardo per noi come compagnia. [SQL Server su Linux] è il più grande prodotto server [creato da Microsoft]” ha dichiarato Rohan Kumar (general manager SQL Server) nel corso di una recente intervista che andremo ad analizzare nell’approfodimento di oggi. L’iter che ha portato alla storica svolta è stato lungo e complesso. L’idea di un porting Linux aveva fatto capolino più volte tra le mura di Redmond ma non aveva mai trovato l’appoggio dei piani alti: tra i vari rischi anche quello di perdere gli utenti che, pur di utilizzare SQL Server, si erano “converititi” a Windows Server acquistandone la licenza.
Un problema attualissimo e sul quale il giornalista interpella il general manager: “Molti clienti si trovano bene con Windows Server, non credo che lo abbandoneranno. Ma c’è sempre stata una parte di mercato in cui Windows non è mai stato considerato come un’opzione. [Attaccheremo in modo aggressivo quel segmento sfruttando il valore di SQL Server ed il prezzo competitivo [rispetto a soluzioni come quelle proposte da Oracle]” ha risposto Kumar.
Ritornando alle vicende del porting, la situazione è cambiata improvvisamente nel 2014 quando Satya Nadella è stato nominato CEO della compagnia. Kumar rimase addirittura sorpreso dalla rapidità con cui ricevette l’autorizzazione a procedere: superate le perplessità dei vertici aziendali bisognava ora affrontare una questione ancora più cruciale e delicata ovvero il “come effettuare il porting Linux di un prodotto pensato per ambienti Windows?”.
La risposta al quesito è SQLPAL (Platform Abstraction Layer), un layer di compatabilità che permette di eseguire anche su Linux il subset di librerie Windows adoperate da SQL Server. L’implementazione del SOS nel SQLPAL (SQL Operating System, elemento chiave che si occupa di gestire la memoria ed i thread del database) ha consentito al primo di inviare direttamente le call alle API native Linux.
Le funzionalità assenti nella variante Linux
Alcune caratteristiche della versione Windows non sono state implementate nella controparte Linux come ad esempio i servizi di analisi ed i servizi machine learning, gli strumenti di gestione, le funzionalità File Table (legata al file system dell’OS Microsoft) e replication.
In base alle informazioni in possesso del giornalista quest’ultima, insieme ad altre funzionalità “core” del database, dovrebbe comunque arrivare in uno dei prossimi pacchetti di aggiornamento cumulativi – il primo dei quali è previsto entro metà ottobre. L’implementazione dei servizi di analisi e reporting richiederà invece diverso tempo perchè attualmente la domanda è scarsa ed il team vuole dare la precedenza ad altre questioni.
SQL Server Linux può vantare invece una procedura di installazione più semplice rispetto alla versione Windows: l’installazione di ogni componente richiede una singola linea di codice e la configurazione è effettuata attraverso l’utility mssql-conf o le environment variables. Kumar non intende ovviamente trascurare gli utenti Windows e si lascia sfuggire che è in fase di studio una soluzione per agevolare le procedure (probabilmente un comando d’installazione PowerShell).
E per quanto riguarda le prestazioni? Microsoft afferma che non ci sono sostanziali differenze tra Windows e Linux.
Altre novità e futuri aggiornamenti
Rispetto ad SQL 2016 spicca anche il supporto alle query Graph (già presente nella versione cloud e per la quale la domanda è molto alta, precisa Kumar), l’Adaptive Query Processing e l’Automatic Tuning (ottimizzazione delle query), il supporto dei servizi Machine Learning a Python – definito come “standard” per interagire con librerie deep learning quali Tensorflow (Google) e Cognitive Toolkit (Microsoft).
Tra l’edizione 2016 e 2017 di SQL Server sono passati passati però solo 15 mesi, osserva il giornalista, ed a parte il supporto multipiattaforma (Linux + Windows) le altre caratteristiche non sono poi così rivoluzionarie. Kumar risponde affermando che Microsft intende accorciare le tempistiche di lancio dei futuri prodotti per offrire in modo costante innovazione:
“In passato [seguivamo la filosofia di un nuovo prodotto ogni 2-4 anni]. Dovremmo avere delle release più frequenti? L’innovazione arriverebbe più in fretta per voi [gli utenti, ndr]. [Seguiamo poi la filosofia dell’innovazione prima nel cloud]. Le funzionalità [di] SQL Server 2017 erano disponibili già da tempo su Azure SQL. Nel cloud abbiamo questo grandioso [e continuo afflusso] di feedback. Non abbiamo ancora preso una decisione definitiva ma [siamo certamente orientati ad effettuare delle release più frequenti]” ha aggiunto il general manager.