Cos’è OpenShift?

OpenShift è una piattaforma applicativa basata su Kubernetes. Il software è utilizzato per costruire applicazioni distribuite e scalabili e ambienti di sviluppo. Sulla base di OpenShift, le aziende possono implementare soluzioni proprietarie Platform as a Service (PaaS), Software as a Service (SaaS) e Container as a Service (CaaS).

Il software permette la gestione completa del ciclo vitale dell’applicazione, compresi lo sviluppo, il rollout, l’esecuzione e la manutenzione. Più di duemila imprese in tutto il mondo si affidano a OpenShift per ospitare le proprie applicazioni in ambienti cloud ibridi. In questo articolo vi spiegheremo come funziona OpenShift e cosa rende il software così speciale.

Quali sono le versioni di OpenShift disponibili?

OpenShift non è solo un singolo prodotto. Infatti, la società Red Hat rilascia diverse versioni come software open source con licenza Apache. La versione considerata come il “fiore all’occhiello” della società è la “Red Hat OpenShift Container Platform” (OCP). Viene installata come un cluster Kubernetes sull’infrastruttura cloud ibrida di un’azienda. Un singolo cluster OpenShift può quindi estendersi su più ambienti cloud sia pubblici che privati.

Oltre alla OpenShift Container Platform (OCP), vi è la versione comunitaria “OKD”, conosciuta in precedenza con il nome “OpenShift Origin”. OKD è una distribuzione personalizzata di Kubernetes che si affida allo stesso per la gestione dei cluster e dei container conformi alla Open Container Initiative (OCI). Qui sono inclusi anche la capacità di gestione del ciclo vitale delle applicazioni e gli strumenti DevOps. È interessante notare che OKD è la base “upstream” per lo sviluppo delle altre versioni di OpenShift, simile a come il progetto open source Chromium serve come base per lo sviluppo del browser Chrome.

Oltre a OCP e OKD come soluzioni “on premise”, ospitate sulla propria infrastruttura, esiste anche un certo numero di soluzioni “gestite”, eseguite su vari cloud pubblici di grandi fornitori, così come sull’infrastruttura cloud di Red Hat. In questo articolo discutiamo principalmente della versione 4.8 di OCP, la versione attuale in questo momento. Di seguito vi presentiamo una panoramica delle varie versioni di OpenShift:

Prodotti OpenShift Descrizione Piattaforma
Red Hat OpenShift Container Platform (OCP) Soluzioni enterprise “on premise” per l’utilizzo nella vostra infrastruttura cloud Red Hat Enterprise Linux CoreOS (RHCOS)
OKD Prodotto community “on premise”, base per OCP Red Hat Enterprise Linux (RHEL) o CentOS
OpenShift Online Soluzione SaaS gestita Red Hat Cloud
OpenShift Dedicated Soluzione PaaS gestita; Red Hat si occupa dell’amministrazione completa del sistema Amazon AWS o Google Cloud

Come funziona OpenShift?

OpenShift è una suite di piattaforme applicative basata su Kubernetes. Il software include una manciata di componenti di base, così come una varietà di funzioni aggiuntive. OpenShift può essere ospitato in un’ampia varietà di ambienti, tra cui macchine “bare metal”, cloud pubblici e privati, e dispositivi “edge”.

Consiglio

Per saperne di più su somiglianze e differenze tra OpenShift e Kubernetes vi consigliamo di leggere il nostro articolo al riguardo.

Di quali componenti consiste OpenShift?

OpenShift si basa su uno stack software, ovvero un’insieme di tecnologie interconnesse. Al livello più basso, come sistema operativo viene usata una speciale distribuzione Linux. “Red Hat Enterprise Linux CoreOS” (RHCOS), utilizzato in questo ambito, è installato su un hardware fisico o virtualizzato.

N.B.

Nelle versioni precedenti di OpenShift veniva usato “Red Hat Enterprise Linux” (RHEL) al posto di RHCOS.

Basato sul sistema operativo RHCOS, Kubernetes è usato come orchestratore di container e cluster. Kubernetes gestisce la distribuzione, la scalabilità e la gestione delle applicazioni containerizzate. Gli operatori di Kubernetes sono usati come livello successivo nello stack software. Questi corrispondono a delle applicazioni “native di Kubernetes”, precostruite e facili da installare. Oltre agli operatori, viene utilizzato un registro di container quando si imposta e si esegue un cluster OpenShift.

Che tipo di Kubernetes include OpenShift?

