Cloud Native Kubernetes: Flusso e opportunità di lavoro

Questo nuovo articolo vuole indicare le nuove opportunità di lavoro create da un ambiente cloud-native.

L’immagine n°1 mostra i quattro livelli principali necessari all’architettura per funzionare correttamente (parte rettangolare sinistra).

Sul lato destro (cerchi) sono rappresentati le occupazioni dell’operatore rispetto ad ogni singolo livello.

Immagine 1

Dal basso verso l’alto:

1- Gli Storage and Network Operator (SNO) hanno la responsabilità di gestire l’architettura hardware.

Il numero dell’attività del ruolo può diminuire in caso di implementazione in un cloud pubblico o IaaS (Infrastructure as a Service)

2- L’Operatore del sistema operativo (OSO) lavora al livello del sistema operativo in cui viene eseguito il servizio k8s.

L’OSO ha bisogno di competenza in Linux e Windows. Sono spesso richieste competenze nell’architettura di virtualizzazione come VMware, RedHat, Nutanix, ecc.

Se l’architettura è stata affittata dal cloud pubblico o in generale in un IaaS, le competenze devono coprire questa nuova architettura.

3- L’operatore di orchestrazione (OO) lavora con il nucleo dell’ambiente di amministrazione cloud-native. Questo mondo ha bisogno di molte nuove abilità.

L’automazione è il figlio dell’orchestrazione.

Il concetto principale è che l’OO dovrebbe avere competenze sufficienti per riuscire a seguire tutti i processi di “Integrazione Continua” e “Consegna Continua” (spesso chiamata CI/CD).

L’immagine 2 dà un’idea a riguardo

Le frecce centrali mostrano il flusso per consentire l’erogazione di un servizio.

Per ogni singola freccia ci sono nuovi strumenti da conoscere per gestire l’intero rilascio del servizio.

Solo alcuni esempi: per testare l’ambiente è possibile lavorare con cetriolo o Cypress.io, per la distribuzione e la costruzione è possibile utilizzare Jenkins… e così via…

Immagine 2

Nota 1: ci sono così tante piattaforme disponibili che la scelta di quella giusta potrebbe essere molto impegnativa

4- L’operatore di sviluppo è il ruolo delle persone che sono scritte righe di codice. Spesso usano software per gestire attività come Jira Core e Trello.

Nota 2: A mio parere personale, il fornitore che crea un livello software in grado di gestire centralmente tutte queste 6 attività principali avrà un vantaggio competitivo rispetto ai concorrenti.

I grandi fornitori stanno già giocando: RedHat sta lavorando dall’inizio con la sua piattaforma (OpenStack), VMware ha rilasciato Tanzu, Nutanix con Carbonite e Microsoft giocherà il suo ruolo con la nuova versione di Windows 2022.

L’unico buon suggerimento che posso darti è quello di studiare questo nuovo e fantastico mondo.

A presto e abbi cura di te

Kubernets: Perchè adottarlo?

Kubernetes (k8s), è una piattaforma open source, introdotta da Google, introdotta come un semplice strumento di orchestrazione di container ma è diventata di fatto la piattaforma cloud-native.

Perché “k8s” viene così ampiamente utilizzato?

Poichè  è in grado di rispondere efficacemente alle richieste di qualità di servizio degli utenti,  di adattarsi alla creatività dei cloud-architect e di essere così stabile da soddisfare le richieste delle operation.

Tali vantaggi possono essere così riassunti:

  • Affidabile
  • Scalabile
  • Auto-guarigione
  • Veloce
  • Efficiente
  • Sicuro
  • Agile
  • Trasportabile

Nel presente articolo svilupperemo le 8 argomentazioni appena indicate:

1- Affidabilità significa un’architettura in grado di funzionare anche se una parte di essa non è più disponibile. K8s è stato pensato con una filosofica nativamente clusterizzata.

2- La scalabilità è necessaria per gestire qualsiasi picco di carico di lavoro. In altre parole, è in grado di risponde a richieste di nuove risorse on-demand.

Il modello di architettura sul quale si basa è il disaccoppiamento. Ogni singolo componente ha le proprie caratteristiche e può essere facilmente aggiunto all’ambiente k8s.

Attraverso i file di configurazione i vari oggetti sono autorizzati a comunicare tra loro.

I componenti principali dell’architettura k8s sono i nodi, i componenti dei servizi k8s sono i bilanciatori del carico, i name-spaces e così via (vedi prossimi articoli)

3- Guarigione: K8s agisce per assicurare che lo stato corrente corrisponda automaticamente allo stato desiderato dell’architettura.

4- Veloce: K8s è in grado di distribuire i componenti immediatamente. In questo modo è possibile rispondere ad una richiesta di gestione del sovraccarico e/o necessità di implementare velocemente nuovi servizi.

5- L’efficienza è il rapporto tra il lavoro utile e la quantità totale di energia utilizzata per ottenere il risultato. K8s per la sua architettura ha il miglior rapporto perché ha l’essenzialità nel suo DNA.

6- La sicurezza lavora a stretto contatto con k8s.

a- Le immagini che girano nei contenitori sono per la loro definizione immutabili. Questo approccio ha un grande vantaggio perché:

Nessuna modifica viene implementata a livello di sistema (contenitore).

-Niente può modificare il nucleo del servizio a meno che l’intera immagine non venga eliminata e ridistribuita.

Confrontiamo questo approccio con un ambiente standard, dove è presente una VM  Linux.

Se su quest’ultima volessimo installare, modificare, aggiornare un’applicazione, dovremmo agire via apt-get sui pacchetti necessari.

Così facendo modificheremo l’ambiente aprendo di fatto una breccia in ambito sicurezza.

In K8s non viene modificata l’immagine ma cancellata e ricreata.

b- Un altro grande vantaggio è che le modifiche alla configurazione sono gestite tramite file dichiarativi (file di configurazione). Questi file hanno una descrizione dello stato finale del sistema. Il risultato è che mostrano l’effetto della configurazione prima che venga eseguita.

7- Agilità significa maggiore facilità ed efficienza nella creazione di immagini container rispetto all’utilizzo di immagini VM. Lo sviluppatore può scrivere codice indipendentemente dai problemi di compatibilità.

8- La portabilità crea lo standard del ciclo di vita dello sviluppo software.

Nota 1: la prima versione di Kubernetes risale al 2014 ed è stata creata per rispondere alla necessità di implementare una solida soluzione di cluster per ambienti container.

Statemi  bene e a presto