Chez Infomaniak, l’innovation ne se résume pas à développer des produits performants, mais aussi à les rendre plus efficaces, durables et responsables. Christophe Borcard, Principal Developer avec 15 ans d’expérience, explique comment une récente optimisation du service de partage SwissTransfer.com génère un impact significatif : 400 W économisés en continu et une charge machine divisée par deux, soit l’équivalent de 40 ampoules LED allumées en permanence pendant un an.
Le point de départ : une architecture mutualisée
À son lancement en février 2019, notre service de partage de gros fichiers SwissTransfer.com reposait sur une infrastructure mutualisée et polyvalente avec des serveurs qui étaient capables de remplir toutes les fonctions du service. Ce système garantissait un service hautement disponible, des performances remarquables, une structure facile à maintenir et une infrastructure de taille maîtrisée.
L’explosion de SwissTransfer dans toute l’Europe
Avec l’adoption rapide et massive de SwissTransfer.com dans toute l’Europe, il a rapidement été nécessaire de faire grandir le pool de machines et de spécialiser les serveurs sur des tâches spécifiques.
Un proxy par machine permettait de rediriger les requêtes des utilisateurs vers le bon service, c’est-à-dire vers les serveurs d’envoi ou de téléchargement (la brique métier), tout en chiffrant les données en transit.
Cette structure était performante et robuste, mais elle présentait une faiblesse : le chiffrement, effectué par chaque proxy, augmentait la charge CPU de manière importante. Le pool de machines dédiées au service dépassait régulièrement leur limite de charge.
Résultats
- Une baisse de performance pour les utilisateurs
- Une surconsommation de ressources et d’énergie non négligeable pour une plateforme orientée vers l’efficacité et la durabilité
La solution : optimiser le workflow spécialisé
L’optimisation d’écoconception a reposé sur deux axes principaux :
- Les composants nécessaires au fonctionnement initial en mode mutualisé ont été retirés, simplifiant ainsi le dimensionnement de l’infrastructure pour accompagner le succès croissant du service.
- La gestion de la charge a été rationalisée : chaque serveur communique désormais son état à un proxy centralisé. Lorsqu’un transfert démarre, la requête est redirigée vers le serveur le moins sollicité, assurant une répartition optimale.
Ce n’était pas qu’une intuition, mais aussi une compréhension profonde des processus entre le navigateur et le serveur, explique Christophe. Chaque étape compte, et c’est en identifiant ces étapes qu’on peut agir pour optimiser.
Une petite modification, mais un grand impact. Ce cas illustre parfaitement l’importance de l’écoconception dans les produits numériques. Une infrastructure performante ne repose pas seulement sur des serveurs puissants, mais aussi sur une gestion intelligente des ressources.
Résultats
- Une charge uniformément répartie entre le pool de machines
- Une élimination des pics critiques
- Une réduction de 400 W en continu
- Une infrastructure plus simple et plus durable
- Des meilleures performances pour les utilisateurs
Bonnes pratiques d’écoconception
Optimiser, c’est avant tout être curieux. – Christophe
1. Décomposer chaque étape
Du navigateur au serveur, chaque processus peut cacher des améliorations potentielles. Comprendre chaque brique permet d’identifier les goulots d’étranglement.
2. Implémenter du tracing dès le début
Dans une entreprise, l’expérience dépasse souvent l’utilisation des données. La mise en place d’outils de tracing permet à des personnes moins expérimentées d’identifier des leviers d’écoconception.
Si le tracing avait été en place dès le lancement de SwissTransfer, cette optimisation aurait pu être mise en œuvre plus tôt. Le tracing permet de voir l’impact d’une requête à travers toute l’infrastructure d’un service.
3. Travailler en équipe pour formaliser ses intuitions
Dans une entreprise où tout le monde n’a pas forcément la vision d’ensemble, il est essentiel de partager ses idées avec les leads ou principaux développeurs. Cela permet d’officialiser des initiatives d’optimisation et d’obtenir les ressources nécessaires pour les concrétiser.
À l’échelle d’Infomaniak : une culture de l’optimisation
L’écoconception augmente directement la performance de nos services et la satisfaction de nos utilisateurs. Elle repose principalement sur la curiosité, l’humilité et la volonté constante de progresser.
L’intégration du tracing dans toutes les briques d’Infomaniak est un processus continu. Notre objectif ? Anticiper les ralentissements, identifier les points faibles, et intervenir avant même qu’un utilisateur ne s’aperçoive d’une baisse de performance. – Christophe
Cette optimisation de SwissTransfer est plus qu’une simple optimisation d’écoconception. C’est une preuve que l’expérience, combinée à une curiosité insatiable, peut transformer un processus énergivore en un modèle d’efficacité pour les utilisateurs et les ressources système. Cela illustre aussi que les solutions les plus impactantes sont parfois très simples.
Et si vous êtes motivé pour travailler dans une équipe qui valorise cette démarche, rejoignez-nous chez Infomaniak. Ici, nous ne nous contentons pas de coder : nous créons un cloud durable qui ne fait aucun compromis sur la vie privée, l’écologie et l’économie locale 🚀
En savoir plus
Alternative à VMware : migrer VMware Server vers OpenStack avec le Public Cloud d’Infomaniak
vendredi 11 octobre 2024