Per sistemi operativi (OS da ora in poi) general purpose si intendono gli OS comunemente utilizzati nei server per l’esecuzione di eterogenee task: nella maggior parte dei casi appartengono all’ecosistema Linux (come CentOS, Fedora, Debian, Ubuntu e derivati) ma anche Windows è un altro nome da non dimenticare . Secondo lo sviluppatore Gareth Rushgrove (DZone) questi OS non sono destinati a scomparire definitivamente ma sul medio termine diveranno “la seconda scelta” per il lancio di nuovi servizi.
Considerando infatti quello che sta avvenendo sul mercato, prosegue, gli OS sembrano divenuti dei “dettagli d’implementazione” ovvero non sono pensati per essere gestiti direttamente o allo stesso modo degli OS general purpose che utilizziamo attualmente. I container e la loro discreta diffusione in ambito IT evidenziano lo sviluppo di “stack integrati verticalmente”, ad esempio:
- indipendentemente dalla piattaforma di destinazione (Mac, Windows, AWS, Azure etc.), Docker dispone di un proprio sistema operativo (detto Moby e molto simile alla distribuzione Linux Alpine) non pensato per essere gestito dagli utenti;
- OpenShift Enterprise di RedHat (distribuzione Kubernetes) viene eseguito invece sull’host Atomic (una piattaforma pensata per l’esecuzione di applicazioni containerizzate);
- CloudFoundry, piattaforma cloud computing PaaS ed open source, dispone già di host OS, kernel, file di sistema e container OS – tutti adeguatamente testati e pronti all’uso.
A tutti coloro che hanno avuto modo di usare Docker, afferma Gareth, potrebbero essere venuta in mente le seguenti domande: dove termina il ruolo dell’host process supervisor (systemd) ed inizia invece quello del container process supervisor? Devo per forza interagire direttamente con entrambi? Supponendo che tutto il software presente sul server venga eseguito da container, la risposta è sicuramente no in quanto il lavoro dell’host process diventa superfluo. Dietro all’ipotesi di Gareth si cela indirettamente la constatazione che i container stanno diventando “l’unità di misura del software“. Cosa significa esattamente? Che il software sviluppato o anche acquistato sarà distribuito via container e funzionerà come un container. E ciascuno di essi disporrà di abbastanza metadati per stabilire l’esatto quantitativo di risorse necessarie per operare.
Dal generico allo specifico
I sistemi operativi general purpose finiranno allora in secondo piano, almeno nel mondo dei server. Le macchine che eseguiranno container si affideranno a soluzioni definibili più come “single purpose” e sempre più software, come già detto, sarà eseguito da container. Il primo motivo per cui si affermerà tale approccio è la compatibilità. Creare e testare del software in grado di funzionare perfettamente su varie piattaforme è un’impresa impegnativa. Molto meglio affidarsi ad un “contenitore” in grado di essere lanciato su qualsiasi macchina, indipendentemente dalla versione del kernel e dalla variante OS presente.
Il secondo è una questione di costi. Sviluppare per vari OS e supportarne nel tempo le numerose varianti è oneroso ed allo stesso tempo limitante – si rimarrà entro i “confini” imposti dall’ecosistema e dalle tempistiche di rilascio delle nuove versioni. Grazie alla compatibilità accennata in precedenza sarà invece possibile raggiungere con un singolo prodotto “approvato” un più elevato numero di sistemi – prospettiva commercialmente allettante per i vendor.
In chiusura Gareth pensa a quali potrebbero essere le implicazioni di tale centralità dei container nel mondo IT chiedendosi ad esempio:
- come operareranno i sistemi di monitoraggio agent based in un mondo di stack verticali “isolati”?
- Come si adegueranno al nuovo scenario le policy delle imprese?
- La fine degli OS general purpose condurrà ad una maggiore specializzazione degli amministratori di sistema?
- Ci sarà un passo indietro da parte della community open source che potrebbe reputare tutto questo come un qualcosa indirizzato a soddsfare le necessità dei vendor?
- Come si comporterà questo software in rapida evoluzione in ambienti in cui vigono rigide imposizioni (es: requisiti d’audit)?
- Diverse organizzazioni finiranno sicuramente con l’adottare varie tipologie di sistema operativo, come riusciranno a gestire con efficacia ambienti così eterogenei?
- Tale approccio si affermerà anche nelle principali piattaforme cloud pubbliche?