No results found
Red Hat è una distribuzione Linux che ha trovato sbocco nell’ambito professionale in virtù del supporto e delle caratteristiche che la contraddistinguono. Red Hat approda in Italia intorno al 2002, quando ad occuparsene erano appena 4 persone (400 in tutto il mondo) e allora era poco più che una startup tecnologica.
Red Hat comincia a prospettare l’Open Source come motore dell’evoluzione non solo negli ambienti accademici ma anche contesti aziendali, mission-critical.
Tra l’altro quando i clienti vedevano in funzione Linux trovavano che andasse meglio di Sun e Solaris, rispetto ai quali aveva un costo nettamente minore; da qui l’interesse di aziende che pur lasciando Solaris nell’ambiente di produzione continuavano a guardare con un occhio di riguardo Linux, pur relegandolo a funzioni di nicchia.
Linux comincia quindi la sua ascesa, prendendo sempre più piede prima nelle applicazioni un po’ meno critiche e poi man mano allargandosi comincia a prendere il posto di Unix in tutto quello che era il contesto nativo di tale sistema operativo.
Oggi Linux è il sistema operativo alla base di tutte le applicazioni mission-critical, però non sarebbe mai entrato in contesti enterprise da solo o almeno con il solo supporto della community open source, perché serviva qualcosa in più: ad esempio una banca aveva bisogno di un Service Level Agreement (SLA), ossia di un contratto firmato che garantisca il software, la sua affidabilità e manutenibilità. È stato a quel punto che alcuni sviluppatori esperti di Linux hanno intravisto il futuro di Linux e compreso cosa gli mancava per essere una soluzione enterprise; hanno quindi iniziato a creare quello che quel mondo chiedeva: supporto, aggiornamenti garantiti, manutenzione ecc. al pari dei sistemi operativi “ufficiali”.
Red Hat ha quindi creato un modello basato sul software Open Source, al quale contribuisce fortemente comprando software user, sviluppando il contorno che serve al mondo enterprise, rilasciando software, mettendo i propri ingegneri nello sviluppo e fornendo garanzie per l’impiego Enterprise.
In questo tutorial verrà ripercorsa la storia di Red Hat, analizzandone le caratteristiche e le applicazioni che ha reso possibili, dedicando la parte finale alla formazione, curata in Italia da Extraordy.
Ma che cos’è oggi l’Open Source? Ebbene, si può iniziare dal dire che ciò oggi usiamo in Cloud non sarebbe mai esistito senza l’incredibile forza dell’Open Source; qualunque soluzione in Cloud (Amazon, Google, Facebook) esiste grazie all’evoluzione che ha garantito l’Open Source, in primis sul progetto Linux. La capacità collaborativa della community di condividere e portare costantemente ad alto livello un software o un’applicazione è stata l’elemento che ha cambiato le metodologie, al punto che non esisterebbe Cloud se non ci fosse stato Linux; infatti quasi tutti i sistemi di virtualizzazione sono basati su Linux: quelli di tutte le piattaforme, ossia VMware, KVM, OXEN ecc.
L’Open Source ha portato Linux a evolversi e ad avere caratteristiche ogni giorno più performanti, che unite hanno garantito quello che oggi è il modello usato in Cloud: quello del microservizio e della containerizzazione.
Ciò che oggi chiamiamo Digital Transformation non è altro che portare delle applicazioni molto grosse in contesti a microservizio.
Questo perché Linux ha delle caratteristiche tali da consentire di racchiudere un'applicazione (un web server, un application server o che altro vogliamo) dentro una una micro bolla che è il microservizio; questo si chiama Linux container e grazie alla logica del Linux container e al concetto del microservizio è possibile eseguire tanti microservizi uno di fianco all'altro ed estendere la cosa all'infinito. È un po’ quello che fa Netflix o che fa Google: l’applicazione containerizzata sta dentro a una batteria di server fisici clonati l’uno con l’altro, a comporre una struttura che è in grado di estendere la capacità di erogazione del Cloud. Un esempio può essere l’e-commerce di Amazon, che è strutturato in modo elastico (non a caso tale modello si definisce Elastic Cloud) così da crescere a teoricamente all’infinito e ridursi quando non più necessario (nei periodi di picco cresce e nei periodi di rallentamento decresce).
Ancora una volta ciò è possibile perché la community Open Source ha portato Linux ad avere delle caratteristiche come quelle a spazio kernel (kernel space) che garantiscono la possibilità di creare queste bolle.
Non ci sarebbe Digital Transformation e nessuno modello DevOps senza la spinta dell’Open Source che ha portato prima Linux e poi tutto il resto ad essere quello che conosciamo oggi.
L’evoluzione che ha portato a tutto questo è la collaborazione tra appartenenti alla community; si può capire questo considerando che Linux è Open Source significa e quindi il codice sorgente è libero e chiunque può leggerlo, studiarlo e anche modificarlo a proprio piacere. Qualsiasi software Open Source è modificabile e nel momento in cui viene modificato ne nasce un’evoluzione che risponde a un’esigenza specifica; non a caso esistono distribuzioni Linux dedicate ad esempio alla gestione dello storage di rete o alla virtualizzazione.
Ora, siccome la condizione per utilizzare Linux come base di un proprio sistema operativo è che chi lo modifica è obbligato dalla licenza applicata al software Open Source (la famosa General Public Licence - GPL) a rilasciare nuovamente sotto licenza GPL e quindi Open Source il software che ha ottenuto (la cosiddetta “distribuzione”), più soggetti si impegnano nell’opera e più è probabile che ne escano lavori di qualità. Così è stato per alcune distribuzioni ormai affermate anche in ambito professionale e di produzione.
Approfondiamo ora il concetto di DevOps: le classiche applicazioni Legacy sono grandi e monolitiche; come tutte le applicazioni devono evolversi e vanno aggiornate. Il modello standard prevedeva che si aggiornasse un’applicazione classica (Legacy) e che questa venisse poi rilasciata in produzione richiedendo un fermo del servizio, per un tempo necessario ad eseguire il nuovo rilascio e per poi tornare in produzione.
Questo modello si può evolvere grazie alla tecnologia a microservizi, in modo che quella stessa applicazione anziché essere monolitica sia ricreate in una logica di microservizio e possa quindi essere molto più snella e inserita in un container per essere rilasciata in modo continuo; questa logica, che è quella della continuous integration (o continuous deployment) significa sviluppare l’applicazione lavorando direttamente sul codice sorgente, quindi partendo dal sorgente e portando l’evoluzione del software senza il periodo di fermo. Ciò garantisce una continua erogazione.
Ma questo porta al fatto di dover conoscere anche la containerizzazione, cioè lo sviluppatore non dovrà solo conoscere il linguaggio di programmazione (ad esempio Java Enterprise) per scrivere l’applicazione ma dovrà conoscere anche il contesto entro il quale lavorerà quel dato software, quindi gli strumenti per rilasciare l’applicazione in modo continuo. Questo implica che sviluppatore (il Developer) debba avere anche qualche nozione della della componente Operations (Ops) quindi della componente sistemistica e possa sfruttare gli strumenti che permettano di rilasciare in modo continuo senza fermi la nostra applicazione. Quindi lo sviluppatore del genere, oltre che occuparsi dello sviluppo deve anche occuparsi della gestione di alcuni strumenti e adottare alcune tecnologie, perché il container è una tecnologia, nonché l’elemento fondante del modello a microservizi.
Questo insieme degli strumenti e il modello di lavoro in cui lo sviluppatore fa anche un’attività sistemistica fa nascere una figura nuova che quella del DevOps.
La conoscenza della componente sistemistica non deve essere approfondita ma deve essere chiaro il contesto dove l’applicazione andrà ad agire, ossia all’interno del container. Tutto questo porta a quella che viene definita applicazione cloud-native, che offre una serie di vantaggi, uno dei quali è poterla portare (evitando il lock-in) ad esempio da un laptop alla produzione, che può stare su server fisici oppure in un Cloud privato, pubblico ecc.
Grazie Linux le infrastrutture IT sono cresciute moltissimo, tanto che se 10-15-20 anni fa c’era una certa quantità di server da gestire, oggi il numero di server, siano essi fisici o virtuali in private Cloud, in Public Cloud o altro, è letteralmente esploso. Lo stesso si può dire relativamente ai sistemisti, perché il loro numero non è stato scalato in proporzione alla crescita dei server; per questo diventa importante automatizzare la gestione di tale numero crescente di server e delle relative applicazioni.
Tra questi strumenti c’è Ansible, tanto che anche Red Hat ha cambiato il paradigma con il quale definisce un Red Hat Certified Engineer, il quale non è più un sistemista esperto di servizi e sicurezza su RedHat Enterprise Linux ma è un esperto di automation e quindi di Ansible.
Ciascun sistemista “Old Style” ha fatto tutti un po’ di automazione creandosi degli script in Bash o in Python per gestire i server; ebbene, questa cosa è stata portata un livello strutturato e ingegnerizzato grazie uno strumento molto potente che è per l'appunto Ansible.
Linux è entrato nelle aziende grazie a RedHat, la quale ha deciso di renderlo un prodotto Enterprise e quindi una soluzione che garantisce uno SLA (Service Level Agreement) e dei contratti in grado di tutelare le aziende che non potevano lasciare le cose al caso.
Quindi non solo RedHat è stato il principale attore dello sviluppo dell’Open Source, pur restando Open Source; partendo sempre da software Open Source è riuscita a rendere Linux di livello Enterprise e poi a sviluppare altri software come JBoss, come Red Hat Virtualization, Openshift (che è una distribuzione Kubernetes) e molto altro, garantendo per l’appunto quello SLA sul software e garantendo da contratto il supporto e anche dei servizi di livello Enterprise, primo tra tutti la formazione.
Infatti, a fronte di una vastità di soluzioni e prodotti che sono stati realizzati intorno a Linux, questo mondo è molto carente sotto l’aspetto della formazione, ovvero non esiste una formazione ufficiale, cosa che invece Red Hat è stata una delle prime a portarsi dietro come elemento fondante.
Questo perché il contesto è quello di un’applicazione mission critical e business critical e quindi le persone che dovranno gestire un contratto software dovranno essere preparate per poterlo fare; le soluzioni per raggiungere lo scopo sono due: si mettono a studiare da sole spendendo una quantità importante di tempo, facendo errori e portando a casa un risultato, oppure seguendo un modello di formazione strutturato che permetta di acquisire la conoscenza attraverso un percorso di formazione puntuale incentrato sugli argomenti necessari per quella figura specifica, in modo da poter gestire l'ordinario oppure la progettazione e di una soluzione basata su software Red Hat. È in questo secondo scenario che interviene la formazione ufficiale Red Hat.
Nell’ambito della formazione, in Italia opera da tempo Extraordy, una realtà che fa formazione sui tre argomenti sui quali Red Hat fa business, che elenchiamo di seguito.
Su questi tre temi ci sono software che. partendo sempre da un progetto community, diventano un prodotto Enterprise e relativamente ad essi esiste sempre un percorso di formazione ufficiale.
OpenStack è un progetto enorme molto complesso nella sua struttura e rappresenta anche un’occasione di formazione per tutta la community, ma è focalizzato a fare Infrastructure-as-a-Service; oggi l’IaaS per Cloud Provider è un settore di nicchia che si rivolge soltanto alle Telco e ai Provider. Per capirlo basta pensare alle necessità di chi deve “mettere in piedi” un sito web: 20 anni fa ci si procurava un server fisico e della connettività Internet, si metteva il server in una stanza e ci si installava un sistema operativo (Linux Web Server) e il sito era pronto; poi c'è stata l’evoluzione tecnologica e il server fisico si è trasferito nello spazio comprato da un Provider qualunque, in un rack dove arrivano l’alimentazione e il cavo di Rete e dove dev’essere presente un router, uno switch, un server e dello storage.
Questa cosa si è evoluta con l’Infrastructure-as-a-Service, ossia con Openstack. Amazon fa la stessa cosa con AWS, quindi quando si sposta un’infrastruttura fisica su Amazon AWS si compra quel famoso armadio rack vuoto, soltanto che è virtuale e lo definiamo un tenant; un tenant è uno spazio vuoto dove virtualizzare il router, lo switch, i cavi di rete, il server e lo storage
Questo è un IaaS e Openshift virtualizza l’armadio rack che un tempo era fisico.
Kubernetes è un progetto assolutamente Open Source Community; è il motore di Openshift che è il Platform-as-a-Service (PaaS) Cloud Provider, che nasce nella sua componente Open Source che si chiama OKD (progetto Open Source) per poi diventare un prodotto Enterprise come Openshift. Come accennato, è quello strumento che permette di usare le applicazioni containerizzate e gestirle con il modello DevOps.
L’immagine seguente schematizza il funzionamento di Kubernetes nella orchestrazione di un sistema a container.
Extraordy eroga formazione Red Hat attraverso molti strumenti ed è in grado di fornire la certificazione RedHat; il tutto nasce dall’esperienza maturata da Gaetano La Rosa, tra i quattro componenti di Red Hat Italia nel 2002, prima consulente e poi istruttore dei corsi.
Dal 2009 Red Hat decise di fare un'operazione di spin-off del training, ossia da allora i corsi e gli esami certificazione non li gestiva più direttamente con i propri dipendenti ma ha spinto la creazione di realtà locali in Italia, così è nata Extraordy, fondata da Gaetano La Rosa per prendersi in carico la formazione Red Hat.
La formazione è sempre il primo passaggio di un progetto, perché fornisce la piena conoscenza della tecnologia; tale conoscenza passa dai tre punti chiave suaccennati, ossia Infrastruttura, Cloud e DevOps, automazione, partendo dalla base che è la conoscenza di Linux.
Extraordy in collaborazione con Red Hat abbiamo realizzato vari cosri, dei quali quello su Linux è ad accesso gratuito e riguarda le fondamenta di Linux (Linux Essentials): si chiama RH024 e dura tre ore. È fruibile on-line dal link web https://www.extraordy.com/corsi_red_hat/rh024
ovvero dal sito www.rh024.it e fornisce le basi di Red Hat Enterprise Linux.
Ciò che si impara è assolutamente portabile in qualunque Linux.
Offre anche un corso gratuito nel percorso di formazione legato ad Openshift che il DO080 che è l’introduzione ai Linux container, Kubernetes ecc. Anche questo, come il precedente, richiede la registrazione, che è libera.
Siccome si parla di Linux container e quindi è necessaria una conoscenza di Linux adeguata, acquisibile dal corso RH024.
C’è poi un corso per il terzo argomento chiave, ossia la automation ed è il corso DO007, sempre gratuito e in italiano, anche questo erogato da istruttori di Extraordy.
In tutto sono disponibili 9 ore di formazione fruibili gratuitamente.
Da qui ci si muove o ci si può muovere su un percorso di tipo Enterprise, dove si va in profondità su questi argomenti; chiaramente i relativi corsi enterprise sono a pagamento e rivolti a professionisti del settore.
Tra questi ci sono corsi finalizzati a portare le persone a diventare System Administrator certificato. Componente importante della formazione Red Hat sono le certificazioni, per ottenere le quali sono previsti appositi esami organizzati attraverso Extraordy.
L’offerta di corsi ufficiali Red Hat può mettere qualche dubbio a chi non sa quale seguire, per questo è consigliabile consultare la pagina descrittiva https://www.extraordy.com/extraordy-tips-red-hat-certifications/ del sito web Extraordy.
Il primo livello di certificazione è quello di Red Hat Certified System Administrator che costa di due corsi, quindi si passa alla Red Hat Certified System Engineer (RHCE).
E poi ci sono i corsi di approfondimento per diventare uno specialista su una determinata tecnologia, quindi su Openshift, Ansible, JBoss Enterprise Application Platform e via di seguito.