OpenShift e OpenStack sono uti­liz­za­ti per costruire piat­ta­for­me cloud a elevata di­spo­ni­bi­li­tà e sca­la­bi­li­tà. Se combinati, i sistemi coprono l’intero spettro dei processi, dal pro­vi­sio­ning dell’hardware vir­tua­liz­za­to allo sviluppo e al fun­zio­na­men­to di ap­pli­ca­zio­ni con­tai­ne­riz­za­te. Ciò che li rende par­ti­co­lar­men­te in­te­res­san­ti è la pos­si­bi­li­tà di uti­liz­zar­li per l’im­ple­men­ta­zio­ne di strategie di cloud ibrido. OpenShift e OpenStack godono di po­po­la­ri­tà spe­cial­men­te tra le grandi or­ga­niz­za­zio­ni che operano a livello globale.

OpenShift vs. OpenStack: una pre­sen­ta­zio­ne

OpenShift è nato poco prima di OpenStack. La rea­liz­za­zio­ne dei due progetti è rap­pre­sen­ta­ti­va della tran­si­zio­ne dalle macchine virtuali ai con­te­ni­to­ri di ap­pli­ca­zio­ni. Negli ultimi dieci anni la vir­tua­liz­za­zio­ne di container si è affermata come tec­no­lo­gia di vir­tua­liz­za­zio­ne dominante.

Cosa accomuna e dif­fe­ren­zia OpenShift e OpenStack?

OpenShift e OpenStack sono progetti open source che hanno visto la luce tra il 2010 e il 2011. Entrambi vengono uti­liz­za­ti per costruire sistemi a elevata di­spo­ni­bi­li­tà e sca­la­bi­li­tà in ambienti cloud ibridi da grandi or­ga­niz­za­zio­ni attive a livello globale e possono essere gestiti su una vasta gamma di in­fra­strut­tu­re in­for­ma­ti­che.

OpenShift e OpenStack possono essere con­si­de­ra­ti come una sorta di “sistema operativo cloud”, anche se con qualche dif­fe­ren­za. OpenShift, infatti, è uti­liz­za­to per lo sviluppo e il fun­zio­na­men­to di ap­pli­ca­zio­ni con­tai­ne­riz­za­te. Ciò significa che gli utenti possono fornire, operare e mo­ni­to­ra­re ap­pli­ca­zio­ni e servizi in completa autonomia. In questo caso l’at­ten­zio­ne è rivolta allo sviluppo ot­ti­miz­za­to e ai flussi di lavoro DevOps.

OpenStack, invece, si appoggia su un piano di astra­zio­ne più profondo. La piat­ta­for­ma viene uti­liz­za­ta per creare un’in­fra­strut­tu­ra cloud vir­tua­liz­za­ta sulla base di un hardware di­stri­bui­to. Vengono fornite macchine virtuali con i core CPU e RAM, così come reti virtuali e memorie di massa di­stri­bui­te. Seguendo il modello self-service, gli utenti ri­chie­do­no au­to­no­ma­men­te le risorse. Andiamo a vedere più nel dettaglio quali sono le ca­rat­te­ri­sti­che per cui OpenShift e OpenStack si dif­fe­ren­zia­no:

Ca­rat­te­ri­sti­ca OpenShift OpenStack
Pro­dut­to­re Red Hat OpenInfra Foun­da­tion
Tipo di vir­tua­liz­za­zio­ne Vir­tua­liz­za­zio­ne di container Macchine virtuali (hardware vir­tua­liz­za­ti)
Tec­no­lo­gia di vir­tua­liz­za­zio­ne K8s Hy­per­vi­sor come KVM, XEN, ESXi
Livello di controllo Di­stri­bui­to Cen­tra­liz­za­to
Modello di servizio Platform as a Service (PaaS) In­fra­struc­tu­re as a Service (IaaS)
Utilizzo di risorse cloud Utilizza risorse cloud per la co­stru­zio­ne del livello di ap­pli­ca­zio­ne Mette a di­spo­si­zio­ne risorse cloud sulla base di hardware vir­tua­liz­za­ti

Come vengono impiegati OpenShift e OpenStack?

Uti­liz­zan­do OpenStack un’or­ga­niz­za­zio­ne è in grado di costruire il proprio ambiente cloud seguendo il modello In­fra­struc­tu­re as a Service (IaaS). Così facendo, si viene a creare un cloud interno come ad esempio quello messo a di­spo­si­zio­ne da AWS e dalle sue al­ter­na­ti­ve. L’hardware geo­gra­fi­ca­men­te di­stri­bui­to è fornito come risorsa cloud e reso di­spo­ni­bi­le nel sistema at­tra­ver­so varie in­ter­fac­ce.

