Google esegue su Linux?
D alla versione LTS, che ha creato difficoltà e limitazioni inutili per i nostri utenti.
Il modello di rilascio rotolante
Per affrontare queste sfide e migliorare l’esperienza complessiva per i nostri dipendenti, abbiamo deciso di passare dal modello LTS a un modello di rilascio di rotolamento. Il modello di rilascio di rotolamento consente aggiornamenti continui ed elimina la necessità di salti di versione importanti ogni due anni. Invece, gli aggiornamenti vengono consegnati in modo incrementale, garantendo che tutte le macchine siano sempre aggiornate con le versioni software più recenti e le patch di sicurezza. Ciò non solo risparmia tempo e sforzo in termini di aggiornamento, ma migliora anche la stabilità e la sicurezza attraverso la nostra flotta.
Passando a un modello di rilascio di rotolamento, siamo stati in grado di affrontare diversi punti deboli presenti con il modello LTS. In primo luogo, gli ingegneri non hanno più dovuto aggiornare manualmente le loro macchine reinstallandole e configurandole da zero. Gli aggiornamenti incrementali hanno consentito una transizione senza soluzione di continuità con interruzione minima. In secondo luogo, i test completi del processo di aggiornamento hanno assicurato che tutti i pacchetti principali continuassero a funzionare in modo efficace, riducendo le possibilità di eventuali problemi di compatibilità. Infine, rimanendo aggiornati con le ultime versioni software, siamo stati in grado di sfruttare le correzioni e i miglioramenti che non sono stati battuti al rilascio di LTS, migliorando le prestazioni complessive dei nostri sistemi.
I benefici
La transizione al modello di rilascio di rotolamento ha portato numerosi vantaggi per la nostra organizzazione. In primo luogo, ha migliorato la produttività dei nostri ingegneri eliminando la necessità di trascorrere tempo e sforzi significativi per aggiornare le loro macchine. Ciò ha permesso loro di concentrarsi maggiormente sul loro lavoro e contribuire allo sviluppo di soluzioni innovative. In secondo luogo, gli aggiornamenti continui hanno assicurato che i nostri sistemi siano sempre dotati delle ultime patch di sicurezza, riducendo il rischio di vulnerabilità e potenziali minacce. Inoltre, gli aggiornamenti incrementali hanno reso il processo complessivo di gestione della nostra flotta molto più fluida ed efficiente, riducendo il carico di lavoro nel nostro team e minimizzando le possibilità di errori o interruzioni. Nel complesso, il modello di rilascio di rotolamento ha dimostrato di essere un approccio prezioso in termini di stabilità, sicurezza e produttività.
Conclusione
Il passaggio dal modello LTS al modello di rilascio di rotolamento è stata una pietra miliare significativa nel nostro viaggio per ottimizzare la nostra distribuzione Linux per le diverse esigenze della nostra organizzazione. Incorporando aggiornamenti continui ed eliminando i principali salti della versione, siamo stati in grado di migliorare la produttività, la stabilità e la sicurezza dei nostri sistemi. Questa transizione non solo ha beneficiato i nostri ingegneri, ma ha anche migliorato l’esperienza complessiva per tutti i dipendenti di Google che fanno affidamento sull’ambiente Linux. Continueremo a evolvere e innovare la nostra distribuzione Linux per garantire che rimanga una piattaforma all’avanguardia per la nostra organizzazione.
1. Perché Google è passato a un modello di rilascio rotolante per la loro distribuzione Linux?
Google è passato a un modello di rilascio rotolante per affrontare le sfide e le limitazioni del modello LTS. Il modello LTS richiedeva una versione principale salta ogni due anni, causando sforzi, tempo e interruzioni significativi per gli ingegneri. La transizione a un modello di rilascio a rotazione consente aggiornamenti continui, eliminando la necessità di importanti aggiornamenti e garantendo che tutte le macchine siano sempre aggiornate con le versioni software più recenti e le patch di sicurezza.
2. Quali sono state le sfide che hanno dovuto affrontare con il modello LTS?
Il modello LTS ha presentato diverse sfide per Google. Una delle sfide principali era la necessità di migliorare manualmente le macchine reinstallandole e configurandole da zero ogni due anni. Questo processo ha richiesto molto tempo e dirompente. Inoltre, la versione di grandi dimensioni salta nei pacchetti principali durante ciascun ciclo del sistema operativo richiesto test completi e ha posato problemi di compatibilità. I limiti del modello LTS hanno inoltre impedito a Google di accedere alle ultime correzioni e miglioramenti che non sono stati arretrati alla versione LTS.
3. In che modo il modello di rilascio di rotazione ha migliorato il processo di aggiornamento?
Il modello di rilascio di rotazione ha migliorato il processo di aggiornamento eliminando la necessità di reinstallazione manuale e configurazione delle macchine. Gli aggiornamenti incrementali sono stati forniti continuamente, garantendo una transizione senza soluzione di continuità e minimizzando le interruzioni. Test completi del processo di aggiornamento hanno assicurato che tutti i pacchetti principali continuassero a lavorare in modo efficace, riducendo i problemi di compatibilità. Rimanendo aggiornato con le ultime versioni software, Google è stato in grado di sfruttare le correzioni e i miglioramenti che non erano disponibili nella versione LTS.
4. Quali vantaggi hanno il passaggio al modello di rilascio di rotolamento portato per Google?
La transizione al modello di rilascio a rotazione ha portato diversi vantaggi per Google. In primo luogo, ha migliorato la produttività degli ingegneri risparmiando tempo e sforzi precedentemente spesi per l’aggiornamento delle macchine. Ciò consente agli ingegneri di concentrarsi maggiormente sul proprio lavoro e contribuire a soluzioni innovative. In secondo luogo, gli aggiornamenti continui assicurano che i sistemi di Google siano sempre dotati delle ultime patch di sicurezza, riducendo il rischio di vulnerabilità. Infine, gli aggiornamenti incrementali hanno reso la gestione della flotta più fluida ed efficiente, riducendo il carico di lavoro sul team e minimizzando gli errori o le interruzioni.
5. In che modo il modello di rilascio a rotazione ha migliorato la stabilità e la sicurezza?
Il modello di rilascio di rotazione migliora la stabilità e la sicurezza assicurando che tutte le macchine siano sempre aggiornate con le versioni software più recenti e le patch di sicurezza. Con aggiornamenti continui, i sistemi di Google sono costantemente ottimizzati e protetti da potenziali vulnerabilità e minacce. Rimanendo aggiornati con correzioni e miglioramenti di bug, le prestazioni complessive dei sistemi sono migliorate, fornendo un ambiente più stabile e sicuro per gli utenti.
6. Qual è stata la precedente distribuzione Linux di fronte a Google di Google basata su?
La precedente distribuzione di Linux di Google di Google, Goobuntu, si basava sulle versioni di Ubuntu LTS.
7. Quanti dispositivi ci sono nella flotta aziendale di Google?
La flotta aziendale di Google è composta da centinaia di migliaia di dispositivi su più piattaforme, modelli e sedi.
8. Perché Ubuntu è stato scelto come base per la distribuzione interna di Google Linux?
Ubuntu è stato scelto come base per la distribuzione interna di Linux di Google perché era facile da usare, facile da usare e ha offerto ulteriori funzionalità e aggiornamenti di sicurezza attraverso le sue versioni di supporto a lungo termine (LTS).
9. Quali sfide hanno saltato la versione principale durante il presente del ciclo del sistema operativo?
La versione principale salta durante il ciclo del sistema operativo ha presentato sfide relative alla configurazione del software. Gli ingegneri dovevano prendere decisioni su come andare avanti di fronte a deprecazioni e garantire che tutte le configurazioni del software fossero compatibili con le nuove versioni. Ciò ha richiesto test completi e talvolta ha posto difficoltà a fornire automazione.
10. In che modo il processo di aggiornamento ha influito sul team che lavora su goobuntu?
Il processo di aggiornamento è stato stressante per il team che lavora su Goobuntu. Hanno ricevuto centinaia di bug e richieste di aiuto, specialmente per i casi d’angolo. Il costante ciclo di aggiornamenti senza abbastanza tempo di recupero ha creato il senso di essere vicino al burnout nella squadra.
11. In che modo Google garantisce l’integrità dei loro pacchetti Linux?
I pacchetti Linux di Google sono firmati con le chiavi GNU Privacy Guard (GPG). Queste chiavi vengono configurate automaticamente nel gestore pacchetti per verificare gli aggiornamenti del prodotto. Tuttavia, gli utenti possono anche scegliere di installare le chiavi separatamente per verificare manualmente l’integrità dei download di pacchetti iniziali.
12. Qual è il significato della distribuzione Linux di Google basata su Debian ora?
La distribuzione di Linux di Google è ora basata su Debian, che consente un modello di rilascio di rotolamento. Ciò significa che gli aggiornamenti vengono consegnati continuamente, eliminando la necessità di salti di versione importanti ogni due anni. Ciò migliora la stabilità, la sicurezza e la produttività per l’organizzazione.
13. Come può i sistemi basati su APT installare la chiave di firma del pacchetto Linux di Google?
Su sistemi basati su APT come Debian o Ubuntu, gli utenti possono scaricare la chiave usando il comando:
wget -q -o -https: // dl.Google.com/linux/linux_signing_key.Pub | sudo Apt-Key Aggiungi -
14. Come può i sistemi basati su rpm installare la chiave di firma del pacchetto Linux di Google?
Su sistemi basati su RPM come Fedora o SUSE, gli utenti possono scaricare la chiave utilizzando il comando:
wget https: // dl.Google.com/linux/linux_signing_key.pub
sudo rpm --import linux_signing_key.pub
15. Come si può verificare l’installazione della chiave RPM?
L’installazione della chiave RPM può essere verificata eseguendo il comando:
rpm -qi gpg-pubkey-7fac5991-*
Come Google è arrivato a Rolling Linux per i desktop
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®.
Repository software Linux
Google’I pacchetti software L Linux configureranno automaticamente le impostazioni del repository necessarie per mantenere aggiornate le applicazioni Google Linux. Scarica e installa pacchetti dalle pagine del prodotto appropriate.
- Google Chrome
- Google Earth
- Google Music Manager
- Google Voice and Video Chat
- mod_pagespeed per Apache
- Google Web Designer
I tasti di firma del pacchetto Linux
Google’I pacchetti S Linux sono firmati con le chiavi GNU Privacy Guard (GPG). Google’I pacchetti S configureranno automaticamente il tuo gestore pacchetti per verificare gli aggiornamenti del prodotto con la chiave di firma pubblica, ma è anche possibile installarlo separatamente se, ad esempio, si desidera verificare l’integrità di un download del pacchetto iniziale. Segui le istruzioni seguenti per configurare manualmente il gestore pacchetti per utilizzare le chiavi.
Dettagli chiave
- Scarica: https: // dl.Google.com/linux/linux_signing_key.pub
- ID chiave: Google, Inc. Chiave di firma del pacchetto Linux
Impronta digitale: 4cca 1af 950c EE4A B839 76DC A040 830F 7FAC 5991 - Google inc. (Autorità di firma del pacchetto Linux)
Impronta digitale: EB4C 1BFD 4F04 2F6D DDCC EC91 7721 F63B D38B 4796
Installazione del tasto della riga di comando per APT
Su un sistema basato su APT (Debian, Ubuntu, ecc.), scarica la chiave e quindi usa APT per installarla.
wget -q -o -https: // dl.Google.com/linux/linux_signing_key.Pub | sudo Apt-Key Aggiungi -
Le versioni recenti di APT-get tenteranno automaticamente di verificare i pacchetti sul download. Se non viene trovata una chiave appropriata o se il pacchetto è corrotto, riceverai un messaggio come quanto segue:
ATTENZIONE: i seguenti pacchetti non possono essere autenticati!
nome del pacchetto
Installazione del tasto della riga di comando per RPM
Su un sistema basato su RPM (Fedora, Suse, Mandriva, Rhel, ecc.), scarica la chiave e quindi usa RPM per installarla.
wget https: // dl.Google.com/linux/linux_signing_key.pub
sudo rpm --import linux_signing_key.pub
È possibile verificare l’installazione chiave eseguendo:
rpm -qi gpg-pubkey-7fac5991-*
Per verificare manualmente un pacchetto RPM, è possibile eseguire il comando:
RPM --checksig -v packagename.RPM
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
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.
La verità su Goobuntu: il desktop interno di Google Ubuntu Linux