OpenShift si basa su una speciale distribuzione Kubernetes, la quale usa CRI-O anziché Docker o containerd come Container Runtime. La separazione da Docker in termini di tecnologia sottostante comporta dei vantaggi per quanto riguarda la sicurezza e la compatibilità con altri formati di container.

Cos’è un operatore in OpenShift?

Un operatore Kubernetes supervisiona lo stato di un’intera applicazione. Attraverso l’installazione, il funzionamento e la manutenzione, gli operatori coprono il ciclo di vita completo di un’applicazione Kubernetes. Riprendendo le parole usate nella documentazione di OpenShift:

Citazione

“An Operator is a method of packaging, deploying and managing a Kubernetes-native application. A Kubernetes-native application is an application that is both deployed on Kubernetes and managed using the Kubernetes APIs and kubectl tooling.“ - Fonte: https://cloud.redhat.com/learn/topics/operators

“Un operatore è un metodo per impacchettare, distribuire e gestire un’applicazione nativa di Kubernetes. Un’applicazione nativa di Kubernetes è un’applicazione che è sia distribuita su Kubernetes che gestita utilizzando le API di Kubernetes e gli strumenti di kubectl.” (traduzione di IONOS)

Vi è una vasta gamma di operatori sulla piattaforma OperatorHub. Ad esempio, vari sistemi di database possono essere perfettamente integrati nel cluster OpenShift con il minimo sforzo. Inoltre, gli operatori dell’infrastruttura sono utilizzati per gestire il cluster.

Come si è scoperto, gli operatori sono essenziali per la funzionalità di OpenShift. Un operatore Kubernetes è una specializzazione del controller Kubernetes a livello di applicazione. Un controller Kubernetes esamina continuamente lo stato di una risorsa e regola vari parametri, a seconda delle necessità, per mantenere uno stato definito.

Cos’è un registro su OpenShift?

Un registro di container contiene immagini di container che vengono continuamente create man mano che il software viene costruito. Vengono gestite più versioni della stessa immagine, perciò ogni immagine è sottoposta a controlli di sicurezza e memorizzata nel registro. È interessante notare che su OpenShift il registro stesso è implementato come un operatore.

“Quay” è un registro sviluppato da Red Hat prestando particolare attenzione alla sicurezza. Le immagini necessarie durante l’installazione del cluster OpenShift sono ottenute da Quay. Così facendo, Quay può gestire altri artefatti build oltre alle immagini dei container. Usando le parole contenute nella documentazione di Red Hat:

Citazione

“Quay is a container registry for storing containers, Helm charts, and other container-related content.“ – Fonte: https://www.redhat.com/sysadmin/introduction-quay

“Quay è un registro di container per immagazzinare container, carte di Helm, e altri contenuti relativi ai container.” (traduzione di IONOS)
 

A partire dal modello di prodotto a più livelli di OpenShift OCP e OKD, sono state create diverse versioni di Quay:

Registro Spiegazione Piattaforma
Red Hat Quay funziona sulla propria infrastruttura di calcolo, compresi i cloud privati; integrato in OpenShift da un operatore ambiente cloud personale, incluso il cloud privato
Red Hat Quay.io gestito da Red Hat con supporto di livello enterprise cloud

Com’è strutturato OpenShift?

OpenShift è costruito su Kubernetes come un cluster di container. A livello di cluster, OpenShift include due livelli:

  1. Piano di Controllo (“Control Plane”)

Il piano di controllo è composto dalle cosiddette “macchine del piano di controllo”. Queste sono conosciute anche come “Master Machine”, o macchine Master, e gestiscono il cluster di OpenShift Container Platform.

  1. Macchine operatrici (“Worker Machines“)

Le macchine operatrici, conosciute anche come “macchine di calcolo”, eseguono il lavoro effettivo del cluster OpenShift. Le macchine Master assegnano i compiti alle macchine operatrici e ne monitorano l’esecuzione.

Quali servizi vengono eseguiti sulle macchine operatrici?

Una macchina operatrice esegue i seguenti servizi ed è quindi inclusa nel cluster OpenShift:

  • CRI-O, come ambiente di runtime dei container,
  • Kubelet, come servizio che accetta ed elabora le richieste per avviare e fermare i carichi di lavoro,
  • un proxy di servizio, che gestisce la comunicazione tra le macchine operatrici.

L’ulteriore specializzazione delle macchine operatrici deriva dallo stato dei container in esecuzione e dal software che contengono.

Quali componenti costituiscono il piano di controllo?

Di seguito diamo un’occhiata dettagliata alla struttura del piano di controllo. Distinguiamo tra i componenti dell’implementazione di Kubernetes e i componenti specifici di OpenShift:

