Kubernetes

Gli ingegneri del Kubernetes mantengono in funzione software

Tempo di lettura: 6 minuti

In greco, la parola “kubernetes” significa “nocchiere”. Nella tecnologia, è un sistema creato da Google che usa i container per aiutare il software a lavorare in modo più efficiente con lo spazio del server di cui dispone. Proprio come qualcuno guida una nave container, Kubernetes si assicura che tutto arrivi dove dovrebbe essere.

I container sono sistemi che hanno tutto il necessario per far funzionare un software: il codice, le dipendenze, e su e giù. Le aziende costruiscono i loro prodotti utilizzando i container in modo che siano standardizzati, sia che girino nel cloud o in un centro dati fisico. Kubernetes gestisce i carichi di lavoro e i servizi associati ai container, quindi il software utilizza in modo efficiente lo spazio del server. Kubernetes, che Google ha donato alla Cloud Native Computing Foundation, è ora uno dei progetti open-source più attivi di sempre. Google rimane il principale contributore del progetto, comprese le posizioni di leadership e di comitato.

Il 26 agosto ricorre il quinto anniversario di Google Kubernetes Engine (GKE), la nostra versione gestita di Kubernetes open-source, che diventa disponibile per tutti. Gli ingegneri di GKE contribuiscono, oltre a Google Cloud, alla comunità di Kubernetes in generale. Qui, tre di questi ingegneri – Michelle Au, Janet Kuo e Purvi Desai – spiegano perché il Kubernetes è così importante e come viene utilizzato nel mondo reale.

Google Kubernetes Engine compie cinque anni quest’anno. Come spieghereste il Kubernetes a un bambino di cinque anni?

Michelle Au: Kubernetes è uno strumento che aiuta molti dei tuoi giochi e siti web preferiti a funzionare senza problemi, anche quando tutti i tuoi amici vogliono giocare contemporaneamente. Fa in modo che ci siano abbastanza computer in esecuzione per supportare tutti coloro che li utilizzano, che vengano riavviati in caso di crash e che si aggiornino senza problemi.

Janet Kuo: Pensate ai contenitori come a delle piante. Per far crescere una pianta, bisogna prima trovare dei vasi, e poi riempire i vasi con semi e compost. Diciamo che avete tutte le piante in un unico vaso e non c’è abbastanza compost in quel vaso. Poi dovete spostarle in altri vasi. Kubernetes è come un giardiniere che vi aiuta a prendervi cura delle vostre piante, a controllare i livelli di compost di ogni vaso, a controllare la salute delle vostre piante, a rimuovere le piante morte o a trapiantarle quando necessario. Il Kubernetes può anche crescere più o meno di certi tipi di piante (“Voglio almeno due rose e al massimo 10 rose in ogni momento”) in base alle vostre preferenze.

Purvi Desai: Immaginate che un bambino voglia costruire una città enorme con i Lego. Decidere quali blocchi di Lego servono richiederebbe molto tempo e molto lavoro. Ora immaginate invece che il bambino descriva vagamente l’idea della città, insieme a forme e colori, alla sua mamma. La mamma compra i kit Lego e li costruisce per il bambino. Lavora anche con loro ogni giorno per aggiungere altri edifici, in modo che il bambino possa passare più tempo a giocare che a lavorare. Pensate a Kuberentes come alla mamma, alle applicazioni che usate sul vostro computer o tablet come i Lego e al bambino come sviluppatore di applicazioni.

E come descriveresti il tuo ruolo in GKE a un bambino di cinque anni?

Michelle: In qualità di ingegnere del software del team di archiviazione, scrivo programmi per computer che fanno in modo che le sue informazioni importanti siano conservate in modo sicuro in Kubernetes.

Janet: Sono la responsabile del progetto Kubernetes. Esamino il codice, correggo i bug e implemento nuove funzionalità. Costruisco anche prodotti e strumenti su Kubernetes. Si può pensare a questi prodotti come ad attrezzature che Kubernetes usa per fare lavori più fantasiosi.

Purvi: Sono un senior manager nel team di sviluppo di GKE e Kubernetes. I miei team costruiscono l’impianto idraulico o le strade, ovvero il collegamento in rete, per Kubernetes. Noi facciamo il lavoro pesante per i nostri clienti.

Perché Kubernetes è così importante?

Janet: In un mondo in cui i clienti hanno bisogno di accedere al software – indipendentemente dalla loro posizione – Kubernetes permette alle applicazioni di funzionare su scala globale. Un altro vantaggio di Kubernetes è che funziona ovunque, in modo da poter spostare le applicazioni. Kubernetes permette anche di personalizzare e gestire qualsiasi risorsa si desideri, anche quelle che vivono al di fuori di Kubernetes, utilizzando le API di Kubernetes.

Michelle: Kubernetes rende più facile per gli utenti adottare buone pratiche per l’esecuzione delle applicazioni. Fornisce i blocchi di base per scalare i carichi di lavoro, monitorare la loro salute e aggiornarli. Questo permette ai team di sviluppare, lanciare e testare le loro applicazioni più velocemente, rendendole più affidabili e dinamicamente scalabili. Kubernetes è decollato perché è portatile in qualsiasi fornitore di infrastrutture e flessibile per estenderlo con API personalizzate.

