OpenShift vs. OpenStack

OpenShift e OpenStack sono utilizzati per costruire piattaforme cloud a elevata disponibilità e scalabilità. Se combinati, i sistemi coprono l’intero spettro dei processi, dal provisioning dell’hardware virtualizzato allo sviluppo e al funzionamento di applicazioni containerizzate. Ciò che li rende particolarmente interessanti è la possibilità di utilizzarli per l’implementazione di strategie di cloud ibrido. OpenShift e OpenStack godono di popolarità specialmente tra le grandi organizzazioni che operano a livello globale.

OpenShift vs. OpenStack: una presentazione

OpenShift è nato poco prima di OpenStack. La realizzazione dei due progetti è rappresentativa della transizione dalle macchine virtuali ai contenitori di applicazioni. Negli ultimi dieci anni la virtualizzazione di container si è affermata come tecnologia di virtualizzazione dominante.

Cosa accomuna e differenzia OpenShift e OpenStack?

OpenShift e OpenStack sono progetti open source che hanno visto la luce tra il 2010 e il 2011. Entrambi vengono utilizzati per costruire sistemi a elevata disponibilità e scalabilità in ambienti cloud ibridi da grandi organizzazioni attive a livello globale e possono essere gestiti su una vasta gamma di infrastrutture informatiche.

OpenShift e OpenStack possono essere considerati come una sorta di “sistema operativo cloud”, anche se con qualche differenza. OpenShift, infatti, è utilizzato per lo sviluppo e il funzionamento di applicazioni containerizzate. Ciò significa che gli utenti possono fornire, operare e monitorare applicazioni e servizi in completa autonomia. In questo caso l’attenzione è rivolta allo sviluppo ottimizzato e ai flussi di lavoro DevOps.

OpenStack, invece, si appoggia su un piano di astrazione più profondo. La piattaforma viene utilizzata per creare un’infrastruttura cloud virtualizzata sulla base di un hardware distribuito. Vengono fornite macchine virtuali con i core CPU e RAM, così come reti virtuali e memorie di massa distribuite. Seguendo il modello self-service, gli utenti richiedono autonomamente le risorse. Andiamo a vedere più nel dettaglio quali sono le caratteristiche per cui OpenShift e OpenStack si differenziano:

Caratteristica OpenShift OpenStack
Produttore Red Hat OpenInfra Foundation
Tipo di virtualizzazione Virtualizzazione di container Macchine virtuali (hardware virtualizzati)
Tecnologia di virtualizzazione K8s Hypervisor come KVM, XEN, ESXi
Livello di controllo Distribuito Centralizzato
Modello di servizio Platform as a Service (PaaS) Infrastructure as a Service (IaaS)
Utilizzo di risorse cloud Utilizza risorse cloud per la costruzione del livello di applicazione Mette a disposizione risorse cloud sulla base di hardware virtualizzati

Come vengono impiegati OpenShift e OpenStack?

Utilizzando OpenStack un’organizzazione è in grado di costruire il proprio ambiente cloud seguendo il modello Infrastructure as a Service (IaaS). Così facendo, si viene a creare un cloud interno come ad esempio quello messo a disposizione da AWS e dalle sue alternative. L’hardware geograficamente distribuito è fornito come risorsa cloud e reso disponibile nel sistema attraverso varie interfacce.

OpenShift, invece, si occupa della gestione centralizzata dello sviluppo e del funzionamento delle applicazioni. Il software è basato su Kubernetes (K8s) e controlla i cluster K8s al di là dei limiti del cloud. Seguendo il modello Platform as a Service (PaaS), le funzioni del sistema possono essere gestite tramite un’interfaccia web.

Nonostante i nomi simili, OpenShift e OpenStack non sono sistemi correlati, pertanto possono essere usati indipendentemente l’uno dall’altro. Allo stesso modo, tuttavia, è possibile utilizzarli in combinazione. Come parte di una strategia cloud ibrida, infatti, OpenStack può essere impiegato per costruire un cloud privato, mentre OpenShift si serve delle risorse che contiene per fornire e gestire applicazioni e servizi. È inoltre possibile distribuire componenti OpenStack su cluster K8s o OpenShift.

