La història darrere del Linux d’escriptori intern de Google

Si mireu les oficines de Google de Mountain View, CA, veureu màquines Windows, Chromebooks, Mac i ordinadors de sobretaula gLinux. G què, et preguntes? Bé, a més de confiar en Linux per als seus servidors, Google té la seva pròpia distribució d’escriptori Linux.

No ho pots aconseguir, maldita! – però durant més d’una dècada, Google ha estat cuinant i menjant la seva pròpia distribució casolana d’escriptori Linux. La primera versió va ser Goobuntu. (Com podeu suposar pel nom, es basava en Ubuntu.)

El 2018, Google va traslladar el seu escriptori Linux intern del Goobuntu a una nova distribució de Linux, el gLinux basat en Debian. Per què? Perquè, com va explicar Google, el llançament de dos anys de suport a llarg termini (LTS) d’Ubuntu “va significar que havíem d’actualitzar totes les màquines de la nostra flota de més de 100.000 dispositius abans de la data de finalització de la vida útil del sistema operatiu”.

Això era un pa. Afegiu-hi la necessitat de personalitzar completament els ordinadors dels enginyers, i Google va decidir que costava massa. A més, “l’esforç per actualitzar la nostra flota de Goobuntu sol durar la major part d’un any. Amb una finestra de suport de dos anys, només quedava un any fins que havíem de tornar a passar pel mateix procés per al proper LTS. Tot aquest procés va ser un factor d’estrès enorme per al nostre equip, ja que vam rebre centenars d’errors amb sol·licituds d’ajuda per a casos de cantonada”.

Així, quan Google en va tenir prou, es va traslladar a Debian Linux (encara que no només vanilla Debian). L’empresa va crear una distribució de Debian continuada: GLinux Rolling Debian Testing (Rodete). La idea és que els usuaris i desenvolupadors se’ls serveix millor proporcionant-los les últimes actualitzacions i pedaços a mesura que es creen i es consideren a punt per a la producció. Aquestes distribucions inclouen Arch Linux, Debian Testing i openSUSE Tumbleweed.

Per a Google, l’objectiu immediat era sortir del cicle d’actualització de dos anys. Com ha demostrat el pas a la integració contínua/desplegament continu (CI/CD), aquests canvis incrementals funcionen bé. També són més fàcils de controlar i retrocedir si alguna cosa va malament.

Perquè tot això funcioni sense molta sang, suor i llàgrimes, Google va crear un nou sistema de flux de treball, Sieve. Sempre que Sieve trobi una nova versió d’un paquet Debian, comença una nova compilació. Aquests paquets es construeixen en grups de paquets, ja que sovint s’han d’actualitzar conjuntament paquets separats. Un cop s’ha creat tot el grup, Google executa una suite de proves virtualitzada per garantir que no hi hagi components bàsics i que els fluxos de treball dels desenvolupadors estiguin trencats. A continuació, cada grup es prova per separat amb una instal·lació completa del sistema, l’arrencada i l’execució de la suite de proves local. La compilació del paquet es completa en qüestió de minuts, però les proves poden trigar fins a una hora.

Un cop fet això, tots els paquets nous es fusionen amb el grup de paquets de gLinux més recent. Aleshores, quan Google decideix que és hora de llançar-lo en producció, l’equip fa instantànies d’aquest grup. Finalment, llança el nou llançament a la flota. Per descomptat, no només ho deixarà als usuaris. En lloc d’això, utilitza principis d’enginyeria de fiabilitat del lloc (SRE) com ara el canari incremental per assegurar-se que res vagi malament.

Amb els anys, Google ha millorat en això. Avui, gràcies a Sieve, tot l’equip de desenvolupament de gLinux consta d’un sol lloc d’enginyer de llançament de servei que gira entre els membres de l’equip. No hi ha grans impulsos per millorar la flota. No hi ha versions alfa, betas i de disponibilitat general (GA) de diverses etapes.

Millor encara, gràcies al calendari de llançament continuat, Google pot corregir els forats de seguretat de tota la flota ràpidament sense comprometre l’estabilitat. Anteriorment, els enginyers de seguretat havien de revisar acuradament cada assessorament de seguretat de Debian (DSA) per assegurar-se que hi havia la solució.

A més, la “suite de proves millorada i les proves d’integració de Google amb equips de socis clau que executen sistemes de desenvolupadors crítics també van donar lloc a una experiència més estable amb una distribució de Linux que proporciona les últimes versions del nucli de Linux. El nostre fort anhel d’automatitzar tot el que està en procés ha redueix significativament el treball i l’estrès dins de l’equip. Ara també ens podem informar d’errors i incompatibilitats amb altres versions de la biblioteca alhora que ens assegurem que les eines de Google funcionin millor a l’ecosistema Linux”.

De cara al futur, l’equip de Google va declarar que treballarà “més de prop amb Debian amunt i contribuirà amb més dels nostres pedaços interns per mantenir l’ecosistema de paquets de Debian”.

Tot això sona genial. Però tinc dues idees per compartir.

En primer lloc, per a algunes organitzacions, els llançaments de LTS encara tenen sentit. Si no necessiteu els programes més nous i brillants per al vostre negoci, un Ubuntu o Red Hat LTS Linux encara té sentit.

En segon lloc, i aquest és l’important: el garbell sona com el miaull del gat. Un programa que pugui automatitzar una cadena de producció de distribucions en continu fins al punt que només cal un enginyer per mantenir un escriptori utilitzat per més de 100.000 usuaris? Dóna’m d’alta!

Millor encara, allibereu el codi de Sieve perquè tots puguem començar a produir versions d’escriptori Linux. Què tal, Google? Què dius?

Copyright © 2022 IDG Communications, Inc.

Leave a Comment

Your email address will not be published. Required fields are marked *