OpenShift, invece, si occupa della gestione cen­tra­liz­za­ta dello sviluppo e del fun­zio­na­men­to delle ap­pli­ca­zio­ni. Il software è basato su Ku­ber­ne­tes (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’in­ter­fac­cia web.

No­no­stan­te i nomi simili, OpenShift e OpenStack non sono sistemi correlati, pertanto possono essere usati in­di­pen­den­te­men­te l’uno dall’altro. Allo stesso modo, tuttavia, è possibile uti­liz­zar­li in com­bi­na­zio­ne. 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 ap­pli­ca­zio­ni e servizi. È inoltre possibile di­stri­bui­re com­po­nen­ti OpenStack su cluster K8s o OpenShift.

Di seguito, daremo uno sguardo det­ta­glia­to ai vantaggi e agli svantaggi delle due tec­no­lo­gie. Esa­mi­ne­re­mo inoltre gli scenari di ap­pli­ca­zio­ne par­ti­co­lar­men­te in­te­res­san­ti e con­clu­de­re­mo la nostra con­si­de­ra­zio­ne con un confronto rie­pi­lo­ga­ti­vo.

OpenStack: la piat­ta­for­ma cloud aperta

OpenStack è una piat­ta­for­ma aperta per costruire ambienti cloud scalabili. Il software è un livello di astra­zio­ne sopra l’in­fra­strut­tu­ra hardware de­cen­tra­liz­za­ta. La fun­zio­na­li­tà prin­ci­pa­le consiste nel pro­vi­sio­ning e nell’al­lo­ca­zio­ne di capacità di calcolo, di rete e di memoria di massa. Seguendo il modello In­fra­struc­tu­re as a Service (IaaS), gli utenti ri­chie­do­no le risorse di cui hanno bisogno in totale autonomia. Inoltre, accanto alle API ob­bli­ga­to­rie, è di­spo­ni­bi­le un’in­ter­fac­cia web per la gestione del sistema.

Oltre al pro­vi­sio­ning di risorse, OpenStack include una serie di altre fun­zio­na­li­tà. 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 in­cap­su­la­te come com­po­nen­ti in­di­vi­dua­li. Nella versione attuale di OpenStack ci sono più di tre dozzine di com­po­nen­ti, anche se in genere non vengono uti­liz­za­ti tutti all’interno di un progetto. Di seguito trovate una breve pa­no­ra­mi­ca dei com­po­nen­ti più im­por­tan­ti:

Com­po­nen­ti OpenStack Fun­zio­na­li­tà De­scri­zio­ne
Nova Compute Service Pro­vi­sio­ning di core CPU vir­tua­liz­za­ti e RAM.
Swift Memoria di oggetti Sal­va­tag­gio di oggetti S3 sulla base di memorie di massa vir­tua­liz­za­te e ri­don­dan­ti.
Glance Image Service Gestione di immagini VM per il fun­zio­na­men­to della piat­ta­for­ma.
Horizon Web dashboard Gli utenti eseguono il login tramite la dashboard dove ge­sti­sco­no i singoli com­po­nen­ti di sistema.
Keystone Servizio di identità Messa a di­spo­si­zio­ne dell’au­ten­ti­ca­zio­ne basata su API e au­to­riz­za­zio­ne degli utenti.
Cinder Blocco di memoria Memoria di massa a elevata di­spo­ni­bi­li­tà tol­le­ran­te agli errori che funziona come un disco rigido cloud scalabile.
Neutron Gestione rete Gestione dell’in­fra­strut­tu­ra della rete (VNI) del sistema.
Ironic “Bare metal” pro­vi­sio­ning Gestione dell’in­fra­strut­tu­ra bare metal; copre il ciclo di vita completo delle macchine bare metal compresa l’ac­qui­si­zio­ne, il pro­vi­sio­ning, la ma­nu­ten­zio­ne e lo sman­tel­la­men­to.
Trove Servizio database Pro­vi­sio­ning e gestione database cloud scalabili e af­fi­da­bi­li.
Magnum Or­che­stra­zio­ne di container Container engine come K8s e le sue al­ter­na­ti­ve sulla base di macchine virtuali e messa a di­spo­si­zio­ne sull’in­fra­strut­tu­ra Bare metal.

Quali sono i vantaggi di OpenStack?

Il primo vantaggio consiste nel fatto che OpenStack offre alle or­ga­niz­za­zio­ni l’op­por­tu­ni­tà di costruire la propria in­fra­strut­tu­ra cloud basata su una tec­no­lo­gia esistente. Il risultato è un risparmio notevole, dato che non è ne­ces­sa­rio partire da zero. OpenStack è co­sti­tui­to da com­po­nen­ti in­di­vi­dua­li, con­fi­gu­ra­ti in base alle necessità, ed è un software open source di­spo­ni­bi­le gra­tui­ta­men­te. La community di OpenStack si occupa dell’ulteriore sviluppo e della do­cu­men­ta­zio­ne della piat­ta­for­ma.

Quali sono gli svantaggi di OpenStack?

A causa della com­ples­si­tà del software, l’in­stal­la­zio­ne di OpenStack è da con­si­de­rar­si piuttosto im­pe­gna­ti­va. L’intero pacchetto include un gran numero di singoli com­po­nen­ti da con­fi­gu­ra­re uno per uno. A volte si aggiunge il fatto che la do­cu­men­ta­zio­ne ne­ces­sa­ria preparata dalla community non è ancora stata ag­gior­na­ta alla versione attuale della piat­ta­for­ma. Entrambi questi svantaggi possono essere superati ri­cor­ren­do a spe­cia­li­sti o col­la­bo­ran­do con partner nell’industria tech, tuttavia ciò comporta dei costi ag­giun­ti­vi. Ma dal momento che OpenStack è impiegato quasi esclu­si­va­men­te per progetti di maggiori di­men­sio­ni, nella maggior parte dei casi la di­spo­ni­bi­li­tà di budget non dovrebbe essere un problema.

In quali ambiti di impiego viene uti­liz­za­to OpenStack?

OpenStack è la soluzione migliore per costruire la propria in­fra­strut­tu­ra cloud su un hardware di calcolo de­cen­tra­liz­za­to. Il software si dimostra par­ti­co­lar­men­te efficace nell’ambito delle macchine virtuali (VM). In com­bi­na­zio­ne con OpenShift o soluzioni di gestione K8s com­pa­ra­bi­li, le ap­pli­ca­zio­ni basate su VM e container possono essere uti­liz­za­te fianco a fianco. Anche la vir­tua­liz­za­zio­ne dei con­te­ni­to­ri con il com­po­nen­te “Magnum” fa ora parte della gamma fun­zio­na­le a livello nativo.

OpenShift: la potente piat­ta­for­ma per ap­pli­ca­zio­ni e sviluppo

OpenShift viene uti­liz­za­to per costruire ap­pli­ca­zio­ni di­stri­bui­te scalabili e ambienti di sviluppo secondo il modello Platform as a Service (PaaS). Il software mette a di­spo­si­zio­ne un ambiente di ese­cu­zio­ne completo in cui i container sono di­stri­bui­ti, eseguiti, gestiti e or­che­stra­ti. Gli strumenti in esso integrati per­met­to­no di sem­pli­fi­ca­re lo sviluppo moderno e i flussi di lavoro di di­stri­bu­zio­ne.

OpenShift si serve di una speciale di­stri­bu­zio­ne Ku­ber­ne­tes (K8s) come sot­to­strut­tu­ra, la quale può essere ri­la­scia­ta oltre i limiti del cloud e dell’in­fra­strut­tu­ra, ga­ran­ten­do un’espe­rien­za utente con­si­sten­te. La fun­zio­na­li­tà di base di K8s è com­ple­ta­ta da ca­rat­te­ri­sti­che di sicurezza e di mo­ni­to­rag­gio e si basa su una gestione cen­tra­liz­za­ta delle policy. In questo modo si può as­si­cu­ra­re uno standard di alta qualità in tutto il panorama del software di un’intera or­ga­niz­za­zio­ne. Per quanto riguarda l’im­ple­men­ta­zio­ne, per la maggior parte vengono uti­liz­za­ti gli operatori di OpenShift:

Com­po­nen­ti OpenShift Spie­ga­zio­ne
OpenShift API Server Il server API di OpenShift verifica e configura risorse OpenShift come progetti, percorsi e template.
OpenShift Con­trol­ler Manager Il con­trol­ler manager di OpenShift sorveglia etcd per le modifiche agli oggetti di OpenShift, come gli oggetti del progetto, del percorso e del template con­trol­ler, e in seguito impiega l’API per imporre lo stato spe­ci­fi­ca­to.
OpenShift OAuth API Server Il server OpenShift OAuth API verifica e configura i dati per l’au­ten­ti­ca­zio­ne su OpenShift Container Platform, la quale include utenti, gruppi e token OAuth.
OpenShift OAuth Server Gli utenti ri­chie­do­no un token dal server OAuth di OpenShift per au­ten­ti­car­si all’API.

Quali sono i vantaggi di OpenShift?

OpenShift riduce la com­ples­si­tà operativa associata all’am­mi­ni­stra­zio­ne di cluster K8s au­to­ge­sti­ti. È possibile gestire più cluster K8s in modo cen­tra­liz­za­to oltre i limiti delle in­fra­strut­tu­re cloud pubbliche e private. Con un approccio PaaS, gli svi­lup­pa­to­ri possono ri­chie­de­re au­to­ma­ti­ca­men­te le risorse per i propri progetti tramite un’in­ter­fac­cia web. Strumenti e flussi di lavoro integrati per Con­ti­nuous In­te­gra­tion e Con­ti­nuous Delivery (CI/CD) com­ple­ta­no la gamma di funzioni ri­sul­tan­do in tempi di consegna dra­sti­ca­men­te ridotti.

In generale, il punto di forza di OpenShift sono le sue misure di sicurezza integrate. “Quay”, ad esempio, è un registro di container ap­po­si­ta­men­te protetto. L’au­to­riz­za­zio­ne e l’au­ten­ti­ca­zio­ne end-to-end limitano l’accesso degli utenti alle singole aree del sistema. La pos­si­bi­li­tà di ospitare i singoli cluster in diverse regioni geo­gra­fi­che permette una migliore con­for­mi­tà in termini di pro­te­zio­ne e sovranità dei dati.

Quali sono gli svantaggi di OpenShift?

OpenShift funziona solo su sistemi operativi speciali di Red Hat, come “Red Hat En­ter­pri­se Linux CoreOS” (RHCOS) e “Red Hat En­ter­pri­se Linux” (RHEL). L’in­stal­la­zio­ne è con­si­de­ra­ta estre­ma­men­te lunga. Per esempio, il setup per i progetti più grandi può ri­chie­de­re diverse settimane. A causa delle pre­cau­zio­ni di sicurezza rigorose, vengono uti­liz­za­te immagini di con­te­ni­to­ri ap­po­si­ta­men­te protette dal registro dei con­te­ni­to­ri “Quay” di Red Hat.

In quali ambiti di impiego viene uti­liz­za­to OpenShift?

Sulla base di OpenShift vengono im­ple­men­ta­te soluzioni interne di Platform as a Service (PaaS), Software as a Service (SaaS) e Con­tai­ners as a Service (CaaS). Nello specifico, sono le grandi aziende a essere in­te­res­sa­te, poiché per i singoli svi­lup­pa­to­ri OpenShift risulta so­li­ta­men­te troppo grande e com­pli­ca­to da gestire.

OpenShift vs. OpenStack: il confronto diretto

Ca­rat­te­ri­sti­ca OpenShift OpenStack
Pro­ve­nien­za del software Oltre alle versioni aziendali offerte da Red Hat, OKD è un’edizione community di­spo­ni­bi­le gra­tui­ta­men­te. Lo sviluppo di OpenStack dipende dalla community, guidata dalla OpenInfra Foun­da­tion. Oltre alla versione ufficiale, di­spo­ni­bi­le gra­tui­ta­men­te, le maggiori aziende di in­for­ma­ti­ca offrono di­stri­bu­zio­ni a pagamento.
Modello di di­stri­bu­zio­ne Le im­ple­men­ta­zio­ni multi-cloud e ibride sono possibili, ma possono risultare complesse. Conviene ricorrere a mec­ca­ni­smi di de­ploy­ment stan­dar­diz­za­ti. OpenStack è spesso gestito “on premises” sull’in­fra­strut­tu­ra in­for­ma­ti­ca di un’azienda. Trat­tan­do­si di di­stri­bu­zio­ni complesse, sono di­spo­ni­bi­li di­stri­bu­zio­ni per­so­na­liz­za­te dai grandi fornitori, compreso il supporto dedicato. Sono di­spo­ni­bi­li anche vari approcci basati sul cloud e soluzioni gestite.
Piat­ta­for­me cloud sup­por­ta­te Come soluzione au­to­ge­sti­ta (self-managed), OpenShift può essere uti­liz­za­to pra­ti­ca­men­te su qualsiasi in­fra­strut­tu­ra. Come soluzione gestita (managed), il software funziona sulle piat­ta­for­me cloud AWS, Azure, Google Cloud e IBM Cloud. OpenStack funziona pra­ti­ca­men­te su tutte le piat­ta­for­me cloud in macchine virtuali, così come su macchine “bare metal” tramite hy­per­vi­sor. In più, i com­po­nen­ti possono essere in­stal­la­ti in ambienti container di tutti i prin­ci­pa­li fornitori.
In­stal­la­zio­ne Richiede un ambiente cluster o cloud. I con­trol­ler OpenStack sono in­stal­la­ti in loco o su un’in­fra­strut­tu­ra fornita da un provider.
Release Fino a tre release all’anno. In genere due all’anno.
Gestione degli ag­gior­na­men­ti Gli ag­gior­na­men­ti sono resi più semplici dal “Cluster Version Operator”. Gli ag­gior­na­men­ti sono complessi e implicano il rischio di dan­neg­gia­re il sistema. Gli ag­gior­na­men­ti dei singoli com­po­nen­ti devono essere eseguiti secondo un ordine specifico.
Gestione delle immagini Il registro dei con­te­ni­to­ri “Quay” di Red Hat contiene immagini di con­te­ni­to­ri con­trol­la­ti per la vul­ne­ra­bi­li­tà. Il com­po­nen­te “Glance” gestisce le immagini delle VM uti­liz­za­te nel pro­vi­sio­ning del sistema.
Utilizzo di template Assieme ai modelli propri di OpenShift, vengono impiegati potenti “operator” per stan­dar­diz­za­re il de­ploy­ment e il fun­zio­na­men­to delle ap­pli­ca­zio­ni. Il de­ploy­ment di OpenStack è agevolato e ri­pro­du­ci­bi­le da strumenti in­du­stria­li come Chef, Puppet e Ansible. Sono presenti anche strumenti basati su helm e charts per il de­ploy­ment in container.
Gestione della rete OpenShift supporta il software defined net­wor­king (SDN), tra cui le reti overlay tramite Open vSwitch (OVS). Il com­po­nen­te “Neutron” di OpenStack mette a di­spo­si­zio­ne SDN secondo il modello “Net­wor­king as a Service” (NaaS).
In­ter­fac­cia web La so­fi­sti­ca­ta e pratica in­ter­fac­cia web di OpenShift è con­si­de­ra­ta una delle migliori del settore. La dashboard “Horizon” è di default un’in­ter­fac­cia web col­lau­da­ta per la gestione di OpenStack.
Pipeline CI/CD integrata Mentre le versioni pre­ce­den­ti facevano ancora uso dello standard in­du­stria­le “Jenkins”, adesso lo standard uti­liz­za­to è “Tekton”. Dato che OpenStack si concentra prin­ci­pal­men­te sul pro­vi­sio­ning di risorse vir­tua­liz­za­te, nessuna soluzione CI/CD dedicata è integrata di default.
Curva di ap­pren­di­men­to OpenShift è con­si­de­ra­to più facile da gestire rispetto ai “nudi” K8. Nel caso di una soluzione gestita, il software può essere uti­liz­za­to in modo re­la­ti­va­men­te semplice. A causa della com­ples­si­tà di OpenStack, la curva di ap­pren­di­men­to è con­si­de­ra­ta ab­ba­stan­za ripida. Il gran numero di com­po­nen­ti singoli può ri­chie­de­re di imparare nuo­va­men­te in­for­ma­zio­ni quando vengono rese di­spo­ni­bi­li fun­zio­na­li­tà ag­giun­ti­ve.
Funzioni di sicurezza Le ampie ca­rat­te­ri­sti­che di sicurezza sono tra i vantaggi ec­ce­zio­na­li dell’utilizzo di OpenShift. Il com­po­nen­te “Keystone” fornisce funzioni base di au­ten­ti­ca­zio­ne e au­to­riz­za­zio­ne degli utenti.
Uso aziendale Il software è uti­liz­za­to da più di duemila or­ga­niz­za­zio­ni in tutto il mondo. Molte grandi aziende IT offrono speciali soluzioni OpenShift. Le prin­ci­pa­li aziende IT offrono di­stri­bu­zio­ni spe­ci­fi­che e supporto per OpenStack che includono Red Hat, VMware, IBM, SUSE, Canonical, OVH, Rackspace, Mirantis e Dell.
Vai al menu prin­ci­pa­le