Di seguito, daremo uno sguardo dettagliato ai vantaggi e agli svantaggi delle due tecnologie. Esamineremo inoltre gli scenari di applicazione particolarmente interessanti e concluderemo la nostra considerazione con un confronto riepilogativo.

OpenStack: la piattaforma cloud aperta

OpenStack è una piattaforma aperta per costruire ambienti cloud scalabili. Il software è un livello di astrazione sopra l’infrastruttura hardware decentralizzata. La funzionalità principale consiste nel provisioning e nell’allocazione di capacità di calcolo, di rete e di memoria di massa. Seguendo il modello Infrastructure as a Service (IaaS), gli utenti richiedono le risorse di cui hanno bisogno in totale autonomia. Inoltre, accanto alle API obbligatorie, è disponibile un’interfaccia web per la gestione del sistema.

Oltre al provisioning di risorse, OpenStack include una serie di altre funzionalità. Tra queste ci sono la gestione delle identità degli utenti, la gestione dei record DNS e un servizio di immagini per la gestione delle immagini delle VM. In pratica, le singole funzioni sono incapsulate come componenti individuali. Nella versione attuale di OpenStack ci sono più di tre dozzine di componenti, anche se in genere non vengono utilizzati tutti all’interno di un progetto. Di seguito trovate una breve panoramica dei componenti più importanti:

Componenti OpenStack Funzionalità Descrizione
Nova Compute Service Provisioning di core CPU virtualizzati e RAM.
Swift Memoria di oggetti Salvataggio di oggetti S3 sulla base di memorie di massa virtualizzate e ridondanti.
Glance Image Service Gestione di immagini VM per il funzionamento della piattaforma.
Horizon Web dashboard Gli utenti eseguono il login tramite la dashboard dove gestiscono i singoli componenti di sistema.
Keystone Servizio di identità Messa a disposizione dell’autenticazione basata su API e autorizzazione degli utenti.
Cinder Blocco di memoria Memoria di massa a elevata disponibilità tollerante agli errori che funziona come un disco rigido cloud scalabile.
Neutron Gestione rete Gestione dell’infrastruttura della rete (VNI) del sistema.
Ironic “Bare metal” provisioning Gestione dell’infrastruttura bare metal; copre il ciclo di vita completo delle macchine bare metal compresa l’acquisizione, il provisioning, la manutenzione e lo smantellamento.
Trove Servizio database Provisioning e gestione database cloud scalabili e affidabili.
Magnum Orchestrazione di container Container engine come K8s e le sue alternative sulla base di macchine virtuali e messa a disposizione sull’infrastruttura Bare metal.

Quali sono i vantaggi di OpenStack?

Il primo vantaggio consiste nel fatto che OpenStack offre alle organizzazioni l’opportunità di costruire la propria infrastruttura cloud basata su una tecnologia esistente. Il risultato è un risparmio notevole, dato che non è necessario partire da zero. OpenStack è costituito da componenti individuali, configurati in base alle necessità, ed è un software open source disponibile gratuitamente. La community di OpenStack si occupa dell’ulteriore sviluppo e della documentazione della piattaforma.

Quali sono gli svantaggi di OpenStack?

A causa della complessità del software, l’installazione di OpenStack è da considerarsi piuttosto impegnativa. L’intero pacchetto include un gran numero di singoli componenti da configurare uno per uno. A volte si aggiunge il fatto che la documentazione necessaria preparata dalla community non è ancora stata aggiornata alla versione attuale della piattaforma. Entrambi questi svantaggi possono essere superati ricorrendo a specialisti o collaborando con partner nell’industria tech, tuttavia ciò comporta dei costi aggiuntivi. Ma dal momento che OpenStack è impiegato quasi esclusivamente per progetti di maggiori dimensioni, nella maggior parte dei casi la disponibilità di budget non dovrebbe essere un problema.

In quali ambiti di impiego viene utilizzato OpenStack?

