Les images natives, support de la démarche « green coding » d’AXA

AXA green coding compilation native

Engagé dans une démarche de communication de ses pratiques de « green coding », AXA évoque les apports de la compilation native.

Quelles techniques pour limiter l’empreinte environnementale du code ? L’an dernier, l’équipe tech d’AXA France avait entrepris de communiquer à ce propos.

En septembre, elle avait publié un premier post traitant de quelques fondements du « green coding ». Le deuxième volet, paru en novembre, aborde la gestion durable des données.

Sujet du troisième billet, mis en ligne fin février : la compilation en image native. C’est-à-dire sous forme d’un binaire autonome destiné à une plate-forme cible.

Dans la lignée des volets précédents, la démonstration se concentre sur les applications Java. Réalisée avec le framework GraalVM, la compilation native réduit la taille des exécutables… et donc le stockage nécessaire. Elle optimise aussi l’usage des ressources CPU et RAM à l’exécution, grâce à la compilation anticipée (AOT, ahead-of-time). Celle-ci intervient après la production du bytecode. Il en résulte du code source compilé en langage machine plutôt qu’interprété au moment de l’exécution.

AXA pousse la compilation native sur socle OpenPaaS

Les équipes d’AXA France pratiquent, en complément, l’optimisation guidée par le profilage (compilation statique pour une utilisation type). Au bout, il y a des économies d’infra… et donc d’énergie.

En fonction du besoin final, la compilation native ne convient pas forcément.(pour obtenir un débit important, par exemple, on conservera une JVM). Elle implique d’autres éléments, dont :

– Des images liées à une plate-forme
– Un débogage spécifique (journalisation étendue, analyse des dumps mémoire…)
– La configuration statique des composants et des dépendances (gérable avec le rechargement à chaud proposé par certains frameworks)
– Une éventuelle configuration supplémentaire pour le chargement de classes dynamiques
– Une déclaration explicite des dépendances nécessaires à l’exécution

AXA France a commencé à pratiquer la compilation native dans le contexte de la généralisation du CaaS (OpenPaaS/Kubernetes) comme cible de déploiement.

Illustration © Seventyfour – Adobe Stock