San Diego, CA: La maggior parte delle persone Linux sanno che Google utilizza Linux sui suoi desktop e sui suoi server. Alcuni sanno che Ubuntu Linux è il desktop preferito da Google e che si chiama Goobuntu. Ma quasi nessuno al di fuori di Google sapeva esattamente cosa c’era o quali ruoli gioca Ubuntu Linux nel campus di Google, fino ad ora.
Oggi, 29 agosto, Thomas Bushnell, il protagonista tecnologico del gruppo che gestisce e distribuisce Linux ai desktop aziendali di Google hanno presentato Goobuntu da dietro il sipario di Google a Linuxcon, la conferenza tecnica annuale della North American della Linux Foundation, puoi scaricare Goobuntu per eseguirlo? Beh sì e no.
Bushnell lo ha spiegato “Goobuntu è semplicemente una pelle chiara su Ubuntu standard.” In particolare, Google utilizza l’ultimo supporto a lungo termine (LTS) di Ubuntu. Ciò significa che se scarichi una copia dell’ultima versione di Ubuntu, 12.04.1, per la maggior parte degli scopi pratici, eseguirai Goobuntu.
Google utilizza le versioni LTS perché i due anni tra le versioni sono molto più praticabili rispetto al ciclo di sei mesi di uscite ordinarie di Ubuntu. Inoltre, Google cerca anche di aggiornare e sostituire il suo hardware ogni due anni in modo che si sincronizza bene anche.
Perché Ubuntu, piuttosto che dire Mac o Windows? Beh, puoi gestire anche quelli. Bushnell ha detto, “Googlers [Google Employees] sono invitati a utilizzare gli strumenti che funzionano per loro.. Se Gmail non vuole lavorare per loro, può usare pino [un client di e-mail basato su caratteri UNIX Shell] va bene. Le persone non sono tenute ad usare Ubuntu.” Ma l’uso di Goobuntu è incoraggiato e “Tutti i nostri strumenti di sviluppo sono per Ubuntu.”
I googler devono chiedere di usare Windows perché “Windows è più difficile perché ha problemi di sicurezza “speciali”, quindi richiede un permesso di alto livello prima che qualcuno possa usarlo.” Inoltre, “Gli strumenti di Windows tendono ad essere pesanti e inflessibili.”
Detto questo, a Bushnell è stato chiesto perché Ubuntu invece di dire Fedora o Opensuse? Lui ha risposto, “Abbiamo scelto Debian perché i pacchetti e APT [i programmi di pacchetto software di base di Debian] sono anni luce prima del RPM (sistema di gestione dei pacchetti predefiniti di Red Hat e SUSE.”” E, perché Ubuntu sulle altre distribuzioni Linux con sede a Debian? “Perché la cadenza di rilascio è fantastica e canonica [la società madre di Ubuntu] offre un buon supporto.”
Sì, è giusto. Google non utilizza solo Ubuntu e contribuisce al suo sviluppo, Google è un cliente pagante per il programma di supporto Ubuntu Advantage di Canonical. Chris Kenyon, che è il vicepresidente delle vendite e dello sviluppo del business di Canonical, ed era presente per il discorso di Bushnell, lo ha confermato e ha aggiunto questo “Google non è il nostro più grande cliente di business desktop.”
Quindi, per quanto riguarda il desktop stesso? Tutti sono tenuti a usare l’unità, il desktop popolare ma controverso di Ubuntu? No.
Alla domanda sull’uso dell’unità, ha detto Bushnell, “Unità? Odio porta odio. I nostri utenti desktop sono su tutta la mappa quando si tratta delle loro interfacce. Alcuni usano Gnome, alcuni usano KDE, alcuni usano X-Window e X-Terms. Alcuni vogliono unità perché ricorda loro il Mac. Vediamo gli amanti del Mac che si spostano all’unità.” Non c’è interfaccia goobuntu predefinita.
Ciò che c’è però è “decine di migliaia di utenti di Goobuntu. Ciò include graphic designer, ingegneri, gestione e vendite. È una comunità molto diversificata. Alcuni, come Ken Thompson, hanno contribuito a creare Unix e alcuni non sanno nulla sui computer tranne come usare la loro applicazione.”
Per gestire tutti questi desktop goobuntu, Google utilizza strumenti di amministrazione Desktop APT e PUPPET. Questo offre al team di gestione di Google Desktop la potenza di controllare e gestire rapidamente i propri PC. È importante perché, “Un singolo riavvio può costarci un milione di dollari per istanza.”
Detto questo, i problemi del desktop, anche su Linux, accadranno. Come ha detto Bushnell “La speranza non è una strategia. La maggior parte delle persone spera che le cose non falliscano. Sperando che i computer non falliscano è male, morirai un giorno. Il tuo PC si bloccherà un giorno. Devi progettare per il fallimento.”
Questo è dove appare la “salsa speciale” di Goobuntu. Sui desktop di Google, “Il monitoraggio attivo è assolutamente critico. In Google abbiamo richieste impegnative, spingiamo sempre le stazioni di lavoro ai loro limiti e lavoriamo con cicli di sviluppo in rapido movimento.”
Inoltre, Google ha requisiti di sicurezza molto severi. Come osserva Bushnell, “Google è un obiettivo che tutti vogliono hackerarci.” Quindi alcuni programmi che fanno parte della distribuzione di Ubuntu sono vietati come potenziali rischi per la sicurezza. Questi includono qualsiasi programma “che chiama casa” a un server esterno. Oltre a ciò che Google utilizza la propria autenticazione proprietaria per la rete PC utente interna che Bushnell afferma “Spingendo lo stato dell’arte nell’autenticazione della rete, perché siamo un obiettivo di sicurezza di alto profilo.”
Metti tutto insieme: la necessità di sicurezza top di gamma, prestazioni del PC di fascia alta e flessibilità di soddisfare le esigenze desktop sia degli sviluppatori geniali che dei rappresentanti di vendita appena assunti, e non c’è da stupirsi che Google utilizzi Ubuntu per il suo sistema operativo desktop di scelta. Per citare, Bushnell, “Saresti uno sciocco a usare qualsiasi cosa tranne Linux.”
Storie correlate:
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.