OpenStack è la soluzione migliore per costruire la propria infrastruttura cloud su un hardware di calcolo decentralizzato. Il software si dimostra particolarmente efficace nell’ambito delle macchine virtuali (VM). In combinazione con OpenShift o soluzioni di gestione K8s comparabili, le applicazioni basate su VM e container possono essere utilizzate fianco a fianco. Anche la virtualizzazione dei contenitori con il componente “Magnum” fa ora parte della gamma funzionale a livello nativo.

OpenShift: la potente piattaforma per applicazioni e sviluppo

OpenShift viene utilizzato per costruire applicazioni distribuite scalabili e ambienti di sviluppo secondo il modello Platform as a Service (PaaS). Il software mette a disposizione un ambiente di esecuzione completo in cui i container sono distribuiti, eseguiti, gestiti e orchestrati. Gli strumenti in esso integrati permettono di semplificare lo sviluppo moderno e i flussi di lavoro di distribuzione.

OpenShift si serve di una speciale distribuzione Kubernetes (K8s) come sottostruttura, la quale può essere rilasciata oltre i limiti del cloud e dell’infrastruttura, garantendo un’esperienza utente consistente. La funzionalità di base di K8s è completata da caratteristiche di sicurezza e di monitoraggio e si basa su una gestione centralizzata delle policy. In questo modo si può assicurare uno standard di alta qualità in tutto il panorama del software di un’intera organizzazione. Per quanto riguarda l’implementazione, per la maggior parte vengono utilizzati gli operatori di OpenShift:

Componenti OpenShift Spiegazione
OpenShift API Server Il server API di OpenShift verifica e configura risorse OpenShift come progetti, percorsi e template.
OpenShift Controller Manager Il controller manager di OpenShift sorveglia etcd per le modifiche agli oggetti di OpenShift, come gli oggetti del progetto, del percorso e del template controller, e in seguito impiega l’API per imporre lo stato specificato.
OpenShift OAuth API Server Il server OpenShift OAuth API verifica e configura i dati per l’autenticazione su OpenShift Container Platform, la quale include utenti, gruppi e token OAuth.
OpenShift OAuth Server Gli utenti richiedono un token dal server OAuth di OpenShift per autenticarsi all’API.

Quali sono i vantaggi di OpenShift?

OpenShift riduce la complessità operativa associata all’amministrazione di cluster K8s autogestiti. È possibile gestire più cluster K8s in modo centralizzato oltre i limiti delle infrastrutture cloud pubbliche e private. Con un approccio PaaS, gli sviluppatori possono richiedere automaticamente le risorse per i propri progetti tramite un’interfaccia web. Strumenti e flussi di lavoro integrati per Continuous Integration e Continuous Delivery (CI/CD) completano la gamma di funzioni risultando in tempi di consegna drasticamente ridotti.

In generale, il punto di forza di OpenShift sono le sue misure di sicurezza integrate. “Quay”, ad esempio, è un registro di container appositamente protetto. L’autorizzazione e l’autenticazione end-to-end limitano l’accesso degli utenti alle singole aree del sistema. La possibilità di ospitare i singoli cluster in diverse regioni geografiche permette una migliore conformità in termini di protezione e sovranità dei dati.

Quali sono gli svantaggi di OpenShift?

OpenShift funziona solo su sistemi operativi speciali di Red Hat, come “Red Hat Enterprise Linux CoreOS” (RHCOS) e “Red Hat Enterprise Linux” (RHEL). L’installazione è considerata estremamente lunga. Per esempio, il setup per i progetti più grandi può richiedere diverse settimane. A causa delle precauzioni di sicurezza rigorose, vengono utilizzate immagini di contenitori appositamente protette dal registro dei contenitori “Quay” di Red Hat.

In quali ambiti di impiego viene utilizzato OpenShift?

Sulla base di OpenShift vengono implementate soluzioni interne di Platform as a Service (PaaS), Software as a Service (SaaS) e Containers as a Service (CaaS). Nello specifico, sono le grandi aziende a essere interessate, poiché per i singoli sviluppatori OpenShift risulta solitamente troppo grande e complicato da gestire.

OpenShift vs. OpenStack: il confronto diretto

