I container rappresentano una versione semplificata dello spazio utente del sistema operativo Linux: in effetti, sono il «minimo indispensabile». Tuttavia, si tratta pur sempre di un sistema operativo completo, e quindi la qualità di questo contenitore è altrettanto importante quanto quella di un sistema operativo a tutti gli effetti. È per questo motivo che per molto tempo abbiamo offerto , affinché gli utenti potessero disporre di contenitori certificati, moderni e aggiornati a livello aziendale. L'esecuzione di (container images) RHEL su host di contenitori (container hosts) RHEL garantisce compatibilità e portabilità tra diversi ambienti, senza contare che si tratta già di strumenti familiari. C'era, tuttavia, un problema: non potevi semplicemente trasferire un'immagine a qualcun altro, nemmeno se si trattava di un cliente o di un partner che utilizzava Red Hat Enterprise Linux.

Ma ora tutto è cambiato
Con il rilascio dell'immagine di base universale Red Hat Universal Base Image (UBI) è ora possibile ottenere l'affidabilità, la sicurezza e le alte prestazioni delle immagini di contenitori ufficiali di Red Hat, indipendentemente dal fatto che si disponga di un abbonamento o meno. Questo significa che puoi costruire un'applicazione containerizzata su UBI, collocarla in un registry di contenitori a tua scelta e condividerla con il mondo intero. Red Hat Universal Base Image consente di costruire, condividere e collaborare a un'applicazione containerizzata in qualsiasi ambiente — dove vuoi.

Grazie a UBI, è possibile pubblicare e eseguire le proprie applicazioni praticamente in qualsiasi infrastruttura. Ma se le si esegue su piattaforme Red Hat, come Red Hat OpenShift e Red Hat Enterprise Linux, si possono ottenere ulteriori vantaggi (un bel bonus!). E prima di passare a una descrizione più dettagliata di UBI, permettimi di fornirti un breve FAQ su perché è necessaria l'abbonamento RHEL. Quindi, cosa succede quando si esegue un'immagine UBI sulla piattaforma RHEL/OpenShift?

E ora che il marketing è soddisfatto, parliamo più dettagliatamente di UBI
Motivi per utilizzare UBI
Cosa devi percepire per capire che UBI ti sarà utile:
- I miei sviluppatori vogliono utilizzare immagini di contenitori che possano essere distribuite ed eseguite in qualsiasi ambiente
- Il mio team operazioni vuole un'immagine di base supportata con un ciclo di vita a livello aziendale
- I miei gli architetti vogliono offrire ai miei clienti / utenti finali
- I miei i clienti vogliono una supporto a livello aziendale senza compromessi per tutto il loro ambiente Red Hat
- Il mio la comunità vuole condividere, eseguire, pubblicare applicazioni containerizzate letteralmente ovunque
Se anche solo uno di questi scenari si adatta a te, vale sicuramente la pena considerare UBI.
Più di un semplice immagine di base
UBI è meno di un OS completo, ma ha tre elementi importanti:
- Un set di tre immagini di base (ubi, ubi-minimal, ubi-init)
- Immagini con ambienti di runtime già pronti per vari linguaggi di programmazione (nodejs, ruby, python, php, perl, ecc.)
- Un insieme di pacchetti correlati nel repository YUM con le dipendenze più comuni

UBI è stato progettato come base per applicazioni cloud-native e web, sviluppate e distribuite in contenitori. Tutto il contenuto in UBI è un sottoinsieme di RHEL. Tutti i pacchetti in UBI provengono tramite i canali RHEL e sono supportati come RHEL quando vengono eseguiti su piattaforme Red Hat supportate, come OpenShift e RHEL.

Per garantire un supporto di qualità ai contenitori è necessario un notevole impegno da parte di ingegneri, esperti di sicurezza e altre risorse aggiuntive. Non è solo necessario testare le immagini di base, ma anche analizzare il loro comportamento su qualsiasi host supportato.
Per semplificare le attività legate all'aggiornamento, Red Hat sta attivamente sviluppando e supportando in modo tale che UBI 7 possa essere eseguito, ad esempio, su host RHEL 8, mentre UBI 8 può essere eseguito su host RHEL 7. Questo conferisce agli utenti la necessaria flessibilità, sicurezza e tranquillità, ad esempio durante gli aggiornamenti delle piattaforme delle immagini di contenitori o degli host utilizzati. Ora tutto questo può essere diviso in due progetti separati.
Tre immagini di base

