Le novità di RHEL 8
Red Hat Enterprise Linux 8 nuova release Red Hat

Nell’arco dell’ultimo anno, Red Hat ha catalizzato l’attenzione con una lunga serie di novità: dall’annunciata acquisizione da parte di IBM, al nuovo logo per giungere al rilascio della versione definitiva di Red Hat Enterprise Linux 8 ed all’annuncio delle prossime release di OpenShift ed OpenStack.

Il sistema operativo riveste da sempre un ruolo centrale nel portfolio Red Hat e costituisce la base su cui vengono sviluppati, proposti e fatti evolvere gli altri prodotti dell’ecosistema.

Quindi il rilascio di una nuova major costituisce una svolta non solo in quanto porta con sé le nuove versioni di software e strumenti già consolidati, ma soprattutto perché con l’introduzione di nuove tecnologie può modificare anche radicalmente il modo di intendere i sistemi ed i servizi, determinando conseguenze che esulano da ambiti strettamente tecnici.

Red Hat Enterprise Linux 8 è stata rilasciato da oltre un mese, quindi i tempi sono maturi per un’analisi di tutte le novità che sono state introdotte e di quali siano i vantaggi (e perché no, le problematiche) che queste introducono.

RHEL 8

Iniziamo tuttavia questa analisi sintetica proprio da ciò che non è cambiato. Spesso si sente una famosa citazione:

“Se vogliamo che tutto rimanga come è, bisogna che tutto cambi”.

Nel mondo Red Hat sembra valere esattamente il contrario. Affinché tutto cambi, si evolva e cresca, devono rimanere immutati due capisaldi:

  • il modello di sviluppo opensource,
  • il modello basato su sottoscrizioni.

In questo senso RHEL 8 segue il percorso tracciato oltre 10 anni fa e non porta variazioni in termini di regole, licensing, supporto e pricing. Eppure, le novità non mancano.

Un cuore nuovo

L’evoluzione dei software di sistema, non solo in termini di versione, appare subito evidente. Alcuni cambiamenti meritano un approfondimento così da comprendere più a fondo che cosa determinino e quali miglioramenti introducano, collocando RHEL 8 in un contesto IT più moderno, incentrato sul cloud, sull’automazione e sulla definizione di un nuovo modello operativo e di sviluppo.

RHEL 8, che supporta architetture Intel/AMD 64bit, IMB Power LE, IMB System Z e ARM 64bit, è basata sul Kernel 4.18 e porta con sé importanti aggiornamenti per i pacchetti core del sistema:

  • compilatore gcc 8.2, llvm 6.0 e nuove librerie glibc,
  • python 3.6,
  • Apache 2.4 e PHP 7.2,
  • gestione dei pacchetti con yum 4,
  • XFS come filesystem di default (con supporto per copy on write),
  • NFS 4.2,
  • Boost per supportare il boot da volumi LVM.

A questi si aggiungono nuove caratteristiche e funzionalità:

  • miglioramenti nella crittografia dei dischi,
  • nftables che sostituisce iptables,
  • una nuova gestione dei volumi mediante Stratis che insieme alle evoluzioni di XFS mira a colmare il gap con BTRFS e ZFS,
  • Leapp, che permette di agevolare l’upgrade da RHEL 7,
  • Virtual Data Optimizer (VDO), che ottimizza l’utilizzo dei sistemi di storage,
  • un nuovo stack per container basato su Podman e Buildah.
  • TCP BBR

Rispetto alla versione precedente, sono stati rimossi il supporto per hardware obsoleti (controller P-ATA e SCSI), il supporto per FCoE, BTRFS e Docker, sostituito, come detto, da altri strumenti quali podman, buildah e skopeo.

Installazione, Aggiornamento, Deploy

Il primo sforzo evidente è stato compiuto per semplificare il processo di installazione e di deploy del sistema, agevolando il primo contatto anche per coloro meno abituati al mondo Linux.

In passato esistevano ISO differenti per le varie tipologie di installazione, oggi è possibile scegliere la tipologia di sistema (server, compute node o workstation), il livello di supporto acquistato (self support, standard o premium) e la destinazione d’uso (produzione, sviluppo o disaster recovery) direttamente dal tool di installazione Anaconda.

Aggiornamenti

Anche il processo di aggiornamento è stato semplificato con l’integrazione di nuovi strumenti.

Grazie a LeApp Modernization Framework è possibile aggiornare i sistemi ed i workload esistenti senza la necessità di ricrearli.

Questo può avvenire seguendo tre possibili strategie

  • aggiornamento in place,
  • migrazione verso un nuovo sistema,
  • containerizzazione,

che permettono di superare le limitazioni del preupgrade-assistant tool presente nelle precedenti versioni.

Cockpit

Sebbene a qualche purista possa sembrare strano, il tentativo di semplificare la gestione del sistema ha portato ad una maggiore integrazione di cockpit, una console web di amministrazione che permette di:

  • gestire gli utenti,
  • configurare il networking,
  • gestire gli storage (integrandosi anche con la nuova funzionalità di Network Bound Disk Encryption),
  • gestire virtual machine,
  • gestire le sottoscrizioni,
  • avviare, fermare e controllare i servizi,
  • accedere a report, grafici e log (tra cui anche quelli generati dalla nuova capacità di session recording).