Caratteristica OpenShift OpenStack
Provenienza del software Oltre alle versioni aziendali offerte da Red Hat, OKD è un’edizione community disponibile gratuitamente. Lo sviluppo di OpenStack dipende dalla community, guidata dalla OpenInfra Foundation. Oltre alla versione ufficiale, disponibile gratuitamente, le maggiori aziende di informatica offrono distribuzioni a pagamento.
Modello di distribuzione Le implementazioni multi-cloud e ibride sono possibili, ma possono risultare complesse. Conviene ricorrere a meccanismi di deployment standardizzati. OpenStack è spesso gestito “on premises” sull’infrastruttura informatica di un’azienda. Trattandosi di distribuzioni complesse, sono disponibili distribuzioni personalizzate dai grandi fornitori, compreso il supporto dedicato. Sono disponibili anche vari approcci basati sul cloud e soluzioni gestite.
Piattaforme cloud supportate Come soluzione autogestita (self-managed), OpenShift può essere utilizzato praticamente su qualsiasi infrastruttura. Come soluzione gestita (managed), il software funziona sulle piattaforme cloud AWS, Azure, Google Cloud e IBM Cloud. OpenStack funziona praticamente su tutte le piattaforme cloud in macchine virtuali, così come su macchine “bare metal” tramite hypervisor. In più, i componenti possono essere installati in ambienti container di tutti i principali fornitori.
Installazione Richiede un ambiente cluster o cloud. I controller OpenStack sono installati in loco o su un’infrastruttura fornita da un provider.
Release Fino a tre release all’anno. In genere due all’anno.
Gestione degli aggiornamenti Gli aggiornamenti sono resi più semplici dal “Cluster Version Operator”. Gli aggiornamenti sono complessi e implicano il rischio di danneggiare il sistema. Gli aggiornamenti dei singoli componenti devono essere eseguiti secondo un ordine specifico.
Gestione delle immagini Il registro dei contenitori “Quay” di Red Hat contiene immagini di contenitori controllati per la vulnerabilità. Il componente “Glance” gestisce le immagini delle VM utilizzate nel provisioning del sistema.
Utilizzo di template Assieme ai modelli propri di OpenShift, vengono impiegati potenti “operator” per standardizzare il deployment e il funzionamento delle applicazioni. Il deployment di OpenStack è agevolato e riproducibile da strumenti industriali come Chef, Puppet e Ansible. Sono presenti anche strumenti basati su helm e charts per il deployment in container.
Gestione della rete OpenShift supporta il software defined networking (SDN), tra cui le reti overlay tramite Open vSwitch (OVS). Il componente “Neutron” di OpenStack mette a disposizione SDN secondo il modello “Networking as a Service” (NaaS).
Interfaccia web La sofisticata e pratica interfaccia web di OpenShift è considerata una delle migliori del settore. La dashboard “Horizon” è di default un’interfaccia web collaudata per la gestione di OpenStack.
Pipeline CI/CD integrata Mentre le versioni precedenti facevano ancora uso dello standard industriale “Jenkins”, adesso lo standard utilizzato è “Tekton”. Dato che OpenStack si concentra principalmente sul provisioning di risorse virtualizzate, nessuna soluzione CI/CD dedicata è integrata di default.
Curva di apprendimento OpenShift è considerato più facile da gestire rispetto ai “nudi” K8. Nel caso di una soluzione gestita, il software può essere utilizzato in modo relativamente semplice. A causa della complessità di OpenStack, la curva di apprendimento è considerata abbastanza ripida. Il gran numero di componenti singoli può richiedere di imparare nuovamente informazioni quando vengono rese disponibili funzionalità aggiuntive.
Funzioni di sicurezza Le ampie caratteristiche di sicurezza sono tra i vantaggi eccezionali dell’utilizzo di OpenShift. Il componente “Keystone” fornisce funzioni base di autenticazione e autorizzazione degli utenti.
Uso aziendale Il software è utilizzato da più di duemila organizzazioni in tutto il mondo. Molte grandi aziende IT offrono speciali soluzioni OpenShift. Le principali aziende IT offrono distribuzioni specifiche e supporto per OpenStack che includono Red Hat, VMware, IBM, SUSE, Canonical, OVH, Rackspace, Mirantis e Dell.
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