LinkedIn fait désormais sans CentOS

LinkedIn Azure Linux

LinkedIn a substitué Azure Linux à CentOS 7. Une migration qui a présenté une variété de défis techniques.

XFS, l’idéal pour tout sauf pour Hadoop ? LinkedIn en est arrivé à cette conclusion sur son parc applicatif. Le contexte : une migration vers Azure Linux.

En toile de fond à cette initiative, la fin de vie de CentOS 7… et la transition vers CentOS Stream initiée par Red Hat. Les doutes sur les orientations du projet ont convaincu LinkedIn de s’en distancer… pour adopter un produit de sa maison mère.

Au-delà des performances, XFS est apparu plus stable qu’EXT4. Mais il a fallu l’adapter. En particulier pour le RAID. Les configurations par défaut pour l’allocation du stockage restreignaient les débits.

La migration des données a représenté un autre défi technique, bien que chez LinkedIn, les applications stateful soient minoritaires. Il a parfois fallu reconstruire de nombreux paquets. Par exemple pour MySQL.

Dans certains cas, les équipes ont dû refactoriser des applications pour minimiser le temps d’indisponibilité. LinkedIn mentionne, à ce sujet, le remplacement d’une méthode de failover DNS par une solution fondée sur une autre topologie d’application.

De CentOS à Azure Linux, des choses se perdent

Avec le passage à Azure Linux, le rythme des changements en prod s’est accéléré. Cela a mis en lumière le besoin de réduire leur échelle (= éviter ceux englobant plusieurs datacenters ou groupes de services).

Même avec le modèle MaaS (provisionnement type cloud pour des serveurs physiques), il est resté difficile de constituer des conteneurs satisfaisant les exigences de sécurité. L’outil interne s’est, en outre, révélé initialement incompatible avec les dépôts d’Azure Linux. Il a fallu assurer la conversion de la base de données lors de la création de l’image.

Autre incompatibilité : celle du DKMS (gestion dynamique des modules noyau). Azure Linux exige en effet des pilotes signés par Microsoft. Il a donc fallu travailler avec lui jusqu’à pouvoir s’appuyer sur les drivers amont.

La migration vers Azure Linux a aussi modifié l’expérience sur les VM de développement. Traditionnellement, elle étaient hébergées à parité avec la prod, sur un bureau CentOS avec un gestionnaire de fenêtres accessibles par RDP ou SSH. Faute de gestionnaire de fenêtres sur Azure Linux, l’accès GUI allait disparaître. Palliatif retenu : une connexion distante avec des IDE.

Il a par ailleurs fallu rendre l’image de base d’Azure Linux compatible avec le workflow de développement distant. Divers soucis se sont présentés, entre paquets RPM manquants, runtimes obsolètes et outils de build ne fonctionnant pas.

LinkedIn a saisi l’occasion pour changer son outillage de supervision. Il a notamment unifié le suivi du logiciel et du matériel.

Illustration principale © Alexey Novikov – Adobe Stock