Componente Kubernetes Spiegazione
Server Kubernetes API Il server Kubernetes API controlla e configura i dati per i pod, i servizi e i controller di replica. Inoltre, l’API funge da interfaccia centrale per i dati globali dello stato del cluster.
etcd Il servizio etcd contiene lo stato master persistente. Gli altri componenti monitorano l’etcd per rilevare i cambiamenti e regolano il loro stato come richiesto.
Kubernetes Controller Manager Kubernetes Controller Manager monitora etcd per le modifiche agli oggetti come la replica, lo spazio dei nomi e i controller degli account di servizio e utilizza l’API per ottenere lo stato desiderato. Vi è un cluster composto da diversi di questi processi in cui uno è attivo come leader.
Scheduler di Kubernetes Lo scheduler di Kubernetes rileva i pod appena creati a cui non è stato ancora assegnato un nodo e sceglie il nodo migliore per ospitare il pod.

I componenti specifici del piano di controllo di OpenShift sono implementati come operatori:

Componente OpenShift Spiegazione Gestito da
Server OpenShift API Il server OpenShift API controlla e configura le risorse di OpenShift, come progetti, percorsi e modelli. OpenShift API Server Operator
OpenShift Controller Manager OpenShift Controller Manager monitora etcd per le modifiche agli oggetti di OpenShift, come i progetti, i percorsi e gli oggetti controller dei template, e utilizza l’API per raggiungere lo stato desiderato. OpenShift Controller Manager Operator
Server OpenShift OAuth API Il server OpenShift OAuth API Server convalida e configura i dati per l’autenticazione su OpenShift Container Platform. Questo include utenti, gruppi e token OAuth. Cluster Authentication Operator
Server OpenShift OAuth Gli utenti richiedono un token dal server OAuth di OpenShift per autenticarsi con l’API. Cluster Authentication Operator

In quali scenari applicativi viene utilizzato OpenShift?

OpenShift Container Platform è utilizzata principalmente per costruire ambienti di applicazione e sviluppo. Questo permette di implementare soluzioni PaaS, SaaS e CaaS proprietarie dell’azienda. A causa della potenza e della complessità del software, OpenShift è utilizzato principalmente per progetti di lunga durata sviluppati da grandi organizzazioni.

Gli utenti di OpenShift includono istituzioni governative e di ricerca a livello nazionale, così come aziende attive a livello internazionale come banche e compagnie assicurative. I suddetti gruppi di utenti beneficiano tutti di una distribuzione del cloud ibrido. La distribuzione ( o “deployment” in inglese) tramite i confini del cloud privato e pubblico permette a parti dell’infrastruttura di essere ospitate secondo i requisiti di conformità locali.

Un altro aspetto importante che incoraggia l’uso di OpenShift è dato dal suo alto livello di sicurezza. Prevenire le intrusioni informatiche e le fughe di dati è essenziale per le grandi aziende internazionali. Le violazioni della sicurezza possono provocare danni duraturi all’immagine dell’azienda e notevoli sanzioni finanziarie.

Le funzioni incluse su OpenShift permettono dei flussi di lavoro veloci nello sviluppo. Questo porta a tempi di sviluppo radicalmente ridotti sul campo poiché i team di software interni possono gestire comodamente e autonomamente le proprie risorse e lavorare per uno sviluppo continuo.

Se un’azienda utilizza una delle offerte Managed OpenShift disponibili, elimina la necessità di amministrazione dei server e sistemi operativi. Invece di preoccuparsi degli aggiornamenti e dei backup, l’azienda può quindi concentrarsi sull’essenziale: innovare e creare valore per i clienti.

Certamente, OpenShift non è adatto alle piccole imprese o ai singoli sviluppatori. Per soddisfare le loro esigenze, è meglio affidarsi a una delle alternative a OpenShift o a una delle alternative a Kubernetes disponibili.

Quali sono le funzioni di OpenShift?

Un grande vantaggio di OpenShift rispetto a Kubernetes “di base” sono le caratteristiche predefinite, che vanno oltre la semplice gestione del cluster di Kubernetes. OpenShift include anche delle funzioni per:

  • Reti definite dal software (SDN)
  • Instradamento
  • Autenticazione
  • Monitoraggio e registrazione

Per gestire la piattaforma, OpenShift include una potente interfaccia web oltre agli strumenti obbligatori della riga di comando. I flussi di lavoro di sviluppo e DevOps sono accelerati utilizzando “Red Hat OpenShift Pipeline” mentre viene utilizzato il framework open source Tekton per la “Continuous integration” / “Continuous development” (CI/CD). Oltre alle applicazioni containerizzate, possono essere utilizzati dei moderni approcci “serverless” basati su “Serverless Kubernetes” (Knative).