Purvi: Kubenetes consente di eseguire applicazioni native cloud ovunque in modo coerente su varie piattaforme. È diventato molto popolare non solo per gli sviluppatori delle moderne applicazioni native per microservizi cloud, ma anche per gli sviluppatori che cercano di spostare le loro applicazioni tradizionali su una piattaforma che non dipende dall’infrastruttura sottostante. Ha permesso sia agli sviluppatori che agli operatori di eseguire i loro carichi di lavoro di test e di produzione in ambienti di loro scelta senza dover ricablare l’applicazione. Questo continuerà man mano che sempre più aziende diventeranno digitali.

Quali sono alcune applicazioni reali di GKE? Raccontateci la storia di un caso d’uso preferito dai clienti.

Janet: Uno dei miei clienti preferiti è Shopify. Shopify funziona interamente su GKE. Hanno scelto GKE e Kubernetes perché permette a Shopify di far fronte a enormi picchi di traffico, come il Cyber Monday, gli eventi di shopping del Black Friday o quando una celebrità condivide un nuovo prodotto sul loro negozio Shopify.

Michelle: Mi piace sentire come GKE permette ai clienti di superare i limiti dell’informatica. La mia storia preferita dei clienti è questa keynote di Kubecon del CERN che includeva una demo live su GKE che elaborava 70TB di dati in cinque minuti per riscoprire il bosone di Higgs. Questo è stato impressionante non solo per i risultati scientifici e la potenza di elaborazione dimostrata, ma anche perché hanno evidenziato la portabilità di Kubernetes e l’ambiente riproducibile dei contenitori.

Purvi: I miei casi d’uso preferiti sono quelli in cui i clienti hanno una crescita massiccia e di successo in pochi minuti e GKE li aiuta ad essere all’altezza di queste esigenze. Vediamo grafici sorprendenti durante il lancio di nuovi giochi online, i Black Fridays, le vendite in flash, durante eventi live come il Super Bowl, quando i clienti migrano il traffico e durante il lancio di nuovi prodotti. È così soddisfacente vedere la crescita del business dei nostri clienti e il ruolo della nostra piattaforma nell’abilitarla senza soluzione di continuità.

Com’è stata la sua esperienza come donna nello sviluppo di software? Come pensa che sarà il futuro per le donne nel settore?

Janet: Qualche anno fa sono andata a un incontro di sviluppo con una mia amica che non ci era mai stata prima. Era sorpresa che fossimo le uniche due donne lì, ma non me ne sono nemmeno accorta perché ero così abituata a essere in minoranza. Fortunatamente, il nostro settore sta diventando sempre più diversificato nel tempo.

Michelle: All’università facevo parte di una comunità femminile di ingegneri, dove ho stabilito molte amicizie durature. Nel team del GKE, ho potuto lavorare con molte grandi donne leader, e la leadership in generale è stata molto solidale e accomodante per far sì che tutte si sentissero sicure e a proprio agio nel team. So che la mia esperienza purtroppo non è la norma per molte donne sul campo. Spero che con un maggior numero di donne come modello e leader, potremo contribuire a costruire comunità inclusive e incoraggiare un maggior numero di donne a intraprendere una carriera nel software.

Purvi: Quando sono entrata in una startup appena uscita dal college, ero l’unica donna del gruppo di ingegneria e prodotti. Ma grazie alla mia educazione e alla profonda attenzione al mio lavoro, non mi sono mai sentita fuori posto sul campo. In seguito, però, ho sentito il pizzico in un altro lavoro di startup quando ho avuto mio figlio e sono stata la prima madre della squadra. L’azienda non aveva sistemi di supporto come il congedo retribuito o la stanza della madre. Nel complesso, le cose stanno migliorando con più donne sul campo. Penso che il futuro per le donne nello sviluppo di software sia luminoso.

Qual è il suo consiglio per gli aspiranti sviluppatori che vogliono iniziare?

Michelle: È importante dedicare del tempo all’apprendimento di concetti informatici piuttosto che immergersi in tecnologie specifiche. I più recenti framework e linguaggi di programmazione andranno e verranno, quindi sarà più facile adattarsi e imparare se si dispone di un buon background concettuale.

Janet: Stai con le mani in mano. Costruisci qualcosa da ciò che hai imparato, e non preoccuparti se è “abbastanza buono”. Scrivete articoli su ciò che state costruendo o imparando. Questo ti aiuta a crescere e ad approfondire la tua comprensione di una nuova tecnologia.

Purvi: Trova la tua passione o il tuo interesse ed esplora come l’informatica può aiutarti a realizzarla. Devi gettare le basi imparando linguaggi di programmazione, algoritmi, strutture dati e così via. Questo potrebbe diventare noioso e difficile, ma queste sono abilità fondamentali proprio come la lettura o la matematica. Una volta gettate le basi, la capacità di trasformare la vostra passione in realtà sarà esilarante.