Google esegue su Linux
Riepilogo
In questo articolo, esploriamo perché l’esecuzione di Linux su Google Cloud Platform è una combinazione potente. Approfondiamo anche i motivi alla base della decisione di Google di utilizzare Linux internamente e le sfide che hanno dovuto affrontare con gli aggiornamenti tradizionali. Discutiamo quindi come Google ha implementato le versioni di rotolamento con Glinux Rodete, in base a Debian, e i vantaggi che porta alle loro operazioni.
Punti chiave:
- Google gestisce flotte di produzione di grandi dimensioni, tra cui YouTube e Gmail, utilizzando una varietà di piattaforme di sistema operativo, tra cui Linux.
- Per molto tempo, la distribuzione interna di Google Linux, Goobuntu, è stata basata su rilasci di ubuntu LTS.
- Il ciclo di aggiornamento di due anni per le versioni LTS ha posto sfide per la flotta di Google di oltre 100.000 dispositivi.
- Per automatizzare il processo di aggiornamento, Google ha sviluppato uno strumento di aggiornamento sul posto incustodito che ha minimizzato la configurazione manuale.
- Il processo di aggiornamento di solito impiegava quasi un anno, portando ad alti livelli di stress e burnout nella squadra.
- L’uso delle versioni LTS significava che alcune correzioni di bug e miglioramenti potrebbero non essere stati sostenuti.
- Upgrade speciali e sfide di gestione delle modifiche aggiunte alla complessità e alla durata del processo di aggiornamento.
- Per risolvere questi problemi, Google è passato alle rilasci di rotolamento con Glinux Rodete, in base ai test di Debian.
- Invece di un ciclo di due anni, le versioni di rotolamento hanno distribuito il carico di lavoro e hanno consentito cambiamenti incrementali più piccoli.
- La disponibilità di pacchetti in Debian, la comunità di Debian e i pacchetti interni esistenti hanno influenzato la scelta di Debian come distribuzione di base.
Domande:
- Su quali piattaforme esegue Google?
- Perché Google ha scelto Ubuntu come base per la loro distribuzione interna di Linux?
- Quali sfide hanno affrontato Google con il ciclo di aggiornamento di due anni di versioni LTS?
- In che modo Google ha automatizzato il processo di aggiornamento?
- Perché stava esaurendo una versione LTS stressante per il team di Google?
- Qual è stata la motivazione dietro il passaggio di Google alle versioni di rotolamento?
- Perché Google ha scelto Debian per la loro distribuzione di rilascio rotolante?
- Quali vantaggi fornisce la traccia di test di Debian?
- Con quale frequenza si aggiornano su Google Release con la distribuzione della loro versione di Rolling Release?
- Quale approccio ha adottato Google per garantire le rilasci fluidi nel processo di rilascio di rotolamento?
Google gestisce grandi flotte di produzione su piattaforme come YouTube e Gmail. Hanno anche una flotta aziendale con centinaia di migliaia di dispositivi su più piattaforme, modelli e posizioni.
Google ha scelto Ubuntu per la sua distribuzione interna di Linux perché era facile da usare, facile da usare e ha offerto le versioni di supporto a lungo termine (LTS) con 2+ anni di aggiornamenti di sicurezza.
La natura complessa dei carichi di lavoro nella flotta di Google ha reso la reinstallazione e la personalizzazione delle macchine per ogni aggiornamento un’operazione difficile e che richiede tempo. Questo non era finanziariamente sostenibile e gli ingegneri dovevano configurare il proprio spazio di lavoro da zero ogni due anni, portando a un calo della produttività.
Google ha sviluppato uno strumento di aggiornamento sul posto incustodito che ha automatizzato i problemi del caso comune durante il processo di aggiornamento. Questo strumento ha salvato gli ingegneri dall’aggiornare manualmente le loro macchine reinstallandole e ricreando tutte le configurazioni.
L’aggiornamento della flotta di Goobuntu ha richiesto quasi un anno, lasciando solo una breve finestra di inattività fino al prossimo aggiornamento. Questo costante ciclo di aggiornamenti ha creato un ambiente ad alto stress per la squadra, portando a un senso di burnout. Bug e richieste di aiuto aggiunte anche al carico di lavoro.
Invece di seguire un ciclo di aggiornamento di due anni, Google ha voluto distribuire il carico di lavoro e consentire cambiamenti incrementali minori. Le versioni di rotolamento con distribuzioni Linux hanno dimostrato che le variazioni più piccole sono più facili da controllare e rollback.
Google ha scelto Debian per la sua distribuzione di rilascio rotolante, Glinux Rodete, perché ha offerto una regolare migrazione sul posto e ha avuto una grande comunità di Debian. I pacchetti interni e gli strumenti esistenti hanno anche utilizzato il formato Debian.
La traccia di test di Debian funziona come un rilascio di rotolamento, che fornisce il pool di tutti i pacchetti ingeriti e costruiti a monte. Ciò consente a Google di ottenere cambiamenti più granulari e fornire il software più recente ai propri ingegneri senza periodi di attesa più lunghi.
Google inizialmente destinato a rilasci più frequenti, ma ha scoperto che le versioni settimanali hanno raggiunto un equilibrio tra spostarsi rapidamente e consentire una qualifica di rilascio adeguata. Ciò ha contribuito a limitare l’interruzione alla produttività degli sviluppatori.
Google prende un’istantanea di tutti i pacchetti ingeriti da Debian quando si avvia una nuova versione. Dopo i test di accettazione, il candidato a rilascio ermetico viene implementato con cautela a un gruppo prescelto di utenti per ulteriori test.
Risposte:
- Google gestisce grandi flotte di produzione che servono prodotti come YouTube e Gmail. Hanno anche una flotta aziendale con centinaia di migliaia di dispositivi che operano su varie piattaforme, modelli e sedi. Per supportare i propri dipendenti, compresi gli ingegneri, Google opera con più piastre del sistema operativo, tra cui Linux. Nel 2018, Google ha completato la sua transizione a un modello di rilascio a rotazione basato su Debian.
- Google ha scelto Ubuntu come base per la loro distribuzione interna di Linux perché era facile da usare, facile da usare e ha offerto le versioni di supporto a lungo termine (LTS) con 2+ anni di aggiornamenti di sicurezza. Questi versioni LTS hanno fornito stabilità e aggiornamenti di sicurezza regolari per la flotta di dispositivi di Google.
- Il ciclo di aggiornamento di due anni delle versioni LTS ha posto sfide per Google. Con oltre 100.000 dispositivi nella loro flotta, aggiornando e personalizzando manualmente ogni macchina prima della data di fine vita del sistema operativo richiedeva tempo e non finanziariamente fattibile. La natura complessa dei carichi di lavoro sulle macchine aziendali complicava ulteriormente il processo di aggiornamento.
- Per automatizzare il processo di aggiornamento e ridurre al minimo la configurazione manuale, Google ha sviluppato uno strumento di aggiornamento sul posto incustodito. Questo strumento si è concentrato sull’automazione dei problemi dei casi comuni durante l’aggiornamento e gli ingegneri salvati dal dover reinstallare le macchine e ricreare manualmente tutte le configurazioni.
- Eseguire una versione LTS è stato stressante per il team di Google a causa del tempo e degli sforzi richiesti per il processo di aggiornamento. Con un periodo di tempo tra gli aggiornamenti, il team ha subito un ciclo costante di aggiornamenti e correzioni di bug. Questo ambiente ad alto stress ha spesso portato a un senso di esaurimento tra i membri del team.
- La motivazione alla base del passaggio di Google alle rilasci di rotolamento era di distribuire il carico di lavoro e consentire cambiamenti incrementali più piccoli. Questo approccio si allinea alla tendenza del settore di CI/CD e ha dimostrato che le variazioni più piccole sono più facili da controllare e rollback rispetto a grandi aggiornamenti rari.
- Google ha scelto Debian come base per la loro distribuzione di rilascio rotolante, Glinux Rodete. La decisione è stata influenzata da diversi fattori, tra cui la disponibilità di pacchetti in Debian, la grande comunità di Debian e la compatibilità dei pacchetti interni esistenti e degli strumenti utilizzando il formato Debian.
- La traccia di test di Debian offre numerosi vantaggi alla distribuzione del rilascio di Google. La pista di test funziona come un rilascio rotolante, ingerisce costantemente e costruisce pacchetti da Upstream. Ciò consente a Google di avere cambiamenti più frequenti e granulari, fornendo ai propri ingegneri l’accesso al software più recente senza periodi di attesa prolungati.
- Google inizialmente destinato a versioni più frequenti con la loro distribuzione di rilascio di rotolamento, ma in seguito si è stabilito in uscite settimanali. Le versioni settimanali hanno raggiunto un equilibrio tra spostarsi rapidamente e consentire una qualifica di rilascio adeguata, riducendo al minimo l’interruzione per la produttività degli sviluppatori.
- Per garantire le versioni fluide nel processo di rilascio di rotolamento, Google prende un’istantanea di tutti i pacchetti ingeriti da Debian all’inizio di una nuova versione. Dopo i test di accettazione, il candidato a rilascio ermetico viene implementato con cautela a un gruppo selezionato di utenti per ulteriori test, garantendo un rilascio graduale e controllato.
Perché eseguire Linux su Google Cloud
Linux e Google Cloud Platform sono una forte combinazione con cui spostare la tua azienda nel cloud e nel futuro. Permettere’S Dai un’occhiata a ognuno prima di imparare cosa li distingue come una squadra.
Google esegue su Linux
Hero Image Credit: Markus Teich
In Google gestiamo flotte di produzione di grandi dimensioni che servono prodotti Google come YouTube e Gmail. Per supportare tutti i nostri dipendenti, compresi gli ingegneri, gestiamo anche una considerevole flotta aziendale con centinaia di migliaia di dispositivi su più piattaforme, modelli e sedi. Per lasciare che ogni Googler funzioni nell’ambiente in cui sono più produttivi, gestiamo molte piattaforme di sistema operativo tra cui un sistema Linux. Per molto tempo, la nostra distribuzione interno di Linux, Goobuntu, si basava su Ubuntu LTS Release. Nel 2018 abbiamo completato un trasferimento a un modello di rilascio a rotazione basato su Debian.
Aggiornamento della fatica
Più di 15 anni fa, Ubuntu è stato scelto come base per la distribuzione interna di Linux, in quanto è facile da usare, facile da usare e aveva molti extra fantasiosi. Le versioni di supporto a lungo termine (LTS) sono state raccolte in quanto è stato valutato che canonico ha fornito 2+ anni di aggiornamenti sulla sicurezza.
Tuttavia, questo ciclo di rilascio di due anni per le versioni LTS significava anche che dovevamo aggiornare ogni macchina nella nostra flotta di oltre 100.000 dispositivi prima della data di fine vita del sistema operativo. La natura complessa dei carichi di lavoro eseguiti su macchine aziendali significava che la reinstallazione e la personalizzazione delle macchine potrebbero essere un’operazione difficile e che richiede tempo. Il successo della produttività di avere tutti gli ingegneri configurare il proprio spazio di lavoro da zero ogni due anni non era un’opzione finanziariamente responsabile.
Per ogni ciclo del sistema operativo, abbiamo avuto un salto di versione piuttosto grande nei pacchetti principali che potrebbero richiedere modifiche significative alla configurazione del software. Per automatizzare questo processo, abbiamo scritto uno strumento di aggiornamento sul posto incustodito che si occupava di molti problemi del caso comune. Questo approccio focalizzato sull’automazione significava che la maggior parte dei dipendenti di Google non doveva aggiornare manualmente le loro macchine reinstallandole e ricreando tutta la loro configurazione. Per renderlo possibile, tuttavia, dovevamo eseguire test completi del processo di aggiornamento e verificare che tutti i pacchetti principali che erano cambiati continuassero a funzionare (in Ubuntu ciò potesse essere fino a diverse migliaia di pacchetti per l’aggiornamento tra le versioni principali). A volte è stato difficile fornire l’automazione nei casi in cui si sono verificate deprecazioni e gli ingegneri hanno dovuto prendere decisioni su come andare avanti.
Questo sforzo per aggiornare la nostra flotta di Goobuntu di solito ha preso la parte migliore di un anno. Con una finestra di supporto di due anni è rimasto solo un anno fino a quando non abbiamo dovuto passare attraverso lo stesso processo per tutto il prossimo LTS. L’intero processo è stato un enorme fattore di stress per il nostro team, poiché abbiamo ottenuto centinaia di bug con richieste di aiuto per i casi d’angolo. Una volta fatto un aggiornamento, c’era un senso generale di essere “vicino al burnout” Nella squadra da cui potevamo recuperare a malapena fino al prossimo round di aggiornamenti. Eseguire una versione LTS significava anche che alcuni bug incontrati dagli utenti della nostra distribuzione potrebbero’Ve è già stato fisso a monte, ma quei miglioramenti potrebbero’non è mai stato backportato alla versione LTS.
C’era anche una lunga coda di aggiornamenti speciali che a volte potevano trascinarsi per diversi anni. Gestire questo processo è stata un’enorme sfida di gestione del cambiamento per convincere gli ingegneri ad aggiornare le macchine che non’t lavorare nel processo automatico. Siamo diventati creativi quando motivano i nostri utenti a aggiornare le loro macchine. Le misure variavano dai messaggi fastidiosi sulla loro interfaccia utente, posta, riavvii programmati e persino chiudendo le macchine, per aumentare la consapevolezza che c’erano ancora alcune macchine in grave bisogno di un aggiornamento. A volte questo ha catturato macchine di cui le persone si erano completamente dimenticate, come l’unica macchina sotto una scrivania che gestiva una pipeline critica per qualcosa di importante, come si è scoperto.
Rilasci rotanti
Quando abbiamo progettato Glinux Rodete (Rolling Debian Testing), abbiamo mirato a rimuovere il ciclo di aggiornamento di due anni e invece dipingi il carico della squadra nel corso del tempo. La mossa generale a CI/CD nel settore ha dimostrato che le variazioni incrementali più piccole sono più facili da controllare e rollback. Le versioni di rotolamento con le distribuzioni Linux oggi stanno diventando più comuni (Arch Linux, Nixos).
Abbiamo pensato di andare con altre distribuzioni Linux, ma alla fine abbiamo scelto Debian perché volevamo di nuovo offrire una regolare migrazione sul posto. Ciò includeva considerazioni sulla disponibilità di pacchetti in Debian, la grande comunità di Debian e anche i pacchetti interni esistenti e gli strumenti che stavano utilizzando il formato Debian. Mentre la traccia stabile di Debian segue un salto di circa due anni tra le uscite, la traccia di test Debian funziona come un rilascio di rotolamento, in quanto è il pool di tutti i pacchetti ingeriti e costruiti a monte, in attesa del successivo rilascio stabile.
Il tempo dal rilascio a monte alla disponibilità nei test è spesso solo pochi giorni (sebbene durante i periodi di congela. Ciò significa che possiamo ottenere molti più cambiamenti granulari in generale e fornire il software più recente ai nostri ingegneri di Google senza dover aspettare periodi più lunghi.
Questa frequenza di aggiornamenti ci ha richiesto di riprogettare molti sistemi e processi. Sebbene originariamente intendevano rilasci più frequenti, abbiamo scoperto che per noi le versioni settimanali erano un punto debole tra muoversi rapidamente e consentire una qualifica di rilascio adeguata, limitando l’interruzione alla produttività degli sviluppatori.
Ogni volta che iniziamo una nuova versione, prendiamo un’istantanea di tutti i pacchetti ingeriti da Debian in quel momento. Dopo alcuni test di accettazione, il nuovo candidato a rilascio ermetico viene quindi implementato con cautela su una flotta di test dedicata e una canarino all’1% di flotta. Il canarino si tiene intenzionalmente nel corso di un paio di giorni per rilevare eventuali problemi con i pacchetti Debian o i pacchetti interni di Google prima che avanza.
Presentazione di setaccio
Per gestire tutte queste attività complesse dalla costruzione di tutti i pacchetti a monte dalla fonte, abbiamo creato un sistema di flusso di lavoro chiamato setaccio. Ogni volta che vediamo una nuova versione di un pacchetto Debian, iniziamo una nuova build. Costruiamo pacchetti nei gruppi di pacchetti, per tenere conto dei pacchetti separati che devono essere aggiornati insieme. Una volta che l’intero gruppo è stato costruito, eseguiamo una suite di test virtualizzata per assicurarci che nessuno dei nostri componenti principali e flussi di lavoro degli sviluppatori siano rotti. Ogni gruppo viene testato separatamente con un’installazione completa, l’avvio e la suite di test locale eseguiti su quella versione del sistema operativo. Mentre le costruzioni per i singoli pacchetti di solito completano in pochi minuti, questi test possono richiedere fino a un’ora data la complessità del gruppo di pacchetti.
Una volta costruiti i pacchetti e tutti i test superati, uniamo tutti i nuovi pacchetti con il nostro ultimo pool di pacchetti. Quando tagliamo una nuova versione, istanchiamo quel pool con ogni versione del pacchetto bloccato per quella versione. Procediamo quindi per guidare attentamente questo rilascio alla flotta utilizzando principi SRE come il canarino incrementale e il monitoraggio della salute della flotta.
Ma non tutte le build hanno successo al primo tentativo. Se un pacchetto non riesce a costruire, di solito controlliamo eventuali bug noti con il tracker di bug Debian e potenzialmente segnalalo, se non fosse già noto. A volte i nostri ingegneri di rilascio devono diventare creativi e applicare soluzioni/patch locali per ottenere un pacchetto da costruire all’interno del nostro ecosistema e successivamente a far cadere quelle soluzioni una volta che Upstream ha rilasciato una correzione.
Un problema che abbiamo incontrato alcune volte, ad esempio, è che in Debian a monte, i pacchetti sono generalmente costruiti in Debian instabile. Dopo alcuni giorni, questi pacchetti già costruiti migrano ai test Debian. In alcuni casi è possibile, tuttavia, che una dipendenza da build sia bloccata in instabile e quindi la costruzione all’interno dei test potrebbe non essere (ancora). In genere cerchiamo di lavorare a monte prima in questi casi, quindi riduciamo l’onere della complessità e della manutenzione per mantenere queste patch locali, restituendo anche alla comunità.
Se uno qualsiasi dei passaggi fallisce, il setaccio ha una cassetta degli attrezzi di trucchi per riprovare le build. Ad esempio, quando inizia la build iniziale di un gruppo di pacchetti, il sistema fa un’ipotesi istruita di cui le dipendenze devono essere costruite insieme. Ma a volte le informazioni sulla versione fornite nei pacchetti di origine Debian possono essere incomplete e questa ipotesi è sbagliata. Per questo motivo, il setaccio si rivolge periodicamente a gruppi di costruzioni che fallirono. Poiché l’ultima istantanea dei nostri pacchetti è un obiettivo in movimento, potrebbe accadere che dopo che un gruppo di pacchetti apparentemente indipendente venga aggiunto all’istantanea, un gruppo precedentemente rotto crea inaspettatamente e passa correttamente i test. Tutti questi flussi di lavoro sono per lo più automatici e questo evidenzia l’importanza del pensiero come SRE in questo campo. Quando si affronta un fallimento, di solito sembra più facile correggere una costruzione in fallimento una volta, ma se dobbiamo applicare più volte la stessa soluzione, mettere la soluzione alternativa in codice ridurrà l’onere complessivo sui nostri ingegneri.
Ci sono anche alcuni vantaggi per la sicurezza nella costruzione di tutti i nostri binari dalla fonte e dalla provenienza del codice sorgente aggiuntivo che verifica l’origine del binario in esecuzione. Durante un incidente di sicurezza, ad esempio, siamo in grado di ricostruire rapidamente e avere fiducia nella costruzione che lavora con una patch temporanea, poiché abbiamo costruito tutti i pacchetti prima, che atterrano nella nostra distribuzione. Inoltre, riduciamo anche la busta fiduciaria che dobbiamo inserire in Debian a monte e i manufatti binari di costruzione prodotti dalla loro infrastruttura. Invece una volta ingerito il codice sorgente e il binario costruito in modo verificabile, possiamo attestare crittograficamente che il binario in esecuzione abbia avuto origine da quel codice sorgente.
Aggiornamento a Rodete
L’ultima versione di Goobuntu era basata su Ubuntu 14.04 LTS (nome in codice fiduciario). Lo sviluppo su Rodete è iniziato nel 2015 ed è stato rapidamente chiaro che non potevamo’t basta rilasciare supporto per il fidato e richiedere all’intera popolazione ingegneristica di installare una nuova distribuzione. Dalla precedente esperienza di aggiornamento sul posto tra le versioni LTS, abbiamo già avuto una buona esperienza nel sapere cosa ci aspettava con questa migrazione. Poiché Ubuntu è un derivato da Debian e usa molte delle stesse infrastrutture/formati di imballaggio (APT), non era’T un’idea totalmente folle per aggiornare la flotta da Goobuntu 14.04 a Debian sul posto. Abbiamo riutilizzato alcune parti del nostro precedente strumento di aggiornamento sul posto e abbiamo lavorato per renderlo più affidabile, aggiungendo più automazione e molti più test.
Per semplificare la creazione di un tale strumento, testarlo e mantenerlo per la durata della migrazione, abbiamo scelto di congelare temporaneamente Glinux Rodete come istantanea dei test Debian in una data specifica che chiamiamo basale. Possiamo far avanzare questa base a nostra scelta, per bilanciare quali pacchetti setaccio ingeriscono. Per ridurre l’attrito, abbiamo impostato intenzionalmente la linea di base di Rodete all’attuale rilascio stabile di Debian nel 2016, che era molto più vicino allo stato generale di Ubuntu Trusty. In questo modo potremmo separare l’aggiornamento sul posto da fidato a Debian e le principali modifiche alla versione del pacchetto che si sono verificate in Debian in un secondo momento.
Nel 2017, abbiamo iniziato a migrare le macchine a Rodete e abbiamo completato le ultime migrazioni entro la fine del 2018. Tuttavia, avevamo ancora una linea di base di pacchetti che a quel punto risalgono a quasi due anni in passato. Per raggiungere i test di Debian, abbiamo iniziato uno sforzo di squadra per concentrarci sull’ottimizzazione del comportamento del setaccio e accelerare il tempo necessario per costruire / testare i pacchetti. Replaying degli aggiornamenti in questo modo incrementale e avere un obiettivo di rilascio in movimento che controlliamo ha alleviato il carico di lavoro per gli ingegneri di Google e il nostro team.
All’inizio del 2019 abbiamo iniziato a chiudere gli ultimi resti delle macchine Goobuntu. La nostra linea di base ha anche avanzato fino a ritardare solo ~ 250 giorni, il che all’epoca significava che stavamo usando la maggior parte delle versioni del pacchetto che facevano parte di Buster. A metà del 2020 abbiamo finalmente raggiunto completamente lo stesso momento in cui Debian Bullseye è stato rilasciato. Continuiamo ad andare avanti nella nostra base e probabilmente useremo già una versione simile della prossima versione stabile Debian, prima della sua uscita a metà del 2023.
Raggiungendo Zen
Oggi, la vita di un membro del team di Glinux sembra molto diversa. Abbiamo ridotto la quantità di tempo di ingegneria e energia richiesta per le versioni a un ingegnere di rilascio in servizio che ruota tra i membri del team. Non abbiamo più una grande spinta per aggiornare tutta la nostra flotta. Non c’è più bisogno di alfa, beta e gas multi -stadio per le nuove versioni LTS mentre simultaneamente inseguono le macchine più vecchie che continuavano a correre Ubuntu precise o lucide.
Abbiamo anche notevolmente migliorato la nostra posizione di sicurezza gestendo la nostra flotta più vicina alle versioni a monte. Mentre Debian fornisce una buona fonte di patch di sicurezza per le tracce stabili e vecchie, ci siamo resi conto che non ogni buco di sicurezza che ottiene patch, ha necessariamente un Debian Security Advisory (DSA) o un numero CVE. Il nostro programma di rilascio di rotolamento si assicura che patchiamo rapidamente i buchi di sicurezza sull’intera flotta senza compromettere la stabilità, mentre in precedenza gli ingegneri di sicurezza dovevano rivedere attentamente ogni DSA e assicurarsi che la correzione sia arrivata alla nostra flotta.
I nostri test di test e integrazione migliorati con team di partner chiave che eseguono i sistemi di sviluppatori critici hanno anche prodotto un’esperienza più stabile utilizzando una distribuzione Linux che fornisce le ultime versioni del kernel Linux. Il nostro forte desiderio di automatizzare tutto in condotta ha ridotto significativamente la fatica e lo stress all’interno del team. Ora è anche possibile per noi segnalare bug e incompatibilità con altre versioni della libreria, assicurandoti che gli strumenti di Google funzionino meglio all’interno dell’ecosistema Linux.
Se sei interessato a rendere il rotolamento della tua azienda un successo, allora considera di bilanciare le esigenze dell’azienda contro l’agilità dell’aggiornamento. Essere in controllo del nostro obiettivo commovente e del nostro basale ha contribuito a rallentare ogni volta che abbiamo incontrato troppi problemi e ha rotto uno dei nostri slos di squadra. Il nostro viaggio ha infine rafforzato la nostra convinzione che i cambiamenti incrementali siano meglio gestibili delle versioni di Big Bang.
Se sei in grado di controllare l’afflusso di nuovi lavori e mantenerlo prevedibile, abbiamo reso l’esperienza che i nostri ingegneri rimangono più felici e sono meno stressati. Ciò alla fine ha abbassato la squadra di squadra e si è assicurato di poter costruire competenze invece di affrontare più incendi in fiamme allo stesso tempo.
In futuro, stiamo pianificando di lavorare ancora più da vicino con Debian a monte e contribuire con più patch interni per mantenere l’ecosistema del pacchetto Debian.
- Sviluppatori e professionisti
- Sistemi
- Devops & Sre
Perché eseguire Linux su Google Cloud?
Le aziende nel cloud hanno molto da fare per loro: maggiore agilità, adattabilità, flessibilità e affidabilità, il che rende molto più facile rimanere in vantaggio rispetto alla curva. La combinazione dell’infrastruttura locale con i servizi cloud può dare nuova vita ai processi esistenti e aumentare il numero di strumenti e tecnologie a tua disposizione.
Sembra fantastico, giusto? È – ma prima, devi considerare la scelta del provider e del sistema operativo cloud. Quali fornirebbero le migliori basi su cui costruire il tuo ambiente cloud ibrido, consentendo comunque la flessibilità di adottare i servizi e le tecnologie che desideri?
Linux e Google Cloud Platform sono una forte combinazione con cui spostare la tua azienda nel cloud e nel futuro. Permettere’S Dai un’occhiata a ognuno prima di imparare cosa li distingue come una squadra.
Come funzionano insieme Linux e Google Cloud Platform
Piattaforma di Google Cloud
Piattaforma di Google Cloud, come Amazon’S AWS e Microsoft Azure, è una piattaforma cloud pubblica e fa parte di Google Cloud, che è costruita su Google’S Infrastruttura globale. Google Cloud fornisce strumenti di servizi e di gestione cloud – VIA La console di Google Cloud – che fornisce tutto il necessario per creare ambienti cloud e multicloud efficaci, distribuire applicazioni e API e supportare carichi di lavoro in tutti gli ambienti.
Google Cloud Platform ha gli strumenti e le capacità incentrati sulla sicurezza per consentire alla tua azienda di sfruttare tutti i vantaggi del cloud computing con una strategia chiara (Google Cloud Multicloud Solutions), prendere decisioni basate su informazioni accurate e aggiornate e informazioni di inventario (analisi dei dati), nonché trasformare il modo in cui i team comunicano e lavorano insieme (Papace di Google).
Google Cloud include Google Cloud Platform, nonché una suite di prodotti e strumenti come Google Cloud Storage (Object Storage), Google Cloud DataStore (database NOSQL), Google Cloud Functions (Platform-as-a-Service di Calco’S Data Center) e Google App Engine (Serverless Application Platform), nonché molto di più.
Linux foR cloud computing
Linux è un sistema operativo open source. A causa del suo modello di sviluppo open source, Linux è ideale per il cloud computing in quanto consente alle aziende di scegliere le piattaforme e le tecnologie che si adattano meglio alle loro esigenze e scopi, oltre a consentire la scelta dei servizi e dei fornitori necessari, evitando così spese non necessarie. Con Linux per il cloud computing, si ottiene tutti i vantaggi di Linux per le distribuzioni IT tradizionali con la flessibilità di crescere utilizzando tecnologie più recenti come Kubernetes, AI/ML e EDGE Calcolo. Per questi motivi, Linux rimane la scelta principale del sistema operativo nel cloud computing.
Meglio insieme: vantaggi dell’esecuzione di Linux su Google Cloud Platform
La piattaforma di Google Cloud è basata su Linux e funziona con una serie di distribuzioni Linux come CentOS, Ubuntu e Red Hat Enterprise Linux. La natura open source di un sistema Linux con la piattaforma di Google Cloud significa che gli utenti ottengono i seguenti vantaggi:
- Flessibilità di venditori e servizi
- Migrazione più semplice di applicazioni e informazioni
- Coerenza di informazioni e processi attraverso le impronte
- L’innovazione di una struttura e comunità open source
Fondamentalmente, un forte fornitore di cloud su una fondazione Linux consolidata significa che la tua strategia Cloud Enterprise è diretta nella giusta direzione.
Vantaggi di Red Hat Enterprise Linux su Google Cloud Platform
L’adozione di un approccio ibrido o multicloud può essere impegnativo, specialmente quando tu’essere utilizzato per hardware legacy e infrastruttura tradizionale. Ma il provider di servizi cloud giusti e la distribuzione di Linux forniscono un avvio solido. Con Red Hat® Enterprise Linux® su Google Cloud Platform, hai le basi per una strategia cloud che ti porterà ovunque tu voglia andare. E poiché Red Hat Enterprise Linux funziona su Google, così fai tutto il resto di Red Hat’Prodotti S.
Red Hat Enterprise Linux e Google Cloud Platform ti aiutano a semplificare la tua piattaforma di infrastruttura, accelerare lo sviluppo e la consegna delle applicazioni e incorporare l’automazione per i processi aziendali e di gestione, in modo da poter innovare più rapidamente e adattarsi ai cambiamenti del settore, della regolamentazione e globale.
E qui’S Something Else: Red Hat Enterprise Linux per SAP Solutions su Google Cloud è una piattaforma ad alte prestazioni per le operazioni di database che include contenuti e funzionalità specifici di SAP e consente alle organizzazioni di distribuire SAP attraverso ambienti cloud ibridi. Red Hat Enterprise Linux è una delle sole due distribuzioni Linux certificate per l’uso con SAP Hana® e SAP S/4Hana®.
Con configurazione flessibile, una base open source e incentrata sulla sicurezza, infrastruttura di rete globale e gestione e analisi avanzata dei dati, Red Hat e Google Cloud offrono le funzioni e le capacità necessarie per creare e gestire ambienti ibridi e multicloud in modo efficiente ed efficiente. Ogni componente offre funzionalità e valore chiave e un ambiente operativo affidabile e ad alte prestazioni per i carichi di lavoro e le applicazioni attraverso infrastrutture fisiche, virtualizzate, containerizzate, basate su cloud e bordo.
La storia dietro Google’S Desktop Linux interno

Se guardi intorno a Google’s Mountain View, CA Uffici, vedrai macchine Windows, Chromebook, Mac e desktop Glinux. G cosa, chiedi? Bene, oltre a fare affidamento su Linux per i suoi server, Google ha la sua distribuzione desktop Linux.
Non puoi prenderlo – dannazione! – ma per più di un decennio, Google ha cotto e mangiato la propria distribuzione del desktop Linux fatto in casa. La prima versione era Goobuntu. (Come immagineresti dal nome, era basato su Ubuntu.)
Nel 2018, Google ha spostato il suo desktop Linux interno dal Goobuntu a una nuova distribuzione di Linux, il Glinux con sede a Debian. Perché? Perché, come ha spiegato Google, il rilascio di due anni di supporto a lungo termine di Ubuntu (LTS) significava che dovevamo aggiornare ogni macchina nella nostra flotta di oltre 100.000 dispositivi prima della data di fine vita del sistema operativo.”
Quello era un dolore. Aggiungi la necessità di richiedere tempo per personalizzare completamente i PC degli ingegneri e Google ha deciso che costa troppo. Inoltre, lo “sforzo per aggiornare la nostra flotta di Goobuntu di solito ha preso la parte migliore di un anno. Con una finestra di supporto di due anni, è rimasto solo un anno fino a quando non abbiamo dovuto passare di nuovo lo stesso processo per il prossimo LTS. L’intero processo è stato un enorme fattore di stress per il nostro team, poiché abbiamo ottenuto centinaia di bug con richieste di aiuto per i casi d’angolo.”
Quindi, quando Google ne ha avuto abbastanza, è passato a Debian Linux (anche se non solo alla vaniglia Debian). La società ha creato una distribuzione Debian Rolling: Glinux Rolling Debian Test (Rodete). L’idea è che gli utenti e gli sviluppatori siano al meglio dando loro gli ultimi aggiornamenti e patch mentre sono creati e considerati pronti per la produzione. Tali distro includono Arch Linux, Debian Test e Opensuse Tumbleweed.
Per Google, l’obiettivo immediato era quello di scendere dal ciclo di aggiornamento di due anni. Come ha dimostrato la spostamento all’integrazione continua/distribuzione continua (CI/CD), questi cambiamenti incrementali funzionano bene. Sono anche più facili da controllare e rollback se qualcosa va storto.
Per far funzionare tutto questo senza molto sangue, sudore e lacrime, Google ha creato un nuovo sistema di flusso di lavoro, setaccio. Ogni volta che il setaccio individua una nuova versione di un pacchetto Debian, inizia una nuova build. Questi pacchetti sono integrati in gruppi di pacchetti poiché i pacchetti separati spesso devono essere aggiornati insieme. Una volta che l’intero gruppo è stato creato, Google esegue una suite di test virtualizzata per garantire che nessun componente principale e flussi di lavoro degli sviluppatori siano rotti. Successivamente, ogni gruppo viene testato separatamente con un’installazione completa, l’avvio e la suite di test locale. Il pacchetto si accumula in pochi minuti, ma i test possono richiedere fino a un’ora.
Una volta fatto ciò, tutti i nuovi pacchetti vengono fusi con il più recente pool di pacchetti Glinux. Quindi, quando Google decide che è tempo di rilasciarlo in produzione, il team istantanee quel pool. Infine, lancia il nuovo rilascio alla flotta. Certo, esso’non lo scaricherò su utenti. Invece, utilizza principi SRE (SITE Affidability Engineering (SRE) come il canarino incrementale per assicurarsi che nulla vada male.
Nel corso degli anni, Google è migliorato in questo. Oggi, grazie al setaccio, l’intero team di sviluppo di Glinux è costituito da un’unica posizione di ingegnere a rilascio in servizio che ruota tra i membri del team. Non ci sono grandi spinte per aggiornare la flotta. Nessun alfa a più stadi, beta e disponibilità generale (GA) rilasci.
Meglio ancora, grazie al programma di rilascio di rotolamento, Google può patch di sicurezza dei buchi sull’intera flotta senza compromettere la stabilità. In precedenza, gli ingegneri della sicurezza dovevano rivedere attentamente ogni Debian Security Advisory (DSA) per assicurarsi che la correzione fosse presente.
Inoltre, i test di test di test e integrazione migliorati di Google con i team dei partner chiave che eseguono i sistemi di sviluppatori critici hanno anche prodotto un’esperienza più stabile utilizzando una distribuzione Linux che fornisce le ultime versioni del kernel Linux. Il nostro forte desiderio di automatizzare tutto in condotta ha ridotto significativamente la fatica e lo stress all’interno del team. Ora è anche possibile per noi segnalare bug e incompatibilità con altre versioni della libreria, assicurandoti che gli strumenti di Google funzionino meglio all’interno dell’ecosistema Linux.”
Guardando al futuro, il team di Google lo ha dichiarato’Lavora “più da vicino con Debian a monte e contribuisce con più delle nostre patch interne per mantenere l’ecosistema del pacchetto Debian.”
Tutto suona alla grande. Ma ho due pensieri da condividere.
Innanzitutto, per alcune organizzazioni, le versioni LTS hanno ancora senso. Se non hai bisogno dei programmi più nuovi e più brillanti per la tua attività, un Ubuntu o Red Hat Lts Linux ha ancora senso.
Secondo, e questo è quello importante: il setaccio suona come il miagolio del gatto. Un programma in grado di automatizzare una pipeline di produzione di distro rolling al punto in cui ci vuole un solo ingegnere per mantenere un desktop utilizzato da oltre 100.000 utenti? Iscrivimi!
Meglio ancora, il codice del setaccio di rilascio in modo da poter iniziare tutti a produrre versioni desktop rotolanti Linux. Che ne dici, Google? Che ne dici?
- Desktop Linux
Copyright © 2022 IDG Communications, Inc.