Application Stream

Una volta installato il sistema si scopre la prima grande novità: a fronte dei molteplici repository a cui si era abituati (Base, Supplementary, Optional, Extra e molti altri), oggi i contenuti di RHEL 8 sono distribuiti attraverso due repository principali:

  • Base OS, che contiene il core del sistema operativo alla base di ogni installazione e che segue regole analoghe alle precedenti versioni, con un support life cycle di 10 anni;
  • AppStream, il cui contenuto è costituito da applicazioni user space, linguaggi, database, strumenti che vengono distribuiti sia come rpm standard sia come moduli, cioè gruppi consistenti di rpm finalizzati all’installazione delle dipendenze per le singole versioni di componenti specifici. La frequenza di aggiornamento è trimestrale e, in base all’applicazione, il support life cycle può variare.

I software resi disponibili come moduli attraverso AppStream sostituiscono e superano il concetto delle software collection presenti nelle distribuzioni precedenti di RHEL: il medesimo software può essere installato in versioni differenti che convivono sullo stesso sistema e i moduli possono seguire release cycle specifici, legati all’evoluzione del software e non del sistema operativo.

Questo permette una maggiore flessibilità nella configurazione di RHEL 8 ed una semplificazione degli aggiornamenti, senza che questo comprometta la consistenza e la stabilità del sistema.

Composer

Un sistema progettato in un contesto in cui l’integrazione con il cloud è un obiettivo primario deve permettere la creazione di immagini personalizzate in grado di rispondere alle esigenze di deploy in ambienti ibridi, costituiti da sistemi fisici, sistemi virtuali, cloud pubblici e privati.

Con l’utilizzo di due strumenti

  • Lorax, che permette la creazione di immagini avviabili di sistemi basati su Anaconda,
  • Weldr, che permette l’integrazione di Lorax in Cockpit.

Viene data la possibilità all’utente di creare, eventualmente da interfaccia web, immagini di sistemi comprendenti sistema operativo, software e configurazioni, di cui può essere eseguito direttamente l’upload in cloud ed il deploy.

File System e Storage

L’esclusione di BTRFS e ZFS, il primo perché mai davvero maturato, il secondo per problemi di licensing, ha lasciato una lacuna che in RHEL 8 è stata colmata con l’introduzione di Stratis.

Stratis è un volume-managing filesystem, come BTRFS e ZFS, cioè uno strumento in grado di fondere più block device (dischi o partizioni) in un pool, sul quale vengono integrati direttamente i filesystem (XFS). Questo permette una gestione molto flessibile dello storage e l’implementazione di funzionlità evolute come thin provisioning, snapshot e monitoring.

Un altro strumento molto importante per l’ottimizzazione e la gestione dei sistemi di storage è il Virtual Data Optimizer (VDO), già introdotto nelle ultime release di RHEL7. La riduzione dello spazio occupato dai dati si traduce in una diminuzione dei costi, ancora più evidente se è applicato in un contesto cloud: si ottengono infatti minore occupazione di spazio di storage sia per la fase computazionale sia per l’archiviazione di backup e snapshot e minore richiesta di banda in fase di replicazione, che si traduce anche in aumento prestazionale.

Il VDO, che è implementato direttamente mediante moduli nel Kernel, combina 3 tecniche per ridurre la dimensione dei dati:

  • zero-block elimination: i blocchi costituiti da soli zero vengono identificati e salvati solo in termini di metadati;
  • data deduplication: dati uguali non vengono duplicati ed è mantenuto solo il doppio riferimento nei metadati;
  • data compression: infine un algoritmo di compressione è applicato ai singoli blocchi di dati prima che questi vengano effettivamente scritti.

Anche NFS è stato aggiornato alla versione 4.2 e presenta migliorie sia prestazionali, quali l’implementazione di server-side copy, sia in termini di sicurezza con la possibilità di abilitare SELinux sui filesystem NFS.

Container

L’approccio al mondo dei container è profondamente cambiato in RHEL8. Docker non è più presente ed è stato sostituito dall’integrazione di altri strumenti, tra cui, principalmente, Podman, Buildah e Skopeo.

Docker è stato per anni uno standard de facto per quanto riguarda il formato delle immagini e l’ambiente runtime dei container nonché l’unico supportato dallo strumento di orchestrazione Kubernetes. L’evoluzione di Kubernetes, che si è reso indipendente dalla tecnologia e dall’ambiente di esecuzione introducendo un nuovo livello di astrazione e che si è affermato a sua volta come lo strumento standard di orchestrazione, ha ridimensionato molto la centralità di Docker.

Inoltre, il percorso di standardizzazione portato avanti da organizzazioni come l’OCI (Open Container Initiative) ha permesso la nascita di nuovi progetti che sono riusciti a scalzare Docker, la cui struttura monolitica incentrata su un demone in esecuzione con permessi di root è spesso vista come un problema.