Un altro punto centrale di OpenShift è la fornitura di architetture distribuite di microservizi. Conosciuto anche come “Red Hat Service Mesh”, questo modello di applicazione è basato sul progetto open source “Istio”. Per affrontare la complessità associata alle architetture di microservizi, OpenShift include una serie di altri strumenti: ad esempio, “Prometheus” è utilizzato per gestire il monitoraggio e le notifiche, mentre “Jaeger” consente il monitoraggio delle transazioni e “Kiali” è usato per visualizzare la rete dei servizi.

Quali sono i vantaggi e gli svantaggi di OpenShift?

Uno dei maggiori vantaggi dell’utilizzo di OpenShift è quello di poter eseguire il software in un ambiente cloud ibrido. Qui, un singolo cluster OpenShift si estende oltre i confini di più cloud privati e pubblici. I cluster OpenShift che usano Red Hat Enterprise Linux CoreOS (RHCOS) come unico sistema operativo beneficiano di processi automatizzati durante l’aggiornamento e la modernizzazione.

La tecnologia integrata di Red Hat e gli strumenti e i processi di gestione incorporati nella piattaforma si traducono in un’esperienza utente elevata. Il modello di sviluppo open source e le funzioni DevOps incorporate permettono dei processi di sviluppo rapidi. Inoltre, l’aumento dell’uso degli operatori come formato di applicazione universale contribuisce alla standardizzazione e semplifica le personalizzazioni precedentemente complesse.

L’uso di CRI-O, come Container Runtime al posto di Docker, porta a una maggiore sicurezza della piattaforma. L’interfaccia web facile da usare è considerata più potente e più chiara della dashboard comparabile di Kubernetes. OpenShift eccelle anche sulla riga di comando con il comando oc, che rende la piattaforma più facile da usare.

Naturalmente, le suddette caratteristiche speciali di OpenShift causano anche alcuni svantaggi. Ad esempio, gli utenti fedeli a Kubernetes risentiranno della mancanza dei potenti grafici Helm, che descrivono la configurazione dell’infrastruttura. Inoltre, non tutti i container Docker Hub possono essere utilizzati con OpenShift a causa delle severe impostazioni di sicurezza. Il focus sulla distribuzione Linux di Red Hat, Red Hat Enterprise Linux CoreOS (RHCOS), ha anche un effetto limitante rendendo Kubernetes più flessibile in questo aspetto.

Su quali infrastrutture può essere eseguito OpenShift?

OpenShift può essere eseguito su praticamente qualsiasi livello di infrastruttura informatica, dalle macchine “bare metal” disponibili nel proprio data center, all’hardware virtualizzato in ambienti cloud privati e pubblici, ai dispositivi edge. Tuttavia, vi è una distinzione tra soluzioni “gestite”, dove la gestione della piattaforma OpenShift è gestita dal fornitore, e installazioni “autogestite”, amministrate direttamente dal cliente:

Quali sono le opzioni per eseguire soluzioni OpenShift gestite dal fornitore?

Prodotto Infrastruttura Gestito da Supportato da
Microsoft Azure Red Hat OpenShift Microsoft Azure Red Hat e Microsoft Red Hat e Microsoft
Red Hat OpenShift Dedicated Amazon AWS o Google Cloud Red Hat Red Hat
Red Hat OpenShift on IBM Cloud IBM Cloud IBM Red Hat e IBM
Red Hat OpenShift Service on AWS Amazon AWS Red Hat e AWS Red Hat e AWS

Quali sono le opzioni per eseguire soluzioni OpenShift autogestite?

Prodotto Infrastruttura Gestito da Supportato da
Red Hat OpenShift Platform Plus Cloud privato, cloud pubblico, macchina fisica, macchina virtuale, edge Cliente Red Hat / Fornitore infrastruttura
Red Hat OpenShift Container Platform Cloud privato, cloud pubblico, macchina fisica, macchina virtuale, edge Cliente Red Hat / Fornitore infrastruttura
Red Hat OpenShift Kubernetes Engine Cloud privato, cloud pubblico, macchina fisica, macchina virtuale, edge Cliente Red Hat / Fornitore infrastruttura
Hai trovato questo articolo utile?
Per offrirti una migliore esperienza di navigazione online questo sito web usa dei cookie, propri e di terze parti. Continuando a navigare sul sito acconsenti all’utilizzo dei cookie. Scopri di più sull’uso dei cookie e sulla possibilità di modificarne le impostazioni o negare il consenso.
Page top