Il y a quelques années, Google a achevé son passage d’un bureau Linux basé sur Ubuntu à Debian. Google a maintenant détaillé comment ce changement a conduit à des versions continues pour les ordinateurs de bureau Linux avec des mises à niveau plus rapides et plus fluides ainsi que des correctifs de sécurité plus rapides.
Après plus de 15 ans avec Ubuntu comme base pour les appareils internes de Google, la société est passée à Debian pour éviter les mises à jour majeures du système d’exploitation tous les deux ans et répartir la charge de travail de mise à niveau dans le temps.
Google a annoncé qu’il avait achevé le déménagement en 2018, comme ZDNet l’avait signalé à l’époque. Margarita Manterola, une ingénieure de Google, a expliqué qu’elle passait de Goobuntu, la version Google d’Ubuntu, à gLinux, une version continue basée sur Debian Testing, qui est la version bêta de la prochaine version stable de Debian.
VOIR: Les emplois open source sont là
C’était un grand changement compte tenu du nombre d’appareils impliqués dans la migration depuis Goobuntu, mais ce n’était pas non plus surprenant car Ubuntu est basé sur Debian, ce qui rend certains aspects du processus de mise à jour des packages similaires.
Manterola et ses collègues ingénieurs de Google, Kordian Bruck et Sven Mueller, ont maintenant expliqué comment la société est arrivée à lancer des versions Linux pour les ordinateurs de bureau dans un article de blog qui détaille comment d’autres grandes entreprises pourraient mettre en œuvre le même système de mise à niveau pour les ordinateurs de bureau.
Comme ils le notent, avant le passage aux versions progressives, chaque cycle de système d’exploitation créait un “saut de version assez important dans les principaux packages qui pourraient nécessiter des modifications importantes de la configuration logicielle”. Google a automatisé la plupart mais pas la totalité du processus de mise à niveau.
La mise à niveau de la flotte Goobuntu a pris une bonne partie de l’année et le calendrier des cycles du système d’exploitation signifiait que le processus de big bang était sans fin pour les équipes principales qui étaient “sur le point de s’épuiser” après une mise à niveau.
“Avec une fenêtre de support de deux ans, il ne restait qu’un an avant que nous devions recommencer le même processus pour le prochain LTS. Tout ce processus a été un facteur de stress énorme pour notre équipe, car nous avons eu des centaines de bogues avec demandes d’aide pour les cas critiques », écrivent-ils.
“Une fois qu’une mise à jour a été effectuée, il y avait un sentiment général d’être” proche de l’épuisement “dans l’équipe dont nous pouvions à peine nous remettre jusqu’à ce que la prochaine série de mises à jour arrive. L’exécution d’une version LTS signifiait également que certains bogues rencontrés par les utilisateurs de notre distribution a peut-être déjà été corrigée en amont, mais ces améliorations n’ont peut-être jamais été rétroportées vers la version LTS.”
Google a conçu gLinux Rodete (Rolling Debian Testing) dans le but de tuer le cycle de mise à niveau de deux ans et de le déployer au fil du temps pour réduire la charge des ingénieurs.
Comme ils le notent, l’évolution générale de l’industrie du logiciel vers le CI/CD (intégration continue/développement continu) a montré que les changements incrémentiels plus petits sont plus faciles à contrôler et à annuler. Pour des raisons similaires, les distributions Linux comme Arch Linux et NixOS ont également implémenté des versions progressives. Un Linux à diffusion continue est constamment mis à jour avec l’idée que les utilisateurs et les développeurs sont mieux servis en leur donnant les dernières mises à jour et correctifs au fur et à mesure de leur création.
Google a choisi Debian en raison de la disponibilité des packages, de la grande communauté et des packages et outils internes existants au format Debian. Google explique pourquoi il a opté pour la bêta de Debian plutôt que Stable.
“Alors que la piste Debian Stable suit un saut d’environ deux ans entre les versions, la piste de test Debian fonctionne comme une version continue, car c’est le pool de tous les paquets ingérés et construits en amont, en attendant la prochaine version stable”, a déclaré le Les ingénieurs de Google écrivent.
Google a finalement opté pour des versions hebdomadaires des mises à jour du système d’exploitation, mais avait initialement prévu qu’elles soient des versions plus fréquentes.
Lorsqu’elle lance une nouvelle version aujourd’hui, l’équipe de mise à jour prend un instantané des paquets ingérés par Debian à ce moment-là. Google exécute ensuite, accepte, teste, puis déploie “prudemment” la mise à jour vers un test dédié et un “canari” de 1 % à l’échelle de la flotte. Le canari lui donne quelques jours pour détecter les problèmes avec les packages Debian ou les packages internes de Google avant de le déployer sur l’ensemble de la flotte.
Google construit également un système de flux de travail appelé Sieve pour gérer la création de packages en amont à partir de la source. Sieve dispose d’outils pour réessayer les builds si le processus de build et les tests échouent.
L’un des avantages de Google en matière de sécurité est une “enveloppe de confiance” réduite qu’il place dans Debian en amont.
“Lors d’un incident de sécurité, par exemple, nous sommes en mesure de reconstruire rapidement et d’avoir confiance dans le fonctionnement de la construction avec un correctif temporaire, car nous avons déjà construit tous les packages qui atterrissent dans notre distribution.
“De plus, nous réduisons également l’enveloppe de confiance que nous devons placer dans Debian en amont et les artefacts de construction binaires produits par leur infrastructure. Au lieu de cela, une fois le code source ingéré et le binaire construit de manière vérifiable, nous pouvons attester de manière cryptographique que le binaire en cours d’exécution provient de exactement ce code source.”
Google affirme avoir également “considérablement amélioré notre position en matière de sécurité en rapprochant notre flotte des versions en amont”.
“Bien que Debian fournisse une bonne source de correctifs de sécurité pour les versions stable et oldstable, nous avons réalisé que toutes les failles de sécurité qui reçoivent des correctifs n’ont pas nécessairement un numéro Debian Security Advisory (DSA) ou CVE”, notent les ingénieurs.
“Notre calendrier de publication continu garantit que nous corrigeons rapidement les failles de sécurité sur l’ensemble de la flotte sans compromettre la stabilité, alors qu’auparavant, les ingénieurs en sécurité devaient examiner attentivement chaque DSA et s’assurer que le correctif a été apporté à notre flotte.”
VOIR : Comment activer Linux sur votre Chromebook (et pourquoi vous devriez)
Google dit qu’il prévoit de travailler plus étroitement avec Debian en amont et de contribuer davantage de ses correctifs internes pour maintenir l’écosystème de paquets Debian.
La société exhorte également les autres à envisager de mettre en œuvre des versions continues pour “équilibrer les besoins de l’entreprise avec l’agilité de la mise à niveau”. Ce que le changement a confirmé pour Google, c’est que les changements incrémentiels ont battu les versions big bang.
“Être en contrôle de notre propre cible mobile et de notre ligne de base a aidé à ralentir chaque fois que nous rencontrions trop de problèmes et que nous cassions l’un de nos membres de l’équipe. [Service Level Objectives]† Notre voyage a finalement renforcé notre conviction que les changements incrémentiels sont mieux gérables que les versions big bang.”