Minimal – concepita per applicazioni con tutte le dipendenze (Python, Node.js, .NET, ecc.)
- Set minimo di contenuto preinstallato
- Senza file eseguibili suid
- Strumenti minimi del gestore di pacchetti (installazione, aggiornamento e rimozione)
Piattaforma – per qualsiasi applicazione che viene eseguita su RHEL
- Stack crittografico OpenSSL unificato
- Stack YUM completo
- Incluse utilità di base utili del sistema operativo (tar, gzip, vi, ecc.)
Multi-Service – semplifica l'esecuzione di più servizi in un unico contenitore
- Configurato per avviare systemd all'avvio
- Possibilità di attivare i servizi durante la fase di build
Immagini dei container con ambienti di esecuzione già pronti per i linguaggi di programmazione
Oltre alle immagini di base che consentono l'installazione del supporto per i linguaggi di programmazione, UBI include immagini pre-costruite con ambienti di esecuzione già pronti per diversi linguaggi di programmazione. Molti sviluppatori possono semplicemente prendere un'immagine e iniziare a lavorare sull'applicazione che stanno sviluppando.
Con il lancio di UBI Red Hat offre due set di immagini – basati su RHEL 7 e RHEL 8. Queste sono state adattate, rispettivamente, da Red Hat Software Collections (RHEL 7) e Application Streams (RHEL 8). Questi ambienti di esecuzione sono mantenuti aggiornati e standard ricevono fino a quattro aggiornamenti all'anno, garantendo sempre accesso alle versioni più recenti e stabili.
Ecco un elenco delle immagini dei container UBI 7:

Ecco un elenco delle immagini dei container per UBI 8:

Pacchetti associati
Utilizzare immagini pronte è davvero comodo. Red Hat ne garantisce l'aggiornamento in tandem con il rilascio di una nuova versione di RHEL e quando ci sono aggiornamenti di sicurezza critici CVE in conformità con la politica di aggiornamento per poter prendere una di queste immagini e iniziare immediatamente a lavorare sull'applicazione.

Ma a volte, quando si crea un'applicazione, è possibile che si renda necessario un pacchetto aggiuntivo. Oppure, a volte, per far funzionare l'applicazione, è necessario aggiornare uno o più pacchetti. Ecco perché le immagini UBI sono fornite con un insieme di RPM, disponibili tramite yum, distribuiti attraverso una rete di distribuzione dei contenuti veloce e altamente disponibile (prendi il pacchetto!). Quando esegui yum update nel tuo CI/CD al momento critico del rilascio, puoi essere certo: funzionerà.
RHEL è la base
Non ci stanchiamo mai di ripetere che RHEL è la base di tutto. Sai quali team in Red Hat lavorano alla creazione delle immagini di base? Ecco alcuni di questi:
- Il gruppo di ingegneria si occupa di garantire che le librerie di base, come glibc e OpenSSL, e ambienti di esecuzione per linguaggi, come Python e Ruby, offrano prestazioni stabili e funzionino affidabilmente con carichi di lavoro in ambiente containerizzato.
- Il team di sicurezza prodotti si occupa di correggere tempestivamente bug e problemi di sicurezza nelle librerie e negli ambienti di linguaggio, valutando l'efficacia del loro lavoro mediante un indice speciale .
- Il team di product manager e ingegneri si occupa di aggiungere nuove funzionalità e garantire un ciclo di vita prolungato del prodotto, offrendo fiducia sugli investimenti che possono essere utilizzati come base.
Red Hat Enterprise Linux funge da eccellente host e immagine per container, ma per molti sviluppatori è fondamentale poter lavorare con il sistema in formati diversi, alcuni dei quali potrebbero andare oltre gli scenari d'uso supportati del sistema Linux. E qui intervengono le immagini universali UBI.
Immagina che proprio adesso, in questo momento, stai semplicemente cercando un'immagine di base per iniziare a lavorare su un'applicazione containerizzata semplice. Oppure sei più vicino al futuro e stai passando da container autonomi, eseguiti su un motore di container, a una storia cloud-native usando operatori (costruire e certificare operatori) che funzionano su OpenShift. In ogni caso, UBI fornirà una base eccellente per questo.

I container includono una versione semplificata dello spazio utente del sistema operativo in un nuovo formato di imballaggio. Il rilascio delle immagini UBI stabilisce un nuovo standard del settore per lo sviluppo containerizzato, rendendo disponibili container di livello aziendale per tutti gli utenti, sviluppatori software indipendenti, comunità open source. In particolare, gli sviluppatori software possono standardizzare i propri prodotti utilizzando una base unica e collaudata per tutte le loro applicazioni containerizzate, comprese . Le aziende sviluppatrici che utilizzano UBI hanno anche accesso alla certificazione Red Hat Container Certification e alla certificazione Red Hat OpenShift Operator, che consente loro di verificare continuamente il software eseguito su piattaforme Red Hat come OpenShift.

Come iniziare a lavorare con un'immagine
In breve, è molto semplice. Podman è disponibile non solo in RHEL, ma anche in Fedora, CentOS e in diverse altre distribuzioni Linux. Tutto ciò che è necessario fare è scaricare l'immagine da uno dei seguenti repository e partire.
Per UBI 8:
podman pull registry.access.redhat.com/ubi8/ubi
podman pull registry.access.redhat.com/ubi8/ubi-minimal
podman pull registry.access.redhat.com/ubi8/ubi-init
Per UBI 7:
podman pull registry.access.redhat.com/ubi7/ubi
podman pull registry.access.redhat.com/ubi7/ubi-minimal
podman pull registry.access.redhat.com/ubi7/ubi-init
E date un'occhiata alla guida completa sull'Universal Base Image
Fonte: habr.com