In RHEL8 hanno quindi trovato spazio tre strumenti che, con una chiara suddivisione dei rispettivi compiti, non necessitano di demoni in esecuzione e che, perlopiù, non richiedono privilegi di root.

  • Buildah: è lo strumento che si occupa della creazione di immagini dei container portabili e conformi alle specifiche OCI, partendo da immagini esistenti, ex novo o sulla base di Dockerfile.
  • Podman: è lo strumento per lo sviluppo, la gestione e l’esecuzione di container conformi agli standard OCI su sistemi Linux. Anche se offre maggiori funzionalità, implementa la stessa sintassi di Docker.
  • Skopeo: è un’utility capace di eseguire operazioni sulle immagini e sui repository, quali copie, cancellazioni, verifica della signature ed analisi senza effettuare il pull.

In sintesi, quindi, questo nuovo stack costituisce uno strumento più snello e modulare, che offre maggiori garanzie in termini di sicurezza ed è conforme agli standard OCI così da garantire interoperabilità anche con altri ambienti.

Security & Compliance

La sicurezza è sicuramente uno degli aspetti che maggiormente caratterizzano RHEL e, se la rapidità negli aggiornamenti e la sicurezza dei processi non costituiscono una novità, la release 8 introduce significative novità.

  • USBGuard: un framework che offre protezione contro device USB potenzialmente dannosi implementando capacità di whitelisting e blacklisting sulla base degli attributi della periferica grazie a funzionalità insite nel Kernel.
  • Network Bound Disk Encryption: un set di strumenti che permette di decifrare un disco crittografato in fase di boot solo in uno specifico contesto di rete. Questo è ottenuto grazie all’integrazione nei tool di avvio di un client (CLEVIS) che collegandosi ad un key server (TANG) ottiene la passphrase di decifratura.
  • Integrazione di OpenSCAP ed Ansible Automation: OpenSCAP è una raccolta di specifiche gestita dal National Institute of Standards and Technology (NIST) per la gestione della sicurezza per sistemi di tipo enterprise. L’integrazione con Ansible permette di verificare ed automatizzare l’implementazione delle policy previste dagli standard.
  • Integrazione con Active Directory: RHEL 8 può autenticarsi direttamente su server Active Directory oppure su Identity Manager (IPA) a sua volta in trust verso un server Active Directory. Non esiste purtroppo la possibilità di autenticare i sistemi Windows direttamente su Active Directory Samba.
  • Session recording: mediante l’utilizzo di tlog e l’integrazione con cockpit è possibile registrare l’operato degli utenti sul sistema, così da mantenere sempre un completo controllo.
  • OpenSSL 1.1.1 e TLSv1.3: per sfruttare i più recenti protocolli crittografici.

Inisghts

Quanto descritto evidenzia l’attenzione posta nella semplificazione e nell’automazione della gestione di ambienti sempre più complessi. In quest’ottica Red Hat propone, a partire dal 2019, l’accesso gratuito, senza sottoscrizioni separate, a Red Hat Insights per RHEL7 e RHEL8.

Red Hat® Insights fornisce in modalità Software as a Service (SaaS) uno strumento di analisi proattiva e predittiva per Enterprise Linux, OpenStack, container ed ambienti virtualizzati.

Una volta registrati i sistemi al servizio, l’infrastruttura IT viene analizzata sulla base della knowledgebase in modo da condurre assessment in real time volti a identificare e prevenire i rischi legati a prestazioni, disponibilità, stabilità e sicurezza. Il risultato dell’analisi viene presentato in modo visivamente semplice e i problemi riscontrati sono ordinati secondo di criteri di priorità e organizzati sulla base di regole specifiche così da focalizzare l’attenzione sulle situazioni che potenzialmente comportano rischi maggiori.

Una volta identificati i potenziali problemi, Insight propone accorgimenti o procedure per risolverli o mitigarne l’effetto. L’integrazione con Ansible Automation consente di realizzare playbooks per automatizzare l’implementazione delle soluzioni sui sistemi dell’infrastruttura.

Any Cloud, any workload. One OS.

Red Hat Enterprise Linux 8 è un sistema operativo moderno e flessibile, capace di adattarsi a scenari che vanno dal datacenter a complesse configurazioni multicloud. Red Hat, come sempre, ha posto il sistema operativo al centro del proprio progetto, non solo come elemento tecnologico dello stack, ma come vero e proprio catalizzatore del processo di innovazione che coinvolge container, hybrid cloud, DevOps, intelligenza artificiale, IoT.

RHEL 8 costituirà quindi la base per l’intero portfolio di soluzioni hybrid cloud, che comprende Red Hat OpenShift 4, Red Hat OpenStack Platform 15 e CoreOS.

Con queste premesse e con la complessità degli scenari che si delineano, ottimizzazione, automazione e semplificazione diventano le parole chiave di Red Hat Enterprise Linux 8, che non si traducono tuttavia in compromessi per quanto riguarda stabilità e sicurezza.

RHEL 8 - Red Har Enterprise Linux 8