Migrer le monorépertoire JVM d'Airbnb vers Bazel
Airbnb a migré son énorme monorepo JVM de Gradle à Bazel, un processus qui s’est étendu sur 4,5 ans. Les principales raisons de ce changement étaient la vitesse supérieure, la fiabilité et l’infrastructure de construction unifiée de Bazel. La mise en cache et l’exécution à distance de Bazel ont considérablement accéléré les temps de construction et de test, améliorant ainsi la productivité des développeurs. La migration a résolu le manque de fiabilité de Gradle résultant de constructions non hermétiques et de conflits de ressources. Une preuve de concept avec le service Viaduct d’Airbnb a démontré l’efficacité de Bazel, conduisant à une adoption plus large. Un composant crucial était un générateur de fichiers de construction automatisé pour minimiser les efforts des développeurs et maintenir les systèmes de construction coexistants. Ce générateur a analysé efficacement les fichiers sources, géré les cycles de dépendance et pris en charge les graphiques de construction à granularité fine. La migration a également impliqué de relever des défis tels que la prise en charge de bibliothèques tierces multiversions et la garantie de la compatibilité du déploiement. Enfin, des tests rigoureux, en particulier des tests de démarrage et d’intégration pour les services, ont validé l’exactitude des déploiements construits par Bazel. Le résultat global est un système de construction considérablement amélioré avec une satisfaction accrue des développeurs.