Openshift: cos'è e perché piace ai Dev, agli Ops e al business
CLOUD & DEVOPS
Openshift: cos'è e perché piace ai Dev, agli Ops e al business
event 16 luglio 2018
In un precedente articolo ho avuto modo di parlare dei vantaggi dell'elasticità del cloud e dei risultati che si possono ottenere grazie al passaggio da server mutabili (VM) a potenzialmente immutabili (container).
Per raggiungere tali risultati è necessario gestire i container così come viene gestito il codice sorgente: bisogna introdurre un workflow di CI/CD che coinvolga anche i container.
La piattaforma Red Hat Openshift ha un vantaggio fondamentale rispetto ad analoghi prodotti che servono a gestire i container (orchestratori di container): permette di definire un workflow di CI/CD completo, che parte dal codice sorgente dell'applicazione e dal codice che descrive le immagini per giungere al deploy delle applicazioni containerizzate.
Naturalmente Openshift è in primo luogo un eccellente orchestratore di container. Esso è basato su Kubernetes, un prodotto open source creato da Google a partire da una lunga esperienza di utilizzo e gestione di container in ambienti di produzione ad alte prestazioni.
L'utilità di un orchestratore di container
Un orchestratore di container è indispensabile per gestire sistemi distribuiti che fanno uso di un gran numero di container:
- esso permette di gestire applicazioni moderne, strutturate a micro-servizi;
- gestire un gran numero di micro-servizi in un cluster di server è molto complicato senza un orchestratore di container: è necessario risolvere problemi di deployment combinato dei container, gestire il networking multi-host dei container, il service discovery, la gestione dei volumi persistenti in modo distribuito e così via;
- Openshift, come Kubernetes, permette di gestire in modo semplice lo scaling dei servizi e il load balancing tra le repliche di uno stesso servizio. Questa funzionalità rende semplice ottenere lo scaling selettivo delle singole componenti di un'applicazione a micro-servizi.
Le caratteristiche di Openshift
Per installare Openshift è sufficiente avere un cluster di macchine con sistema operativo RHEL.
Non ha importanza come siano fatti i server: possono essere server fisici, VM oppure macchine su cloud pubblici e privati. Openshift tratta questo cluster di server come pure risorse di calcolo e di storage e crea su di esso uno strato di astrazione nel quale vivono le applicazioni containerizzate.
Openshift è esso stesso un sistema distribuito fatto da diversi componenti. Ciascun componente del sistema è installabile in alta affidabilità, in modo da non avere punti deboli (nessun "single point of failure").
Openshift è costruito a partire da Kubernetes ma sfrutta diversi altri progetti e tecnologie open source (come Source 2 Image, la tecnologia che permette di passare dal codice sorgente di un'applicazione all'applicazione containerizzata, o Jenkins, un popolarissimo server di CI/CD). Kubernetes a sua volta, è un aggregato di prodotti open source sostenuti da una community di sviluppatori che ha pochi uguali al mondo per numerosità e livello di partecipazione.
Openshift è pensato in modo da essere facile da usare:
- mette a disposizione diverse interfacce utente (web-based oppure in linea di comando, per permettere una migliore automazione), delle API che danno la possibilità di gestire ogni aspetto della piattaforma e una serie di runtime per facilitare la creazione di applicazioni containerizzate.
- mette a disposizione un ricco catalogo di linguaggi e di server (es. application server, broker di code e altri prodotti middleware) per costruire sistemi distribuiti complessi e applicazioni a micro-servizi in modo semplificato.
- è inoltre pensato per assecondare la collaborazione tra utenti minimizzando le interferenze indesiderate. La piattaforma è multitenancy e dotata di un sistema articolato di gestione degli utenti, dei ruoli e dei permessi. L'accesso alle risorse può essere controllato a un livello di granularità estremamente fine e l'utilizzo di qualsiasi risorsa può essere sottoposto a limitazioni.
Openshift: per una più stretta collaborazione tra sviluppatori e sistemisti
Openshift costituisce quindi la piattaforma ideale per ottimizzare la collaborazione tra sviluppatori e sistemisti. Openshift permette agli sviluppatori di approvvigionarsi in modo autonomo di tutti gli strumenti necessari per costruire applicazioni e workflow di build e deploy sofisticati a piacimento; d'altro canto, i sistemisti hanno il pieno controllo della piattaforma, dell'utilizzo che viene fatto delle risorse e, grazie alle immagini e ai container, dell'ambiente di esecuzione delle applicazioni, potendo tra l'altro accedere in modo immediato alle eventuali fix di sicurezza pubblicate da Red Hat e applicarle in modo istantaneo ai container che girano sulla piattaforma.
Red Hat OpenShift è una piattaforma PaaS per applicazioni cloud che automatizza l’hosting, la configurazione, l’implementazione e l’amministrazione degli stack di applicazioni in un ambiente cloud flessibile.
Per approfondire questo argomento e scoprire come OpenShift può aiutarti a portare al minimo il time-to-market delle tue applicazioni
rocket_launch Guarda il webinar!Guarda il webinar!
explore Vai al videoaltri articoli sull'argomento