Le stockage Flash optimise les processus DevOps de l’éditeur de jeux Wargaming
Confronté à un problème de performance sur son infrastructure DevOps d'intégration continue, l'éditeur de jeux en ligne Wargaming a divisé par huit ses temps de compilation en remplaçant sa baie de stockage VNX5300 par une baie 100% Flash signée Kaminario.
L’éditeur de jeux en ligne Wargaming Seattle (ex Gas Powered Games) a réussi à ramener les temps de compilation de son processus DevOps a un niveau acceptable en remplaçant sa baie de stockage SAN à base de disques durs par un système de stockage 100 % Flash.
Wargaming est connu pour ses jeux en ligne massivement multijoueurs, dont World of Tanks ou World of Warships. La firme emploie une quarantaine de développeurs qui utilisent le middleware open source Jenkins pour gérer leur processus d’intégration continue (CI).
Alors que les équipes de l’éditeur travaillaient sur la conception du nouveau titre phare de Wargaming — dont le nom final reste un secret — les développeurs ont rencontré un problème d’allongement des temps de compilation tel, qu’il mettait en péril le processus d’intégration continue. Dans un processus CI, les développeurs ajoutent leur code directement dans un espace partagé, ce qui permet de compiler et tester les modifications tout au long de la journée. On peut ainsi rapidement détecter d’éventuels défauts dans le code et revenir en arrière en cas de problème.
Dans le cadre de la création de leur nouvau jeu, les développeurs ont toutefois rencontré des soucis de performances tels qu’ils devaient parfois attendre plusieurs heures pour la compilation du code, ce qui mettait de facto en péril le processus de CI. Les soucis de performances n’affectaient pas que la compilation, ils se traduisaient aussi par des temps plus longs de transfert et de mise à jour de code entre la baie et les stations de travail des développeurs. Après analyse du problème, Wargaming s’est rendu compte que la bande passante et la latence des disques durs de sa baie étaient à l’origine du problème.
Wargaming utilisait jusqu’alors une baie de stockage sur disques durs EMC VNX 5300, explique Kevin Folks, le responsable IT de Wargaming. « Progressivement, nous avons vu les temps de compilation s’allonger pour finalement atteindre près de 2 h pour une compilation de l’ensemble du code ». Avec une approche CI, chaque fois qu’un développeur modifie ou ajoute un élément de code sur le back-end, le système génère une nouvelle version du logiciel. Le ralentissement progressif de la baie a créé un tel engorgement que la firme a dû commencer à restreindre le nombre de compilations, ce qui invalidait l’intérêt même d’une approche CI. Finalement, Wargaming a donc décidé de remplacer sa baie de disque par une baie 100 % Flash.
Des temps de compilation divisés par huit avec la baie Kaminario K2
Folks explique que la firme a testé les baies AFA de NetApp, les baies XtremIO d’EMC et les K2 de Kaminario, avant de finalement retenir la solution de ce dernier. Les principaux critères retenus pour la sélection du fournisseur de l’éditeur de jeu ont été la performance brute et le rapport performance/prix.
Les tests se sont déroulés pendant près de 2 mois pendant laquelle l’éditeur a évalué la performance de chaque baie dans son environnement. Finalement, « Kaminario a dépassé tous ses concurrents » explique Folks. « Dans le cadre de notre environnement, c’est celui qui a affiché les meilleures performances ».
Wargaming a mis en production sa baie Kaminario K2 au début de l’année 2016 et a immédiatement constaté une amélioration drastique de ses performances. « La latence sur le système K2 est très faible » indique Justin Thoemke, un ingénieur DevOps. « Les pics de latence les plus extrêmes ne dépassent jamais 4 ou 5 ms, alors que nous avions des pointes à plus de 200 ms avec notre baie VNX durant les épisodes de compilation les plus exigeants ».
Thoemke indique que les temps de compilation, qui avaient dépassé la barre des 2 h pour l’ensemble du code sur la baie VNX, sont passés sous la barre du quart d’heure.
« Ce résultat ravit les développeurs mais aussi les comptables (...).. Le fait de produire du logiciel plus rapidement permet en effet d’économiser des sommes considérables en éliminant le temps perdu par les ingénieurs et développeurs », explique Thoemke. Un ingénieur compile en moyenne le jeu trois fois par jour. Le fait d’attendre 2 h pour avoir un retour se traduit dans la pratique par un gaspillage de temps de travail qui se chiffre à plus de 2 millions de dollars sur l’ensemble du développement du jeu.
La baie K2 utilisée par Wargaming dispose d’environ 7 To de capacité brute soit environ 24 To utilisables après déduplication et compression. Outre l'infrastructure CI, elle contribue aussi à accélérer d’autres éléments de l’infrastructure de Wargaming. « Dans le cadre du développement de notre nouveau jeu, nous devons régulièrement instancier de nouveaux serveurs qui ont besoin de charger rapidement des données en mémoire », indique ainsi Thoemke. « La baie K2 est utilisée pour streamer rapidement ces données dans la mémoire des serveurs ».
L’ancienne baie VNX 5300 a été recyclée et est désormais utilisée pour l’archivage et pour des applications moins gourmandes en performances.